Мне нужно вывести в блоке Views похожие материалы, код ниже при подстановки в контекстный фильтр (форма PHP) нужного мне поля позволяет делать, то что надо, НО
<?php return node_load(arg(1))->field_имя['und'][0]['tid']; ?>
Если у данной ноды нет такого поля или оно пустое то ошибка. Помогите, надо проверку прикрутить, у самого знаний не хватает.
Комментарии
какая помощь нужна - учебник по php подарить или дать ссылку на php.net ?
if ->
дальше яснее
или может всё-таки инструманталом вьюза обойтись?
Вот так работает НО с полями CCK
<?phpif (arg(0) == 'node' && is_numeric(arg(1))) {
$node = node_load(arg(1));
return $node->field_имя[0]['value'];
} else {
return FALSE;
}?>
А у меня поля на основе Терминов таксономии поэтому верхний вариант не проходит..
Пробывал вот так..
<?phpif (arg(0) == 'node' && is_numeric(arg(1))) {
$node = node_load(arg(1));
return $node->field_имя['und'][0]['tid'];
} else {
return FALSE;
}?>
тоже НЕТ..
Помогите спецы!!!!
Мне кажется, вы усложняете. Попробуйте вот так:
<?php if isset(field_имя['und'][0]['tid']) {return node_load(arg(1))->field_имя['und'][0]['tid'];} ?>
нет, не работает, нет не ошибки не блока..
<?php if (arg(0) == 'node' && is_numeric(arg(1))) {
$node = node_load(arg(1));
if(isset($node->field_имя['und'][0]['tid'])) {
return $node->field_имя['und'][0]['tid'];
} else {
return FALSE;
}
}?>
А если вот так:
<?php if isset(node_load(arg(1))->field_имя['und'][0]['tid']) {return node_load(arg(1))->field_имя['und'][0]['tid'];} else {
return FALSE;}?>
Парни СПАСИБО БОЛЬШУЩЕЕ!!!!!!!!!!
Вариант voviko работает!!!!! Спасибо!!!
Здравствуйте! Прошу о помощи. Проблема похожая, но не могу разобраться. Так же нужно сделать проверку, т.к. нотис появляется про переходе со страницы, на которой не было определенного поля.
<?php $node = node_load(arg(1));
print $node->field_small_descripton['und']['0']['value']; ?>