Прочитать значение поля $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'];
}
просто для одного значения поля ноды - одна вьюха для другого другая. вот и хотелось сделать что бы если значения поля ноды одно - одна вьюха если другое не выводить это поле во вьюхе вообще
м.б. в темизации виевс как то можно решить...
Вы же как всегда спрашиваете не то что хотите получить![Smile](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/smile.gif)
Нет, думаю это самый правильный вариант.
Нет ну ваше решение понятно. Я так и сделал - создал два вида и в зависимости. от значения поля вывожу нужный мне вид.
я просто хотел не залезая в шаблон через виевс. где нить в аргументах задать условие для значения поля ноды и если оно другое не выводить вьюху.
Хмм, в вьюхе задать условие на вывод вьюхи, причем от значения поля, обращение к которому произойдет только после выполнения вьюхи?
Вам не кажется это абсурдным?
может в адресе ноды прописать имя поля, и использовать его в аргументах views
нет. во виевс задать условия для значения поля и если оно не то то виевс не выводить...
ну это точно также как в аргументе выбираем нид узла и потом этот узел исключаем из списка или выбираем не показывать вивевс ели аргумент не але...
1. Вы выбираете не показывать значение если аргумент не але, а вьюха всеравно показывается и отрабатывает.
2. Есть вариант испольовать аргументы, но он всеравно связан с изменением кода в шаблоне + добавление кода в аргументы вьюхи, я не думаю что он будет легче.
Знаете что самое интересное, где нужно думать о скорости работы сайта вы об этом не думаете а делаете как проще, и наоборот где можно сделать проще и это не повлияет на скорость работы сайта, вы ищите вариант посложнее.
Как сказал бы мой знакомый психолог, "Вы хотите поговорить об этом?".
Риторический вопрос.
1. получается что так.
мне вот и хочется покапатся в шаблоне вьюхи и в аргументе на этом примере.
2. кто не будет легче то? код...
Тут не в шаблоне вьюхи придется копаться, а все-равно в шаблоне ноды чтобы передать вьюхе значение аргумента, вьюха сама не сможет его ниоткуда взять, у вас просто не существует такого поля для нее.
Да и существовать не может.
почему же. приатаченый вид же... к конкретному типу материала вяжеться же... разве нет?
Да, но значение то где у вас записан 0 или 1 никак не свзяно с это приатаченной вьюхой и вьюха о нем никак не может знать!
В вашем случае нода знает о вьюхе все, а вот вьюха о ноде в которой она вызывается не знает ничего.
Когда вы делаете наоборот: в вьюхе вызываете ноды, вы же не можете в поле ноды проверить какой вид вьюхи его в данный момент отображает. )
А единственный общий знаменатель здесь это шаблон, который знает все и о ноде и о полях фильтра вьюхи и о самой вьюхе.
А я думаю разбираться с обратными вызовами и пересылками аргументов из ноды во вьюху и последующую их обработку во вьюхе вам сейчас ни к чему.
так можно же добавить поле во вьюху и вот она уже знает... о ноде инфу...
Чтобы узнать значение этого поля во вьюхе вам нужно вывести эту ноду, внутри которой выводите вьюху, а это уже рекурсия.
Я же надеюсь что внутри ноды вы выводите вьюху, которая отображает другое содержимое?
восновном да. но в это решил попробовать вывести все поля через виевс...
Тогда тут я вам не помогу, думайте сами..хотя:
Первое что приходит на ум - аргумент:
значение - если нет, подставить аргумент по умолчанию
PHP код - подстановка значения из указанного вами поля
PHP проверка - 0 возвращать лож, 1 - истину.
И соответственно два вида с разными значениями, в зависимости от 0 или 1.
а разве в шаблоне вьюхи таблицу нельзя разобрать по полям и скрыть их хотя бы если поле ноды куда приатачена виевс не нужного значения?
1. В шаблоне вьюхе таблица уже разобрана по полям )))
2. В шаблоне вьюхи ты не можешь обратится к значению поля ноды ))
хренова!