[feature/avatars] Use "Main" as category for avatars in root of gallery

Before this change the whole avatar gallery path would show as category.
Additionally, the avatars that were selected like that had an incorrect
path and didn't show up correctly.
With this patch it'll display "Main" as category and properly work.

PHPBBB3-10018
This commit is contained in:
Marc Alexander 2013-02-19 12:45:08 +01:00
parent a9e0aea4b1
commit 3cc4746ad3
2 changed files with 9 additions and 6 deletions

View file

@ -38,7 +38,7 @@ class phpbb_avatar_driver_local extends phpbb_avatar_driver
*/ */
public function prepare_form($request, $template, $user, $row, &$error) public function prepare_form($request, $template, $user, $row, &$error)
{ {
$avatar_list = $this->get_avatar_list(); $avatar_list = $this->get_avatar_list($user);
$category = $request->variable('avatar_local_cat', ''); $category = $request->variable('avatar_local_cat', '');
foreach ($avatar_list as $cat => $null) foreach ($avatar_list as $cat => $null)
@ -116,7 +116,7 @@ class phpbb_avatar_driver_local extends phpbb_avatar_driver
*/ */
public function process_form($request, $template, $user, $row, &$error) public function process_form($request, $template, $user, $row, &$error)
{ {
$avatar_list = $this->get_avatar_list(); $avatar_list = $this->get_avatar_list($user);
$category = $request->variable('avatar_local_cat', ''); $category = $request->variable('avatar_local_cat', '');
$file = $request->variable('avatar_local_file', ''); $file = $request->variable('avatar_local_file', '');
@ -134,7 +134,7 @@ class phpbb_avatar_driver_local extends phpbb_avatar_driver
} }
return array( return array(
'avatar' => $category . '/' . $file, 'avatar' => ($category != $user->lang['MAIN']) ? $category . '/' . $file : $file,
'avatar_width' => $avatar_list[$category][urldecode($file)]['width'], 'avatar_width' => $avatar_list[$category][urldecode($file)]['width'],
'avatar_height' => $avatar_list[$category][urldecode($file)]['height'], 'avatar_height' => $avatar_list[$category][urldecode($file)]['height'],
); );
@ -144,9 +144,11 @@ class phpbb_avatar_driver_local extends phpbb_avatar_driver
* Get a list of avatars that are locally available * Get a list of avatars that are locally available
* Results get cached for 24 hours (86400 seconds) * Results get cached for 24 hours (86400 seconds)
* *
* @param phpbb_user $user User object
*
* @return array Array containing the locally available avatars * @return array Array containing the locally available avatars
*/ */
protected function get_avatar_list() protected function get_avatar_list($user)
{ {
$avatar_list = ($this->cache == null) ? false : $this->cache->get('avatar_local_list'); $avatar_list = ($this->cache == null) ? false : $this->cache->get('avatar_local_list');
@ -172,9 +174,9 @@ class phpbb_avatar_driver_local extends phpbb_avatar_driver
{ {
$dims = array(0, 0); $dims = array(0, 0);
} }
$cat = str_replace("$path/", '', $file_path); $cat = ($path == $file_path) ? $user->lang['MAIN'] : str_replace("$path/", '', $file_path);
$avatar_list[$cat][$image] = array( $avatar_list[$cat][$image] = array(
'file' => rawurlencode($cat) . '/' . rawurlencode($image), 'file' => ($cat != $user->lang['MAIN']) ? rawurlencode($cat) . '/' . rawurlencode($image) : rawurlencode($image),
'filename' => rawurlencode($image), 'filename' => rawurlencode($image),
'name' => ucfirst(str_replace('_', ' ', preg_replace('#^(.*)\..*$#', '\1', $image))), 'name' => ucfirst(str_replace('_', ' ', preg_replace('#^(.*)\..*$#', '\1', $image))),
'width' => $dims[0], 'width' => $dims[0],

View file

@ -358,6 +358,7 @@ $lang = array_merge($lang, array(
'LOGOUT_USER' => 'Logout [ %s ]', 'LOGOUT_USER' => 'Logout [ %s ]',
'LOG_ME_IN' => 'Remember me', 'LOG_ME_IN' => 'Remember me',
'MAIN' => 'Main',
'MARK' => 'Mark', 'MARK' => 'Mark',
'MARK_ALL' => 'Mark all', 'MARK_ALL' => 'Mark all',
'MARK_FORUMS_READ' => 'Mark forums read', 'MARK_FORUMS_READ' => 'Mark forums read',