Здравствуйте.
В своем модуле я программно создаю поле для menu_link_content:
<?php
function my_module_entity_base_field_info(EntityTypeInterface $entity_type) {
$fields = array();
if (
$entity_type->id() === 'menu_link_content') {
$fields['is_divider'] = BaseFieldDefinition::create('boolean')
->setLabel(t('Разделитель'))
->setDescription(t('Если истина, то данный пункт будет выведет как разделитель'))
->setRevisionable(TRUE)
->setTranslatable(TRUE)
->setDisplayOptions('form', array(
'type' => 'boolean_checkbox',
'settings' => array(
'display_label' => TRUE,
),
))
->setDisplayConfigurable('form', TRUE);
}
return
$fields;
}
?>
В форме элемента меню это поле выводится нормально, в базе данных поле создано и корректно хранит значения. Но вот никак не могу понять как мне получить значение этого поля в своей теме в шаблоне twig?
В шаблоне menu.html.twig пробовал и {{ menu_item.is_divider }} и многими другими способами, но ничего особо не выходит. Подскажите, как это реализуется?
Комментарии
{{ menu_item.original_link.is_divider }}
Попробуйте
Не вышло.
Вообще вот сам шаблон меню (использую bootstrap 3):
{{ menus.menu_links(items, attributes, 0) }}
{% macro menu_links(items, attributes, menu_level) %}
{% import _self as menus %}
{% if items %}
<div class="row">
<div class="collapse navbar-collapse" id="top-menu-collapse">
<ul class="nav navbar-nav">
{% for item in items %}
<li class="dropdown">
<a href="{{ item.url }}" class="dropdown-toggle" data-toggle="dropdown" data-target="dropdown-menu" role="button" aria-expanded="false">{{ item.title }}{% if item.below %}<span class="fa fa-right fa-chevron-down"></span>{% endif %}
</a>
{% if item.below %}
<ul class="dropdown-menu" role="menu">
{% for child_item in item.below %}
{# @todo Разрешить проблему с выводом разделителя #}
{% if child_item.original_link.is_divider %}
<li class="divider"></li>
{% else %}
<li><a href="{{ child_item.url }}">{{ child_item.title }}</a></li>
{% endif %}
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#"><span class="fa fa-left fa-user-o"></span>Войти</a></li>
</ul>
</div>
</div>
{% endif %}
{% endmacro %}
Никак не выходит, для любого child_item.original_link.is_divider пустой. Есть ли еще способы? И вообще, может ли это быть связано с тем, что поле is_divider создается в модуле, а вывести я его пытаюсь в шаблоне темы?