Снова доброго дня. На этот раз столкнулся с такой проблемой. Нужно вывести ряд материалов через views, в зависимости от значения переменной в сессии. Пытаюсь сделать это с помощью модуля Views PHP (позволяет добавить код пхп как критерий фильтрации материалов). Так вот, мне нужно одно из полей материала сравнить с $_SESSION['что-то_там']. Проблема заключается в том, что я не могу получить значение поля материала, чтобы сравнить его с этой переменной.
Пытался делать вот так:
<?php
if(isset($_SESSION['city']))
{
$city = $row->field_city['und']['0']['value'];
if($_SESSION['city'] != $city)
{ return true; }
else
{ return false; }
}?>
Как и ожидалось, код не работает.
Комментарии
Та мже прямо хелп под рукой по контектным переменным
Да, он есть, но они не возвращают значение, насколько я знаю, они возвращают только айдишники.
Фигнёй занимаетесь. View PHP вообще такой модуль, который лучше не использовать никогда. В вашем случае лучше воспользоваться не фильтром, а контекстным фильтром. Нажать опцию, что если фильтра нет в урл, то передать значение по умолчанию, выбрать там опцию пхп-код и написать:
<?php
$argument = $_SESSION['city'];
?>
Долго бился, решил задачу! Может пригодится кому:
gun_dose был прав, но не совсем, в фильтр нужно передавать не значение, а tid, и использовать return, а не $argument. Получилось так:
<?php
$terms = taxonomy_get_term_by_name($_SESSION['city']);
$tid = key($terms);
return $tid;
?>
Хватит гнать на PHP filter = востребованный модуль, не для чистоплюев, много делает гибкий, а уязвимости поперек и вдоль постоянно правят и без него . Лучшее решение = то которое работает уже. В Друпале можно многое реализовать по разному и это не повод хаять другие варианты если конечно позволяет скромность и уровень знаний.