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

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

Аватар пользователя bogutski bogutski 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

Комментарии

Аватар пользователя petrovnn petrovnn 6 февраля 2011 в 19:13

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

Аватар пользователя bogutski bogutski 6 февраля 2011 в 22:43

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

Аватар пользователя bogutski bogutski 9 февраля 2011 в 2:51

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

Аватар пользователя gerboss gerboss 29 сентября 2011 в 9:59

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

Аватар пользователя q2_faith q2_faith 2 октября 2011 в 13:53

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

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

Аватар пользователя iNFerNo iNFerNo 7 декабря 2012 в 8:35

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

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

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

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

Аватар пользователя q2_faith q2_faith 7 декабря 2012 в 12:47

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

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

Аватар пользователя iNFerNo iNFerNo 7 декабря 2012 в 13:06

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

Аватар пользователя iNFerNo iNFerNo 7 декабря 2012 в 13:07

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

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

Аватар пользователя q2_faith q2_faith 7 декабря 2012 в 13:20

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

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

Аватар пользователя iNFerNo iNFerNo 7 декабря 2012 в 15:26

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

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

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