Imagecache для не изображения CCKs? - PullRequest
2 голосов
/ 07 июня 2010

Я создаю представление с изображениями, видео, аудио и документами (книгами), и мне нравится показывать изображение каждого из них в карусели.

Все отлично работает с изображениями и видео, поскольку мы добавили миниатюру изображения (поле файла изображения) к их CCK, но нам нравится показывать изображение по умолчанию для аудио и документов без изменения исходного CCK. Это возможно с imagecache (может быть с imagecache_custom_code или views_custom_php) или нам нужно искать другой подход?

Спасибо за вашу помощь, м.

Ответы [ 3 ]

0 голосов
/ 10 июня 2010

Я собираюсь сказать что-то очень похожее на Кевина выше, но я думаю, что это решение, которое вы ищете.Чтобы понять проблему:

  • у вас есть 3 типа контента, два имеют миниатюры, которые вы устанавливаете индивидуально
  • , для третьего вы хотите, чтобы изображение по умолчанию отображалось, но не нужно было устанавливатьit

Я думаю, что вы все равно должны использовать поле cck.

Возможно, я неправильно понимаю вашу проблему.

0 голосов
/ 11 июня 2010

Спасибо вам обоим за помощь.

Я думаю, вы все равно должны использовать поле 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.

Еще раз, спасибо вам обоим за помощь,

м.

0 голосов
/ 07 июня 2010

Вы можете сделать это из двух мест.

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

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

...