Есть стандартная views "Taxonometry term". Хочу добавить в неё поле из термина такснометрии "Description".
По умолчанию в доступных полях его нет. Попробовал через "Взаимоотношения" - сработало. Но. Пошли дубли. Distinct не работает.
Как убрать дубли либо добавить это поле иным способом?
Комментарии
http://flowtea.ru/zelenyy-chay
Выводиться описание и картинка термина. В заголовок вьюхи добавлена текстовая область с кодом. Можно (не обязательно) через views php.
<?php $current = taxonomy_term_load(arg(2));
print '
print theme('image_style', array('style_name' => 'categoryimg', 'path' =>
$current->field_timg['und'][0]['uri']));
print '
';
print '
';
?>
Делаю вьюс по терминам, добавляю фильтр по нужному словарю, и все поля у термина доступны по умолчанию.
пробовал. не работает.
Именно такое и хочу как в примере!
Пошёл разбираться.
Спасибо, [user=VasyOK], просто идеально. Хоят и лишний модуль [module=views_php] появился.
Сейчас ещё допилю поле изображение к термину, т.к. пример понравился и надо повторить
Можно и без модуля - текстовая область, формат ввода php.
Можно и в tpl.php для вьюхи подобный код всунуть
Это была первая попытка. Я только потом понял, что отключен модуль php filter, а просто был включен тип ввода. пока оставлю views php. Разнице для меня какой из модулей активен нет.
Выводите описание через Views в блоке с аргументом по ID термина таксономии из URL, потом этот блок добавляете в шапуку или подвал своей вьюхи через "Глобальный: Область представления "
Добавил "Термин таксономии: ID термина", ввожу ID тега в проверку - работает. Включил блок в свою основную views - не работает.
В настройках области включил "Наследовать контекстные фильтры" - заработало!
Супер решение. Спасибо [user=Boozenok]!
PS Мысль была что можно views во views втыкать, но без подсказки бы ничего не придумал. Все-таки контекстные фильтры и взаимосвязи не всегда очевидны для меня.
Раз 100 сделаете не правильно и все станет очевидным))
это да. опыт решает.
а можно как то развить конструкцию типа:
print всё.
else ничего не делать
В варианте Views оно птичками делается, а в php я не силён...
А там если нет описания у термина оно и так не будет нечего выводить
Или вы с другой целью спрашиваете?
Я про другое. Ваш вариант основан на views и там "Птичками" можно исключить при пустой views. А вот код [user=VasyOK] безальтернативен:Описание пропадает, а картинка все-равно отображается! К нему вопрос и обращён.
а сорри, не заметила))
если б я еще понял этот вопрос
Ваш код показывает картинку и описание. В случае если они отсутсвуют, описание не показывается, а картинка отображается заглушкой. Как бы сделать так что бы и картинка не отображалась?
Я предполагаю, что с помощью if...else (если есть описание и картинка, то отобразить, иначе не отображать) можно заранее сказать коду должен он отображаться или нет.
<?php if (!empty($описание_термина){
print '';}
else {
print $описание_термина;
}?>
Как-то так
Идею я понимаю. Но мое программирование осталось в универе мне бы готовое решение.
Вот итоговый код с проверкой на наличие каждого поля.
<?php
$current = taxonomy_term_load(arg(2));
if (empty($current->field_tag_img['und'][0]['uri'])) { print ''; }
else {
print '<div class="taxonomy-image">';
print theme('image_style', array('style_name' => 'thumbnail', 'path' =>
$current->field_tag_img['und'][0]['uri']));
print '</div>';
}
if (empty($current->description)) { print ''; }
else { print '<div class="taxonomy-description">'. $current->description .'</div>'; } ?>
ну вот, Вы все можете:)
Вот на этом примере
<?php
$current = taxonomy_term_load(arg(2));
if ($current->field_tkart['und'][0]['uri']) { /*Картинка в термине*/
print '
print theme('image_style',
array('style_name' => 'tovarvspiske',
'path' =>$current->field_tkart['und'][0]['uri'])
);
print '
';
}
?>
Если вьюха в блоке и картинка в термин не загружена выводиться ошибка:
Notice: Undefined property: stdClass::$field_tkart в функции eval() (строка 3 в файле .../modules/php/php.module(80) : eval()'d code).
Хотя все работает. В принципе можно убрать Notice если задать изображение по умолчанию. Например netkartinki.gif размером 1*1 px
это будет логично
Надо будет подумать. Может и сделать изображение по умолчанию