Cómo agregar un menú de administración separado para un componente personalizado

9

Por defecto, el componente personalizado se puede ver en el menú 'Extensiones' en el lado del administrador. Pero, ¿cómo puedo crear mi propio menú en la parte superior cerca del menú 'Extensiones' como 'Mi componente' y mostrar enlaces de submenú debajo de eso?

Malaiselvan
fuente
¿Estás hablando de lo mismo que hace Community Builder? Si es así, inicialmente recomendaría mirar a través de su código, pero habiéndolo visto yo mismo, pienso de manera diferente: /
Lodder
@Lodder sí, tienes razón. Estoy esperando un módulo similar. Me refiero al módulo CB y veo que tienen mucho código para lograrlo. Pensé que podría haber una manera más simple de hacerlo y esa es la razón de esta pregunta.
Malaiselvan

Respuestas:

6

Podemos desarrollar un componente del lado del administrador con el siguiente fragmento de código.

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'));

El código anterior crea un objeto de menú y carga el 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);

El código anterior determinará cómo se mostrará el menú. Ya sea habilitado o deshabilitado.

default_disabled.php

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

El código anterior es solo para mostrar el menú en gris en caso de desactivación.

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();

El código anterior agregará el menú y los elementos del menú.

Malaiselvan
fuente
Muy completo y bien explicado, funciona muy bien, ¡gracias!
jackJoe
4

Deberá anular la plantilla de administrador para hacer esto.

Aquí hay un artículo bastante detallado que describe cómo hacer esto. Fue escrito para Joomla 2.5 pero también debería funcionar para Joomla 3.0

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

Søren Beck Jensen
fuente
Estoy bastante seguro de que debe haber otra forma: Virtuemart 3 aparece en el menú superior después de la instalación.
Khaarkh
Pueden hacerlo simplemente agregando una anulación de plantilla durante la instalación
Søren Beck Jensen