Вывод нодов через views, и вывод через стандартный шаблон

19 августа 2011 в 14:00
Аватар пользователя 3xdimon 3xdimon 0 19

Есть такая проблема, тут искал, решения не нашел...

есть нод продукт, и есть нод статья и есть остальные ноды выводящиеся через обычный.

Путь: /node/% - перехватывает все ноды

поставил контекстный фильтр по "Содержимое: Nid". Теперь товары выводятся нормально, но другие ноды - нет...

Подскажите как с помощью views вывести через разные представления - товары - через Представление товаров, статьи через представление статьи и другие, что не статьи и товары - шли через стандартный друпаловский вывод ???

Комментарии

Пробывал, оно просто не выводит ничего...

точнее вывод товара - выводит, а остальные просто тупо ничего не выводят...

19 августа 2011 в 21:05

все-таки сформулируйте вышестоящую задачу. Вам нужно вывести типы материалов по отдельности? Это делается вьюсом, причем просто. Выложите сюда скрин с настройками представления, проще будет понять, что имеется в виду.

19 августа 2011 в 22:05

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

22 августа 2011 в 9:08

Пока нашел ручной метод


<?php if ($node->type == 'product'): ?>
        <?php print views_embed_view('product','default'$node->nid); ?>
<?php 
else: ?>

Может есть какой либо другой? неручно, а автоматический?

23 августа 2011 в 10:22

Так что никто не знает как настроить views чтоб при перехвате node/%
Перехватывались товары, а другие ноды - выводились стандартно?

25 августа 2011 в 10:31

можно попробовать настроить пути для разных типов контента (автоматические синонимы), чтобы товары имели путь типа goods/%, тогда во вьюхе поставить перехват именно этого пути.

25 августа 2011 в 14:56

"3xdimon" wrote:

"3xdimon" wrote:
Пока нашел ручной метод

<?php if ($node->type == 'product'): ?>
<?php print views_embed_view('product','default', $node->nid); ?>
<?php else: ?>

А где писать єтот php код?

26 августа 2011 в 0:12

"D8i8m8a8" wrote:
Автоматические синонимы "не работают")

хм-м, с синонимами каталога в Уберкарте это работает ...

"D8i8m8a8" wrote:
А где писать єтот php код?

в шаблоне ноды.

26 августа 2011 в 0:56

"bredov" wrote:
хм-м, с синонимами каталога в Уберкарте это работает ...

Да работает, возможно Уберкарт испосзует какойто редирект ...

26 августа 2011 в 10:32

"3xdimon" wrote:
Пока нашел ручной метод

<?php if ($node->type == 'product'): ?>
<?php print views_embed_view('product','default', $node->nid); ?>
<?php else: ?>

3xdimon, bredov Огромное спасибо!!! Кодом всё работает!!!

26 августа 2011 в 10:57

Аналогичную проблему нужно было решить. Выяснилось, что проверка по типу материала работает, если символ % не последний в адресе и страница представления выводится во вкладке. Тогда лишняя вкладка не появляется, то есть проверка по типу материала работает. А вот если представлением пытаться заменить страницу (node/%), то тогда в настройках контекстных фильтров проверка по типу ноды работает не правильно (как писал 3xdimon, перехватываются пути ко всем нодам).

Я так понимаю, удалось решить проблему создав блок и выведя его в шаблоне:

print views_embed_view('maps_districts','block_1', $node->nid);

Всё верно?

24 февраля 2012 в 13:21

Я так понял, что в настройках контекстных фильтров в списке для выбора "Действие в случае если значение фильтра недействительно" не хватает что-то вроде "Скрыть представление", там есть только "Вывести Страница не найдена".

А в D6, кстати, есть "Скрыть представление / Страница не найдена (404)". Только не знаю, работало ли это в D6.

24 февраля 2012 в 13:27

Теперь появилась другая проблема. В шаблоне типа ноды вставил строку:
print views_embed_view('maps_districts','block_1', $node->nid);

Зато теперь в других вкладках на странице материала это представление выводится...

24 февраля 2012 в 13:48