$query = $db->query("SELECT * FROM ".TABLE_PREFIX."usergroups WHERE gid IN ('".$mybb->user['additionalgroups']."') AND gid !='".$mybb->user['usergroup']."' ORDER BY title ASC");
while($addgroups = $db->fetch_array($query))
{
$addgroup = $addgroups['title'];
echo "".$addgroup."<br/>";
}
versuch es mal so bei dir und sag mir ob es bei dir immer noch geht.
Kann sein das sich unsere Einstellungen von php unterscheiden
Hast du mittlerweile Fortschritte gemacht?
nein ich habe zur zeit ein anderes projekt am hals und schaffe dieses gerade aus zeitgründen auch nicht!
Michael schrieb:Ausgabe der sekundären Benutzergruppen
Öffne die Datei inc/functions_post.php und suche nach:PHP-Code:
eval("\$postbit = \"".$templates->get("postbit")."\";");
Davor einfügen:PHP-Code:
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."usergroups WHERE gid IN (".$mybb->user['additionalgroups'].") AND gid !='".$mybb->user['usergroup']."' ORDER BY title ASC");
while($addgroups = $db->fetch_array($query))
{
$addgroup = $addgroups['title'];
echo "".$addgroup."<br/>";
}
Dadurch werden die sekundären Benutzergruppen ausgegeben, das müsste jetzt noch ins postbit-Template eingebaut werden.
Der Code hat folgenden Einfluss bei mir, ohne dass ich etwas bei den Templates gemacht habe:
- Einige Schriften sind stark vergrößert
- Die sekundäre Gruppe wird 2mal über dem Header angezeigt. (Frage von Admin und Antwort von User mit sekundärer Gruppe)
Vielleicht hilft es euch.
Ich habe jetzt
PHP-Code:
echo "".$addgroup."<br/>";
entfernt und $addgroup in das Template eingebaut. Jetzt wird bei jedem Beitrag meine sekundäre Gruppe angezeigt. Wie werden den die primären Gruppen abgefragt? Und wo?
Ich habs nicht getestet, aber veruche es so:
PHP-Code:
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."usergroups WHERE gid ='".$mybb->user['usergroup']."' ORDER BY title ASC");
while($primarygroup = $db->fetch_array($query))
{
$user_primarygroup = $primarygroup['title'];
echo "".$user_primarygroup."<br/>";
}
Im MyBB-Code wird die Benutzergruppe abgefragt in der datei functions_post.php im Ordner "inc" ab Zeile 424 unter
Michael schrieb:Ich habs nicht getestet, aber veruche es so:PHP-Code:
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."usergroups WHERE gid ='".$mybb->user['usergroup']."' ORDER BY title ASC");
while($primarygroup = $db->fetch_array($query))
{
$user_primarygroup = $primarygroup['title'];
echo "".$user_primarygroup."<br/>";
}
Im MyBB-Code wird die Benutzergruppe abgefragt in der datei functions_post.php im Ordner "inc" ab Zeile 424 unter
Der Code hat folgenden Einfluss bei mir, ohne dass ich etwas bei den Templates gemacht habe:
- Einige Schriften sind stark vergrößert
- Die primäre Gruppe wird über dem Header angezeigt.
Dann habe ich
PHP-Code:
echo "".$user_primarygroup."<br/>";
entfernt und $user_primarygroup in das Template eingebaut. Jetzt wird bei jedem Beitrag meine primäre Gruppe angezeigt. Wenn ich
mich über einen Test-Benutzer einlogge, wird seine Gruppe angezeigt.
Bei den primären Guppen läuft das so:
PHP-Code:
// Get the usergroup
if($post['userusername'])
{
if(!$post['displaygroup'])
{
$post['displaygroup'] = $post['usergroup'];
}
$usergroup = $groupscache[$post['displaygroup']];
}
else
{
$usergroup = $groupscache[1];
}
Kann man das nicht genau so machen?
In der global.php steht:
PHP-Code:
$groupscache = $cache->read("usergroups");
Das cache-Zeug in der inc/class_datacache sieht so aus:
PHP-Code:
// Get usergroups
$query = $db->query("SELECT * FROM ".TABLE_PREFIX."usergroups");
while($usergroup = $db->fetch_array($query))
{
$gid = $usergroup['gid'];
foreach($usergroup as $key => $val)
{
if(!in_array($key, $fpermfields))
{
unset($usergroup[$key]);
}
}
$usergroupcache[$gid] = $usergroup;
}
Ich glaube, dass
den aktuellen user abruft, aber man braucht ja den Autor des Posts. Aber das in der inc/class_datacache verstehe ich nicht.
Du willst doch die Gruppen neben den Posts ausgeben!? Die sekundäre Gruppe wird jetzt angezeigt und die primäre Gruppe wird sowieso schon angezeigt. Warum änderst du nicht einfach das Template?
Admin-CP -> Templates -> Ändern/Entfernen -> Post Bit Templates -> Ausklappen -> postbit -> Bearbeiten
$usergroup[title] steht für die Benutzergruppe.
Wäre doch ein schönes Plugin??:question:
Michael schrieb:Du willst doch die Gruppen neben den Posts ausgeben!?
Ja!
Mein Code (etwas umständlich):
PHP-Code:
$autorusername = $post['username'];
$query = $db->query("SELECT additionalgroups FROM ".TABLE_PREFIX."users WHERE username = '$autorusername'");
$groupid = $db->fetch_array($query);
$addgroupid = $groupid['additionalgroups'];
$query = $db->query("SELECT title FROM ".TABLE_PREFIX."usergroups WHERE gid = '$addgroupid'");
$addgroups = $db->fetch_array($query);
$addgroup = $addgroups['title'];
Ich habe $mybb->user['usergroup'] durch den Namen des Autors ersetzt.
Ins Template habe ich jetzt $addgroup eingebaut. Jetzt wird, wenn es mehrere sekundären Gruppen gibt nur eine angezeigt. (das Komma macht Probleme) Sonst funktioniert er.