2012-04-23 15 views
1

私はこのようなシンプルなナビゲーションメニューを持っている:zend navigationを使って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 

私はulまたはliにクラス/ IDをお尻はどうすればよいですか?

おかげ

編集:私は別の解決策を見つけた:

私はメニューが追加成り立つ方法で、その後

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が必要です。正規の$this->menuなどを使用してください。 $コンテナがあなたのZend_Navigationオブジェクトである。この

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

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

を試しULにクラスを追加するには

$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

その後、uがこのようにそれを使用することができます。

関連する問題