Для отображения на странице материала ссылки на файл я использую поле Файл (не Media). Есть код добавляющий атрибут target="_blank" к ссылке.
Но после применения этого кода ссылка выводится как html разметка.
Помогите сделать этот вывод ссылкой.
Вложение | Размер |
---|---|
kod.txt | 139 байт |
Комментарии
<?php
/*
Зачем код прикреплять файлом?
*/
?>
Прикрепил файлом, потому что фильтр drupal.ru его ломает.
Код ваш не смотрел, но совершенно очевидно, что там, где вы присваиваете значение переменной, само значение нужно обернуть в Markup::create($значение).
Пространство имён там Drupal\Core\Render\Markup
Я не силён в программировании. Мне это ни о чём не сказало. Пожалуйста, помогите готовым кодом. Спасибо.
Есть только два пути:
1. Научиться.
2. Заплатить тому, кто умеет.
Тут всегда рады помочь научиться. Но делать чужую работу никто не будет.
Вот и получается что даже люди, которые умеют кодить не могут решить эту задачу (по крайней мере, вот так с первого раза предложить правильно работающий код). А мне предлагают поучиться. При всём желании поучится, вряд ли я смогу написать решение правильней и быстрее.
8 глянцев из 10 - за такое добавление атрибутов.
Таким подходом, должно быть что-то подобное:
<?php
function MY_SUBTHEME_NAME_preprocess_file_link(&$variables) {
$variables['attributes']['target'] = '_blank';
}
?>
(Надеюсь, Вы в курсе про все эти замены "MY_SUBTHEME_NAME" на машинное имя используемой темы оформления, и про то что это пишется в MY_SUBTHEME_NAME.theme)
Или, попробуйте заменить / добавить шаблон темы для ссылок файлов (file-link.html.twig), на что-то вроде:
/**
* @file
* Default theme implementation for a link to a file.
*
* Available variables:
* - attributes: The HTML attributes for the containing element.
* - link: A link to the file.
*
* @see template_preprocess_file_link()
*
* @ingroup themeable
*/
#}
<span{{ attributes.setAttribute('target', '_blank') }}>{{ link }}</span>
[!] Учтите, что все это приведет к изменениям всех ссылок файлов в проекте.
Не знаю что за глянцы не в теме. Код в прикреплённом файле от https://drupal.ru/username/sas-drupalorg https://drupal.ru/comment/732577#comment-732577
Применить предложенные решения способен.
Увы, ни первое, ни второе не сработало. Вообще не дали никаких результатов. Кеш чистил.
В любом случае спасибо, что не прошли мимо.
2й вариант, я там какую то чушь написал. Нужно не спану добавлять атрибут, а ссылке, конечно же.
Попробуйте выяснить как это провернуть, сейчас нет под рукой ничего, сорри.
Но, и первый способ должен сработать, возможно где-то ошибку допустили.