カスタムコンポーネントの個別の管理メニューを追加する方法


9

デフォルトでは、カスタムコンポーネントは管理者側の[拡張機能]メニューに表示されます。しかし、どうすれば「マイコンポーネント」のような「拡張」メニューの近くの上部に独自のメニューを作成し、その下にサブメニューリンクを表示できますか?


コミュニティビルダーと同じことを話しているのですか?もしそうなら、私は最初に彼らのコードを見ることを勧めるつもりでしたが、私自身それを見たとき私は
別様

@Lodderはい、あなたは正しいです。同様のモジュールを期待しています。私はCBモジュールを参照しましたが、それを実現するためのコードがたくさんあります。もっと簡単な方法があるのではないかと思いました。それがこの質問の理由です。
マライセルヴァン2015

回答:


6

以下のコードスニペットで管理側コンポーネントを開発できます。

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

上記のコードはメニューオブジェクトを作成し、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);

上記のコードは、メニューの表示方法を決定します。有効または無効。

default_disabled.php

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

上記のコードは、無効の場合に灰色のメニューを表示するだけです。

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

上記のコードはメニューとメニュー項目を追加します。


非常に完全でよく説明されており、うまくいきます、ありがとう!
jackJoe

4

これを行うには、管理テンプレートをオーバーライドする必要があります。

これを行う方法を説明するかなり詳細な記事がここにあります。Joomla 2.5用に作成されましたが、Joomla 3.0でも動作するはずです。

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


別の方法があるはずだと確信しています。インストール後、Virtuemart 3がトップメニューに表示されます。
Khaarkh

彼らは単に、インストール時にテンプレートのオーバーライドを追加することによってそれを行うことができます
セーレンベックジェンセンを

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.