Hallo zusammen,
ich versuche mich gerade daran, im Backend das Admin-Menü zu ändern. Da ich Tabs entfernen möchte, ist die Anpassung der menu.xml direkt passiert und nicht über ein Modul.
Die Nachteile (Update, etc.) sind mir bekannt.
Unter ‘Artikel verwalten’ habe ich den Punkt ‘Artikel’ durch 2 andere Punkte ersetzt.
‘Zeitschriften’ und 'Zugaben’
Ein Bild des Menus habe ich angehängt
Meine menu.xml im Ausschnitt:
<MAINMENU id="mxmanageprod">
<!-- Ursprung auskommentiert
<SUBMENU id="mxarticles" cl="article" list="article_list">
....
</SUBMENU>
-->
<!-- Zeitschriften -->
<SUBMENU id="mxmanagepaper" cl="article" list="oxpr_magazine_list">
<TAB id="tbcl_zschrift_main" cl="article_main" />
<TAB id="tbcl_zschrift_extend" cl="article_extend" />
<TAB id="tbcl_zschrift_pictures" cl="article_pictures" />
<TAB id="tbcl_zschrift_seo" cl="article_seo" />
<BTN id="article_new" />
<BTN id="article_preview" />
</SUBMENU>
<!-- Zugaben -->
<SUBMENU id="mxmanagegift" cl="article" list="article_list">
<TAB id="tbcl_zugabe_main" cl="article_main" />
<TAB id="tbcl_zugabe_extend" cl="article_extend" />
<TAB id="tbcl_zugabe_pictures" cl="article_pictures" />
<TAB id="tbcl_zugabe_seo" cl="article_seo" />
<BTN id="article_new" />
<BTN id="article_preview" />
</SUBMENU>
...
</MAINMENU>
Ich bin noch dran, also habe ich mit einer separaten Klasse für die Zeitschriften angefangen.
oxpr_magazine_list. Unterschied zur urspünglichen Variante ist, das die Artikeldaten bereits auf einen Artikeltyp eingeschränkt werden.
Meine neue Klasse oxpr_magazine_list im Auzug:
class oxpr_magazine_list extends oxAdminList
{
protected $_sListClass = 'oxarticle';
protected $_sListType = 'oxarticlelist';
public function render()
{
parent::render();
return "article_list.tpl";
}
protected function _buildSelectString( $oListObject = null ) {
....
}
}
Die Klasse enthält bis auf die tatsächlich geänderte methode _buildSelectString alles das, was im application/controllers/admin/article_list.php zu finden ist
Der Select-String wird umgebaut/angepasst um die korrekten Daten zu holen.
[B]Positiv:[/B] Das Menu wird wie gewünscht anders angezeigt.
Beim Klick auf ‘Zeitschriften’ werden die Daten korrekt gefiltert angezeigt.
(Der SQL funktioniert also)
[B]Negativ:[/B] Beim Klick auf ‘Zugaben’ wird ebenfalls oxpr_magazine_list ausgeführt und die Filterung angezeigt, nicht wie in menu.xml angegeben article_list.
meine metadata.php:
/**
* Metadata-Version
*/
$sMetadataVersion = '1.1';
/**
* Module information
*/
$aModule = array(
"id" => "oxpr_magazine_list",
"title" => "Printus: Zeitschriften anzeigen",
"thumbnail" => "",
"version" => "0.1",
'description' => array(
'de' => "nur Zeitschriften-Artikel anzeigen",
'en' => "shows only magazine-articles"
),
'templates' => array(
),
'extend' => array(
),
"files" => array(
'oxpr_magazine_list' => 'pr/oxpr_magazine_list/application/controllers/admin/oxpr_magazine_list.php',
),
);
Was läuft da falsch?
Warum wird oxpr_magazine_list auch bei ‘Zugaben’ ausgeführt?
Dafür will ich noch eine weitere Klasse bauen um den Filter zu ändern.
Ich habe apache neu gestartet, die Views neu erzeugt und tmp gelerrt, alles ohne Erfolg.
Ich habe gerade testweise das originale Untermenü ‘Artikel’ wieder integriert und ausprobiert. Es wird ebenfalss nur meine neue Klasse oxpr_magazine_list ausgeführt und nicht wie in menu.xml definiert ‘article_list’.
Wir arbeiten mit der PE 4.7.7 Version
Bin für jeden Hinweis dankbar.