Мне нужно изменить внешний вид страницы ноды, т.е. /node/%. В принципе это можно сделать с помощью Views, но проблема в том что есть несколько типов материалов и для каждого типа естественно нужен разный view. Но как это сделать? Урл страниц получается одинаковый, независимо от типа материала, задавать тип материала в фильтре тоже не помогает - view все равно срабатывает для всех типов материалов. Как решить эту проблему?
Комментарии
что имеется в виду под "внешний вид" ноды? сама по себе нода не меняется через views, это меняется через темки.
Имеется ввиду что мне нужно убрать некоторые поля, которые отображаются по умолчанию, например имя автора, дата публикации, и некоторые поля нужно добавить.
это делается через тематизацию: http://www.drupal.ru/node/3583
Такая же проблема. Создал два вида для разных типов материалов. Путь у видов /node/% Для каждого выставил фильтры по типу материала. По логике должно работать. Но упрямо применяется только один вид ко всем нодам.
Что можно сделать?
аргументы. вот только аргументы берутся из урл, а тип материала в урл не передается, но все-равно там копаться надо!
Добавить поля можно при помощи ССК.
Убрать поля... ну дык темизация, копируешь файлик node.tpl.php, переименовываешь в node-ТИП_МАТЕРИАЛА.tpl.php
ну и там меняешь. В общем поиском порули, тут все давно уже описали.
Ставьте фильтрацию по типу материала. Вкладывайте дисплеи с разными видами материалов, ферштейн?
Я так и делал, не помогает. В итоге сделал новый .tpl.php, не так страшен черт как казался, этот способ даже приятнее )
ну как не помогает?
Просто на каждый дисплей свой тип материала, у меня так почти все сделаны
И все пейджи с адресом /node/%, и работают?!
естественно!
Опять та же беда, только теперь с таксономией. Есть 2 типа материалов: рецепт и статья. Грубо говоря, каждый рецепт и каждая статья привязаны к терминам одного словаря. К примеру есть статьи привязанные к термину "Русская кухня", и есть рецепты привязанные к нему же.
На сами ноды я просто сделал свои шаблоны, это не проблема. А как быть с таксономией?
Я сделал вьюс типа page. выставил нужные мне поля для рецептов. В фильтре тип материала "Рецепт". Добавил аргумент term ID, и задал адрес taxonomy/term/%. Страницы терминов таксономиии теперь отлично показывают мне соответствующие рецепты. Всё как бы замечательно.
Но понадобилось мне таким же образом отображать статьи. А тут опять старые грабли. Создал вьюс для статей таким же образом. Но работает только один из вьюсов, что логично.
В общем сейчас у меня нет возможности отобразить даже самый примитивный список статей. Для юзеров их как бы нет.
Что можно сделать?
2 otmoroz: можешь показать скрин своего вьюса?
мой вьювс уже умер вместе с сайтом))) у тебя не работает естественно из-за пути) нужно тип материала задать не в фильтрах, а в аргументах, если ничего не путаю!
2 otmoroz А куда этот аргумент будет подставляться?
В общем я пока сделал навигацию по статьям руками. Создал во вьюсе разные пейджи для каждого термина таксономии, и привязал их к меню. Примитивно конечно, но пока у меня всего 6 родительских терминов в этом словаре + куча дочерних, но по ним уже не буду делать навигацию, пока не вижу в этом потребности.
А вот с вьюсом всеж хочется прояснить, уже второй раз с этой проблемой столкнулся и пока не решил.
у меня стоит pathauto и пути к нодам складываются: /тип материала/нид.
Например, page/38
story/32
blog/1
аргументы это же урл
а можно же по-моему и без пазавто настроить, выставить дефаулт аргумент.
см далее
pathauto у меня тоже стоит. Но у нас все-таки разные случаи. Мне нужно темизировать страницу терминов, а там в пути никак не задать тип материала, можно только словать и термин... ладно жизнь на этом не кончается, буду существовать с этим дальше ))
может поможет?
Спасибо, позже испробую, но пока занят другими задачами.
Почему? Это же всего-лишь синонимы, их ID никуда не делись.
просто у всех типов нод отображение в системе одно: node/%
при выборе аргумента ставлю валидатор по Материалу, но это не помогает
Привязка page/% - работать не будет, это синоним.
Views_attach не помог - он ставит внутрь контента выборку, получается дублирование контента, что можно конечно убрать руками в шаблонах, это гемор.
всё таки разобрался - потребуются модули http://drupal.org/project/nodetypeviews и http://drupal.org/project/contemplate, в последнем оставляем в показе содержимого только описание, первое позволяет в представлениях подставить вместо содержимого для конкретного типа материала нужную выборку.
**
а нельзя ли сделать несколько дисплеев с фильтрами по типам материалов?
**
убиться тапком... убрал pathauto , думал просто через node/% и аргументы получится. Применяется упрямо только к одному типу материала, другой брать не хочет, может есть какой нюанс в указании аргумента, галочка там какая?
аргументы - это id нод, пользователей, терминов, взятых из УРЛ (адресной строки.) У всех типов материалов адрес node/nID, поэтому должны выйти все.
Все-таки решили как-то проблему ? Мне тоже интересно.
Вот кажется вариант решения http://druit.ru/blogs/views/18
Ставлю сюда ссылку чтобы не потерять
решаю следующим способом: во первых ставлю модуль [module=contemplate] - позволяет темизировать вывод переменной $content, которая в свою очередь вставляется в шаблон с именем: node-type.tpl.php (то есть если у Вас тип содержимого object, то шаблон будет node-object.tpl.php)
Примерный вид такого шаблона:
<?php print $content ?>
<?php print $links; ?>
иногда можно в этом шаблоне дополнительно вытаскивать переменные полей cck таким образом:
если вам нужен список таких полей, то можете написать конструкцию:
<?php print_r($node); ?>
</pre>
Этого достаточно для 6 друпала, в 7-ке немного сложнее, там нет модуля contemplate и обращение к шаблонам немного другое через двойные тире: node--object.tpl.php
Спасибо за внимание.
А что с помощью Views так и не получилось сделать определенные вьюшки для определенных типов материала?
Долго уже мучаюсь с этим.
нельзя! можно только для конкретного ID, остальное через модуль contemplate и шаблон node-type.tpl.php
contemplate зачем? если можно просто использовать node-type.tpl.php