0

これは私の現在の状況です:

一般的なナビゲーション構造を構成するための xml があります。application/Bootstrap.php に、次の関数を追加しました。

protected function _initViewHelpers()
{
    $this->bootstrap('layout');
    $oLayout = $this->getResource('layout');
    $oView = $oLayout->getView();
    $oNavContainerConfig = new Zend_Config_Xml(CONFIGPATH . 'navigation.xml', 'nav');
    $oNavigationContainer = new Zend_Navigation($oNavContainerConfig);

    $aCurrentRole = $this->_auth->getStorage()->read();
    @$oView->navigation($oNavigationContainer)->setAcl($this->_acl)->setRole($aCurrentRole->role);
}

これは私の現在のプラグインです:

class Discount_Plugin_Module extends Zend_Controller_Plugin_Abstract
{
    public function routeShutdown(Zend_Controller_Request_Abstract $oRequest)
    {
        // init all module view controller stuff
    }
}

実行時にナビゲーションを変更したい。モジュール固有のナビゲーション項目を追加したい。

モジュールからナビゲーション構造を変更する方法がわかりません。

あなたが私を助けてくれることを願っています。

マックス

4

1 に答える 1

1

同じことを達成するために、作成したオブジェクトを使用してメニューを作成します。ここで使用するコードを見つけることができます: http://pastebin.com/FzChbVeV . また、ヘルパーを使用して、ユーザーがリンクを表示できるかどうかを確認します。102 行から 109 行を削除し、使用しない場合は 111 行を編集できます。

その後、モジュールの bootstrap.php に、次のコードを追加してメニュー項目を追加します。

    $menu = ZARD_Object_Module_Multimodmenu::getInstance();

    $menu->id = 'submenuid';
    $menu->label = 'Submenu';
    $menu->module = 'default';
    $menu->controller = 'index';
    $menu->action = 'index';
    $menu->addItem();

    $menu->id = 'amenuitem';
    $menu->label = 'Menu Item';
    $menu->module = 'modulename';
    $menu->controller = 'controllername';
    $menu->action = 'actionname';
    $menu->parent = 'submenuid';
    $menu->addItem();

その後、レイアウトにメニューをロードします。

    $menu = ZARD_Object_Module_Multimodmenu::getInstance();
    echo $menu->getMenu();
于 2012-06-27T13:31:28.230 に答える