Drupal CCK + Views. Изменение вида галереи сотрудников.

Drupal CCK + Views

В прошлом уроке с помощью модулей Друпал Views и CCK мы создали галерею сотрудников, которая заполняется созданием материала  типа "Сотрудник". В контент тип Сотрудник мы добавили два поля ФИО (text field) и О сотруднике (textarea) Этот урок создан, чтобы показать что одни и те же данные можно выводить разными способами через View. 

 

Сейчас галерея сотрудников отображается следующим образом:

drupal views cck галерея сотрудников с фотографией.png

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

drupal views cck галерея сотрудников с фотографией путь к view.png

Способ 1. Давайте поработаем с видом (View) галереи сотрудников: уберем с общей галереи описание каждого сотрудника, сделаем ФИО ссылкой на ноду сотрудника.

Во-первых необходимо убрать поле описания из вида галереи сотрудников. Заходим в список видов (Конструкция сайта - Views) и выбираем вид нашей галереи у меня это  view_sotrudniki.

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

drupal views cck галерея сотрудников с фотографией убираем описание.png

Теперь без описания вид будет таким:

drupal views cck галерея сотрудников с фотографией без описания.png

Теперь сделаем ссылкой ФИО сотрудника на ноду этого сотрудника. Заходим в вид сотрудников и выбираем поле ФИО:

drupal views cck галерея сотрудников с фотографией поле ФИО.png

 Внизу появятся настройки поля ФИО, нужно выбрать "Link this field to its node" (ссылка этого поля на эту же ноду):

drupal views cck галерея сотрудников с фотографией поле ФИО настройка.png

Сохраняем изменение, не забываем сохранять и сам вид. Теперь ФИО является ссылкой на ноду сотрудника:

drupal views cck галерея сотрудников с фотографией с ссылкой на ноду.png

Способ 2. Сделаем ФИО ссылкой на вид галереи сотрудников, однако по ссылке будем передавать номер ноды сотрудника.

По номеру сотрудника мы будем выводить блок с описанием сотрудника, прямо под галереей. Например если номер ноды сотрудника 10, то ссылка на его ФИО будет вести на имя_сайта/sotrudniki/10.

Давайте зайдем в вид нашей галереи и добавим поле Материал: nid. nid - это сокращение от node id, то есть порядковый номер текущей ноды. При добавление nid, необходимо указать, что отображать значение не надо (Exclude from display).

drupal views cck галерея сотрудников с фотографией поле nid.png

Nid нужно поместить в самый верх, чтобы значение nid было доступно при построение ссылки ФИО.

drupal views cck галерея сотрудников с фотографией поле nid в списке.png

Теперь заходим в настройки поля ФИО, надо настроить ссылку вида sotrudniki / [nid].

drupal views cck галерея сотрудников с фотографией поле ФИО с ссылкой на ноду(1).png

Убираем галочку с Link this field to its node, ставим галку Output this field as a link (Вывести это поле как ссыку). В значение ссылки используя шаблоны для ввода, а именно [nid], для этого мы поднимали вверх поле Материал: nid, пишем sotrudniki/[nid]. Сохраняем поле и вид.

Теперь необходимо создать блок, в котором бы отображалось описание сотрудника. Назовем его view_block_sotrudniki. В этом виде добавим дисплей блок.

drupal views cck галерея сотрудников с фотографией создание дисплея блок.png

Добавим поля:
Содержимое: ФИО
Содержимое: О сотруднике

Фильтры: 
Материал: Опубликовать - да
Материал: Тип - сотрудник

Аргумент:
Материал: nid - в настройках аргумента нужно указать следующее:

drupal views cck галерея сотрудников с фотографией настройки блока.png

Provide default argument - если аргумент не представлен, то позволяет определить аргумент с помощью с помощью функции arg(), либо другой. Функция arg(), в скобках указывает номер аргумента из URL (sotrudniki / [nid]), нумерация начинается с нуля, то есть мы выбираем второй аргумент номер ноды [nid], первый аргумент - "sotrudniki".

Другие возможные варианты аргументов:
Node ID from URL (node id - номер ноды с URL) - работает когда первый аргумент node (например, node/14);
Taxonomy Term ID from URL (номер термина таксономии) - работает когда первый аргумент term, модуль Таксономия (Taxonomy) мы рассмотрим подробнее в одном из следующих уроков;
User ID from URL (номер пользователя) - работает когда первый аргумент user;
Мы рассмотрим эти аргументы в других уроках, а пока вводим пхп-код return arg(1);

Сохраняем аргумент и сам вид. Теперь должен появиться блок view_block_sotrudniki: Блок. Блок создается каждый раз, когда в какой-нибудь view добавляется дисплей типа блок. Выведем блок view_block_sotrudniki: Блок в регион Содержимое (content). В настройках видимости блока нужно прописать, чтобы блок отображался только на страницах с URL, где есть слово sotrudniki (чтобы вызвался первый view с галереей сотрудников) и после этого слова шел номер ноды (/* - звездочка после слэша обозначает как раз, что ожидается какое-либо значение после слэша).

drupal views cck галерея сотрудников с фотографией видимость блока(1).png

Зайдем на страницу имя_сайта/sotrudniki, теперь по щелчку на ФИО сотрудника будет появляться ФИО и О сотруднике.

Комментарии

Добавить комментарий

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Здравствуйте! Подскажите, как

Здравствуйте! Подскажите, как в вашем случае связать ноду сотрудника с активным полем главного меню "Сотруники". Хочется сделать, что бы цвет бэкграунда этого поля был одинаков, как в самом вьюсе 'сотрудники', так и в нодах, которые открываеются через ссылки в этом вьюсе? Делается соответственно для того, что бы посетитель сайта понимал, в каком разделе главного меню он находится. 

Цвет бэкграунда активного поля главного меню описываю в css таким образом:

#navigation #main-menu .links li.active {

background-color: #434343;

}