2010-02-23 6 views
0

J'utilise actuellement zend_navigation via un fichier XML.Ecraser Zend_Navigation avec un tableau?

Cependant, j'ai besoin d'écraser le fil d'Ariane précédent pour être son parent dynamique, dans le contrôleur.

Est-ce possible? Il me semble que zend_navigation est assez statique et la documentation de zend continue de temporiser.

Merci


J'ai mis:

public function addAction() { 

     $this->view->navigation()->addPage(array(
      'type' => 'uri', 
      'label' => 'New page') 
     ); 

dans mon contrôleur mais pas crumbbar montre pour cette page.

Des idées? $ this-> navigation() a jeté un

Method "navigation" does not exist and was not trapped in __call() 

A noter également que mon crumbBar est dans ma mise en page et non vues individuelles.

Répondre

2

Oui, vous pouvez utiliser un tableau.

Ce que vous devez faire est vraiment créer votre tableau, puis entrez dans l'usine du Zend_Navigation pour créer vos pages pour vous.

Malheureusement mon code est trop compliqué pour montrer un exemple de comment je l'ai utilisé. Mais je vais donner un exemple simple ...

Une fois que vous avez créé votre conteneur de navigation, vous pouvez simplement ajouter de nouvelles pages.

Comme

$this->navigation()->addPage(array(
    'type' => 'uri', 
    'label' => 'New page')); 

Mais vous pouvez aussi utiliser addPages(). C'est ce que je fais.

Je pense que vous devriez juste attendre que la documentation soit rechargée pour vous, puis regarder cela. C'est vraiment facile en fait.

Lorsque vous avez une question plus précise, posez-moi la question et donnez-moi un petit mot. J'ai dû utiliser beaucoup la navigation, alors sachez-la plutôt bien.

En outre, consultez #zftalk sur freenode. Theres beaucoup d'aide là-bas.

+0

Merci, est-ce que la documentation zend est en cours de chargement pour vous? – azz0r

+0

Oui c'est. Il charge sans accroc. – Layke

0
// Disable Layout 
    $this->view->layout()->disableLayout();  
    $this->_helper->viewRenderer->setNoRender(true); 

    // Output XML than HTML 
    $this->getResponse()->setHeader('Content-Type', 'text/xml; charset=utf-8'); 


    $container = new Zend_Navigation(); 

    // Replace this section with real dynamic data. 
    $pages = array(
     array(
      'label' => 'Save', 
      'action' => 'save', 
     ), 
     array(
      'label' => 'Delete', 
      'action' => 'delete', 
     ), 
    ); 

    // Add pages 
    $container->addPages($pages); 
    $this->view->navigation($container); 

    // Output the data. 
    echo $this->view->navigation()->sitemap(); 

Utilise en outre Zend Router pour rediriger site.com/sitemap.xml vers ce contrôleur/cette fonction.

Merci à beaucoup de développeurs qui m'aident à atteindre ici.