2009-08-19 5 views
0

est-il un moyen de pousser dans le type de page de zend_navigation mvc ou uri et lui donner l'attribut onclick?zend_navigation et l'attribut onclick

array (
    'type' => 'uri', 
    'label' => 'Map', 
    'title' => 'Map', 
    'uri' => '#', 
    'click' => 'alert("show map");') 

J'ai sous-menus inclus des liens qui se déclenche seulement modal. Jusqu'à présent, j'utilise ma propre solution de "navigation" mais je veux utiliser celle de zend.

merci

Répondre

0

je dois mentionner que je sais solution simple - avoir une fonction javascript onload qui attachent des événements à certains menus selon leurs id's mais je veux juste garder les choses simples et de maintenir la définition du menu entier à un seul endroit .

0

Vous pouvez écrire votre propre aide de menu au lieu de Navigation_Menu helper.

La principale méthode pour étendre est htmlify:

class MyApp_View_Helper_MyMenu extends Zend_View_Helper_Navigation_Menu 
{ 

    public function htmlify(Zend_Navigation_Page $page) 
    { 
     // ... put original code here ... 

     // get attribs for element 
     $attribs = array(
      'id'  => $page->getId(), 
      'title' => $title, 
      'class' => $page->getClass() 
     ); 

     // does page have a href? 
     if ($href = $page->getHref()) { 
      $element = 'a'; 
      $attribs['href'] = $href; 
      $attribs['target'] = $page->getTarget(); 
      $attribs['onclick'] = $page->getClick(); // the click attribute 
     } else { 
      $element = 'span'; 
     } 

     return '<' . $element . $this->_htmlAttribs($attribs) . '>' 
      . $this->view->escape($label) 
      . '</' . $element . '>'; 
    } 
} 

Ensuite, appelez votre aide via:

<?php echo $this->navigation()->myMenu(); ?> 

voir exemple complet ici: Getting Zend_Navigation menu to work with jQuery's Fisheye