views. Вид из видов

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

Аватар пользователя digital_sword digital_sword 26 июля 2010 в 18:27

Необходимо создать подобное: http://www.pgraph.ru/plastic/ - здесь видим 4 раздела (Модельный ряд «V», Модельный ряд «BP»).
Открываем Модельный ряд «V»(http://www.pgraph.ru/row_v/), а там: вид из товаров. Как создать Модельный ряд «V» - понятно, простое представление, с выдерганными из материала полями.

Но как создать родителя http://www.pgraph.ru/plastic/ ? Ведь это получится представление из представлений... Ну можно конечно кустомную html таблицу создать, а динамически никак?

Комментарии

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 26 июля 2010 в 18:56

По первому посту:
Если не устраивает табличный стандартный вид, можно тупо оттемизировать шаблон вида или даже вытянуть чисто стилями как надо, поставив стиль вывода "Unformatted"

по второму.views_attach - это что то около 50 кб кода. Зачем эти костыли?

То что вы хотите (контекстный блок внизу), решается стандартными средствами видов. Прикреплённый вид у вас будет в виде блока, нужно только задать соотвествующий код аргумента.

Зы: правда что ли 3 года с друпалом?

Аватар пользователя digital_sword digital_sword 26 июля 2010 в 19:08

"<a href="mailto:volocuga@drupal.org">volocuga@drupal.org</a>" wrote:
Если не устраивает табличный стандартный вид, можно тупо оттемизировать шаблон вида или даже вытянуть чисто стилями как надо, поставив стиль вывода "Unformatted"

Я не про темизацию спрашиваю. Вид делается из материалов.
А http://www.pgraph.ru/row_v/ , http://www.pgraph.ru/row_bp/ и т.п. - это не материалы, это виды.

Хотя, действительно, с этими контекстными блоками с текстом еще возиться. Их же кучу надо. Буду ставить аттач.

"<a href="mailto:volocuga@drupal.org">volocuga@drupal.org</a>" wrote:
Зы: правда что ли 3 года с друпалом?

время от времени

Аватар пользователя digital_sword digital_sword 26 июля 2010 в 19:23

"digital_sword" wrote:
Буду ставить аттач.

И получается дофига типов материала.

А вашим способом: много-много блоков.

Можно вид как-то к обычной странице крепить? Разные виды к разным страницам одного вида. Например, вид определяет, к какой странице ему крепиться по CCK полю...

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 26 июля 2010 в 19:25

"digital_sword" wrote:
И получается дофига типов материала.

Тип материала при чём?

"digital_sword" wrote:
А вашим способом: много-много блоков.

Пора узнать, что такое аргументы в видах

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 26 июля 2010 в 19:27

"digital_sword" wrote:
Можно вид как-то к обычной странице крепить?

Можно разметить регион блока прямо в шаблоне ноды и уже туда включать всё что угодно, можно вызывать вид сниппетом прямо в теле ноды.

Аватар пользователя digital_sword digital_sword 26 июля 2010 в 19:31

"<a href="mailto:volocuga@drupal.org">volocuga@drupal.org</a>" wrote:
Тип материала при чём?

А как вид узнает, к какому материалу ему крепиться? Я же в настройках аттача указываю только тип материала, и все.

В общем способ: к материалу крепить вид. Крепить можно аттачем. А как аргумент задать? Чтобы к странице, скажем tarelki крепились только товары с url tarelki/* . Или по другому признаку, например, товары с определенным cck полем. Но тогда какой аргумент вообще не представляю.

Аватар пользователя digital_sword digital_sword 26 июля 2010 в 19:33

"<a href="mailto:volocuga@drupal.org">volocuga@drupal.org</a>" wrote:
Можно разметить регион блока прямо в шаблоне ноды и уже туда включать всё что угодно, можно вызывать вид сниппетом прямо в теле ноды.

Вызвать вид в ноде - не проблема. Проблема в нужной ноде показывать нужный вид. Автоматически. Пример с тарелками. Какой аргумент завести?

Аватар пользователя Xermit Xermit 26 июля 2010 в 19:38

Скажем так, мне тут видно словарь на основе таксономии, всем товарам нужной группы присваивается вид, их 4
т.е. использовать стандартный функционал таксономии для разбивки товаров на группы
плюс taxonomy_images кажется, чтобы прикрутить картинку для 4-х групп, чтобы их потом можно было вывести снипетом в блоке или через view.

Аватар пользователя Xermit Xermit 26 июля 2010 в 19:58

создаете словарь в таксономии создаете ваши 4 термина, отмечаете в словаре что его надо пристегнуть как поле к выбранным типам материалов и все, после этого при редактировании материала вы увидите это поле в котором для каждого товара выберете его группу. Можете даже указать что поле обязательное.

Аватар пользователя digital_sword digital_sword 26 июля 2010 в 20:02

Ааа. Теперь понял вас. Вы товары хотите прикреплять к материалу без использования виевс. Но нужно товары крепить вьюсой, принципиально. Хоть к терминам, хоть к чему

Аватар пользователя Xermit Xermit 26 июля 2010 в 20:11

digital_sword wrote:
Ааа. Теперь понял вас. Вы товары хотите прикреплять к материалу без использования виевс. Но нужно товары крепить вьюсой, принципиально. Хоть к терминам, хоть к чему

И я честно говоря не понял ничего из двух этих предложений.

Что значит прикрепить товар к материалу без views?

Куда надо товары крепить views-ой? view это способ вывода уже забитой информации, все приклепления уже сделаны кем то заранее.

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

Или вам надо что то другое, а я не понял.

Аватар пользователя Xermit Xermit 26 июля 2010 в 20:07

почему? views остаются, создаете потом view подобно views taxonomy term
указываете ей страницу например shtamps
создаете аргумент taxonomy term
и выводите ваши товары как shtamps/term1_group or
shtamps/synonym_of_term1_group or
shtamps/модельный_ряд_в
если синоним потом для термина задать и немного php кода дописать для taxonomy_term аргумента в views
на эту тему много уже написано и даже видео на лулаботе наверняка есть
получится что через view вы выведите только определенную группу товаров и примените однотипную сортировку например по всем товарам

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 26 июля 2010 в 20:08

"digital_sword" wrote:
Почти тот же вопрос: каким аргументом прикрепить вид к термину таксономии?

Создаёте вид-блок с нужными полями.

Аргумент: Taxonomy: Term ID

Provide default argument: Да

Default argument type: PHP Code

В поле вставляете такой код

<?php

if(arg(0) == 'node' && is_numeric(arg(1)) && !arg(2)) {
  
$node node_load(arg(1));
  
$terms 
taxonomy_node_get_terms_by_vocabulary($node// ваш ID словаря

);
  if(
$term array_shift($terms)) {
    return 
$term->tid;
  }

?>

Остальные настройки можно не трогать

Сохраняем, включаем полученный блок в нужном регионе на странице таксономии

В нём будут показаны "похожие" товары из тойже самой категории. Если смотрите категорию "тарелки", в блоке будут показаны другие тарелки.

Вам это надо было?

Аватар пользователя digital_sword digital_sword 26 июля 2010 в 20:24

Итак, только не блоками (чтобы их не было куча), а аттачем:
1. Создаем словарь с терминами тарелки, ложки.
2. Крепим словарь к типу материала каталог (простой созданный тип), и товар(уберкартовский).
3. Создаем пару товаров с термином тарелки и каталог, с тем же термином.
4. Ставим модуль аттач и прикрепляем вид с полями товара к материалу "каталог товара".
Проверяем: заходим на созданную страницу каталога товара и видим, что вид действительно прикрепился. Есть там товары. Все.

Теперь задача: чтобы в каталоге товаров (тип) с термином тарелки показывались только товары с термином тарелки. Тем же самым.
Я так понял, нужно ставить ваш аргумент (раз работает для блоков, сработает и не для них). Ставим: теперь в каталоге товаров ничего не отображается. Вот я и прошу подсказать этот аргумент, чтобы:

"в каталоге товаров (тип) с термином тарелки показывались только товары с термином тарелки."

Аватар пользователя Xermit Xermit 26 июля 2010 в 20:54

Уф, что то мудрено получается. view_attach на сколько я помню был разработан чтобы упростить отображение связанных друг с другом товаров по nodereference и для тех кто ленится создать view типа блок. Модуль кажется по сути это и делает.

Но вернемся к другому зачем надо создавать тип материала Каталог?
если к типу материала прикрутить таксономию, то сами термины таксономии как бы образуют каталог.
В данном случае, если набрать url: site/taxonomy/term/id_термина,
то вы увидите в виде списка только те материалы, у которых выбран этот термин, чем не каталог?

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

Так вот здесь действительно надо в первом случае взаимосвязь на основе nodereference + cnr + view, а во втором случае, я решил использовать content taxonomy, и по аналогии с nodereference+cnr делать все тоже самое только через термины.

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

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 26 июля 2010 в 21:03

"Xermit" wrote:
Уф, что то мудрено получается.

Лучше не мешать человеку. Раз он так считает, значит правильно. Со временем эти модули лишние сами поотваливаются, по себе знаю.

Аватар пользователя digital_sword digital_sword 26 июля 2010 в 21:18

Вот нода типа материала "каталог" с прикрепленным к ней аттачем, без аргумента, то есть там и ложки и вилки, все вместе: http://pechati-ufa.ru/node/10
ид словаря: 1. Как у вас в аргументе: vocabulary/1 .
Если к виду прикрепить аргумент в том виде, в котором он сейчас, ничего не отобразится.
views_attach с создаваемым им display node content сам создает аргумент Аргументы: nid. Может из-за этого что-то не получается?

"Xermit" wrote:
для тех кто ленится создать view типа блок. Модуль кажется по сути это и делает.

Но ни одного блока не создается. А если правильно удастся настроить аргумент, то нужен только 1 вид.

"Xermit" wrote:
если к типу материала прикрутить таксономию, то сами термины таксономии как бы образуют каталог.

Да, образуют. И это все можно темизировать. А можно вьюсой вывести (что и пытаюсь). Я понял вас. Но views гораздо удобнее пользоваться. Замутил поля, нажал на кнопку и все. Только как их распределять аргументом.
volocuga@drupal.org
, id словаря=1

Аватар пользователя Xermit Xermit 26 июля 2010 в 21:43

Ладно пусть будет views
в вашем случае таксономию как я говорил прикрутить придется.

Теперь главное, раз вы используете views_atach, то наверняка она там view использует у себя,
В этой view отбираются все ваши товары через фильтр, таким образом мы получили все товары.
Далее надо установить аргумент, т.е. сказать что из полученных товаров выбрать только те которые являются вилками (аргумент это по сути динамический фильтр).
Для этого надо выбрать taxonomy: term ID аргумент.
Далее, откуда по вашему берется значение этого аргумента?

Если делать без views_attache, то вы бы сделали view типа блок.
сказали что блок выводится только для материалов типа каталог.
создали бы 4 типа материалов каталог и ассоциировали бы их с терминами: вилки, ножи, утюги из того же словаря.

Далее, грузится например вилки, отображается блок (так как он отображается для материала типа каталог), в блоке view.
В view написано, что ей передадут аргумент типа taxonomy term id, т.е. в нее передать надо идентификатор термина вилки в виде числа.

как это сделать, надо в аргументах у вью выбрать php code default как написал volocuga, он и пример кода там привел.

Т.е. на странице вилки, фактически запускается php код аргумента вьюхи, в коде этом собираются все термины текущей отображаемой страницы "вилки" с которыми вы ее связали, чтобы передать их в view (ведь можно например одновременно отобразить по желанию вилки одновременно с ножами), естественно каталог "вилки" связаны с одним термином "вилки".
Получив id термина его в виде php-массива передают в view, чтобы view отсекла лишние не вилки ведь id термина вилки ей теперь передали.

Надеюсь теперь стало понятно что такое аргументы?
лучше почитать что нить про аргументы.

Аватар пользователя gumk gumk 26 июля 2010 в 22:01

Если с views:
Два типа материала: раздел, товар
Делаем вид каталога с адресом: catalog
Темизируем, добавлям ссылки вида catalog/*, где звездочка - нид раздела (тип материала раздел)
В типе товар через нодреференс создаем саязь с типом материала раздел,
Создаем вид с адресом catalog/* из адреса берем аргумент - нид раздела, (как содать такой вид много написано на друпал.ру)

Вот и все