Уважаемые дамы и господа! помогите разобраться с таким вопросом. Можно ли в файл node.tpl.php вставить регион для вывода блока?
Если можно то подскажите как сделать. Сейчас все что умею и пытался сделать добавляю вот такую строчку
<?php if ($right3) ?>
<div id="right3"><?php print $right3 ?></div>?>
В файле info темы добавлял переменную и кэш чистил ни чего не выводит.
Комментарии
Нашел решение
Добавим новый регион после содержимого ноды, но перед комментариями.
1. В mytheme.info определим новый регион с помощью добавления след. строки:
<?phpregions[new_region] = Новый Регион?>
2. В template.php темы добавим регион в набор переменных ноды
<?phpfunction phptemplate_preprocess_node(&$variables, $hook) {
$variables['new_region'] = theme('blocks', 'new_region');
}?>
Если сейчас очистить кэш ( admin/settings/performance ) и несколько раз обновить страницу размещения блоков ( admin/build/block ), то вы сможете увидеть созданный регион в любом из выпадающих списков. Можно добавить в него нужный блок и сохранить изменения. Блок добавился и сохранился, но на странице не появился.
3. В node.tpl.php определим место для вывода нового региона.
<?php if ($new_region): ?>
<div id="new-region">
<?php print $new_region; ?>
</div>
<?php endif; ?>
Снова очищаем кэш и обновляем страницу с ожидаемым блоком. Радуемся.
Теперь возможности ограничены только вашими познаниями в css. С помощью подобных переменных можно осуществлять вывод блоков практически в любом месте ноды. Над заголовком, под заголовком, в содержимом ноды, под содержимым и т.д. Определяем регион, добавляем его в переменные ноды, выводим на экран.
Спасибо автору
как "получить" блок програмно: http://xandeadx.ru/blog/drupal/133
далее в хуком MYTHEME_preprocess_node(&$variables) (в файле template.php в папке темы)
добавляем к шаблону node.tpl.php переменную, содержащюю вывод блока:
<?php
$variables['my_block']=module_invoke($module_name, 'block', 'view', $block_delta);
?>
и в node.tpl.php в нужном месте просто вставляем:
<?php
print $my_block;
?>
Спасибо, это всё работает. Но упорно не хотят отображаться блоки над комментариями на форуме. Используется Advanced Forum. Что делать, подскажите, пожалуйста!
Способ для 7 друпала:
http://drupalace.ru/lesson/dobavlyaem-region-v-nodu-ili-kommentariy
Не забудьте поставить в теме "Решено")
Ещё варианты, как я понял:
http://content-management-systems.info/node/345