Здравствуйте, хочу добавить программно некий скрипт в View. Делаю с помощью хука views_pre_render,
<?php foreach($view->result as $value){
$value->_entity->set('field_action', '<div>22222 </div>');
} ?>
Все прекрасно добавляет но как текст, а мне нужно чтоб было HTML разметка.
Подскажите как добавить.
Комментарии
Что то похожее можно сделать из админки в представлениях - перезаписать результат. Но обратно же
<script> </script>
- удаляет.Кто то может подсказать?
https://www.drupal.org/docs/8/creating-custom-modules/adding-stylesheets...
> Здравствуйте, хочу добавить программно некий скрипт в View
Вот ещё никлана почитайте https://niklan.net/blog/72
Спасибо, кто ответил. Это немного не то, это подключение внешних библиотек, скриптов. А я бы хотел просто внедрить типа
<input type="button" value="Проверить" onclick="isEmail()">
- а оно в первом варианте берется как текст, а во втором вырезает onclickМне бы желательно фильтрацию эту обойти - может есть какой нибудь модуль.
Вы лучше напишите какую задачу вы пытаетесь решить. Так больше шансов, что вам подскажут верное и правильное решение
Я хочу внедрить в Views кнопки против каждой ноды, чтобы при нажатии срабатывал скрипт. В теории можно привязаться jquery к событию onclick, но там нада еще nid как то вытянуть тогда.
А что будет делать скрипт? Я бы решил это исключительно с помощью jQuery
кнопки быстрого управления - удалить, скрыть, поднять, выделить (это доска объявлений). Прикидывал jQuery можно использовать - но повторюсь, как тогда определить nid. В тех вариантах можно бы было сделать так - onclick="delete({{ nid }})".
Разве что прописать class="button_delete ndd_{{ nid }}" - а потом расшифровывать класс
nid можете вывести в виде data-параметра для ссылки (это можно сделать используя "перезапись поля" во views)
это я понимаю, но как мне кажется этот вариант немного неправильный, хотя по идее рабочий. Думал может кто подскажет как обойти фильтры в -перезапись поля или в $value->_entity->set.
Я бы для этого задействовал уже имеющуюся функциональность Views - Operations Links. Как минимум "удалить" будет работать уже из коробки, остальные можно добавить программно. Вот пример (один из): https://mushtaq.ch/blog/8/drupal-8-override-content-operations-links
Эта веб-страница находится в списке веб-сайтов с потенциально опасным содержимым.
У меня такого не наблюдается
Странно. Ну тогда прямо в документацию дорога: https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Entity%21...
Вы, похоже, не понимаете, что в данном случае вставка скрипта на страницу - не половина и даже не четверть дела. Никакой javascript не сможет "удалить, скрыть, поднять, выделить" ноду на сервере - для этого нужно писать обработчики/контроллеры на PHP. А весь необходимый клиентский код уже давно написан разработчиками Views - нужно только уметь им воспользоваться.
За ссылку спасибо. Я понимаю что javascript сам не сможет, - я планирую Ajax - а через него php.
В Друпал не принято так просто "обходить фильтрацию".
В Вашем случае, нужно думать о создании кнопок / ссылок которые будут осуществлять необходимые действия программно, и уже потом думать как улучшить их работу на клиенте.
Делайте правильно, и тогда будете чувствовать гибкость и отзывчивость системы, а не ее сопротивление.
Ну и в какую сторону смотреть, чтобы сделать кнопки программно. Через хук не получается - тоже фильтрует.
© Если все через хук делать - ничего не получится.
Смотреть:
Всем спасибо, думаю какой то вариант подойдет.
jQuery событие onclick не всегда привязывается.
window.onload = function() {}
выполняется до загрузки всего контента.