Всем доброе время суток.
Подскажите пожалуйста. Есть блок, на главной странице блок располагается в регионе контента и имеет множество полей. При переходе на другую страницу он должен смещаться в регион header, а также часть полей не должна отображаться.
Плавающий блок
Главные вкладки
Лучший ответ
Николай_новичок wrote: Есть один и тот же блок зачем плодить его?
Если бы он был реально "один и тот же", то у Вас и вопросов бы никаких не возникало. Не вижу ничего кривого в том, чтобы для вывода двух похожих, но разных блоков создать два похожих, но разных блока. Ну да ладно.
Николай_новичок wrote: Хочу вытащить машинное имя в строке: protected id -> string(10) "events" сравнить его в шаблоне
А что лежит в {{ attributes.id }} ?
Комментарии
Это просто: добавьте блок дважды в оба региона и задайте условия отображения чтобы он в "регионе контента" отображался только на главной странице (
Pages: <front>
), а в хедере наоборот (Pages: <front>
и ниже галку на Hide for the listed pages).Тут нужно понять что это за блок, как он создан и откуда в нем берутся поля. Строго говоря у блока как такового никаких полей нет, они есть у сущности, которая визуализируется в виде блока.
Поля настраивал с помощью field.html.twig (под свой шаблон).
Ничего не понял, но навскидку проще всего сделать два разных блока - один для главной страницы со всеми полями и один для всех остальных страниц не со всеми полями.
По идее нужно делать ловушку, но не знаю как поймать название (машинное имя) блока. И проверить его в полях.
{{ content.field_NAME }}
{{ content.field_NAME }}
...
{% endblock %}
Таким образом я вывел поля через мой блок, как проверить блок на машинное имя. Примерно так, но это не работает
{% if block == 'my_block' %}
Не проще. Есть один и тот же блок зачем плодить его? Да и к тому же нужно разбираться с twig шаблонами. Без знаний шаблонов многое не сделаешь. Вот я и начинаю хоть с чего то разбираться. И прошу помочь.
Этот блок находится в контенте
contents Available methods (107) Static class properties (2)
protected id -> string(10) "events"
Этот блок находится в header
contents Available methods (107) Static class properties (2)
protected id -> string(10) "events_abbreviation"
Хочу вытащить машинное имя в строке: protected id -> string(10) "events" сравнить его в шаблоне block--bundle--[машинное_имя_типа_блока].html.twig, на просторах инета я не нашел как можно сравнить в twig по id
В preprocess - функциях, прямо скажу я полный ноль.
Если бы он был реально "один и тот же", то у Вас и вопросов бы никаких не возникало. Не вижу ничего кривого в том, чтобы для вывода двух похожих, но разных блоков создать два похожих, но разных блока. Ну да ладно.
А что лежит в {{ attributes.id }} ?
Тут надо понимать, что block в данном случае - просто ключевое слово (тег) языка twig и не имеет ни малейшего отношения к друпаловским блокам. Чисто однофамильцы.
Спасибо.