2012-01-06 15 views
2

私はdrupal 7を使用して、私はマルチレベルのリスト項目を実装するために関数theme_item_list()を使用できるかどうかを知りたいと思います。以下のように:drupal7でtheme_item_list()を使用してマルチレベルリストを実装するにはどうすればよいですか?

  • 項目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

    +0

    絶対に正しい@marcvangend、私はこの答えが配列全体をレンダリングする前に日付を記入していると思います:) – Clive

    関連する問題