こちらのサイトではDRUPAL10に関連する記事を掲載しています。
Drupal を使用すると、文字列の配列を順序付きまたは順序なしの HTML リストに簡単に変換できます。 '#theme' => 'item_list'
レンダリング配列内の要素。 これは通常、コンテンツへのリンク、モジュールの設定値、ページを閲覧した全員の名前などのリストを表示するためにモジュール開発者によって行われます。 リストの表示は、コンテンツ管理システムにとって非常に一般的なタスクです。
HTMLリストを出力する
順序なし ( <ul>
) または注文した ( <ol>
) レンダー配列内のリストでは、 '#theme' => 'item_list'
要素タイプ。
マークアップは item-list.html.twigテンプレートを介してレンダリングされます。
要素固有のプロパティ
以下の固有のプロパティに加えて、 #item_list
要素では、 すべてのレンダー配列で使用できる共通のプロパティを使用することもできます。
#items : リストに表示される項目の配列。 各項目は文字列またはレンダリング配列のいずれかになります。 もしも #type
, #theme
、 また #markup
プロパティは子のレンダリング配列には指定されず、親リストから継承されるため、呼び出し元はすべてのネストされた子リストのレンダリング プロパティを明示的に指定して繰り返す必要がなく、より大きなネストされたリストを指定できます。
#title : リストのタイトル。
#list_type : リスト要素のタグ、「ul」または「ol」。
#wrapper_attributes : リスト ラッパーに適用される HTML 属性。 すべてのテーマがラッパーを実装しているわけではないことに注意してください。 ファイルを比較します のitem-list.html.twig Classy ( core/themes/classy/templates/dataset/item-list.html.twig ) と Stable9 ( core/themes/stable9/templates/dataset/item-list.html ) 。小枝)。
#empty : 項目がない場合に表示するメッセージ。 許可される値は文字列またはレンダリング配列です。
簡単な例:
$build['list'] = [
'#theme' => 'item_list',
'#items' => [
$this->t('This is some text that should be put in a list'),
$this->t('This is some more text that we need in the list'),
],
];
より複雑な例:
$items = array();
// A simple string item.
$items[] = 'Simple string';
// A simple string item as render array.
$items[] = [
'#markup' => 'Simple <span>#markup</span> string',
];
// Set custom attributes for a list item.
$items[] = [
'#markup' => 'Custom item',
'#wrapper_attributes' => array(
'class' => array('custom-item-class'),
),
];
// An item with a nested list.
$items[] = [
'#markup' => 'Parent item',
'children' => [
'Simple string child',
[
'#markup' => 'Second child item with custom attributes',
'#wrapper_attributes' => [
'class' => array('custom-child-item-class'),
],
],
],
];
$build['theme_element'] = [
'#theme' => 'item_list',
'#title' => $this->t('Example of using #theme item_list'),
'#items' => $items,
];
出力:
<h3>Example of using #theme</h3>
<ul>
<li>Simple string</li>
<li>Simple <span>#markup</span> string</li>
<li class="custom-item-class">Custom item</li>
<li>Parent item
<ul>
<li>Simple string child</li>
<li class="custom-child-item-class">Second child item with custom attributes</li>
</ul>
</li>
</ul>
さいごに
この記事またはDrupalに関するご質問がございましたら、お気軽にお問い合わせください。