Сложные PHP контекстные фильтры Views
03 апреля 2020
Создание контекстного фильтра на базе нескольких полей через термин таксономии
В контекстных фильтрах надо установить разрешение на использование множественных значений ('+' и ',')
Пример для поля ссылки на термины таксономии
$term = taxonomy_term_load(arg(2)); if (!empty($term->field_categories)){ $categories = $term->field_categories['und']; foreach($categories as $category){ $cat_ids[] = $category['tid']; } return implode('+',$cat_ids); }else{ return 'all'; }
Пример для поля ссылки на ноды через ссылку на сущности
$term = taxonomy_term_load(arg(2)); if (!empty($term->field_products)){ $nids = $term->field_products['und']; foreach($nids as $nid){ $ids[] = $nid['target_id']; } return implode('+',$ids); }else{ return 'all'; }
Важно указать значение 'all' для случая, когда проверка PHP фильтра не приносит положительного результата. Контекстные ссылки выполняются все одновременно