Como adicionar um menu administrativo separado para um componente personalizado

9

Por padrão, o componente personalizado pode ser visto no menu 'Extensões' no lado do administrador. Mas como posso criar meu próprio menu na parte superior, próximo ao menu 'Extensões', como 'Meu componente', e mostrar os links do submenu?

Malaiselvan
fonte
Você está falando da mesma coisa que o Community Builder faz? Se assim for, eu estava inicialmente vai recomendar à procura através de seu código, mas tendo olhou para ele me eu penso diferente: /
Lodder
@Lodder sim, você está correto. Estou esperando um módulo semelhante. Refiro o módulo CB e vejo que eles têm muito código para alcançá-lo. Eu pensei que poderia haver uma maneira mais simples de fazer e essa é a razão desta pergunta.
Malaiselvan 15/04

Respostas:

6

Podemos desenvolver um componente do lado do administrador com o snippet de código abaixo.

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

O código acima cria um objeto de menu e carrega o 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);

O código acima determinará como o menu será exibido. Ativado ou desativado.

default_disabled.php

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

O código acima é apenas para exibir o menu cinza em caso de desativação.

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

O código acima irá adicionar o menu e os itens de menu.

Malaiselvan
fonte
Muito completo e bem explicado, funciona muito bem, obrigado!
jackJoe
4

Você precisará substituir o modelo de administrador para fazer isso.

Há um artigo bastante detalhado aqui que descreve como fazer isso. Foi escrito para o Joomla 2.5, mas também deve funcionar para o Joomla 3.0

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

Søren Beck Jensen
fonte
Tenho certeza de que deve haver outra maneira: o Virtuemart 3 aparece no menu superior após a instalação.
Khaarkh
Eles podem fazer isso simplesmente adicionando um modelo substituto durante a instalação
Søren Beck Jensen