Второй день не могу реализовать привязку изображения к термину таксономии для вывода во views. В предыдущих версиях Drupal эта функциональность подключалась модулем taxonomy_image. В Drupal 7 она включена в Ядро, и этот модуль для D7 отсутствует.
Итак, по пунктам мои действия:
1. Редактируем словарь, добавляем в список полей поле "Иконка" с типом "Изображение";
2. Добавляем изображения в термины словаря;
3. Создаем в настройках соответствующего view взаимосвязь с указанием на этот словарь;
4. Добавляем поле "Термин таксономии: Иконка".
На выходе получаем пустую рамку изображения и на каждое поле вывода ошибки:
<li>Notice: Undefined index: uri в функции theme_image_formatter() (строка 579 в файле /var/www/kubanclimb/data/www/kubanclimbing.ru/new/modules/image/image.field.inc).</li>
<li>Notice: Undefined index: alt в функции theme_image_formatter() (строка 580 в файле /var/www/kubanclimb/data/www/kubanclimbing.ru/new/modules/image/image.field.inc).</li>
<li>Notice: Undefined index: title в функции theme_image_formatter() (строка 589 в файле /var/www/kubanclimb/data/www/kubanclimbing.ru/new/modules/image/image.field.inc).</li>
</ul>
В каком месте я дурак?
Комментарии
Должно работать.
Скрипт будто не может найти "url" картинки, а также теги "alt" и "title". Нужно привести куски кода на которые ссылается ошибка и смотреть в чем проблема может быть...
Ошибки в следующей функции (номера строк, где возникают ошибки, выделены):
/**
* Returns HTML for an image field formatter.
*
* param $variables
* An associative array containing:
* - item: An array of image data.
* - image_style: An optional image style.
* - path: An array containing the link 'path' and link 'options'.
*
* ingroup themeable
*/
function theme_image_formatter($variables) {
$item = $variables['item'];
$image = array(
'path' => $item['uri'],
'alt' => $item['alt'],
);
if (isset($item['width']) && isset($item['height'])) {
$image['width'] = $item['width'];
$image['height'] = $item['height'];
}
// Do not output an empty 'title' attribute.
if (drupal_strlen($item['title']) > 0) {
$image['title'] = $item['title'];
}
if ($variables['image_style']) {
$image['style_name'] = $variables['image_style'];
$output = theme('image_style', $image);
}
else {
$output = theme('image', $image);
}
if (!empty($variables['path']['path'])) {
$path = $variables['path']['path'];
$options = $variables['path']['options'];
// When displaying an image inside a link, the html option must be TRUE.
$options['html'] = TRUE;
$output = l($output, $path, $options);
}
return $output;
}
НУ судя по всему не передаётся массив "$item". Но вот с чем это связано - я уже не подскажу...(
Сделал через php views...
Можно поподробнее?
Добавил поле с PHP-условием, где проверяется термин, присвоенный материалу. В зависимости от термина в поле подгружается тот или иной рисунок.
А вообще, после обновления views до свежей версии все заработало в штатном режиме, и этот костыль я убрал, сделав так, как указано в этом посте.
Подскажите, решили ли Вы эту проблему ? Если да то как. Я уже и патчил, и чего тока не делал. все равно выдает ошибки.
После очередного обновления все заработало. Видимо, были баги, которые в последующих версиях были исправлены. А какие ошибки?