【问题标题】:In Drupal 7, can I change output if an image doesn't exist?在 Drupal 7 中,如果图像不存在,我可以更改输出吗?
【发布时间】:2017-05-22 13:27:57
【问题描述】:

我在 Drupal 7 中有一组文章,每篇文章都有一个图像字段。如果我从 FTP 中删除图像,或者图像损坏,或者由于某种原因不在它认为的位置,该站点将显示替代文本并出现损坏。在这种情况下,我想告诉 Drupal 做其他事情,比如显示“填充”或“默认”图像。有没有办法做到这一点?

我尝试在 php 中执行“如果文件存在”语句,但它不会让我编写它。如果没有输出,我尝试添加一个案例,但这仅适用于空输出,不适用于指向无效文件的输出。在我的研究中,我没有发现任何其他东西可以让我在 Drupal 中做到这一点。

请注意,当没有提供图像时,这不是一个动作。这适用于提供图像但不存在的图像。我希望网站能够优雅地失败。

谢谢! 布伦丹

【问题讨论】:

标签: php drupal drupal-7


【解决方案1】:

在 hook_field_display_alter 中,您可以检查 file_exists 并显示默认图像

【讨论】:

    【解决方案2】:

    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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      • 2022-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多