web-dev-qa-db-fra.com

Créer une liste non ordonnée dans le tableau de rendu

J'essaie de créer une liste non ordonnée à l'aide d'un tableau de rendu dans un bloc personnalisé dans un module personnalisé.

Je comprends que si je voulais envelopper les choses dans div, je pourrais toujours utiliser le type "conteneur". Ainsi

    $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',
            ],
        ],
    ];

Mais j'aimerais pouvoir utiliser une liste non ordonnée comme ça

    $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',
            ],
        ],
    ];

Ce que j'aimerais que ça produise c'est

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

Mais au lieu de cela, il produit

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

Existe-t-il un moyen de créer une liste non ordonnée à l'aide de tableaux de rendu?

5
Matt

Utilisez le thème 'item_list':

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

Les wrapper_attributes ne sont pas utilisés dans tous les thèmes. Dans le noyau, c'est classy et bartik, qui est basé sur chic.

16
4k4