[РЕШЕНО] Views, Blocks - Как вывести собственный блок в нужном месте страницы?

Аватар пользователя dark_diesel dark_diesel 29 января 2012 в 18:02

Создал новый view для стандартного типа артиклей, назвал его home_article. Добавил ему блок, назвал его home_article_block.

Далее мне нужно было вывести его в конкретном месте на странице. Сначала я пробовал указать в свойсвах блока - вывести в содержание, а в файле page.tpl.php прописал код «».

Но он мне почему-то продублировал контент. Сначала вывел темы как он обычно выводит, а потом вывел мой блок.

Потом пробовал вывести блок программно. Нашел статью на сайте

Не получается вывести через эту функцию блок.
Ссылка на блок:

http://drupalhotel/admin/structure/block/manage/views/home_article-block...

« $block = module_invoke('', 'home_article_block_home_article', 'home_article-block_1');
print render($block);
?>»

0 Thanks

Комментарии

Аватар пользователя Antoniy Antoniy 29 января 2012 в 18:10

А в разделе редактирования блоков этого view-блока нет? Там можно его в любой регион назначить.

UPD: извиняюсь, это же семерка, еще не юзал ее путем.

Аватар пользователя dark_diesel dark_diesel 29 января 2012 в 23:04

В разделе редактирования он есть, но у меня нет регионов футер, хедер и содержание. Я все вывожу программно.

Аватар пользователя dark_diesel dark_diesel 29 января 2012 в 23:08

пока это единственный выход, что я нашел. Хотелось бы разобраться и со вторым вариантом.

Аватар пользователя dark_diesel dark_diesel 29 января 2012 в 23:06

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

Теперь мне интересно как вывести программно через функцию «module_invoke».

Аватар пользователя dark_diesel dark_diesel 30 января 2012 в 15:54

Вроде нашел решение, чтобы вывести свой блок нужно прописать след код по моему примеру:


<?php
$block 
module_invoke('views''block_view''home_article-block_1');
print 
render($block);
?>
Аватар пользователя radru radru 22 марта 2016 в 19:45
1

так правильней наверно

<?php
$block = module_invoke('views', 'block_view', 'home_article-block_1');
echo render($block['content']);
?>