我在Drupal 7中有一组文章,每篇文章都有一个图像字段。如果我从FTP中删除图像,或者它变得损坏,或者由于某种原因它不在它认为的位置,该网站将显示替代文本并显示损坏。我想告诉Drupal在这种情况下做其他事情,例如显示"填充"或"默认"图像。有没有办法做到这一点?
我尝试在 php 中执行"如果文件存在"语句,但它不允许我编写它。如果没有显示输出,我尝试添加一个案例,但这仅适用于空输出,不适用于指向无效文件的输出。在我的研究中,我没有发现任何其他东西可以让我在Drupal中做到这一点。
请注意,当没有提供图像时,这不是操作。这适用于提供了图像但不存在的情况。我希望网站正常失败。
谢谢!布兰登
在hook_field_display_alter中,您可以检查file_exists并显示默认图像
template_preprocess_node
将图像变量的uri
值传递给file_create_url。这将为您提供图像的绝对路径。
然后使用 PHP 的 file_exists 函数来验证图像路径是否存在。将此分配给变量$variables[image_exists] = file_exists($image_path);
然后在节点文章模板文件中:
if ($image_exists) {
// render $content['field_image']
} else {
// render some other markup
}