На пальцах объяснить тяжело, поэтому я нарисовал, чтобы было легче
Под номером 1 нода. К ней через node reference выстраивается связь от ноды 2 таких нод много, образно назовем эти ноды вторым уровнем. От каждой ноды на втором уровне точно так же выстраивается связь от нод 3-го уровня до нод второго и точно так же 4-й уровень выстраивается связь к нодам 3-го
Задача: с помощью views вывести 3-й уровень, но так, чтобы этот 3-й уровень показывался (ссылки на ноды) как на 3-ем уровне так и если открыта нода 4-го уровня - как это сделать?
Получилось вывести только на 3-ем уровне, при переходе на 4-й нужного аргумента уже нет
Подскажите, пожалуйста
Вложение | Размер |
---|---|
node-reference.png | 19.06 КБ |
Комментарии
Решил.
Одно из решений:
1. К каждой, условно ветке, ноде присваиваем термин (на скрине 3 ветки - 3 термина)
2. Добавляем cck поле ввиде чекбокса им мы отмечаем те пункты, которые будут видны во всей цепочке связей
3. Все, собираем блок views с аргументом "Таксономия: ID термина" и фильтром по нашему cck полю
<?php
$node=node_load(arg(1));
if($node){
foreach($node->taxonomy as $term){$terms[]=$term->tid;}
return implode('+',$terms);
}else {return;}
?>
Остается вопрос, насколько изящное это решение.. может есть проще? В моем случае нужно заводить словарь, отмечать нужный термин, нет это не сложно, но это лишние действия.
Хотелось бы вместо аргумента на таксономии аргумент на связи с родителем, тогда не пришлось бы отмечать "нужный термин"