une petite optimisation, qui permet de gagner un précieux temps d'affichage en évitant des requêtes assez lourdes souvant inutiles concernant l'affichage des groupes dans la légende, voila ce que phpbb nous charge dans tous les cas :
Code : Tout sélectionner
// Grab group details for legend display
if ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))
{
$sql = 'SELECT group_id, group_name, group_colour, group_type
FROM ' . GROUPS_TABLE . '
WHERE group_legend = 1
ORDER BY group_name ASC';
}
else
{
$sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type
FROM ' . GROUPS_TABLE . ' g
LEFT JOIN ' . USER_GROUP_TABLE . ' ug
ON (
g.group_id = ug.group_id
AND ug.user_id = ' . $user->data['user_id'] . '
AND ug.user_pending = 0
)
WHERE g.group_legend = 1
AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $user->data['user_id'] . ')
ORDER BY g.group_name ASC';
}
$result = $db->sql_query($sql);
$legend = array();
while ($row = $db->sql_fetchrow($result))
{
$colour_text = ($row['group_colour']) ? ' style="color:#' . $row['group_colour'] . '"' : '';
$group_name = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name'];
if ($row['group_name'] == 'BOTS' || ($user->data['user_id'] != ANONYMOUS && !$auth->acl_get('u_viewprofile')))
{
$legend[] = '<span' . $colour_text . '>' . $group_name . '</span>';
}
else
{
// www.phpBB-SEO.com SEO TOOLKIT BEGIN
$phpbb_seo->prepare_url('group', $row['group_name'], $row['group_id']);
// www.phpBB-SEO.com SEO TOOLKIT END
$legend[] = '<a' . $colour_text . ' href="' . append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&g=' . $row['group_id']) . '">' . $group_name . '</a>';
}
}
$db->sql_freeresult($result);
$legend = implode(', ', $legend);
MOD LEGEND DISPLAY SQL OPTIMISATION
SQL
Code : Tout sélectionner
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_groups_leg', '0');
Find:
Code : Tout sélectionner
'load_birthdays' => array('lang' => 'YES_BIRTHDAYS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
Code : Tout sélectionner
// mod perso groups legend optimization
'load_groups_leg' => array('lang' => 'YES_GROUPSLEGEND', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
// mod perso groups legend optimization
Find :
Code : Tout sélectionner
?>
Code : Tout sélectionner
// mod perso groups legend optimization
$lang = array_merge($lang, array(
'YES_GROUPSLEGEND' => 'Activer l’affichage de la légende des groupes',
));
Find :
Code : Tout sélectionner
// Grab group details for legend display
Code : Tout sélectionner
// mod perso groups legend optimization
if ($config['load_groups_leg'])
{
Code : Tout sélectionner
$legend = implode(', ', $legend);
Code : Tout sélectionner
// Assign index specific vars
$template->assign_vars(array(
'LEGEND' => $legend,
));
}
Code : Tout sélectionner
'LEGEND' => $legend, déplacé au dessus
Remplacer par :
Code : Tout sélectionner
// 'LEGEND' => $legend, déplacé mod perso groups legend optimization

