02.01.2008, 00:11
Guten Tag MyBB-Coder Community!
Ich schraube gerade an einem Plugin herum, welches ich gerne auch - sobald dieses fertig ist - hier releasen möchte.
Das einzige Problem, welches die Arbeiten am Plugin zum Stillstand gebracht hat, ist folgender Schritt, den ich unbedingt einbauen möchte:
Das Plugin erlaubt das Auswählen von einzelnen Foren in den BenutzerCP's, um die jeweiligen, forenspezifischen Informationen einzuschränken, welches das Plugin ausgibt.
Bisher müssen die Benutzer die Foren-ID's in ein Textfeld eingeben, was natürlich besonders für MyBB-Anfänger sehr kompliziert ist, überhaupt die fid's zu finden (!).
Nun möchte ich die Sache für die Benutzer erleichtern, indem ich die Forenauflistung des Boards ermittle und neben jedem Subforum-Namen ein kleines Check-Button setze, damit der User bequem einzelne Foren usw abwählen kann.
Um das zu realisieren, habe ich mir die build_forumbit()-Funktion in der functions_forumlist.php angeschaut - da dieses natürlich das Templatesystem benutzt, um eine ausgabefertige Forumauflistung zu erstellen, konnte ich die Funktion nicht benutzen.
So habe ich versucht einzelne Teile der Funktion für mich zu extrahieren und umzuschreiben - leider ohne großen Erfolg.
Im Moment verstehe ich zwar wie das $fcache zustande kommt und wie dieses mehrdimensionale Array aufgebaut ist - jedoch verstehe ich nicht ganz wie man relativ sicher sämtliche Kategorien und deren Unterforen (und evt. Unterforen der Unterforen) zusammenbringt - die foreach-Verästelungen haben mich doch sehr verwirrt.
Nun bin ich so ziemlich ratlos und frage mich, wie ich es am besten realisieren kann, eine Auflistung der gesamten Foren (unsichtbare und von den Forenberechtigungen verbotene ausgeschlossen) zu erreichen.
Ich würde dann die Forenliste mit <ul> und <li> unterordnen, sodass ein Forum-Tree entsteht. Neben jedem Forennamen werde ich eine Checkbox einfügen, welche im <form> die Forenid zurückgibt, welches ich wie mit dem zuvorigen System (mit dem Textfeld) verwenden kann.
Das ist der einzige Code, den ich bisher sicher deuten konnte....
Ich hoffe ihr könnt mir helfen, hinter das Geheimnis zu kommen, der Datenbank eine ansehnliche Forenauflistung zu entlocken mit lediglich dem Forennamen und der Foren-ID.
mfg,
animus
Ich schraube gerade an einem Plugin herum, welches ich gerne auch - sobald dieses fertig ist - hier releasen möchte.
Das einzige Problem, welches die Arbeiten am Plugin zum Stillstand gebracht hat, ist folgender Schritt, den ich unbedingt einbauen möchte:
Das Plugin erlaubt das Auswählen von einzelnen Foren in den BenutzerCP's, um die jeweiligen, forenspezifischen Informationen einzuschränken, welches das Plugin ausgibt.
Bisher müssen die Benutzer die Foren-ID's in ein Textfeld eingeben, was natürlich besonders für MyBB-Anfänger sehr kompliziert ist, überhaupt die fid's zu finden (!).
Nun möchte ich die Sache für die Benutzer erleichtern, indem ich die Forenauflistung des Boards ermittle und neben jedem Subforum-Namen ein kleines Check-Button setze, damit der User bequem einzelne Foren usw abwählen kann.
Um das zu realisieren, habe ich mir die build_forumbit()-Funktion in der functions_forumlist.php angeschaut - da dieses natürlich das Templatesystem benutzt, um eine ausgabefertige Forumauflistung zu erstellen, konnte ich die Funktion nicht benutzen.
So habe ich versucht einzelne Teile der Funktion für mich zu extrahieren und umzuschreiben - leider ohne großen Erfolg.
Im Moment verstehe ich zwar wie das $fcache zustande kommt und wie dieses mehrdimensionale Array aufgebaut ist - jedoch verstehe ich nicht ganz wie man relativ sicher sämtliche Kategorien und deren Unterforen (und evt. Unterforen der Unterforen) zusammenbringt - die foreach-Verästelungen haben mich doch sehr verwirrt.
Nun bin ich so ziemlich ratlos und frage mich, wie ich es am besten realisieren kann, eine Auflistung der gesamten Foren (unsichtbare und von den Forenberechtigungen verbotene ausgeschlossen) zu erreichen.
Ich würde dann die Forenliste mit <ul> und <li> unterordnen, sodass ein Forum-Tree entsteht. Neben jedem Forennamen werde ich eine Checkbox einfügen, welche im <form> die Forenid zurückgibt, welches ich wie mit dem zuvorigen System (mit dem Textfeld) verwenden kann.
Code:
<ul>
<li> Kategorie 1 </li>
<ul>
<li> Subforum 1 </li>
<li> Subforum 2 </li>
...
</ul>
<li> Kategorie 2 </li>
<ul>
<li> Subforum 1 </li>
<ul>
<li> Unterforum zu Subforum 1 </li>
</ul>
<li> Subforum 2 </li>
...
</ul>
</ul>
PHP-Code:
$query = $db->simple_select(TABLE_PREFIX."forums", "*", "active != 'no'", array('order_by' => 'pid, disporder'));
while($forum = $db->fetch_array($query))
{
$fcache[$forum['pid']][$forum['disporder']][$forum['fid']] = $forum;
}
$forumpermissions = forum_permissions();
Ich hoffe ihr könnt mir helfen, hinter das Geheimnis zu kommen, der Datenbank eine ansehnliche Forenauflistung zu entlocken mit lediglich dem Forennamen und der Foren-ID.
mfg,
animus