Рассмотрим модуль пустынь:
- Страница 1:-
deserts/*
- страница 2:-
deserts/*/*
- page3: -
deserts/*/*/*
Динамический контент ...
У меня есть три блока, а именно а, б и в:
- Блок А должен отображаться только на странице 1
- Блок b должен отображаться только на странице 2
- Блок А должен отображаться только на странице 3
Как сделать это ограничение?
desert/*/*/
desert/*/edit
мой блок должен отображать для всехdesert/*/*
не дляdesert/*/edit
В таком случае это не работает для меня ..*
означает подстановочный знак. Поэтому просим решения , где появляется блок дляdesert/*/*
предполагает , что он должен показать наdesert/*/edit
или, по этому вопросу,desert/*/whatever
.Ответы:
Используйте контекстный модуль. Хотя я вообще не фанат этого модуля, это один из случаев, когда он пригодится.
Добавьте условие для пути. Поэтому, если я хочу блок на странице 1, но не на странице 2 или 3, я бы написал пути примерно так, по одному для каждого блока:
Случай 1 - Блок А
Случай 2 - Блок Б
Дело 3 - Блок С
~ Означает исключить в этом случае. После этого добавьте блок в регион, который вы хотели бы видеть. Вы также можете добавить обратно в конкретные пути, которые в противном случае могли бы быть исключены, и наоборот.
источник
Вы можете использовать опцию видимости «Страницы, на которых этот PHP-код возвращает TRUE (только для экспертов)». Но помещать PHP-код в базу данных, IMHO, плохая практика. Вместо этого рассмотрите возможность использования чего-то вроде модуля расширенной видимости блока или реализации
hook_block_list_alter()
такогоПримечание. Вероятно, существует более разумный способ реализации правила видимости.
источник
Вы должны быть в состоянии заставить это работать, используя модуль видимости блока Правил . Вот цитата со страницы проекта:
Благодаря этому, а также согласно « если вы можете сделать это с помощью Правил, вы можете использовать его для управления видимостью блоков » выше, вы сократили свой вопрос до того, чтобы Правила перехватывали различные URL-адреса, соответствующие вашим page1, page2 и page3.
источник