Требовать и разместить блок в друпальной теме? - PullRequest
1 голос
/ 16 января 2011

В создаваемой теме я хочу разместить блоки в местах, отличных от заданных по умолчанию.Например, поместите блок поиска в заголовок.

Есть ли способ сделать это из темы: быть в состоянии потребовать блок и разместить его где-нибудь?

Ответы [ 3 ]

1 голос
/ 16 января 2011

Тематическая система Drupal достаточно гибкая, чтобы превратить именно эту часть страницы в область, где вы хотите, чтобы ваш блок появлялся.Для этого вам нужно добавить регион в файл темы .info, как описано в Назначение содержимого регионам , например regions[foobar] = Foobar.Это сделает новую переменную $page['foobar'] доступной для page.tpl.php .Затем вы можете назначить контент региону так же, как и в встроенных регионах Drupal.

Если вы хотите обойти эту систему и отобразить блок ad-hoc, посмотрите, как _block_render_blocks отображает блоки.

0 голосов
/ 01 декабря 2011

В D7 вы можете добавить область-заполнитель в файл .info тем, очистить кеш и поместить туда свой блок, после чего вы сможете вывести содержимое региона.

print render(block_get_blocks_by_region('region_name'));
0 голосов
/ 16 января 2011

Это противоречит идее конфигурируемых блоков, но, тем не менее, это возможно: вам нужно создавать пустые шаблоны блоков для всех, кроме разрешенной области. Или вы предоставляете / переопределяете функцию темы для этого самого блока и ничего не возвращаете для запрещенных областей.

...