[feature/avatars] Simplify clean_row, move it to avatar manager

PHPBB3-10018
This commit is contained in:
Igor Wiedler 2012-04-08 21:29:52 +02:00
parent 81fb4268cd
commit 3b71e81cfb
7 changed files with 24 additions and 57 deletions

View file

@ -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_interface::FROM_GROUP);
$avatar_data = phpbb_avatar_manager::clean_row($group_row);
}

View file

@ -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_interface::FROM_USER);
$avatar_data = phpbb_avatar_manager::clean_row($user_row);
if ($submit)
{

View file

@ -119,45 +119,4 @@ abstract class phpbb_avatar_driver implements phpbb_avatar_driver_interface
{
return true;
}
/**
* @inheritdoc
**/
public static function clean_row($row, $src = phpbb_avatar_driver_interface::FROM_USER)
{
$return = array();
$prefix = false;
if ($src == phpbb_avatar_driver_interface::FROM_USER)
{
$prefix = 'user_';
}
else if ($src == phpbb_avatar_driver_interface::FROM_GROUP)
{
$prefix = 'group_';
}
if ($prefix)
{
$len = strlen($prefix);
foreach ($row as $key => $val)
{
$sub = substr($key, 0, $len);
if ($sub == $prefix)
{
$return[substr($key, $len)] = $val;
}
else
{
$return[$key] = $val;
}
}
}
else
{
$return = $row;
}
return $return;
}
}

View file

@ -21,12 +21,6 @@ if (!defined('IN_PHPBB'))
*/
interface phpbb_avatar_driver_interface
{
/**
* @TODO
*/
const FROM_USER = 0;
const FROM_GROUP = 1;
/**
* Get the avatar url and dimensions
*
@ -63,9 +57,4 @@ interface phpbb_avatar_driver_interface
* @TODO
**/
public function delete($row);
/**
* @TODO
**/
public static function clean_row($row, $src = phpbb_avatar_driver_interface::FROM_USER);
}

View file

@ -125,4 +125,23 @@ class phpbb_avatar_manager
return array_keys(self::$valid_drivers);
}
/**
* Strip out user_ and group_ prefixes from keys
**/
public static function clean_row($row)
{
$keys = array_keys($row);
$values = array_values($row);
$keys = array_map(
function ($key)
{
return preg_replace('(user_|group_)', '', $key);
},
$row
);
return array_combine($keys, $values);
}
}

View file

@ -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_interface::FROM_USER);
$row = phpbb_avatar_manager::clean_row($user_row);
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_interface::FROM_GROUP);
$row = phpbb_avatar_manager::clean_row($user_row);
return get_avatar($row, $alt, $ignore_config);
}

View file

@ -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_interface::FROM_USER);
$avatar_data = phpbb_avatar_manager::clean_row($user->data);
if ($submit)
{