Вывод нод по полю термина (view)

Главные вкладки

Аватар пользователя ser ser 12 января 2015 в 16:40

Приветствую уважаемые!
Всех с новым годом!
С Друпал начал знакомство в этом году. Обычно разбираюсь сам, но тут бьюсь третий день безрезультатно.
Вопрос:
Как вывести ноды через view в которых значение поля field_nod равно значению field_term?

Например:
Будет около 100 терминов в которых значение поля field_term может быть 1,3,7 или 2,4(выбор нескольких значений)

Будет около 1000 материалов в которых значение поля field_nod может быть 3 или 5

Как реализовать такое на странице термина?

Спасибо. С Ув. Сергей.

Комментарии

Аватар пользователя ser ser 12 января 2015 в 18:08

adamant08 Спасибо за ответ!
Получается мне нужно установить модуль Views PHP и написать нужную фильтрацию?

Аватар пользователя adamant08 adamant08 12 января 2015 в 18:28

"ser" wrote:
Получается мне нужно установить модуль Views PHP и написать нужную фильтрацию?

да - ставите модуль и пишете условия проверки для возврата ТРУ.
В инете примеров много
http://drupal.stackexchange.com/questions/79941/drupal-7-views-php-filter
поищите, почитайте и правильно сделайте для проверки значения поля с каждым из терминов в другом поле.
Советую на тестовом материале потренироваться с простыми двумя полями.

Аватар пользователя adamant08 adamant08 12 января 2015 в 21:33

Вы меня своим постом натолкнули на мысль поправить костыли на одном из сайтов - взялся по быстрому сделать - но никак толком не получалось - пишут что сам модуль требует доделывания и на разных версиях свои приколы.
http://jayl.ee/blog/2014/10/29/how-to-use-the-views-php-drupal-module
у меня версия 7.x-1.0-alpha1 - помог этот пост
https://www.drupal.org/node/1686948#comment-7910665

Аватар пользователя ser ser 14 января 2015 в 19:35

Вообщем всё, что у меня получилось это получить поле (Глобальный: PHP) значение которого должно совпадать со значением поля ноды:

Вот этот код работает в поле Value code
Setup code не использовл. Версия как и у Вас.

//Получил id термина
$_GET['q'];
$h= arg(2);

//Получил значение поля
$hj = db_query("SELECT field_api_value FROM (field_revision_field_api) WHERE entity_id =$h")->fetchField();
return $hj;

Что дальше не знаю
Я на правильном пути?

Аватар пользователя adamant08 adamant08 15 января 2015 в 16:54

"ser" wrote:
Setup code не использовл

Как на меня пример в первом комментарии https://www.drupal.org/node/1686948#comment-7910665
более элегантный - в Setup code получаете значение поля - ну к примеру как-то так:
Setup code:
<?php
function testa($item) {
$thing = node_load($item->nid);
$fff=2;
if ($thing->field_pole_test['und'][0]['value']==$fff) {
return TRUE;
}
}
?>
в Filter code:
<?php
return testa($data);
?>
В этом примере - если у вас в поле field_pole_test будет значение 2 - функция вернет ТРУ - эти ноды скроются с вывода.
Вы на правильном пути - вместо $fff в моем примере - вам нужно запросом к БД получит массив значений поля таксономии и это все в цикле проверить условием равенства с полем.
Советую почитать тут https://www.drupal.org/node/1140896
там в комментариях есть варианты насчет таксономии