Profil-Symbolbildchen für Gruppenmitglieder?
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Profil-Symbolbildchen für Gruppenmitglieder?
Da, soweit ich das überblicke, das nicht mit Boardmitteln geht, gehört meine Frage wohl hier hinein.
Ich hätte gern, dass für bestimmte Nutzergruppen (also selbsterstellte) ein kleines Icon/Grafik im Userblock abgebildet ist. (heißt das Userblock? Ich meine da, wo Avatar, Nutzername, Rang usw. steht, rechts neben dem Posting^^)
Also z.B. sowas wie ein kleiner Stern neben dem Nickname oder vlt. auch unterhalb des Rangs oder neben den Icons für PN/Website/Email.
Bei Rängen gibt es so ein Feature glaube ich, aber da nützt es mir nichts, da man ja immer nur einen Rang haben kann. Ein gruppenbezogener Avatar ist auch nicht, was ich will^^
Versteht man, was ich meine? Meine Eloquenz ist heute nicht in Top-Form, irgendwie
Ich hätte gern, dass für bestimmte Nutzergruppen (also selbsterstellte) ein kleines Icon/Grafik im Userblock abgebildet ist. (heißt das Userblock? Ich meine da, wo Avatar, Nutzername, Rang usw. steht, rechts neben dem Posting^^)
Also z.B. sowas wie ein kleiner Stern neben dem Nickname oder vlt. auch unterhalb des Rangs oder neben den Icons für PN/Website/Email.
Bei Rängen gibt es so ein Feature glaube ich, aber da nützt es mir nichts, da man ja immer nur einen Rang haben kann. Ein gruppenbezogener Avatar ist auch nicht, was ich will^^
Versteht man, was ich meine? Meine Eloquenz ist heute nicht in Top-Form, irgendwie
Re: Profil-Symbolbildchen für Gruppenmitglieder?
eine Möglichkeit wäre die http://area51.phpbb.com/phpBB/viewtopic ... 26&t=31581:
du öffnest die Datei includes/functions.php und suchst nach
DAVOR fügst du dann diesen Abschnitt ein
Du lädst deine Grafik in den Ordner theme/images.
Nun öffnest du die Datei viewtopic_body.html (im Ordner template deines Styles) und suchst nach
DANACH fügst du in einer neuen Zeile den Abschnitt ein:
In
Die kannst du herausfinden, indem du in den Administrationsbereich zu Benutzer und Gruppen/Gruppen verwalten gehst und dort dann mit der Maus über Einstellungen fährst. Unten werden dir Informationen angezeigt. Ganz hinten steht dann g=1 beispielsweise. Die 1 ist also die ID der jeweiligen Gruppe.
du öffnest die Datei includes/functions.php und suchst nach
Code: Alles auswählen
// application/xhtml+xml not used because of IE
Code: Alles auswählen
// Check what group a user is in
if ( !function_exists('group_memberships') )
{
include_once($phpbb_root_path . 'includes/functions_user.'.$phpEx);
}
$groups = group_memberships(false,$user->data['user_id']);
foreach ($groups as $grouprec)
{
$template->assign_vars(array(
'S_IN_GROUP_' . $grouprec['group_id'] => true
));
}
Nun öffnest du die Datei viewtopic_body.html (im Ordner template deines Styles) und suchst nach
Code: Alles auswählen
<!-- IF not postrow.U_POST_AUTHOR --><strong>{postrow.POST_AUTHOR_FULL}</strong><!-- ELSE -->{postrow.POST_AUTHOR_FULL}<!-- ENDIF -->
Code: Alles auswählen
<!-- IF S_IN_GROUP_X --><img src="http://www_deineURL_/theme/images/grafik.png"><!-- ENDIF -->
IF S_IN_GROUP_X
musst du das X durch die ID der jeweiligen Gruppe ersetzen. Die kannst du herausfinden, indem du in den Administrationsbereich zu Benutzer und Gruppen/Gruppen verwalten gehst und dort dann mit der Maus über Einstellungen fährst. Unten werden dir Informationen angezeigt. Ganz hinten steht dann g=1 beispielsweise. Die 1 ist also die ID der jeweiligen Gruppe.
@Lehrling:
Vielen Dank!
Bin auch schon ganz nah dran^^ Gibt nur den Haken: Das Symbol wird jetzt bei ALLEN Usern angezeigt, aus irgendeinem Grund. (Gruppen-Id ist gesetzt und hab sie auch dreimal überprüft)
So sieht der Codeblock jetzt bei mir aus:
Hat sich da ein Fehler eingeschlichen?
Und wo wir grade dabei sind: Wenn ich unterschiedliche Symbole für verschiedene Gruppen machen will, würde ich da für jede ein extra Zeile wie die letzte einfügen ( <!-- IF ... ENDIF --> ) oder integriert man das irgendwie in einen Befehl?
Vielen Dank!
Bin auch schon ganz nah dran^^ Gibt nur den Haken: Das Symbol wird jetzt bei ALLEN Usern angezeigt, aus irgendeinem Grund. (Gruppen-Id ist gesetzt und hab sie auch dreimal überprüft)
So sieht der Codeblock jetzt bei mir aus:
Code: Alles auswählen
<dt>
<!-- IF postrow.POSTER_AVATAR -->
<!-- IF postrow.U_POST_AUTHOR --><a href="{postrow.U_POST_AUTHOR}">{postrow.POSTER_AVATAR}</a><!-- ELSE -->{postrow.POSTER_AVATAR}<!-- ENDIF --><br />
<!-- ENDIF -->
<!-- IF not postrow.U_POST_AUTHOR --><strong>{postrow.POST_AUTHOR_FULL}</strong><!-- ELSE -->{postrow.POST_AUTHOR_FULL}<!-- ENDIF -->
<!-- IF S_IN_GROUP_14 --><img src="styles/prosilver/theme/images/grafik.png"><!-- ENDIF -->
</dt>
Und wo wir grade dabei sind: Wenn ich unterschiedliche Symbole für verschiedene Gruppen machen will, würde ich da für jede ein extra Zeile wie die letzte einfügen ( <!-- IF ... ENDIF --> ) oder integriert man das irgendwie in einen Befehl?
Re: Profil-Symbolbildchen für Gruppenmitglieder?
oops ja, da stimmt etwas nicht bzw. fehlt noch etwas.
Zusätzlich zu den Änderungen an der includes/functions.php, die du ja schon vorgenommen hast, kommen noch folgende Änderungen hinzu.
Öffne die Datei viewtopic.php und finde diese Stelle:
Danach fügst du in einer neuen Zeile diese Zeile ein:
Immer noch in der viewtopic.php suchst du nach
und fügst danach in einer neuen Zeile diese Zeile ein:
In der viewtopic_body.html musst du nun
Das X steht für die ID der Gruppe.
Wenn du mehrere Grafiken für mehrere Gruppen hast, dann sieht dein Code für die viewtopic_body.html so aus:
Die IDs der Gruppen und die Namen der Grafiken musst du natürlich anpassen.
Viel Erfolg.
Zusätzlich zu den Änderungen an der includes/functions.php, die du ja schon vorgenommen hast, kommen noch folgende Änderungen hinzu.
Öffne die Datei viewtopic.php und finde diese Stelle:
Code: Alles auswählen
'joined' => $user->format_date($row['user_regdate']),
Code: Alles auswählen
'user_group_id' => $row['group_id'],
Code: Alles auswählen
'POSTER_AGE' => $user_cache[$poster_id]['age'],
Code: Alles auswählen
'AUTHOR_GROUP_ID' => $user_cache[$poster_id]['user_group_id'],
<!-- IF S_IN_GROUP_X -->
zu IF postrow.AUTHOR_GROUP_ID eq X -->
machen.Das X steht für die ID der Gruppe.
Wenn du mehrere Grafiken für mehrere Gruppen hast, dann sieht dein Code für die viewtopic_body.html so aus:
Code: Alles auswählen
<!-- IF postrow.AUTHOR_GROUP_ID eq 2 --><img src="deine_URL/forum/styles/prosilver/theme/images/grafik1.png">
<!-- ELSEIF postrow.AUTHOR_GROUP_ID eq 3 --><img src="deine_URL/forum/styles/prosilver/theme/images/grafik2.png">
<!-- ELSEIF postrow.AUTHOR_GROUP_ID eq 4 --><img src="deine_URL/forum/styles/prosilver/theme/images/grafik3.png">
<!-- ENDIF -->
Viel Erfolg.
Haha, kein Wunder bin ich da nicht selber draufgekommen, als ich gestern stümperhaft herumprobiert habe
Leider klappt es immer noch nicht... habe ich einen Fehler eingebaut?
So sieht es jetzt aus:
viewtopic_body.html (habs an eine andere Position gesetzt):
viewtopic.php:
Leider klappt es immer noch nicht... habe ich einen Fehler eingebaut?
So sieht es jetzt aus:
viewtopic_body.html (habs an eine andere Position gesetzt):
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 -->
<!-- Gruppensymbole <dd> </dd> -->
<dd><!-- IF postrow.AUTHOR_GROUP_ID eq 13 --><img style="margin:4px 0px" src="styles/prosilver/theme/images/grafik1.png" />
<!-- ELSEIF postrow.AUTHOR_GROUP_ID eq 14 --><img style="margin:4px 0px" src="styles/prosilver/theme/images/grafik2.png" />
<!-- ENDIF --> </dd>
Code: Alles auswählen
$user_cache[$poster_id] = array(
'joined' => $user->format_date($row['user_regdate'],'d.m.Y'),
//Gruppensymbole 1Z.
'user_group_id' => $row['group_id'],
Code: Alles auswählen
'POSTER_AGE' => $user_cache[$poster_id]['age'],
//Gruppenymbole 1Z.
'AUTHOR_GROUP_ID' => $user_cache[$poster_id]['user_group_id'],
Re:
NACHTRAG:
Wie ich mir grade hab sagen lassen, haut das wohl (auch) nicht hin, weil die angesteuerte Gruppe nicht die Hauptgruppe der User ist... (die ist bei alle "Registrierte User")
Wie ich mir grade hab sagen lassen, haut das wohl (auch) nicht hin, weil die angesteuerte Gruppe nicht die Hauptgruppe der User ist... (die ist bei alle "Registrierte User")
Zuletzt geändert von Kirk am 02.09.2015 17:35, insgesamt 1-mal geändert.
Grund: Unnötiges Komplett-Zitat entfernt!
Grund: Unnötiges Komplett-Zitat entfernt!
Re: Profil-Symbolbildchen für Gruppenmitglieder?
und wenn du schlicht und ergreifend die andere Gruppe zur Hauptgruppe der Benutzer machst?
- Talk19zehn
- Ehemaliges Teammitglied
- Beiträge: 4920
- Registriert: 08.06.2009 12:03
- Kontaktdaten:
Re: Profil-Symbolbildchen für Gruppenmitglieder?
Hm, ... daran hatten sich etliche Anwender bereits die Zähne ausgebissen... ( Scherz ). Könntet ihr nicht doch über
.. Grübel ...
Ich persönlich gehe einfachere Wege, die zwar zunächst beim Einrichten Aufwand bedeuten, wenn es sich in deinem Falle oder in anderen Fällen um sehr viele Benutzer handeln sollte, ist´s ggf. gar nicht zweckmäßig:
viewtopic.php?p=1293032#p1293032
oder eventuell ... doch per ...
http://www.ongray-design.de/forum/viewt ... afik#p2086
Das ist nur eine ganz kleine Auswahl zum Thema, die mir die Suche ausgab. Leider finde ich nicht alle Themen, die deine Frage behandeln. Modernist und Nuramon hatten neben Miriam u.a. meines Erachtens Lösungsvorschläge ( je nach Anfrage ).
LG
$poster_id
gehen?.. Grübel ...
Ich persönlich gehe einfachere Wege, die zwar zunächst beim Einrichten Aufwand bedeuten, wenn es sich in deinem Falle oder in anderen Fällen um sehr viele Benutzer handeln sollte, ist´s ggf. gar nicht zweckmäßig:
viewtopic.php?p=1293032#p1293032
oder eventuell ... doch per ...
$poster_id
?http://www.ongray-design.de/forum/viewt ... afik#p2086
Das ist nur eine ganz kleine Auswahl zum Thema, die mir die Suche ausgab. Leider finde ich nicht alle Themen, die deine Frage behandeln. Modernist und Nuramon hatten neben Miriam u.a. meines Erachtens Lösungsvorschläge ( je nach Anfrage ).
LG
Mein boardeigener IT-Magic-Wizard hat mir übrigens mittlerweile zur Lösung verholfen - nur falls das für Nachfolgende noch von Interesse sein sollte:
Als es erst trotzdem nicht hingehauen hat, haben wir außerdem festgestellt, dass ich in einer viewtopic.php herumgewerkelt habe, die sich im includes-Ordner befand - muss wohl irgendein Relikt gewesen sein, da sich die richtige viewtopic.php mittlerweile im Hauptverzeichnis befindet^^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
'user_group_id' => $row['group_id'],
Stattdessen fügst du in der Datei viewtopic.php oberhalb dieser Zeilen:Code: Alles auswählen
'AUTHOR_GROUP_ID' => $user_cache[$poster_id]['user_group_id'],
diesen Code ein:Code: Alles auswählen
// Load custom profile fields if ($config['load_cpf_viewtopic'])
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.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 */
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
'POSTER_AGE' => $user_cache[$poster_id]['age'],
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, ...)).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 */
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:Oder unter dem Rang, 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 -->
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?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 -->
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!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"><!-- ENDIF --> <!-- IF 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.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 -->