Skip to content

Commit fe1ab6d

Browse files
committed
[ticket/12993] Return an array instead of reference passing
PHPBB3-12993
1 parent 5e7d9d2 commit fe1ab6d

7 files changed

Lines changed: 60 additions & 36 deletions

File tree

phpBB/includes/functions_compatibility.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,5 +188,8 @@ function get_user_rank($user_rank, $user_posts, &$rank_title, &$rank_img, &$rank
188188
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
189189
}
190190

191-
phpbb_get_user_rank(array('user_rank' => $user_rank), $user_posts, $rank_title, $rank_img, $rank_img_src);
191+
$rank_data = phpbb_get_user_rank(array('user_rank' => $user_rank), $user_posts);
192+
$rank_title = $rank_data['title'];
193+
$rank_img = $rank_data['img'];
194+
$rank_img_src = $rank_data['img_src'];
192195
}

phpBB/includes/functions_display.php

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1380,16 +1380,21 @@ function watch_topic_forum($mode, &$s_watching, $user_id, $forum_id, $topic_id,
13801380
*
13811381
* @param array $user_data the current stored users data
13821382
* @param int $user_posts the users number of posts
1383-
* @param string &$rank_title the rank title will be stored here after execution
1384-
* @param string &$rank_img the rank image as full img tag is stored here after execution
1385-
* @param string &$rank_img_src the rank image source is stored here after execution
1383+
*
1384+
* @return array An associative array containing the rank title (title), the rank image source (img) and the rank image as full img tag (img)
13861385
*
13871386
* Note: since we do not want to break backwards-compatibility, this function will only properly assign ranks to guests if you call it for them with user_posts == false
13881387
*/
1389-
function phpbb_get_user_rank($user_data, $user_posts, &$rank_title, &$rank_img, &$rank_img_src)
1388+
function phpbb_get_user_rank($user_data, $user_posts)
13901389
{
13911390
global $ranks, $config, $phpbb_root_path, $phpbb_path_helper, $phpbb_dispatcher;
13921391

1392+
$user_rank_data = array(
1393+
'title' => null,
1394+
'img' => null,
1395+
'img_src' => null,
1396+
);
1397+
13931398
/**
13941399
* Preparing a user's rank before displaying
13951400
*
@@ -1411,11 +1416,11 @@ function phpbb_get_user_rank($user_data, $user_posts, &$rank_title, &$rank_img,
14111416
if (!empty($user_data['user_rank']))
14121417
{
14131418

1414-
$rank_title = (isset($ranks['special'][$user_data['user_rank']]['rank_title'])) ? $ranks['special'][$user_data['user_rank']]['rank_title'] : '';
1419+
$user_rank_data['title'] = (isset($ranks['special'][$user_data['user_rank']]['rank_title'])) ? $ranks['special'][$user_data['user_rank']]['rank_title'] : '';
14151420

1416-
$rank_img_src = (!empty($ranks['special'][$user_data['user_rank']]['rank_image'])) ? $phpbb_path_helper->update_web_root_path($phpbb_root_path . $config['ranks_path'] . '/' . $ranks['special'][$user_data['user_rank']]['rank_image']) : '';
1421+
$user_rank_data['img_src'] = (!empty($ranks['special'][$user_data['user_rank']]['rank_image'])) ? $phpbb_path_helper->update_web_root_path($phpbb_root_path . $config['ranks_path'] . '/' . $ranks['special'][$user_data['user_rank']]['rank_image']) : '';
14171422

1418-
$rank_img = (!empty($ranks['special'][$user_data['user_rank']]['rank_image'])) ? '<img src="' . $rank_img_src . '" alt="' . $ranks['special'][$user_data['user_rank']]['rank_title'] . '" title="' . $ranks['special'][$user_data['user_rank']]['rank_title'] . '" />' : '';
1423+
$user_rank_data['img'] = (!empty($ranks['special'][$user_data['user_rank']]['rank_image'])) ? '<img src="' . $user_rank_data['img_src'] . '" alt="' . $ranks['special'][$user_data['user_rank']]['rank_title'] . '" title="' . $ranks['special'][$user_data['user_rank']]['rank_title'] . '" />' : '';
14191424
}
14201425
else if ($user_posts !== false)
14211426
{
@@ -1425,14 +1430,16 @@ function phpbb_get_user_rank($user_data, $user_posts, &$rank_title, &$rank_img,
14251430
{
14261431
if ($user_posts >= $rank['rank_min'])
14271432
{
1428-
$rank_title = $rank['rank_title'];
1429-
$rank_img_src = (!empty($rank['rank_image'])) ? $phpbb_path_helper->update_web_root_path($phpbb_root_path . $config['ranks_path'] . '/' . $rank['rank_image']) : '';
1430-
$rank_img = (!empty($rank['rank_image'])) ? '<img src="' . $rank_img_src . '" alt="' . $rank['rank_title'] . '" title="' . $rank['rank_title'] . '" />' : '';
1433+
$user_rank_data['title'] = $rank['rank_title'];
1434+
$user_rank_data['img_src'] = (!empty($rank['rank_image'])) ? $phpbb_path_helper->update_web_root_path($phpbb_root_path . $config['ranks_path'] . '/' . $rank['rank_image']) : '';
1435+
$user_rank_data['img'] = (!empty($rank['rank_image'])) ? '<img src="' . $user_rank_data['img_src'] . '" alt="' . $rank['rank_title'] . '" title="' . $rank['rank_title'] . '" />' : '';
14311436
break;
14321437
}
14331438
}
14341439
}
14351440
}
1441+
1442+
return $user_rank_data;
14361443
}
14371444

14381445
/**
@@ -1445,8 +1452,7 @@ function phpbb_show_profile($data, $user_notes_enabled = false, $warn_user_enabl
14451452
$username = $data['username'];
14461453
$user_id = $data['user_id'];
14471454

1448-
$rank_title = $rank_img = $rank_img_src = '';
1449-
phpbb_get_user_rank($data, (($user_id == ANONYMOUS) ? false : $data['user_posts']), $rank_title, $rank_img, $rank_img_src);
1455+
$user_rank_data = phpbb_get_user_rank($data, (($user_id == ANONYMOUS) ? false : $data['user_posts']));
14501456

14511457
if ((!empty($data['user_allow_viewemail']) && $auth->acl_get('u_sendemail')) || $auth->acl_get('a_user'))
14521458
{
@@ -1527,7 +1533,7 @@ function phpbb_show_profile($data, $user_notes_enabled = false, $warn_user_enabl
15271533
// Dump it out to the template
15281534
$template_data = array(
15291535
'AGE' => $age,
1530-
'RANK_TITLE' => $rank_title,
1536+
'RANK_TITLE' => $user_rank_data['title'],
15311537
'JOINED' => $user->format_date($data['user_regdate']),
15321538
'LAST_ACTIVE' => (empty($last_active)) ? ' - ' : $user->format_date($last_active),
15331539
'POSTS' => ($data['user_posts']) ? $data['user_posts'] : 0,
@@ -1543,8 +1549,8 @@ function phpbb_show_profile($data, $user_notes_enabled = false, $warn_user_enabl
15431549
'AVATAR_IMG' => phpbb_get_user_avatar($data),
15441550
'ONLINE_IMG' => (!$config['load_onlinetrack']) ? '' : (($online) ? $user->img('icon_user_online', 'ONLINE') : $user->img('icon_user_offline', 'OFFLINE')),
15451551
'S_ONLINE' => ($config['load_onlinetrack'] && $online) ? true : false,
1546-
'RANK_IMG' => $rank_img,
1547-
'RANK_IMG_SRC' => $rank_img_src,
1552+
'RANK_IMG' => $user_rank_data['img'],
1553+
'RANK_IMG_SRC' => $user_rank_data['img_src'],
15481554
'S_JABBER_ENABLED' => ($config['jab_enable']) ? true : false,
15491555

15501556
'S_WARNINGS' => ($auth->acl_getf_global('m_') || $auth->acl_get('m_warn')) ? true : false,

phpBB/includes/mcp/mcp_warn.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ function mcp_warn_post_view($action)
341341
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
342342
}
343343

344-
phpbb_get_user_rank($user_row, $user_row['user_posts'], $rank_title, $rank_img, $rank_img_src);
344+
$user_rank_data = phpbb_get_user_rank($user_row, $user_row['user_posts']);
345345
$avatar_img = phpbb_get_user_avatar($user_row);
346346

347347
$template->assign_vars(array(
@@ -350,13 +350,13 @@ function mcp_warn_post_view($action)
350350
'POST' => $message,
351351
'USERNAME' => $user_row['username'],
352352
'USER_COLOR' => (!empty($user_row['user_colour'])) ? $user_row['user_colour'] : '',
353-
'RANK_TITLE' => $rank_title,
353+
'RANK_TITLE' => $user_rank_data['title'],
354354
'JOINED' => $user->format_date($user_row['user_regdate']),
355355
'POSTS' => ($user_row['user_posts']) ? $user_row['user_posts'] : 0,
356356
'WARNINGS' => ($user_row['user_warnings']) ? $user_row['user_warnings'] : 0,
357357

358358
'AVATAR_IMG' => $avatar_img,
359-
'RANK_IMG' => $rank_img,
359+
'RANK_IMG' => $user_rank_data['img'],
360360

361361
'L_WARNING_POST_DEFAULT' => sprintf($user->lang['WARNING_POST_DEFAULT'], generate_board_url() . "/viewtopic.$phpEx?f=$forum_id&amp;p=$post_id#p$post_id"),
362362

@@ -490,14 +490,14 @@ function mcp_warn_user_view($action)
490490
{
491491
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
492492
}
493-
phpbb_get_user_rank($user_row, $user_row['user_posts'], $rank_title, $rank_img, $rank_img_src);
493+
$user_rank_data = phpbb_get_user_rank($user_row, $user_row['user_posts']);
494494
$avatar_img = phpbb_get_user_avatar($user_row);
495495

496496
// OK, they didn't submit a warning so lets build the page for them to do so
497497
$template->assign_vars(array(
498498
'U_POST_ACTION' => $this->u_action,
499499

500-
'RANK_TITLE' => $rank_title,
500+
'RANK_TITLE' => $user_rank_data['title'],
501501
'JOINED' => $user->format_date($user_row['user_regdate']),
502502
'POSTS' => ($user_row['user_posts']) ? $user_row['user_posts'] : 0,
503503
'WARNINGS' => ($user_row['user_warnings']) ? $user_row['user_warnings'] : 0,
@@ -508,7 +508,7 @@ function mcp_warn_user_view($action)
508508
'U_PROFILE' => get_username_string('profile', $user_row['user_id'], $user_row['username'], $user_row['user_colour']),
509509

510510
'AVATAR_IMG' => $avatar_img,
511-
'RANK_IMG' => $rank_img,
511+
'RANK_IMG' => $user_rank_data['img'],
512512

513513
'S_CAN_NOTIFY' => $s_can_notify,
514514
));

phpBB/includes/ucp/ucp_pm_viewmessage.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,10 @@ function get_user_information($user_id, $user_row)
408408
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
409409
}
410410

411-
phpbb_get_user_rank($user_row, $user_row['user_posts'], $user_row['rank_title'], $user_row['rank_image'], $user_row['rank_image_src']);
411+
$user_rank_data = phpbb_get_user_rank($user_row, $user_row['user_posts']);
412+
$user_row['rank_title'] = $user_rank_data['title'];
413+
$user_row['rank_image'] = $user_rank_data['img'];
414+
$user_row['rank_image_src'] = $user_rank_data['img_src'];
412415

413416
if ((!empty($user_row['user_allow_viewemail']) && $auth->acl_get('u_sendemail')) || $auth->acl_get('a_email'))
414417
{

phpBB/memberlist.php

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -283,21 +283,20 @@
283283
continue;
284284
}
285285

286-
$rank_title = $rank_img = $rank_img_src = '';
287-
phpbb_get_user_rank($row, (($row['user_id'] == ANONYMOUS) ? false : $row['user_posts']), $rank_title, $rank_img, $rank_img_src);
286+
$user_rank_data = phpbb_get_user_rank($row, (($row['user_id'] == ANONYMOUS) ? false : $row['user_posts']));
288287

289288
$template->assign_block_vars('group.user', array(
290289
'USER_ID' => $row['user_id'],
291290
'FORUMS' => $row['forums'],
292291
'FORUM_OPTIONS' => (isset($row['forums_options'])) ? true : false,
293-
'RANK_TITLE' => $rank_title,
292+
'RANK_TITLE' => $user_rank_data['title'],
294293

295294
'GROUP_NAME' => $groups_ary[$row['default_group']]['group_name'],
296295
'GROUP_COLOR' => $groups_ary[$row['default_group']]['group_colour'],
297296
'U_GROUP' => $groups_ary[$row['default_group']]['u_group'],
298297

299-
'RANK_IMG' => $rank_img,
300-
'RANK_IMG_SRC' => $rank_img_src,
298+
'RANK_IMG' => $user_rank_data['img'],
299+
'RANK_IMG_SRC' => $user_rank_data['img_src'],
301300

302301
'U_PM' => ($config['allow_privmsg'] && $auth->acl_get('u_sendpm') && ($row['user_allow_pm'] || $auth->acl_gets('a_', 'm_') || $auth->acl_getf_global('m_'))) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&amp;mode=compose&amp;u=' . $row['user_id']) : '',
303302

@@ -1080,10 +1079,14 @@
10801079
$avatar_img = phpbb_get_group_avatar($group_row);
10811080

10821081
// ... same for group rank
1083-
$rank_title = $rank_img = $rank_img_src = '';
1082+
$user_rank_data = array(
1083+
'title' => null,
1084+
'img' => null,
1085+
'img_src' => null,
1086+
);
10841087
if ($group_row['group_rank'])
10851088
{
1086-
phpbb_get_user_rank($group_row, false, $rank_title, $rank_img, $rank_img_src);
1089+
$user_rank_data = phpbb_get_user_rank($group_row, false);
10871090

10881091
if ($rank_img)
10891092
{
@@ -1096,11 +1099,11 @@
10961099
'GROUP_NAME' => ($group_row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $group_row['group_name']] : $group_row['group_name'],
10971100
'GROUP_COLOR' => $group_row['group_colour'],
10981101
'GROUP_TYPE' => $user->lang['GROUP_IS_' . $group_row['l_group_type']],
1099-
'GROUP_RANK' => $rank_title,
1102+
'GROUP_RANK' => $user_rank_data['title'],
11001103

11011104
'AVATAR_IMG' => $avatar_img,
1102-
'RANK_IMG' => $rank_img,
1103-
'RANK_IMG_SRC' => $rank_img_src,
1105+
'RANK_IMG' => $user_rank_data['img'],
1106+
'RANK_IMG_SRC' => $user_rank_data['img_src'],
11041107

11051108
'U_PM' => ($auth->acl_get('u_sendpm') && $auth->acl_get('u_masspm_group') && $group_row['group_receive_pm'] && $config['allow_privmsg'] && $config['allow_mass_pm']) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&amp;mode=compose&amp;g=' . $group_id) : '',)
11061109
);

phpBB/phpbb/user_loader.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,10 @@ public function get_rank($user_id, $query = false)
223223
'rank_img_src',
224224
);
225225

226-
phpbb_get_user_rank($user, (($user['user_id'] == ANONYMOUS) ? false : $user['user_posts']), $rank['rank_title'], $rank['rank_img'], $rank['rank_img_src']);
226+
$user_rank_data = phpbb_get_user_rank($user, (($user['user_id'] == ANONYMOUS) ? false : $user['user_posts']));
227+
$rank['rank_title'] = $user_rank_data['title'];
228+
$rank['rank_img'] = $user_rank_data['img'];
229+
$rank['rank_img_src'] = $user_rank_data['img_src'];
227230

228231
return $rank;
229232
}

phpBB/viewtopic.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1174,7 +1174,10 @@
11741174

11751175
$user_cache[$poster_id] = $user_cache_data;
11761176

1177-
phpbb_get_user_rank($row, false, $user_cache[$poster_id]['rank_title'], $user_cache[$poster_id]['rank_image'], $user_cache[$poster_id]['rank_image_src']);
1177+
$user_rank_data = phpbb_get_user_rank($row, false);
1178+
$user_cache[$poster_id]['rank_title'] = $user_rank_data['title'];
1179+
$user_cache[$poster_id]['rank_image'] = $user_rank_data['img'];
1180+
$user_cache[$poster_id]['rank_image_src'] = $user_rank_data['img_src'];
11781181
}
11791182
else
11801183
{
@@ -1238,7 +1241,10 @@
12381241

12391242
$user_cache[$poster_id] = $user_cache_data;
12401243

1241-
phpbb_get_user_rank($row, $row['user_posts'], $user_cache[$poster_id]['rank_title'], $user_cache[$poster_id]['rank_image'], $user_cache[$poster_id]['rank_image_src']);
1244+
$user_rank_data = phpbb_get_user_rank($row, false);
1245+
$user_cache[$poster_id]['rank_title'] = $user_rank_data['title'];
1246+
$user_cache[$poster_id]['rank_image'] = $user_rank_data['img'];
1247+
$user_cache[$poster_id]['rank_image_src'] = $user_rank_data['img_src'];
12421248

12431249
if ((!empty($row['user_allow_viewemail']) && $auth->acl_get('u_sendemail')) || $auth->acl_get('a_email'))
12441250
{

0 commit comments

Comments
 (0)