Я использую Views PHP для перезаписи полей в Views. Я могу получить доступ ко всем переменным, НО те, которые имеют режим сборки. В моем случае у меня есть поле Content: Node (которое может быть построено в соответствии с любым отображением), которое должно быть доступно с помощью переменной $row->nodefield
. Тем не менее, содержимое этой переменной всегда пусто. Я пробовал с другими переменными, и каждое поле с режимом сборки не будет отображаться в Views PHP .
Это проблема дизайна или я что-то упустил?
Я использую Drupal 7 и Views 3
РЕДАКТИРОВАТЬ
Использование dpm () для доступных значений возвращает следующее:
пм ($ строка)
пм ($ данные)
dpm($data)
в поле значения, Views возвращает "вызов неопределенной функции dpm ()" error "$row
Элементы «Доступные переменные» в представлениях бесполезны для получения значений полей. Но вам не нужно использовать,noad_load
чтобы получить необходимые данные. Сначала, как обычно, скройте вывод поля, которое вы хотите переписать, затем в поле «Код вывода» вашего поля PHP вы можете использовать$data
так:В этом случае я убираю запрещенные теги и атрибуты из контента для использования в экспорте NITF. Если вы не уверены, что внутри
$data
, вы можете, конечноprint_r($data)
, взглянуть на это.источник
$data->field_field_body[0]['raw']['value']
чтобы получить необработанное значение.Дополнительный совет: массив $ data действительно содержит необработанные данные узла и может быть напечатан. Но чтобы сделать это правильно, нам нужно обработать поля с помощью таких функций, как field_view_field .
источник
Вы пытаетесь сделать это изнутри? Почему бы не использовать тему самого шаблона представления вместо использования глобального PHP? Я не уверен, будет ли print_r работать внутри поля просмотра. Если бы это был я, я бы просто щелкнул тему -> информация, вы увидите что-то вроде views-view-field - MyViewName.tpl.php
(редактирование, уточнение) В папке темы модуля views скопируйте «views-view-field.tpl.php», затем переименуйте его в «views-view-field - MyViewName.tpl.php» и поместите в папку / templates на вашем сайте им. В файле вы увидите что-то вроде
Вы можете удалить это и добавить все свои поля вручную, как
и т.д. Или оберните вывод $ чем хотите.
Кроме того, у меня никогда не было большой удачи с DEVEL, я всегда просто использую:
Затем посмотрите на источник страницы, чтобы получить переменные. Возможно, я просто неправильно использую DEVEL, но я обнаружил, что гораздо проще получить переменные для каждой строки с помощью обычного старого PHP var_dump.
источник
Вы никогда не должны хранить код PHP в вашей базе данных (и с View PHP вы будете). Вместо этого используйте хук Views, чтобы изменить результаты.
источник
Я потратил два дня, чтобы найти решение. Самый простой способ - обновить модуль Views Php до 7.x-2.x-dev. Maintainer исправил эту проблему в версии 2.x.
Вы можете скачать отсюда (убедитесь, что вы скачали 7.x-2.x-dev ): https://www.drupal.org/project/views_php
Надежда может помочь кому-то.
источник