Всем привет!
Предыстория:
Не так давно понадобилось применить для сортировки значение суммы двух полей материала (даже не спрашивайте нафига это было нужно =)) и собственно решил я применить поле математическое выражение в котором складывал бы [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. Самое забавное что в итоге мне это решение так и не понадобилось - пошел другим путем =)
- Вперед
- Назад