So fügen Sie ein separates Administratormenü für eine benutzerdefinierte Komponente hinzu

9

Standardmäßig wird die benutzerdefinierte Komponente auf der Administratorseite im Menü "Erweiterungen" angezeigt. Aber wie kann ich mein eigenes Menü oben in der Nähe des Menüs "Erweiterungen" wie "Meine Komponente" erstellen und Untermenü-Links darunter anzeigen?

Malaiselvan
quelle
Sprechen Sie über dasselbe, was Community Builder tut? Wenn ja, wollte ich zunächst empfehlen, ihren Code durchzusehen, aber nachdem ich ihn mir selbst angesehen habe, denke ich anders: /
Lodder
@Lodder ja, du bist richtig. Ich erwarte ein ähnliches Modul. Ich verweise auf das CB-Modul und sehe, dass es viel Code gibt, um dies zu erreichen. Ich dachte, es könnte einen einfacheren Weg geben, und das ist der Grund für diese Frage.
Malaiselvan

Antworten:

6

Wir können eine admin-seitige Komponente mit dem folgenden Code-Snippet entwickeln.

mod_custommenu.php

$input   = JFactory::getApplication()->input;
$menu    = new JAdminCSSMenu;
$enabled = $input->getBool('hidemainmenu') ? false : true;

// Render the module layout
require JModuleHelper::getLayoutPath('mod_custommenu', $params->get('layout', 'default'));

Der obige Code erstellt ein Menüobjekt und lädt die Datei default.php

default.php

$document = JFactory::getDocument();
$direction = $document->direction == 'rtl' ? 'pull-right' : '';
require JModuleHelper::getLayoutPath('mod_custommenu', $enabled ? 'default_enabled' : 'default_disabled');
$menu->renderMenu('menu', $enabled ? 'nav ' . $direction : 'nav disabled ' . $direction);

Der obige Code bestimmt, wie das Menü angezeigt werden soll. Entweder aktiviert oder deaktiviert.

default_disabled.php

$menu->addChild(new JMenuNode(JText::_('Menu'), null, 'disabled'));

Der obige Code dient nur zur Anzeige des grau hinterlegten Menüs bei Deaktivierung.

default_enabled.php

$menu->addChild(new JMenuNode(JText::_('Menu'), '#'), true);
$menu->addChild(new JMenuNode(JText::_('Menu1'), '', 'class:menu1'), 1);
  $menu->addChild(new JMenuNode(JText::_('Menu2'), '#', 'class:menu2'));
  $menu->getParent();
$menu->getParent();

Der obige Code fügt das Menü und die Menüelemente hinzu.

Malaiselvan
quelle
Sehr vollständig und gut erklärt, funktioniert super, danke!
JackJoe
4

Sie müssen dazu die Admin-Vorlage überschreiben.

Es gibt hier einen ziemlich detaillierten Artikel, der beschreibt, wie das geht. Es wurde für Joomla 2.5 geschrieben, sollte aber auch für Joomla 3.0 funktionieren

http://magazine.joomla.org/issues/item/721-Customizing-the-Admin-Menu

Søren Beck Jensen
quelle
Ich bin mir ziemlich sicher, dass es einen anderen Weg geben muss: Virtuemart 3 wird nach der Installation im oberen Menü angezeigt.
Khaarkh
Sie können dies tun, indem sie einfach eine Vorlagenüberschreibung während der Installation hinzufügen
Søren Beck Jensen