Прочитать значение поля $node->field_{name}[0]['value'];
<?php $view = views_get_view('views_name'); //Получаем вьюху $term = taxonomy_get_term($node->field_{name}['0']['value']); //У меня в поле записан термин
$args = array(); foreach ($terms as $key=>$t) { //Перевожу термин в аргументы, которые могу подставить в вьюху $args[$key] = $t->tid; } $arg = implode('+',$args);
print
$view->preview('default', array($arg)); //Вывожу вьюху, вид "default" ?>
Соответственно у вас в поле можен быть записано или название вьюхи или название вида вьюхи и все что угодно.
просто для одного значения поля ноды - одна вьюха для другого другая. вот и хотелось сделать что бы если значения поля ноды одно - одна вьюха если другое не выводить это поле во вьюхе вообще
1. Вы выбираете не показывать значение если аргумент не але, а вьюха всеравно показывается и отрабатывает.
2. Есть вариант испольовать аргументы, но он всеравно связан с изменением кода в шаблоне + добавление кода в аргументы вьюхи, я не думаю что он будет легче.
Знаете что самое интересное, где нужно думать о скорости работы сайта вы об этом не думаете а делаете как проще, и наоборот где можно сделать проще и это не повлияет на скорость работы сайта, вы ищите вариант посложнее.
Как сказал бы мой знакомый психолог, "Вы хотите поговорить об этом?".
Риторический вопрос.
Тут не в шаблоне вьюхи придется копаться, а все-равно в шаблоне ноды чтобы передать вьюхе значение аргумента, вьюха сама не сможет его ниоткуда взять, у вас просто не существует такого поля для нее.
Да и существовать не может.
В вашем случае нода знает о вьюхе все, а вот вьюха о ноде в которой она вызывается не знает ничего.
Когда вы делаете наоборот: в вьюхе вызываете ноды, вы же не можете в поле ноды проверить какой вид вьюхи его в данный момент отображает. )
значение - если нет, подставить аргумент по умолчанию
PHP код - подстановка значения из указанного вами поля
PHP проверка - 0 возвращать лож, 1 - истину.
И соответственно два вида с разными значениями, в зависимости от 0 или 1.
Комментарии
Это можно сделать в шаблоне ноды.
Прочитать значение поля $node->field_{name}[0]['value'];
<?php
$view = views_get_view('views_name'); //Получаем вьюху
$term = taxonomy_get_term($node->field_{name}['0']['value']); //У меня в поле записан термин $args = array();
foreach ($terms as $key=>$t) { //Перевожу термин в аргументы, которые могу подставить в вьюху
$args[$key] = $t->tid;
}
$arg = implode('+',$args);
print
$view->preview('default', array($arg)); //Вывожу вьюху, вид "default"?>
Соответственно у вас в поле можен быть записано или название вьюхи или название вида вьюхи и все что угодно.
В вашем случае:
<?php
$view = views_get_view('views_name');
if ($node->field_{name}['0']['value']) {
print $view->preview('default', array());
}
?>
это ясно. что можно. без шаблона хочется, что бы не плодить вьюхи...
Хмм, не понял что значит не плодить. В шаблоне вы никак не сможете плодить вьюхи.
Другого способа подсказать не могу, пользуюсь этим.
я в шаблоне пока сделал так
print $node->content['material_for_catology_node_content_5']['#value'];
}
else {
print $node->content['material_for_catology_node_content_4']['#value'];
}
просто для одного значения поля ноды - одна вьюха для другого другая. вот и хотелось сделать что бы если значения поля ноды одно - одна вьюха если другое не выводить это поле во вьюхе вообще
м.б. в темизации виевс как то можно решить...
Вы же как всегда спрашиваете не то что хотите получить
Нет, думаю это самый правильный вариант.
Нет ну ваше решение понятно. Я так и сделал - создал два вида и в зависимости. от значения поля вывожу нужный мне вид.
я просто хотел не залезая в шаблон через виевс. где нить в аргументах задать условие для значения поля ноды и если оно другое не выводить вьюху.
Хмм, в вьюхе задать условие на вывод вьюхи, причем от значения поля, обращение к которому произойдет только после выполнения вьюхи?
Вам не кажется это абсурдным?
может в адресе ноды прописать имя поля, и использовать его в аргументах views
нет. во виевс задать условия для значения поля и если оно не то то виевс не выводить...
ну это точно также как в аргументе выбираем нид узла и потом этот узел исключаем из списка или выбираем не показывать вивевс ели аргумент не але...
1. Вы выбираете не показывать значение если аргумент не але, а вьюха всеравно показывается и отрабатывает.
2. Есть вариант испольовать аргументы, но он всеравно связан с изменением кода в шаблоне + добавление кода в аргументы вьюхи, я не думаю что он будет легче.
Знаете что самое интересное, где нужно думать о скорости работы сайта вы об этом не думаете а делаете как проще, и наоборот где можно сделать проще и это не повлияет на скорость работы сайта, вы ищите вариант посложнее.
Как сказал бы мой знакомый психолог, "Вы хотите поговорить об этом?".
Риторический вопрос.
1. получается что так.
2. кто не будет легче то? код... мне вот и хочется покапатся в шаблоне вьюхи и в аргументе на этом примере.
Тут не в шаблоне вьюхи придется копаться, а все-равно в шаблоне ноды чтобы передать вьюхе значение аргумента, вьюха сама не сможет его ниоткуда взять, у вас просто не существует такого поля для нее.
Да и существовать не может.
почему же. приатаченый вид же... к конкретному типу материала вяжеться же... разве нет?
Да, но значение то где у вас записан 0 или 1 никак не свзяно с это приатаченной вьюхой и вьюха о нем никак не может знать!
В вашем случае нода знает о вьюхе все, а вот вьюха о ноде в которой она вызывается не знает ничего.
Когда вы делаете наоборот: в вьюхе вызываете ноды, вы же не можете в поле ноды проверить какой вид вьюхи его в данный момент отображает. )
А единственный общий знаменатель здесь это шаблон, который знает все и о ноде и о полях фильтра вьюхи и о самой вьюхе.
А я думаю разбираться с обратными вызовами и пересылками аргументов из ноды во вьюху и последующую их обработку во вьюхе вам сейчас ни к чему.
так можно же добавить поле во вьюху и вот она уже знает... о ноде инфу...
Чтобы узнать значение этого поля во вьюхе вам нужно вывести эту ноду, внутри которой выводите вьюху, а это уже рекурсия.
Я же надеюсь что внутри ноды вы выводите вьюху, которая отображает другое содержимое?
восновном да. но в это решил попробовать вывести все поля через виевс...
Тогда тут я вам не помогу, думайте сами..хотя:
Первое что приходит на ум - аргумент:
значение - если нет, подставить аргумент по умолчанию
PHP код - подстановка значения из указанного вами поля
PHP проверка - 0 возвращать лож, 1 - истину.
И соответственно два вида с разными значениями, в зависимости от 0 или 1.
а разве в шаблоне вьюхи таблицу нельзя разобрать по полям и скрыть их хотя бы если поле ноды куда приатачена виевс не нужного значения?
1. В шаблоне вьюхе таблица уже разобрана по полям )))
2. В шаблоне вьюхи ты не можешь обратится к значению поля ноды ))
хренова!