[РЕШЕНО] Заставить views отображаться на страницах определенного типа.

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

Аватар пользователя kissfm kissfm 28 ноября 2008 в 19:35

Стал вопрос о размещении/отображении views на страницах определенного типа. Есть тип материала. Создаются страницы этого типа и к ним должен прикручиваться этот views. Для страниц иного типа - иной views.
Спасибо заранее.

Комментарии

Аватар пользователя Elodia Elodia 28 ноября 2008 в 20:23

А вы попробуйте у этого view сделать фильтр Node:Type и там в поле которое появится с нажатым ctrl выберите те типы, которые нужны

Аватар пользователя kissfm kissfm 29 ноября 2008 в 12:56

"Elodia" wrote:
А вы попробуйте у этого view сделать фильтр Node:Type и там в поле которое появится с нажатым ctrl выберите те типы, которые нужны

Такой фильтр стоит, но он же для того, чтобы запихать в этот вьюс только материалы определенного типа. А нужно, чтобы вьюс этот отображался с этим своим списком только на страницах этого же типа.
Фильтр - это "что выводить", а не "где выводить".

Аватар пользователя ravik ravik 29 ноября 2008 в 13:28

готовый views выводится в виде блоков или страниц. если вы использовали тип "блок", все настройки видимости ищите в админке в управлении блоками. выбирайте ваш блок, в настройках внизу есть варианты где выводить, где не выводить

Аватар пользователя kissfm kissfm 29 ноября 2008 в 15:21

"ravik" wrote:
готовый views выводится в виде блоков или страниц. если вы использовали тип "блок", все настройки видимости ищите в админке в управлении блоками. выбирайте ваш блок, в настройках внизу есть варианты где выводить, где не выводить

это я знаю. Проблема именно в том, чтобы заставить новые страницы, которые будут создаваться кем-то там подхватывать этот вьюс автоматом и не лазить в блок не писать каждый раз там адрес новой страницы для отображения на ней блока. Типов несколько, и такой вью для каждого свой.

Аватар пользователя ravik ravik 29 ноября 2008 в 21:24

мой вариант предполагает использование pathauto. в нем вы устанавливаете для определенных типов материалов определенную часть урла. например, для типа "новости" устанавливаете путь news http://site.ru/news/vash-zagolovok. и так далее для других типов

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

Аватар пользователя fairwind fairwind 29 ноября 2008 в 16:56

hint: видимость блока можно определять кодом php, для чего есть специальное поле на странице редактирования блока.

Аватар пользователя kissfm kissfm 29 ноября 2008 в 17:01

"fairwind" wrote:
видимость блока можно определять кодом php, для чего есть специальное поле на странице редактирования блока.

вот это интересно конечно. Но я не имею представления что в этом случае нужно писать в качестве кода.
Можно примерчик какой-то на эту тему?

Аватар пользователя gumk gumk 2 декабря 2008 в 22:35

Проще всего копируете в папке темы файл node.tpl.php
называете его node-ваш тип материала.tpl.php
в этот файл вставляете в нужное место код
<?php
$output = views_embed_view('viewname', $display_id = 'default', арггумент если нужно );
print '

';
print($output);
print '

';
?>

Аватар пользователя kissfm kissfm 3 декабря 2008 в 15:13

Все работает благодаря совету от ravik.
Пользуйтесь, у кого такая же проблема.
Совет от gumk поступил уже после того, как я решил эту проблему. Благодарю, но лезть в код мне кажется не будет проще. Но все же спасибо.

Аватар пользователя krock krock 29 апреля 2010 в 3:14

А мне кажется, что ответ от gumk несколько универсальнее. Тоже стояла такая задача. gumk, спасибо. Smile
Но совет по поводу видимости блоков - он конечно ещё лучше. Smile