Реализация функции taxonomy_image в Drupal 7 [Решено]

Главные вкладки

Аватар пользователя alezu alezu 17 декабря 2011 в 9:40

Второй день не могу реализовать привязку изображения к термину таксономии для вывода во views. В предыдущих версиях Drupal эта функциональность подключалась модулем taxonomy_image. В Drupal 7 она включена в Ядро, и этот модуль для D7 отсутствует.

Итак, по пунктам мои действия:
1. Редактируем словарь, добавляем в список полей поле "Иконка" с типом "Изображение";
2. Добавляем изображения в термины словаря;
3. Создаем в настройках соответствующего view взаимосвязь с указанием на этот словарь;
4. Добавляем поле "Термин таксономии: Иконка".

На выходе получаем пустую рамку изображения и на каждое поле вывода ошибки:

<ul>
 <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>

В каком месте я дурак?

Комментарии

Аватар пользователя StingMU StingMU 17 декабря 2011 в 13:01

Скрипт будто не может найти "url" картинки, а также теги "alt" и "title". Нужно привести куски кода на которые ссылается ошибка и смотреть в чем проблема может быть...

Аватар пользователя alezu alezu 17 декабря 2011 в 13:52

Ошибки в следующей функции (номера строк, где возникают ошибки, выделены):

/**
* 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;
}

Аватар пользователя alezu alezu 13 апреля 2012 в 8:59

Добавил поле с PHP-условием, где проверяется термин, присвоенный материалу. В зависимости от термина в поле подгружается тот или иной рисунок.

А вообще, после обновления views до свежей версии все заработало в штатном режиме, и этот костыль я убрал, сделав так, как указано в этом посте.

Аватар пользователя mulikm mulikm 18 июня 2014 в 11:32

Подскажите, решили ли Вы эту проблему ? Если да то как. Я уже и патчил, и чего тока не делал. все равно выдает ошибки.

Аватар пользователя alezu alezu 18 июня 2014 в 14:19

После очередного обновления все заработало. Видимо, были баги, которые в последующих версиях были исправлены. А какие ошибки?