Die Änderungen an der Datei
includes/functions.php [also die Änderungen, die hier früher im Thread vorgeschlagen wurden] kannst du wieder rückgängig machen.
In der Datei
viewtopic.php kannst du diese beiden Zeile wieder löschen:
Code: Alles auswählen
'AUTHOR_GROUP_ID' => $user_cache[$poster_id]['user_group_id'],
Stattdessen fügst du in der Datei
viewtopic.php oberhalb dieser Zeilen:
Code: Alles auswählen
// Load custom profile fields
if ($config['load_cpf_viewtopic'])
diesen Code ein:
Code: Alles auswählen
/* MOD Gruppensymbole */
// include necessary function file
if (!function_exists('group_memberships'))
{
include($phpbb_root_path . 'includes/functions_user.'.$phpEx);
}
// get the groups of all members that posted in this topic
$groups_of_posters = group_memberships(false, $id_cache);
// this returns an array of arrays that contain more information than we need, so let's reduce this
// to an array of user_ids => array(group_ids)
$user_in_groups_cache = array();
foreach ($groups_of_posters as $value)
{
if (!isset($value['user_id']) || !isset($value['group_id']))
{
continue;
}
if (!isset($user_in_groups_cache[$value['user_id']]))
{
// create a new array in the cache
$user_in_groups_cache[$value['user_id']] = array($value['group_id']);
}
else
{
// add the group_id to the existing array
$user_in_groups_cache[$value['user_id']][] = $value['group_id'];
}
}
/* END MOD */
Damit wird für alle Mitglieder, die im aktuell angezeigten Topic einen Beitrag erstellt haben, ermittelt, in welchen Gruppen sie Mitglied sind. Die Abfrage wird nur ein einziges Mal ausgeführt, nicht in einer Schleife (um Performance zu sparen). Das Ergebnis der Abfrage wird für die Ausgabe später zwischengespeichert.
Für die Ausgabe fügst du weiter unten in der Datei
viewtopic.php unterhalb von dem hier:
diesen Code ein -
Achtung: den musst du noch anpassen!
Code: Alles auswählen
/* MOD Gruppensymbole */
'S_POSTER_IN_GROUP_8' => (isset($user_in_groups_cache[$poster_id]) && in_array(8, $user_in_groups_cache[$poster_id]) ? true : false),
'S_POSTER_IN_GROUP_9' => (isset($user_in_groups_cache[$poster_id]) && in_array(9, $user_in_groups_cache[$poster_id]) ? true : false),
/* END MOD */
Die Anpassung besteht darin, dass du für jede Gruppe, die ein Icon erhalten soll, eine Zeile änderst bzw. hinzufügst. In diesem Beispiel sollen die Gruppen mit den IDs 8 und 9 ein Icon bekommen. Du musst in jeder Zeile vorne in der Template-Variable die ID einfügen (
S_POSTER_IN_GROUP_x) und hinten in der Funktion (
in_array(x, ...)).
Nun kommt nur noch die Ausgabe im Template, also in der Datei
viewtopic_body.html.
An welcher Stelle du das Bild ausgibst, musst du dir noch einmal anschauen. Vielleicht direkt hinter dem Namen, dazu fügst du den Code unterhalb hiervon ein:
Code: Alles auswählen
<!-- IF not postrow.U_POST_AUTHOR --><strong>{postrow.POST_AUTHOR_FULL}</strong><!-- ELSE -->{postrow.POST_AUTHOR_FULL}<!-- ENDIF -->
Oder unter dem Rang, dazu fügst du den Code unterhalb hiervon ein:
Code: Alles auswählen
<!-- IF postrow.RANK_TITLE or postrow.RANK_IMG --><dd>{postrow.RANK_TITLE}<!-- IF postrow.RANK_TITLE and postrow.RANK_IMG --><br /><!-- ENDIF -->{postrow.RANK_IMG}</dd><!-- ENDIF -->
Beim einzufügenden Code hast du die Wahl: wenn ein User in mehreren Gruppen ist, sollen dann alle Icons angezeigt werden? Oder immer nur eines?
Für die erste Option (alle Icons anzeigen) fügst du diesen Code
http://xyz.de/viewtopic.php?f=42&t=8204 ein -
Achtung: den musst du noch anpassen!
Code: Alles auswählen
<!-- IF postrow.S_POSTER_IN_GROUP_8 --><img src="images/smilies/icon_e_smile.gif"><!-- ENDIF -->
<!-- IF postrow.S_POSTER_IN_GROUP_9 --><img src="images/smilies/icon_e_sad.gif"><!-- ENDIF -->
Für die zweite Option (nur ein Icon anzeigen - die Reihenfolge ist wichtig!) fügst du diesen Code ein -
Achtung: den musst du noch anpassen!
Code: Alles auswählen
<!-- IF postrow.S_POSTER_IN_GROUP_8 --><img src="images/smilies/icon_e_smile.gif">
<!-- ELSEIF postrow.S_POSTER_IN_GROUP_9 --><img src="images/smilies/icon_e_sad.gif">
<!-- ENDIF -->
Die Anpassung ist jeweils wieder die Gruppen-ID, siehe oben - hier im Beispiel die IDs 8 und 9. Und natürlich die URLs zu den Icons.