aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
authorIgor Wiedler <igor@wiedler.ch>2012-04-08 16:40:19 +0200
committerIgor Wiedler <igor@wiedler.ch>2012-04-08 16:40:19 +0200
commit81fb4268cd141259fe5b3bc9ad51adf2e29e0772 (patch)
treeb7853d742aeb04980f6de619560db3e9667245e8 /phpBB
parenteea2ec50521e274b928d23f710108f37797cb22c (diff)
downloadforums-81fb4268cd141259fe5b3bc9ad51adf2e29e0772.tar
forums-81fb4268cd141259fe5b3bc9ad51adf2e29e0772.tar.gz
forums-81fb4268cd141259fe5b3bc9ad51adf2e29e0772.tar.bz2
forums-81fb4268cd141259fe5b3bc9ad51adf2e29e0772.tar.xz
forums-81fb4268cd141259fe5b3bc9ad51adf2e29e0772.zip
[feature/avatars] Introduce an avatar driver interface
PHPBB3-10018
Diffstat (limited to 'phpBB')
-rw-r--r--phpBB/includes/acp/acp_groups.php2
-rw-r--r--phpBB/includes/acp/acp_users.php2
-rw-r--r--phpBB/includes/avatar/driver/driver.php39
-rw-r--r--phpBB/includes/avatar/driver/interface.php71
-rw-r--r--phpBB/includes/functions_display.php4
-rw-r--r--phpBB/includes/ucp/ucp_profile.php2
6 files changed, 87 insertions, 33 deletions
diff --git a/phpBB/includes/acp/acp_groups.php b/phpBB/includes/acp/acp_groups.php
index 34c233604a..5a45b3b572 100644
--- a/phpBB/includes/acp/acp_groups.php
+++ b/phpBB/includes/acp/acp_groups.php
@@ -293,7 +293,7 @@ class acp_groups
sort($avatar_drivers);
// This is normalised data, without the group_ prefix
- $avatar_data = phpbb_avatar_driver::clean_row($group_row, phpbb_avatar_driver::FROM_GROUP);
+ $avatar_data = phpbb_avatar_driver::clean_row($group_row, phpbb_avatar_driver_interface::FROM_GROUP);
}
diff --git a/phpBB/includes/acp/acp_users.php b/phpBB/includes/acp/acp_users.php
index fac84ba40a..9c12116062 100644
--- a/phpBB/includes/acp/acp_users.php
+++ b/phpBB/includes/acp/acp_users.php
@@ -1692,7 +1692,7 @@ class acp_users
sort($avatar_drivers);
// This is normalised data, without the user_ prefix
- $avatar_data = phpbb_avatar_driver::clean_row($user_row, phpbb_avatar_driver::FROM_USER);
+ $avatar_data = phpbb_avatar_driver::clean_row($user_row, phpbb_avatar_driver_interface::FROM_USER);
if ($submit)
{
diff --git a/phpBB/includes/avatar/driver/driver.php b/phpBB/includes/avatar/driver/driver.php
index 8fb80693fb..277130e819 100644
--- a/phpBB/includes/avatar/driver/driver.php
+++ b/phpBB/includes/avatar/driver/driver.php
@@ -19,7 +19,7 @@ if (!defined('IN_PHPBB'))
* Base class for avatar drivers
* @package avatars
*/
-abstract class phpbb_avatar_driver
+abstract class phpbb_avatar_driver implements phpbb_avatar_driver_interface
{
/**
* Current board configuration
@@ -52,12 +52,6 @@ abstract class phpbb_avatar_driver
protected $cache;
/**
- * @TODO
- */
- const FROM_USER = 0;
- const FROM_GROUP = 1;
-
- /**
* This flag should be set to true if the avatar requires a nonstandard image
* tag, and will generate the html itself.
* @type boolean
@@ -83,12 +77,7 @@ abstract class phpbb_avatar_driver
}
/**
- * Get the avatar url and dimensions
- *
- * @param $ignore_config Whether this function should respect the users prefs
- * and board configuration configuration option, or should just render
- * the avatar anyways. Useful for the ACP.
- * @return array Avatar data
+ * @inheritdoc
*/
public function get_data($row, $ignore_config = false)
{
@@ -100,13 +89,7 @@ abstract class phpbb_avatar_driver
}
/**
- * Returns custom html for displaying this avatar.
- * Only called if $custom_html is true.
- *
- * @param $ignore_config Whether this function should respect the users prefs
- * and board configuration configuration option, or should just render
- * the avatar anyways. Useful for the ACP.
- * @return string HTML
+ * @inheritdoc
*/
public function get_custom_html($row, $ignore_config = false)
{
@@ -114,7 +97,7 @@ abstract class phpbb_avatar_driver
}
/**
- * @TODO
+ * @inheritdoc
**/
public function prepare_form($template, $row, &$error, &$override_focus)
{
@@ -122,7 +105,7 @@ abstract class phpbb_avatar_driver
}
/**
- * @TODO
+ * @inheritdoc
**/
public function process_form($template, $row, &$error)
{
@@ -130,7 +113,7 @@ abstract class phpbb_avatar_driver
}
/**
- * @TODO
+ * @inheritdoc
**/
public function delete($row)
{
@@ -138,18 +121,18 @@ abstract class phpbb_avatar_driver
}
/**
- * @TODO
+ * @inheritdoc
**/
- public static function clean_row($row, $src = phpbb_avatar_driver::FROM_USER)
+ public static function clean_row($row, $src = phpbb_avatar_driver_interface::FROM_USER)
{
$return = array();
$prefix = false;
-
- if ($src == phpbb_avatar_driver::FROM_USER)
+
+ if ($src == phpbb_avatar_driver_interface::FROM_USER)
{
$prefix = 'user_';
}
- else if ($src == phpbb_avatar_driver::FROM_GROUP)
+ else if ($src == phpbb_avatar_driver_interface::FROM_GROUP)
{
$prefix = 'group_';
}
diff --git a/phpBB/includes/avatar/driver/interface.php b/phpBB/includes/avatar/driver/interface.php
new file mode 100644
index 0000000000..dcec5811bb
--- /dev/null
+++ b/phpBB/includes/avatar/driver/interface.php
@@ -0,0 +1,71 @@
+<?php
+/**
+*
+* @package avatar
+* @copyright (c) 2011 phpBB Group
+* @license http://opensource.org/licenses/gpl-license.php GNU Public License
+*
+*/
+
+/**
+* @ignore
+*/
+if (!defined('IN_PHPBB'))
+{
+ exit;
+}
+
+/**
+* Interface for avatar drivers
+* @package avatars
+*/
+interface phpbb_avatar_driver_interface
+{
+ /**
+ * @TODO
+ */
+ const FROM_USER = 0;
+ const FROM_GROUP = 1;
+
+ /**
+ * Get the avatar url and dimensions
+ *
+ * @param $ignore_config Whether this function should respect the users prefs
+ * and board configuration configuration option, or should just render
+ * the avatar anyways. Useful for the ACP.
+ * @return array Avatar data, must have keys src, width and height, e.g.
+ * ['src' => '', 'width' => 0, 'height' => 0]
+ */
+ public function get_data($row, $ignore_config = false);
+
+ /**
+ * Returns custom html for displaying this avatar.
+ * Only called if $custom_html is true.
+ *
+ * @param $ignore_config Whether this function should respect the users prefs
+ * and board configuration configuration option, or should just render
+ * the avatar anyways. Useful for the ACP.
+ * @return string HTML
+ */
+ public function get_custom_html($row, $ignore_config = false);
+
+ /**
+ * @TODO
+ **/
+ public function prepare_form($template, $row, &$error, &$override_focus);
+
+ /**
+ * @TODO
+ **/
+ public function process_form($template, $row, &$error);
+
+ /**
+ * @TODO
+ **/
+ public function delete($row);
+
+ /**
+ * @TODO
+ **/
+ public static function clean_row($row, $src = phpbb_avatar_driver_interface::FROM_USER);
+}
diff --git a/phpBB/includes/functions_display.php b/phpBB/includes/functions_display.php
index e1dd67aeaf..82638b7f2b 100644
--- a/phpBB/includes/functions_display.php
+++ b/phpBB/includes/functions_display.php
@@ -1281,7 +1281,7 @@ function get_user_rank($user_rank, $user_posts, &$rank_title, &$rank_img, &$rank
*/
function get_user_avatar($user_row, $alt = 'USER_AVATAR', $ignore_config = false)
{
- $row = phpbb_avatar_driver::clean_row($user_row, phpbb_avatar_driver::FROM_USER);
+ $row = phpbb_avatar_driver::clean_row($user_row, phpbb_avatar_driver_interface::FROM_USER);
return get_avatar($row, $alt, $ignore_config);
}
@@ -1296,7 +1296,7 @@ function get_user_avatar($user_row, $alt = 'USER_AVATAR', $ignore_config = false
*/
function get_group_avatar($user_row, $alt = 'GROUP_AVATAR', $ignore_config = false)
{
- $row = phpbb_avatar_driver::clean_row($user_row, phpbb_avatar_driver::FROM_GROUP);
+ $row = phpbb_avatar_driver::clean_row($user_row, phpbb_avatar_driver_interface::FROM_GROUP);
return get_avatar($row, $alt, $ignore_config);
}
diff --git a/phpBB/includes/ucp/ucp_profile.php b/phpBB/includes/ucp/ucp_profile.php
index 58e5254d4b..9d22fd4dba 100644
--- a/phpBB/includes/ucp/ucp_profile.php
+++ b/phpBB/includes/ucp/ucp_profile.php
@@ -557,7 +557,7 @@ class ucp_profile
sort($avatar_drivers);
// This is normalised data, without the user_ prefix
- $avatar_data = phpbb_avatar_driver::clean_row($user->data, phpbb_avatar_driver::FROM_USER);
+ $avatar_data = phpbb_avatar_driver::clean_row($user->data, phpbb_avatar_driver_interface::FROM_USER);
if ($submit)
{