2012-04-23 65 views
1

我有這樣一個簡單的導航菜單:如何使用zend導航將類添加到ul元素?

$container = new Zend_Navigation(); 
$container->addPage(array(
    'label' => 'Page 1', 
    'uri' => 'page-1', 
    'foo' => 'bar', 
    'pages' => array(
     array(
      'label' => 'Page 1.1', 
      'uri' => 'page-1.1', 
      'foo' => 'bar', 
     ), 
     array(
      'label' => 'Page 1.2', 
      'uri' => 'page-1.2', 
      'class' => 'my-class', 
     ) 
    ), 
... 

這將產生:

ul 
    li 
    li 

我如何屁股一類/ ID的ul或到li

有什麼想法?

感謝

編輯:我發現了一個不同的解決方案:

我使用這個功能

public static function htmlify($container, $menu_name = null) 
{ 
    $i = 0; 
    $menu = '<ul class="'.$menu_name.'">'; 
    foreach($container as $page) 
    { 
     $menu .= '<li id="'.$page->htmlfyId.'"><a id="menu-'.$page->id.'" class="'.$page->class.'" href="'.$page->uri.'">'.$page->label.'</a>'; 
     $menu .= '<ul id="'.$page->htmlfyClass.'">'; 

     foreach($page as $pages) 
     { 
      $menu .= '<li id="li"><a class="'.$page->class.'" href="'.$pages->uri.'">'.$pages.'</a></li>'; 
     } 
     $menu .= '</li>'; 
     $menu .= '</ul>'; 
    } 
return $menu; 
} 

然後保存菜單中選擇添加方法:

$view = Zend_Layout::getMvcInstance()->getView(); 

$menu = self::htmlify($container, 'navigation'); 

    $view->menu = $menu; 
    return $menu; 

我類有靜態方法,你必須在視圖中echo class::method,否則ju st使用一個普通的$this->menu或者其他什麼。

然後u可以使用這樣的:

$container = new Zend_Navigation(); 
$container->addPage(array(
    'label' => 'Page 1', 
    'uri' => 'page-1', 
    'foo' => 'bar', 

    'htmlfyId' => 'testing', 
    'htmlfyClass' => 'test', 

    'pages' => array(
     array(
      'label' => 'Page 1.1', 
      'uri' => 'page-1.1', 
      'foo' => 'bar', 
     ), 
     array(
      'label' => 'Page 1.2', 
      'uri' => 'page-1.2', 
      'class' => 'my-class', 
     ) 
    ), 
... 

回答

1

上添加UL A類試試這個

$options['ulClass'] = 'foo'; 

<?php echo $this->menu($container)->renderMenu($container,$options); ?> 

其中$容器是你的Zend_Navigation對象。