Спасибо вам обоим за помощь.
Я думаю, вы все равно должны использовать поле cck.Вы хорошо сфотографировали сценарий, но это именно то, чего я пытался избежать.:-)
Я не хочу использовать поле cck для книг и не хочу скрывать его с помощью hook_form_alter.
Мне кажется, я наконец-то нашел решение, которое не требовало добавления дополнительных полей CCK к моим типам контента "без изображений" (аудио и текст).
Существует модуль под названием «Настраиваемое поле представлений» (drupal.org/project/views_customfield), который позволяет вам добавить в ваше представление обработанное PHP-поле, чтобы вы могли фильтровать по типу контента и применять кэш изображенийили код imageapi
$node=node_load($data->nid);
$img_path=drupal_get_path("module", "gt_medias") . "/images";
switch ($node->type) {
case "gt_video":
$img_path = $node->field_gt_thumbnail[0][filepath];
break;
case "book":
$img_path .= "/bookDefault.jpg";
break;
case "gt_audio":
$img_path .="/audioDefault.png";
break;
case "pingv_image":
$img_path = $node->field_pingv_image[0][filepath];
break;
}
$imgcache_url = imagecache_create_url('gt_medias_video_346', $img_path);
$output .= '<img src="'. $imgcache_url .'" ' />';
return ($output);
Где "gt_medias_video_346" - это имя моей предустановки imagecache.
Еще раз, спасибо вам обоим за помощь,
м.