非图像CCK的Imagecache?

时间:2010-06-07 17:24:55

标签: drupal drupal-views

我正在创建一个包含图像,视频,音频和文档(书籍)的视图,我喜欢在旋转木马上显示每张图片。

只要我们在CCK中添加了图像缩略图(图像文件字段),所有内容都可以很好地处理图像和视频,但我们希望在不更改原始CCK的情况下显示音频和文档的默认图像。是否可以使用imagecache(可能是imagecache_custom_code或views_custom_php),或者我们需要寻找不同的方法?

感谢您的帮助, 米。

3 个答案:

答案 0 :(得分:0)

你可以从两个地方做到这一点。

首先,您可以进入CCK内容类型设置的显示字段部分,并在预告片和节点视图中更改其默认显示。您将获得所有当前图像缓存预设作为显示的尺寸选项。

其次,您还可以将输出更改为视图的一部分。将图像添加为要显示的字段将为您提供相同的预设选项集。

答案 1 :(得分:0)

我要说一些与Kevin非常相似的内容,但我认为这是您正在寻找的解决方案。要理解这个问题:

  • 您有3种内容类型,其中两种具有您单独设置的缩略图
  • 对于第三个,您希望显示默认图像,但不必设置它

我认为你仍然应该使用cck字段。

我可能会误解你的问题。

答案 2 :(得分:0)

感谢您的帮助。

  

我认为你仍然应该使用cck字段。   你对这个场景进行了很好的描述,但这正是我试图避免的。 :-)

我不想对书籍使用cck字段,我不想用hook_form_alter隐藏它。

我想我终于找到了一个解决方案,不需要在我的“非图像”内容类型(音频和文本)中添加额外的CCK字段。

有一个名为“视图自定义字段”的模块(drupal.org/project/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”是我的图片缓存预设的名称。

再次感谢你们的帮助,

米。