web-dev-qa-db-ja.com

レンダー配列に順序付けられていないリストを作成する

カスタムモジュールのカスタムブロックのレンダー配列を使用して、順序付けられていないリストを作成しようとしています。

Divでラップしたい場合は、常に「コンテナー」タイプを使用できます。そのようです

    $content = [
        'container'    => [
            '#type'       => 'container',
            '#attributes' => [
                'class'      => ['container'],
            ],
            'item 1'      => [
                '#type'       => 'html_tag',
                '#tag'        => 'p',
                '#value'      => 'Item 1',
            ],
            'item 2'      => [
                '#type'       => 'html_tag',
                '#tag'        => 'p',
                '#value'      => 'Item 2',
            ],
        ],
    ];

しかし、私はそのような無秩序なリストを使用できるようにしたいのですが

    $content = [
        'container'    => [
            '#type'       => 'html_tag',
            '#attributes' => [
                'class'      => ['container'],
            ],
            '#tag' => 'ul',
            'item 1'      => [
                '#type'       => 'html_tag',
                '#tag'        => 'li',
                '#value'      => 'Item 1',
            ],
            'item 2'      => [
                '#type'       => 'html_tag',
                '#tag'        => 'li',
                '#value'      => 'Item 2',
            ],
        ],
    ];

私が作りたいのは

<ul class="container">
  <li>Item 1</li>
  <li>Item 2</li>
</ul>

しかし代わりにそれは作り出します

<ul class="container"></ul>
<li>Item 1</li>
<li>Item 2</li>   

レンダー配列を使用して順序付けられていないリストを作成する方法はありますか?

5
Matt

テーマ「item_list」を使用します。

$content = [
  '#theme' => 'item_list',
  '#list_type' => 'ul',
  '#title' => 'My List',
  '#items' => ['item 1', 'item 2'],
  '#attributes' => ['class' => 'mylist'],
  '#wrapper_attributes' => ['class' => 'container'],
];          

Wrapper_attributesはすべてのテーマで使用されるわけではありません。コアでは、これはclassybartikで、上品に基づいています。

16
4k4