【问题标题】:drupal cck image_field and imagecachedrupal cck image_field 和 imagecache
【发布时间】:2010-01-06 19:20:02
【问题描述】:

我无法让 imagecache 根据我创建的名为“thumbnail”的预设生成缩略图。我有一个 cck image_field 和一个自定义节点视图。我用来输出图像的代码是:

<?php foreach($node->field_comm_gallery as $galleryItem) { ?>
    <?php print theme('imagecache', 'thumbnail', $galleryItem['filepath'], $alt = '', ''); ?>
<?php } ?>

我从以下得到的输出是:

<img class="imagecache imagecache-thumbnail" title="" alt="" src="http://127.0.0.1/sites/default/files/imagecache/thumbnail/cedimages/3388564188_4427beac12_b_0.jpg"/>

<img class="imagecache imagecache-thumbnail" title="" alt="" src="http://127.0.0.1/sites/default/files/imagecache/thumbnail/cedimages/3388564188_4427beac12_b_2.jpg"/>

一切看起来都正确,但该文件夹中不存在这些文件。

我的问题:print theme(..) 调用是否应该在调用时动态生成缩略图,还是在创建/更新节点时生成缩略图?

我正在使用 GD Image 处理器并且没有收到任何错误。

【问题讨论】:

  • 有什么原因没有在节点的显示字段设置中或视图中设置预设?
  • 我已将显示字段设置为完整节点视图的“缩略图”。我没有使用视图,而只是我的内容类型的自定义页面 tpl。如果要使用显示字段设置,是否必须在php中调用不同的图像?
  • 是的,ImageCache 应该可以即时工作。您是否检查过 /admin/settings/file-system 上的文件系统设置? Imagecache 需要一个可访问的临时文件夹。另外,您是否检查了您的 apache/php 错误日志是否有错误?

标签: drupal imagefield


【解决方案1】:

节点字段值中包含已生成的显示值。所以不需要使用主题功能。但是无论如何都应该创建该文件。看起来问题出在 Drupals 临时文件夹或文件文件夹的权限上。看看文件设置中的那些。

【讨论】:

    【解决方案2】:

    感谢您的帮助。原来是这个bug (http://drupal.org/node/540486#comment-2356560)

    我不得不从 imageapi.module 中的函数参数中删除 &

    function imageapi_gd_image_resize(&$image, $width, $height)
    

    不知道为什么,但是在使用 php 5.x 时似乎中断了

    【讨论】:

    • 我发现核心非常好(虽然我已经看到了几个已修复的问题),但许多 contrib 模块在 PHP 5.3.x 中仍然存在问题。请记住,Drupal 6 核心仍然与 PHP4 兼容,许多 contrib 模块也尝试这样做。出现这个问题是因为 PHP 4 要求函数声明参数是通过引用传递的,而 PHP5 改变了默认情况下对象是通过引用传递的。 5.3 的引用处理更加严格,部分代码在 PHP5.2 上可以正常运行,但也不能同时兼容 PHP4 和 PHP5.3
    • 如果可以运行 Drupal 6,我建议坚持使用 PHP5.2.x,因为 PHP5.3.x 中的一些显着差异。 Drupal 7 将放弃对 PHP4 的支持,因此不同的 PHP 5.x 版本之间不应该存在任何兼容性问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多