Пример вывода списка радио-кнопок в виде таблицы.
1. Добавляем элементу свойство #theme
:
$form['color'] = [
'#type' => 'radios',
'#title' => 'Color',
'#options' => [
'red' => 'Red',
'green' => 'Green',
'blue' => 'Blue',
],
'#theme' => 'color_options',
];
2. Реализуем хук hook_theme
:
// THEMENAME.theme
/**
* Implements hook_theme().
*/
function THEMENAME_theme(): array {
return [
'color_options' => [
'render element' => 'element',
],
];
}
3. Создаём шаблон THEMENAME/templates/color-options.html.twig
:
<table>
{% for option_element in element|children %}
<tr>
<td>{{ option_element|without('#title') }}</td>
<td style="color:{{ option_element['#return_value'] }};">{{ option_element['#title'] }}</td>
</tr>
{% endfor %}
</table>
Для работы фильтра |children
понадобится модуль Twig Tweak.
Написанное актуально для
Drupal 8+
Добавить комментарий