2010-06-07 7 views
2

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

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

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

ответ

0

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

Я думаю, вы все равно должны использовать поле cck. Вы хорошо описали сценарий, но это именно то, чего я пытался избежать. :-)

Я не хочу использовать поле cck для книг, и я не хочу скрывать его с помощью hook_form_alter.

Я думаю, что, наконец, я нашел решение, которое не требовало добавления дополнительных CCK-полей к моим типам контента «без изображения» (аудио и текст).

Существует модуль под названием «Виды пользовательского поля» (drupal.орг/проект/views_customfield), что позволяет добавить PHP обработанных-поле на ваш взгляд, так что вы можете фильтровать по типу контента и применить ImageCache или код 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

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

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

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

+0

Спасибо за ваше время, но это не то, о чем я прошу. Оба решения требуют изменения в моих книжных и аудиоконтентных типах, чтобы добавить определенное поле cck (файловое поле изображения) с изображением, и это именно то, чего я пытаюсь избежать. Любые идеи? –

+0

Это то, что вы просите, хотя? Перейдите в свой вид и нажмите на поле, которое показывает миниатюру. В его вариантах есть список выбора, который позволит вам выбрать предустановку imagecache, чтобы отображать миниатюру, как в этом представлении. – Kevin

0

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

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

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

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

+0

Спасибо вам за вашу помощь. > Я думаю, вы все равно должны использовать поле cck. Вы хорошо описали сценарий, но это именно то, чего я пытался избежать. :-) Я не хочу использовать поле cck для книг, и я не хочу скрывать его с помощью hook_form_alter. Наконец-то я нашел решение, которое не требовало добавления дополнительных CCK-полей к моим типам контента «без изображения» (аудио и текст). «Виды пользовательского поля» (http://drupal.org/project/views_customfield) позволяет вам добавить обработанное PHP-поле к вашему представлению. Таким образом, вы можете фильтровать по типу контента и применять код imagecache или imageapi. –