Аргументы Views. Часть 2. Вывод в источнике связанных через Node Reference

5 февраля 2011 в 14:17

Node Reference и аргументы Views. Делаем ссылки из страницы А в страницу B красиво.

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

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

Если в типе материала создать дополнительное CCK поле типа Node Reference и настроить его, допустим, автовыбор и неограниченное кол-во.

В примере редактирования страницы с таким виджетом будет выглядеть примерно так:

И будет отображать так

И иногда этого вполне достаточно.
Но иногда надо вставить в источник что-то из того куда мы ссылаемся.

Например так:

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

Потом для этого нужно сделать Views.

Общий вид такой:

124 — это номер страницы с которой идут ссылки (для тестирования)

Создаем Связь

Создаем Аргумент

Делаем первое поле (картинка)

Делаем второе поле (заголовок)

Третье поле опциональное (ссылка Редактировать)

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

Оформление

  .views-field-edit-node a {
    float: right;
    font-size: 10px;
    color: red !important;
    margin-top: -24px;
  }
 
  .view-reference-a-b .views-row {
    clear: left;
    margin-bottom: 10px;
}
.view-reference-a-b .views-field-field-image-fid {
    float: left;
    margin-right: 10px;
    width: 45px;
    position: re;
    min-width: 44px;
    min-height: 20px;
  }
 
  .view-reference-a-b .views-field-title {
    clear: left;
    display: table-cell;
    height: 39px;
    vertical-align: middle;
    width: 100%;
  }

Надеюсь эта статья была полезна.

Этот пример можно посмотреть в работе по адресу http://evtravel.com.ua/node/124

Комментарии

Сложилось впечатление, что эту задачу можно решить с помощью Node Hierarhy или Book добавив к ссылкам уникальные классы (для флажков). Как добавить уникальные классы к ссылкам я не знаю (задачи такой не возникало), но просто мысль такая возникла глядя на рабочий пример.

6 февраля 2011 в 19:13

... не, ну можно, конечно и так, но это сложнее с классами, так как поменять картинку для класса нужно лезть в код CSS? а тут можно добавить правило ImageCache. Вариантов для решения одной задачи может быть несколько.

6 февраля 2011 в 22:43

Вариантов может быть несколько, каждый выбирает наиболее понятный себе.
Да, и спасибо за ссылку. действительно хорошая тема. Очень узкоспециализирована, но зато теперь щнаем куда смотреть/посылать ))

9 февраля 2011 в 2:51

какой модуль добавляет возможность во вьюсах ссылаться на связанные материалы и выводить поля этих материалов?

29 сентября 2011 в 9:59

"gerboss" wrote:
какой модуль добавляет возможность во вьюсах ссылаться на связанные материалы и выводить поля этих материалов?

попробуйте посмотреть relationship во вьюшке

2 октября 2011 в 13:53

вопрос как через взаимосвязи и аргументы

вывести такую конструкцию

нода типа 1 имеет взаимосвязи с нодами типа 2

как в ноде типа 2 вывести все оставшиеся ноды типа 2 за исключением текущей (все ноды типа 2 должны быть связаны с общей нодой типа 1)

7 декабря 2012 в 8:35

"iNFerNo" wrote:
как в ноде типа 2 вывести все оставшиеся ноды типа 2 за исключением текущей (все ноды типа 2 должны быть связаны с общей нодой типа 1)

в аргументах исключить из вывода

7 декабря 2012 в 12:47

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

7 декабря 2012 в 13:06

еще раз повторюсь

в нодереференсовых нодах нужно вывести нодереференсовые ноды с общей одной нодой...

7 декабря 2012 в 13:07

"iNFerNo" wrote:
еще раз повторюсь
в нодереференсовых нодах нужно вывести нодереференсовые ноды с общей одной нодой...

не вижу ничего сверхъестественного

7 декабря 2012 в 13:20

да нет. есть же ситуация

тип ноды 1, имеет несколько типов ноды 2 по полю нодеерференсе

как в одной из типов нод 2 вывести все ноды 2 исключая текущую...
где общее у них тип ноды 1.

7 декабря 2012 в 15:26