-
Notifications
You must be signed in to change notification settings - Fork 12
Doc neues_adminmenu
Die Menüstruktur wird jetzt durch XML-Dateien verwaltet. Die einzelnen Überschriften (wie z.B. Statistik) und deren Unterpunkte (z.B. Besucher) werden in der Datei ''include/admin/inc/menu/admin.xml'' spezifiziert. Die XML-Datei hat dabei die folgende Form:
<list title="Boxen">
<modul>
<title>PicOfX</title>
<url>admin.php?picofx</url>
</modul>
<modul>
<title>Partner</title>
<url>admin.php?archiv-partners</url>
</modul>
</list>
<list></list>
umschließt jeweils eine Liste von Einträgen, das Attribut title
ist die Überschrift. Eine Liste enthält eine Reihe von Modulen, in diesem Beispiel das Modul "PicOfX" und das Modul "Partner". Module werden spezifiziert, indem man wie oben gezeigt den Titel und die URL dieses Moduls angibt. Weitere Beispiele findest du in der admin.xml.
Es ist auch möglich, für das Modul das globale Menü (admin.xml) zu überschreiben.
Adminmodule können die Standardnavigation des Adminmenüs überschreiben. Die Box (include/boxes/admin/adminsubmenu.php
) geht dabei nach folgendem Prinzip vor:
- Der Query-String wird sortiert. Heißt die aufgerufene Seite zum Beispiel
admin.php?menu-blub-bla
, enthält das sortierte array folgende elemente:- ["menu-blub-bla"], ["menu-blub"] und ["menu"].
- Für jedes dieser Elemente[i] in diesem Array wird wie folgt vorgegangen:
- durchsuche
include/admin/inc/menu
nach einer datei mit Namen Elemente[i], wobei - durch _ ersetzt wird + ".php" - durchsuche
include/admin/inc/menu
nach einer datei mit Namen Elemente[i], wobei - durch _ ersetzt wird + ".xml" - wenn es solche Dateien gibt, werden sie ins Menü geladen (PHP vor XML)
- durchsuche
- Wenn keine Datei gefunden wurde, wird als Fallback die
include/admin/inc/menu/admin.xml
genutzt
Zum Beispiel wird diese Datei geladen, wenn der Querystring "user" enthält (also include/admin/inc/menu/user.xml
)
<?xml version="1.0" encoding="ISO-8859-1" ?>
<menu>
<list title="Sonstiges">
<modul>
<title>Neuer Nutzer</title>
<url>admin.php?user-new</url>
</modul>
</list>
</menu>
Hier wird das ganze über eine entsprechend benannte PHP-Datei geladen. Es muss das Template include/admin/templates/adminsubmenu
verwendet werden. Ein Beispiel (include/admin/inc/menu/menu.php
-> Adminmenü Punkt "Navigation"
<?php
defined( 'main' ) or die( 'no direct access' );
$tpl = new tpl( 'adminsubmenu', 1 );
$tpl->set_out( 'headline', 'Menü auswählen', 0 );
$tpl->out( 1 );
for ( $i = 1; $i <= $allgAr[ 'menu_anz' ]; $i++ ) {
$tpl->set_ar_out( Array(
'url' => 'admin.php?menu-' . $i,
'title' => 'Menü ' . $i
), 2 );
}
$tpl->out( 3 );
?>
Dies geht mit php und xml Dateien gleichermaßen, für xml muss man dem menu-Tag lediglich die Eigenschaft hide="true" geben.
Für PHP dieses Beispiel:
<?php
defined( 'main' ) or die( 'no direct access' );
$tpl = new tpl( 'adminsubmenu', 1 );
$tpl->out( 4 );
?>