Категория:
Опубликовано:

Views. Делаем поле ссылкой на материал

Элементарная задача, сделать поле выводимое в представлении ссылкой на ноду.

Рассмотрим несколько способов.

1. У некоторых полей есть возможность установки ссылки по умолчанию (напр. Заголовок, NID, Изображение...)

Add link image Add link title

2. Если поле не имеет такой опции - правильный способ:

Добавляем в представление поле NID, скрваем его из вывода и перетаскиваем в самый верх.

Add new field Add NID field Change field weight Disable field Up NID Views link

В настройках поля (которое необходимо сделать ссылкой) открываем филдсет "Перезаписать результаты", ставим галку "Выводить это поле в виде ссылки" и добавляем значение в поле "Путь ссылки" -> node/[nid].

При необходимости вносим дополнительные настройки к ссылке (класс, всплывающую подсказку, цель и др.)

Все поля можно заполнять значениями из токенов. Доступные токены можно найти в филдсете "Подстановочные шаблоны"

Views tokens

Важно! Для добавления токенов полей, их нужно изначально добавить в представление, и поместить над полем, в котором его необходимо применить.

3. Не самый правильный способ:

В настройках поля, которое делаем ссылкой, открываем все тот же филдсет "Перезаписать результаты", но теперь выбираем "Заменить выводимое полем значением". И там уже ручками прописываем HTML-код ссылки. Токены так же доступны.

Rewrite field

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

Например при использовании 2-го варианта, все ссылки будут проходить через стандартные проверки Drupal, в том числе на существования синонима.

Таким образом, пользователь будет видеть ссылку site.name/page/zagolovok-stranicy? вместо site.name/node/368

Так же следует быть аккуратным с полями содержащими HTML-код.

Теги: 
Если у Вас возникли вопросы, замечания, предложения или просто благодарность - пишите в комментариях.
Делитесь полезными материалами в социальных сетях.

Комментарии

Спасибо большое! Очень помог, пол дня просидел не мог решить задачу.

Рад что пригодилось.

Всё хорошо, но а как добавить авторедирект (destination) к таким ссылкам? Я обычно использую php код, может подскажете решение?

Если страница (пункт назначения) известна:

<a href="node/[nid]?destination=path/to/destination" title="[title]">[title]</a>

Если destination должен быть динамическим - нужно немного PHP, например, темизировать шаблон поля и добавить в нем пункт назначения.

Большое спасибо! 2-ой способ реально помог решить задачу

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