MyBB.de Forum
Gruppenzugehörige auf Indexseite auslesen - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: Gruppenzugehörige auf Indexseite auslesen (/thread-25733.html)

Seiten: Seiten: 1 2


Gruppenzugehörige auf Indexseite auslesen - destrokk - 01.06.2012

Hallöle Smile
Ich habe im Forum verschiedene Gruppen und würde gern deren Mitgliederanzahl auf der Indexseite in einer Legende auslesen lassen. Also zb:

Bewerber [23], Einwohner [12] usw Smile wäre das möglich?


RE: Gruppenzugehörige auf Indexseite auslesen - Jockl - 01.06.2012

Da kannst die Anzahl der Mitglieder einer Usergruppe X in der index.php mit folgendem query abfragen/ermitteln
Code:
SELECT count(*) FROM `mybb_users` WHERE usergroup = X

Das jeweils mit einer Variablen versehen und Du kannst es im entsprechenden Template der Startseite einbauen.


RE: Gruppenzugehörige auf Indexseite auslesen - destrokk - 01.06.2012

Also bei "X" würde ich dann die Id der Gruppe angeben?
Und mit welchem Code würde ich das in die Index.tpl einbauen?


RE: Gruppenzugehörige auf Indexseite auslesen - Jockl - 01.06.2012

Habe gerade diesen Beitrag gefunden. Da geht es zwar generell um ein anderes Thema, der Ansatz ist aber ähnlich. Vielleicht hilft es Dir erst mal weiter....


RE: Gruppenzugehörige auf Indexseite auslesen - destrokk - 01.06.2012

Mh, danke für den Link - aber das betrifft ja generell eine ganz andere Funktion. Ich weiß nicht, wie ich die Gruppe der User auslesen kann? :/ Da geht es ja um die Pns.


RE: Gruppenzugehörige auf Indexseite auslesen - Jockl - 01.06.2012

Ich sagte ja, dass der Beitrag ein anderes Thema behandelt. Das Prinzip ist aber selbiges.
Die Abfrage für die Anzahl der User in einer Usergruppe (X steht für die ID der Gruppe) kannst Du dem Beitrag #2 entnehmen. Wie das PHP-seitig umgesetzt wird, siehst Du als Beispiel in dem von mir verlinkten Beitrag. Der Rest ist mehr oder weniger Code ersetzen und die Variable (die Du auch gerne umbenennen kannst) ins Template einsetzen.


RE: Gruppenzugehörige auf Indexseite auslesen - Jockl - 01.06.2012

Habe jetzt mal etwas zusammen gestellt. Ist nicht optimal, funktioniert aber....

Suche in der index.php
PHP-Code:
$plugins->run_hooks("index_start"); 
und setze danach diese Zeilen ein
PHP-Code:
$groups $cache->read("usergroups");

$query $db->query("
SELECT usergroup, COUNT(*) AS count
FROM "
.TABLE_PREFIX."users
GROUP BY usergroup
"
);

while(
$groupcount $db->fetch_array($query)){
  
  
$ugroup htmlspecialchars_uni($groups[$groupcount['usergroup']]['title']." [{$groupcount['count']}]")."   ";

  eval(
"\$show_usergroup_name_number .= \"".$templates->get("show_usergroup_name_number")."\";");
}

eval(
"\$show_usergroup = \"".$templates->get("show_usergroup")."\";"); 

Dann musst du noch 2 Templates erstellen.

Ein Template mit dem Namen show_usergroup und dem Inhalt
Code:
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
    <thead>
        <tr>
            <td class="thead">
                <div class="expcolimage"><img src="{$theme['imgdir']}/collapse{$collapsedimg['show_usergroup']}.gif" id="show_usergroup_img" class="expander" alt="[-]" title="[-]" /></div>
                <div><strong>Usergroups</strong></div>
            </td>
        </tr>
    </thead>
    <tbody style="{$collapsed['show_usergroup_e']}" id="show_usergroup_e">
        <tr class="trow1">
            <td>{$show_usergroup_name_number}</td>
        </tr>
    </tbody>
</table>
<br />

Und ein Template mit dem Namen show_usergroup_name_number und dem Inhalt
Code:
{$ugroup}

Im Template index kannst Du dann die Variable {$show_usergroup} an der Stelle einsetzen, an der Du die Anzeige haben möchtest. Anpassungen bzgl. Layout kannst Du in den beiden Templates vornehmen oder auch in der Zeile
PHP-Code:
$ugroup .= $names['title']." [".$counts['countusers']."]&nbsp;&nbsp;&nbsp;"
des o.a. Codes.



Edit1: vielen Dank an Stefan, der die Abfrage in der index.php um einiges vereinfachen konnte! Smile Den Code habe ich oben korrigiert.

Edit2: habe das Template noch um einen Table und der Collapse-Fkt. ergänzt


RE: Gruppenzugehörige auf Indexseite auslesen - destrokk - 02.06.2012

Ah, super. Das funktioniert. Hatte einen anderen Ansatz, aber der funktionierte nicht Big Grin. Danke schonmal!

Jetzt aber noch eine Frage: Ist es möglich Gruppen zusammen zu fassen? Also wenn ich zum Beispiel die Gruppe Admin_LA habe und die Gruppe LA, dann würde es ja die Mitglieder für die Gruppe Admin_LA und die für Gruppe LA einzeln auslesen, gibt es eine Möglichkeit, diese beiden Gruppen zusammen anzusprechen?

Das dann in der Legende halt steht: LA [23] anstatt LA [12], Admin_LA [11] ? Smile


RE: Gruppenzugehörige auf Indexseite auslesen - Jockl - 02.06.2012

Sprichst Du da von sekundären Gruppen? Welche Gruppe soll dann welche Priorität haben?
Verstehe das nicht ganz.... Undecided


RE: Gruppenzugehörige auf Indexseite auslesen - Falkenauge Mihawk - 02.06.2012

Theoretisch wäre es möglich, jedoch wäre es mit einem hohen Programmieraufwand verbunden.