странности кода, связаного с imagefield [Решено]

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

Аватар пользователя IgorPr IgorPr 29 ноября 2010 в 17:07

Есть функция theme_content_view_multiple_field, в файле /sites/default/modules/cck/includes/views/content.views.inc. Она собирает элементы поля imagefield в html строку. Всё там хорошо, но если загрузить одну картинку, картинка выводится, но не этой функцией, что странно

Не могу найти функцию, которая отрабатывает вместо theme_content_view_multiple_field. Прошу помощи, может кто сталкивался...

Комментарии

Аватар пользователя YGerasimov YGerasimov 29 ноября 2010 в 19:09

Чуть-чуть не так. Поля выводятся handler'ом content_handler_field_multiple (см vies/handlers/content_handler_field_multiple.inc). Там стоит ветвление:

if (count($rendered) > 1) {
  // TODO: could we use generic field display ?
  return theme('content_view_multiple_field', $rendered, $field, $values);
}
elseif ($rendered) {
  return $rendered[0];
}

Соответственно если результат один, то вывод не проходит через темизационную функцию theme_content_view_multiple_field, а выводится через стандартный форматтер поля.

$output = content_format($field, $item, $formatter_name, $node);
if (!empty($output)) {
  $rendered[] = $this->render_link($output, (object) array('nid' => $nid));
}