2012-01-06 51 views
2

即時通訊使用drupal 7,我想知道我是否可以使用函數theme_item_list()來實現多級列表項。如下:如何使用theme_item_list()在drupal7中實現多級列表?

  • 項目1個
      測試
    • 項目1.1
    • 項目1.2
    • 項目1.3
  • 項目2
    • 項目2.1
    • 項目2.2
    • 項目2.3
      • 項目2.3.1
      • 項目2.3.2
      • 項目2.3.3
  • 項目3
  • 如果可能的話,任何人都可以幫助我一個例子。

    回答

    4

    是的,它是可能的,如果你在與datachildren對於有子列表中的每個項目數組中的鍵通,例如:

    $items = array(
        array(
        'data' => 'Item 1', 
        'children' => array(
         array(
         'data' => 'Item 1.1', 
         'children' => array(
          'Item 1.1.1', 
          'Item 1.1.2' 
         ) 
        ), 
         array(
         'data' => 'Item 1.2', 
         'children' => array(
          'Item 1.2.1', 
          'Item 1.2.2' 
         ) 
        ) 
        ) 
    ), 
        array(
        'data' => 'Item 2', 
        'children' => array(
         // etc... 
        ) 
    ) 
    ); 
    
    $output = theme('item_list', array('items' => $items)); 
    

    data鍵表示列表項的內容,children是一個列表項的數組,可以作爲該列表項中的單獨列表呈現。該函數是遞歸的,可以處理任意數量的級別。

    +2

    謝謝。請注意,不是直接調用'theme()',而是像這樣構建一個渲染數組通常會更好:'$ output = array('#theme'=>'item_list','#items'=> $ items,'#type '=>'ul',);' – marcvangend 2015-06-30 07:16:22

    +0

    絕對正確@marcvangend,我認爲這個答案在整個轉換過程中呈現陣列:) – Clive 2015-06-30 08:12:40

    相關問題