Указание tpl-файла пользователем

Прислано: Vydrin_AP

пт, 24/06/2011 - 08:40

Здравствуйте уважаемые!

Пишу модуль, который выводит блок, темизируя вывод через свой mymodule.tpl.php. В настройках блока есть поле "Путь к tpl-файлу".

Вопрос: как можно при выводе содержимого блока учитывать содержимое этого поля? Если пустое, используем свой темплейт, если заполнено, то пользовательский.

Спасибо!

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Ch в пт, 24/06/2011 - 09:27.

В hook_preprocess_block ищите переменную theme_hook_suggestions


Опубликовано Vydrin_AP в пт, 24/06/2011 - 09:51.

Спасибо конечно, но ведь в hook_preprocess_block можно указать темплейт для всего блока, включая заголовок и содержимое, а я вывожу через hook_block_view таким образом:

$block['content'] = theme('some_theme_stuff', array('data' => $data));

Необходимо темизировать не сам блок, а только выводимый контент.


Опубликовано natbampo в пт, 24/06/2011 - 10:09.

Вы раздел форума верно выбрали?


Опубликовано Vydrin_AP в пт, 24/06/2011 - 10:11.

Разработка модулей, а что не так? )


Опубликовано Ch в пт, 24/06/2011 - 10:21.

"Vydrin_AP" написал(а):

а что не так

Размещение заказов → Разработка модулей

"Vydrin_AP" написал(а):

Необходимо темизировать не сам блок, а только выводимый контент.

Точно так же, только вместо hook_preprocess_block используйте preprocess функцию для своего шаблона.

В $block['content'] отдавайте не html, а массив с данными.
Вообще, тут много вариантов.


Опубликовано Vydrin_AP в пт, 24/06/2011 - 10:27.

"Ch" написал(а):

Размещение заказов → Разработка модулей

Поменял! Спасибо ;)

"Ch" написал(а):

вместо hook_preprocess_block используйте preprocess функцию для своего шаблона

Подскажите как это будет выглядеть например для "some_theme_stuff" это будет hook_preprocess_some_theme_stuff ?

"Ch" написал(а):

В $block['content'] отдавайте не html, а массив с данными.

Сначала отдавал массивом, потом изменил на theme(), теперь верну обратно.


Опубликовано Ch в пт, 24/06/2011 - 10:41.

"Vydrin_AP" написал(а):

Подскажите как это будет выглядеть например для "some_theme_stuff" это будет hook_preprocess_some_theme_stuff ?

Шаблон some_theme_stuff должен быть определён в hook_theme в вашем модуле.


Опубликовано Vydrin_AP в пт, 24/06/2011 - 11:22.

Попытался в hook_preprocess_block и в hook_preprocess вывести $variables, но в них так и не нашел где указывается сам файл some_file.tpl.php, чтобы его заменить на тот, что нужен мне.
В theme_hook_suggestions содержатся немного не те данные, что нужны мне.
Может это вообще невозможно?


Опубликовано Vydrin_AP в пт, 24/06/2011 - 12:18.

Похоже получилось! Через  hook_theme_registry_alter. Спасибо  Ch!


Новое на сайте

Ссылки партнёров