January 25, 2012

Drupal 7. Views PHP и недоступность значений полей материалов

Всем привет!

Предыстория:

Не так давно понадобилось применить для сортировки значение суммы двух полей материала (даже не спрашивайте нафига это было нужно =)) и собственно решил я применить поле математическое выражение в котором складывал бы [field_a]+[field_b] и отсортировать по значению [expression], но вот ведь незадача - само поле математическое выражение в раздел сортировки не добавляется (вернее его нет в списке доступных). Тогда решил я применить для этих целей Views PHP и выдернуть значение [expression] оттуда или на крайняк сложить эти два несчастных поля там.

Тут оказался тоже небольшой облом который есть в обсуждении тут http://drupal.org/node/1172360

По советам из той темы решил посмотреть содержимое переменных которые доступны из поля. В качестве php-кода я ввел: dsm($row1) (функционал модуля devel который очень полезен при разработке сайта на drupal). Как оказалось значения многих полей были равны какому-то непонятному числу и все, данных никаких нет.

Решение

Только потом я допетрил что это id ноды значения полей которой мне нужны. Ну если мы знаем id,то значения полей выдернуть не проблема. Вот код который я применил:

<?php
//...

//Загружаем все поля ноды в stdObject class
$t=node_load($row1->field_a);

//$row->field_a - тут лежит только id нужной нам ноды

echo $t->{'field_a'}['und']['0']['value'];
//Вот уже само значение поля

Вот таким нехитрым, но мало очевидным на мой взгляд способом можно выдернуть значения полей для применения их в Views PHP. Самое забавное что в итоге мне это решение так и не понадобилось - пошел другим путем =)

Другие проекты:

telegram-catalog.top

rhamdeew © 2020