2012-12-24 30 views
0

我目前使用Zend_Navigation從XML文件創建菜單,到目前爲止菜單正確呈現的效果非常好。我的問題是我需要將頁面添加到導航容器中的特定位置。到目前爲止,我有:如何將頁面插入到zend導航容器中

$this->_navContainerConfig = new Zend_Config_Xml(APPLICATION_PATH . 
      '/configs/navigation.xml', 'nav'); 

     $this->_navContainer = new Zend_Navigation($this->_navContainerConfig); 

     $this->_navContainer->findById('defaultindex')->addPage(array(
      'label'   => 'Open Prints', 
      'module'  => 'default', 
      'controller' => 'artwork', 
      'action'  => 'list', 
      'params'  => array(
       'medtyp'  => 2), 
      'resource'  => 'default:artwork', 
      'privilege'  => 'list', 
      'route'   => 'default' 
     )); 

這只是增加了一個子頁面的頁面ID「defaultindex」,我需要的頁面的「defaultindex頁面後加入。

有誰知道如何做到這一點?

提前和祝大家聖誕快樂非常感謝,

加里

回答

0

您可以直接從Zend_Navigation_Container

使用方法addPage
$this->_navContainer->addPage(your_array); 

將所有頁面後,已經在容器中加入您的網頁。如果您需要自定義訂單,則需要擴展Zend_Navigation_Container並添加方法來重寫容器中的頁面屬性$ _index,以便按順序對它們進行排序

+0

感謝您的回答。我最終採用的解決方案是將所有頁面放在我的XML文件中,然後刪除我以後不需要的頁面。 $ page = $ this - > _ navContainer-> findOneBy('id',$ mediumType ['medium_type_id']); $ this - > _ navContainer-> removePage($ page); – Garry