Модуль аналогичный EmptyPage только для контента

Главные вкладки

Аватар пользователя zheka2 zheka2 9 июля 2015 в 13:39

Сори за сумбурный заголовок, попробую объяснить на примере

На сайте есть страницы которые содержат по несколько вьюх, блоков и пр.
Для них я хочу создать отдельный шаблон и через module_invoke и html вставки получить нужный вывод
Но шаблон чего мне создавать? Можно конечно взять просто Basic page и её шаблон переопределить, как временный вариант пойдёт, но хочу узнать как правильно.
Панели не хочу использовать, громоздкие, и много лишнего html
Писать модуль? Можно, но может есть готовое. Я использовал как-то EmptyPage, он создаёт заглушки, которые можно как раз переопределить через шаблоны. Но переопределять придётся всю страницу, а есть ли такое же только для контента страницы?

Комментарии

Аватар пользователя zheka2 zheka2 9 июля 2015 в 16:31

Т.е. если мне нужно получить страницу со следующей структурой
block1
view1
block2
view2

вы предлагаете создать для view1 страницу, а в шаблоне для неё добавить вывод block1, block2 и view2?

Суть в том что я не хочу привязываться к конкретным элементам страницы.
Ищу модуль (если таковой есть) в котором можно указать адрес, например /custompage1 и в теме определить шаблон custom-page--1.tpl.php
И в шаблоне уже пишу:

print render( module_invoke('block', 'block_view', 1) );
print render( module_invoke('views', 'block_view', 'map-block_1') );
print render( module_invoke('block', 'block_view', 2) );
print render( module_invoke('views', 'block_view', 'map-block_2') );

Для EmptyPage нужно всю страницу формировать, что мне не подходит, с шапкой, подвалом и пр.

Аватар пользователя t1mm1 t1mm1 9 июля 2015 в 17:00

сделайте модуль
1. хук меню - определит вашу ссылку
2. хук темы - тему с нужным шаблоном
3. вставляйте в шаблон что пожелаете нужным.

момент.
в render желательно передавать переменную с результатом module_invoke, а не саму функцию. Будет ругаться.

Готовых решений я не встречал.

Аватар пользователя t1mm1 t1mm1 9 июля 2015 в 17:33

я ради интереса гагуглил суть вопроса.
а решения действительно нет. по крайней мере без напильника и велосипедов.

п.с. а свое решение лучше, быстрее и проще.

Аватар пользователя sasha_gar sasha_gar 9 июля 2015 в 18:19

ну тогда пустые ноды и page.tpl.php для каждой создаете и пишите ваши invoke. Либо включаете php filter и в теле ноды вызываете

Аватар пользователя zheka2 zheka2 10 июля 2015 в 0:50

sasha_gar Спасибо, до этого так и делал, просто почти в каждом проекте сталкиваюсь с подобными задачами, решил разобраться как же правильно делать Smile
sas@drupal.org Для задачи он подходит, но тяжёлый. Я пока ещё не силён в вёрстке, несколько раз приходилось темизировать вывод panels, много времени на это тратил.

В общем начал выбирать имя для самопального модуля, остановился на custom page, а такой уже есть, и делает именно то что мне нужно Biggrin