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

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-ой способ реально помог решить задачу

Подскажите, а как вывести файл (например PDF)? который также прикреплен полем? когда делаю подстановку для поля файл - выдается какая-то неправильная ссылка

Навскидку - там должен быть форматтер, в настройках поля с файлом, его установить на отображение URL файла, и потом этот токен заюзать.

Столкнулся с проблемкой. Вывод ссылки на файл. Результат вебформы (представление стандартное по результатам заполненных вебформ) сам файл выводиться правильно название под название ссылка, где файл лежит на сервере, но нужно сделать, что бы загруженный файл открывался во всплывайке. Переписал значение поля, выводить как ссылку вместо ссылки поставил доступный токен [value] (это ссылка на файл), но при обработке скобки " [ " заменяются на пробел и в ссылке появляется %20 соответственно ссылка становиться кривой. Как можно победить этот баг.

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