Здравствуйте. Создал отдельный шаблон для типа материала. Создал вьюху в виде блока с фотографиями заведения и кнопкой еще, если фотографий больше чем допустимо в блоке. Для странице еще фото создал путь /node/%/image
В общем все работает. Только одно НО.
Заведение допустим расположено по ссылке /node/2 - и здесь шаблон для типа материала заведения, работает прекрасно.
При переходе на изображения /node/2/image - шаблон выводиться как для всего сайта, а нужно чтобы шаблон был как у типа материала заведения.
Как РЕШИТЬ ПРОБЛЕМУ. Заранее спасибо.
Комментарии
Как вы создали эту страницу /node/2/image?
Через контекстные фильтры во вьюс.
А вьюз никак не связан с шаблонами материалов по умолчанию - ему сказали вывести картинки, он выводит картинки.
Два варианта:
Первый (тупой, без извращений) - берем шаблон вывода вьюза (см. информацию о темизации в настройках) и копипастим в него те элементы шаблона материала, которые надо.
Второй (с извращениями) - берем материал "заведение" и добавляем ему новый тип отображения (который custom display, он же view mode), например "images". В этом типе отображения настраиваем вывод картинок как надо. Во вьюзе говорим "выводить материал целиком в созданном типе отображения".
Но это неочевидный вариант, его лучше не использовать, мне кажется. Кроме того, тогда надо entity view modes ставить или display suite.
Да головнячок на ровном месте. Первый вариант я так понял более подходящий. Просто вопрос нужно решить, а то это тупо очень, если при просмотре изображений заведения, будет перекидывать на другой шаблон.
Вопрос, по первому решению. Шаблоны из пункта ИНФОРМАЦИЯ ТЕМИЗАЦИЯ:
Вывод отображения: views-view.tpl.php, views-view--logo.tpl.php, views-view--default.tpl.php, views-view--default.tpl.php, views-view--block.tpl.php, views-view--logo--block.tpl.php
И что нужно сделать из моего шаблона page--zavedeniya сделать копипаст в ?????
Да это не ровное место, это от непонимания.
Прямо в диалоге где перечисляются файлы - перечисляются и правильные названия для шаблонов, и их описания. Не лишним будет инструкцию ко вьюзу прочитать.
Ну я понял что названия правильные перечилсяются. И мне каждый раз когда я делаю представление страницу именно для заведений, то мне надо будет каждый раз править шаблон? И как сделать чтобы он влиял только на вьюс Все изображения. Что я запутался.
Надо прочитать инструкции по views-у и вопросы отпадут сами.
Да я понял как темизировать саму вьюху. Но как темизировать всю страницу с выводом этой вьюхи. У меня шаблон для заведений свой, а изображения относятся к этому шаблону.
Ну вот допустим создал я шаблон для вьюхи views-view--logo--zavimage.tpl
В него ввел все, с другого шаблона + где вывод контента, ввел содержимое в стандартном шаблоне вьюхи.
А вот такой вариант возможен? http://lab-sites.com/content/kak-tematizirovat-stranicu-views-v-drupal-7
Только почему то у меня он не работает.
У меня есть функция _preprocess_page
Мне же код взять только с тела этой функции и вставить в свою. Но все равное не работает.
В общем если не трудно напишите действия пошагово.
П.С. И я так понял, если у меня будет еще одна вьюха, допустим меню заведения, то и для этого представления надо будет делать свой шаблон.
Извините за возможно глупые вопросы.
Раз вы хотите изменить целиком страницу, тогда смотрите в сторону темизации страниц, а не вьюхи. В шаблоне страницы о контенте (вьюхе) ничего не известно, и в шаблоне вьюхе о темизации страницы ничего не известно, они независимы. так что сначала определитесь, что вам нужно изменить.
Как правильно построить название шаблона для страницы типа node/%/image я не знаю. Но можно в функции theme_preprocess_page сделать так:
<?php
$vars['theme_hook_suggestions'][] = 'your_template_name';
?>
https://drupal.org/node/223440#custom-suggestions