Пытаюсь построить связку, чтобы выводить ноды привязанные к самой новой ноде определенного типа. View reference, Entity reference, Views
Что мне ввести в поле Value, чтобы туда подставлялся переданный аргумент (id ноды)?
Вложение | Размер |
---|---|
views.png | 399.34 КБ |
Комментарии
Да нет Вам нужен RELATIONSHIPS
Именно с таким названием нет проекта на д.о
http://drupal.org/project/noderelationships
http://drupal.org/project/relationship
Этих двух нет под 7ку
Или вы этот имели в виду http://drupal.org/project/relation ?
Чтобы подставлялся аргумент - это CONTEXTUAL, а чтобы обратится к содержимому связанному через references это RELATIONSHIPS, это в все разделы Вашего views
Добрый день, а подскажите пожалуйста, у меня такая же проблема
Есть один тип материала и другой, я связал через ноде референс второй тип с первым, теперь надо на страницы первого типа вывести все материалы которые я в нем отметил второго типа.
Вы советуете использовать во вьюхе не Контекстные фильтры, а Взаимосвязи ? Если да то почему то не получается, или я как то не так делаю.
У ТС задача аргумент забрать - поэтому CONTEXTUAL.
А Вы сразу отмечаете в 1 м с какими он связан поэтому в поле Reference этого материала у Вас уже список - Вам ндо еговывести в том преставлении какой Вам нужен, это не views, "показ" поля formatter, если views block то вывод на ноде того поля через viws опять же с formatter для поля.
Я уже решил свою задачу, кому будет интересно вот очень полезная инфа, по ней и разобрался, и переделал на 7 -ку. http://smihworld.ru/sozdanie-na-cms-drupal-drupal-arkhiva-dokumentov-cha...
Вся загвоздка была в взаимосвязях и в цеплянии их к выводимым полям. В общем разобратся не сложно, если немного разбираешся во ВЬЮХах, если что могу рассказать как именно делал.
Не могли бы Вы мне помочь. Пробую и так и сяк, не выходит что-то.
У меня есть тип- Каьтегории, и тип Товар. В типе Товар есть поле связь на тип Категории.
На странице определенной категории я хочу вывести список связанных с ней товаров.
Читала ссылку, что Вы показали, но почему то у меня не вышло. Объясните плиз на моем примере, если не трудно
Мне эта ссылка очень помогла, спасибо.
Я думаю, что так уж извращаться не нужно с типами материалов.
лучше для категории ввести таксономию, в типе товар вывести поле ссылка на термин и во всех товарах выставить нужную категорию.
потом данные категории можно вывести через обычное представление taxonomy/term/% (это стандартное представление оно должно быть в списке не активное, после включения переопределит все страницы таксономии и будет выводить через вью товары так как вы настроете поля во вью)
Я не могу использовать таксономию, т к страницы категорий товаров содержат текст, какие то файлы для скачивания, картинки и прочее, в таксономии же, по крайней мере в друпале 6 возможно одно простое поле текстовое и все.. поэтому пришлось делать через типы материалов.. значит это нереально вывести во вьюсе как мне охота?
Тут говорилось о семерка, по этому я так и предложил.
Можете более подробно изучить ссылку которую я давал выше. там все расписано по пунктам, если повторять все 1 в 1 не пренебрегая никакой информацией то можно все сделать.
Вам конкретно нужен второй пункт "Список документов, которые ссылаются на текущий"
Спасиб, попробую еще раз, или раз 10
Просто тяжело заочно найти ошибку, если не получится выставьте скриншоты я попробую посмотреть, может что-то замечу.
Спасибо за помощь! Получилось в итоге. Моя проблема была в том, что я зайдя в contextual filter не выбрала радиобаттн Provide default value и не отметила там Content ID from URL, вместо этого отмечала первый радиобаттн
Ну так обычно всегда, какая-то мелкая ошибка а все в итоге не работает)
рад был помочь
Спустя два года нужно было решить ту же проблему, но сайт с которого брал инфу уже не работает. Нашел страницу на веб архиве, может мне и кому -то еще поможет
Создание на CMS Drupal (Друпал) архива документов.
На протяжении этой части статьи мы с вами создадим при помощи модуля View три представления: список документов, созданных пользователем; список документов на которые ссылается текущий; список документов, которые ссылаются на текущий. Все эти представления будут использовать один аргумент в качестве фильтра.
Список документов, созданных пользователем
Начнем со списка документов, созданных пользователем. Создадим новое представление, для этого зайдем в меню Site building -> Views -> Add. Откроется страница создания нового представления. Заполним следующие реквизиты:
View name: user_doc;
View description: Документы созданные пользователем;
View type: Node,
жмем кнопку Next и переходим к настройкам нашего представления. На странице с настройками нужно добавить и изменить следующие параметры:
В разделе Basic settings:
Title (название страницы, которую увидит пользователь): Документы пользователя;
Style (стиль, в котором будут отображаться результаты поиска - таблица): Table;
Use pager (если в результате поиска найдется больше 20 документов, то включится механизм разбиения на страницы): Full pager;
Items per page (тут мы указываем количество документов выводимых на одной странице): 20;
Distinct (указываем, что нам нужно выводить только каждый документ только один раз): установить галочку Distinct;
Empty text (этот текст увидит пользователь, если результат поиска окажется пустым): На текущий момент пользователь не является автором ни одного документа.
В разделе Arguments добавим один единственный аргумент User: Uid и заполним его реквизиты:
Title: Пользователь;
Action to take if argument is not present (тут мы указываем какую информацию выводить, если аргумент не будет передан. В данном случае выведется текст из параметра Empty text, который мы с вами заполнили выше): Display empty text;
Validator (тут мы устанавливаем проверку переданного аргумента, в нашем случае мы будем передавать ID пользователя): User;
Type of user argument to allow (этот параметр относится к предыдущему и указывает, что в аргументе допустимы только ID существующих пользователей): Only allow numeric UIDs;
Action to take if argument does not validate (тут мы указываем, что делать, если указан неверный аргумент, например ID пользователя, которого нет на нашем сайте. В этом случае выведется текст из параметра Empty text): Display empty text.
В разделе Fields добавим следующие поля, они будут выводится в качестве колонок нашего списка:
Node: Title - название документа. Label: Документ; Установим для поля галочку Link this field to its node, при этом название документа станет ссылкой на него.
Node: Body - в теле документа у нас хранится его назначение. Label: Назначение;
Content: Состояние (field_doc_status) - состояние документа.
В разделе Sort criteria добавим параметры сортировки:
Content: Дата (field_doc_data) сортировать будем по дате вступления в силу документа, при чем в начале списка должны оказаться самые свежие документы. Для этого параметр Sort order установим в Descending.
Сохраним настройки и проверим работоспособность нашего свежесозданного представления. Это можно сделать не выходя со страницы с настройками. Наверняка вы обратили внимание, что ниже основных настроек находится раздел Live preview, в котором виден сформированный, с помощью наших настроек, запрос к базе данных и, собственно, результат выполнения этого запроса. Там же есть поле Arguments, которое используется для проверки работоспособности представления, если используются аргументы. В своем архиве документов, я создал один документ еще на прошлых уроках. Создавал я его под администратором, т.е. под пользователем с ID = 1 (в базе данных нашего сайта это параметр Uid пользователя). Наверняка вы тоже для примера создали несколько документов именно под первым созданным пользователем, поэтому в поле Arguments впишите цифру 1 и нажмите кнопку Preview. Если вы увидели документы, созданные пользователем с Uid = 1, то вы все сделали правильно.
Список документов, которые ссылаются на текущий
Создаем новое представление и заполняем следующие реквизиты:
View name: doc_refferers;
View description: Документы, ссылающиеся на текущий;
View type: Node,
жмем кнопку Next и переходим к настройкам нашего представления. На странице с настройками нужно добавить и изменить следующие параметры:
В разделе Basic settings:
Title: Документ, ссылающиеся на текущий;
Style: Table;
Use pager: Full pager;
Items per page: 20;
Distinct: установить галочку Distinct;
Empty text: На текущий документ не ссылается ни один из имеющихся в архиве документов.
В разделе Arguments добавим один единственный аргумент Content: Документы, на которые ссылается настоящий документ (field_doc_ref) и заполним его реквизиты:
Title: Документ ссылается на;
Action to take if argument is not present (тут мы указываем какую информацию выводить, если аргумент не будет передан. В данном случае выведется текст из параметра Empty text, который мы с вами заполнили выше): Display empty text;
Validator (тут мы устанавливаем проверку переданного аргумента, в нашем случае мы будем передавать ID Документа): Node;
Types (этот параметр относится к предыдущему и указывает, что в аргументе должен быть только ссылкой на материалы типа Документ): Документ;
Argument type (уточняем, что аргумент - это ID существующего документа): Node ID;
Action to take if argument does not validate (тут мы указываем, что делать, если указан неверный аргумент, например ID документа, которого нет на нашем сайте. В этом случае выведется текст из параметра Empty text): Display empty text.
В разделе Fields добавим следующие поля, они будут выводится в качестве колонок нашего списка:
Node: Title - название документа. Label: Документ; Установим для поля галочку Link this field to its node, при этом название документа станет ссылкой на него.
Node: Body - в теле документа у нас хранится его назначение. Label: Назначение;
Content: Состояние (field_doc_status) - состояние документа;
User: Name - автор документа. Label: Автор; Установим для поля галочку Link this field to its user, при этом имя автора станет ссылкой на него.
В разделе Sort criteria добавим параметры сортировки:
Content: Дата (field_doc_data) сортировать будем по дате вступления в силу документа, при чем в начале списка должны оказаться самые свежие документы. Для этого параметр Sort order установим в Descending.
Сохраним настройки и проверим работоспособность нашего нового представления.
Список документов на которые ссылается текущий
Самое "вкусное" я оставил на последок. Обратите внимание, что нам нужно вывести данные о документах, ссылки на которые хранятся в поле Content: Документы, на которые ссылается настоящий документ (field_doc_ref). Но если вы попытаетесь добавить поля в разделе Fields, то вы найдете там данные только по текущему документу и само поле field_doc_ref. Как раз для доступа к данным поля field_doc_ref мы и будем использовать возможности раздела Relationships. Давайте создадим новое представление с такими параметрами:
View name: doc_referense;
View description: Документ ссылается на;
View type: Node,
жмем кнопку Next и переходим к настройкам нашего представления. На странице с настройками нужно добавить и изменить следующие параметры:
В разделе Basic settings:
Title: Документ ссылается на;
Style: Table;
Use pager: Full pager;
Items per page: 20;
Distinct: установить галочку Distinct;
Empty text: Настоящий документ не ссылается на другие документы.
В разделе Relationships добавим то поле, данные по которому нас интересуют. В данном случае это Content: Документы, на которые ссылается настоящий документ (field_doc_ref). Ни каких дополнительных настроек эгото поля делать не будем.
В разделе Arguments добавим один единственный аргумент Node: Nid и заполним его реквизиты:
Title: Документ;
Action to take if argument is not present (тут мы указываем какую информацию выводить, если аргумент не будет передан. В данном случае выведется текст из параметра Empty text, который мы с вами заполнили выше): Display empty text;
Validator (тут мы устанавливаем проверку переданного аргумента, в нашем случае мы будем передавать ID Документа): Node;
Types (этот параметр относится к предыдущему и указывает, что в аргументе должен быть только ссылкой на материалы типа Документ): Документ;
Argument type (уточняем, что аргумент - это ID существующего документа): Node ID;
Action to take if argument does not validate (тут мы указываем, что делать, если указан неверный аргумент, например ID документа, которого нет на нашем сайте. В этом случае выведется текст из параметра Empty text): Display empty text.
В разделе Fields добавим следующие поля, они будут выводится в качестве колонок нашего списка:
Node: Title - название документа. Relationship (Обратите внимание, что после добавления поля в раздел Relationships у нас появился одноименный параметр в настройках добавляемых полей раздела Fields. Теперь, мы можем указать, что данные нас интересуют не о текущем документе, а о документе из поля field_doc_ref): Документы, на который ссылается настоящий документ; Label: Документ; Установим для поля галочку Link this field to its node, при этом название документа станет ссылкой на него.
Node: Body - в теле документа у нас хранится его назначение. Relationship: Документы, на который ссылается настоящий документ; Label: Назначение;
Content: Состояние (field_doc_status) - состояние документа. Relationship: Документы, на который ссылается настоящий документ;
User: Name - автор документа. Relationship: Документы, на который ссылается настоящий документ; Label: Автор; Установим для поля галочку Link this field to its user, при этом имя автора станет ссылкой на него.
В разделе Sort criteria добавим параметры сортировки:
Content: Дата (field_doc_data) сортировать будем по дате вступления в силу документа, при чем в начале списка должны оказаться самые свежие документы. Для этого параметр Sort order установим в Descending.
Сохраним настройки и проверим работоспособность нашего нового представления.
Мы с вами подготовили три последних представления, теперь нам осталось их вывести в нужных местах документа и профиля пользователя. Это мы сделаем при помощи модуля Panels, хотя это и не единственный способ вывода. Как это сделать вы узнаете в пятой части этой статьи.