【问题标题】:Resize CiViCRM image in Drupal views在 Drupal 视图中调整 CiViCRM 图像的大小
【发布时间】:2014-04-07 09:09:49
【问题描述】:

如何在 Drupal 视图中调整 civicrm 图像(通过网络表单上传)的大小。 图片正在显示,但宽度和高度是上传图片时的大小..

【问题讨论】:

    标签: drupal-7 civicrm


    【解决方案1】:

    想到2个解决方案

    1. 使用 css 为每个图像赋予 max-width 属性。这将使图像正确显示,但不会节省带宽,因为将在客户端下载和缩放完整图像。
    2. 使用诸如Image Resize Filter之类的drupal模块

    【讨论】:

      【解决方案2】:

      如果您需要更高级的调整大小/图像转换选项,您可以为图像 URL 字段创建自定义模板文件,并使用 drupal 图像样式 (admin/config/media/image-styles) 来定义所需的转换。

      由于 CiviCRM 正在保护文件(自 4.4.4 以来我们在数据库中没有文件 url?),您需要使用 imagecache_external(没有设法使 image_style_url 工作)。这个模块的缺点是图像在drupal中是重复的。

      无论如何,让这项工作:

      • 安装imagecache_external,进入配置页面(http://YOUR_SITE/admin/config/media/imagecache_external),将YOUR_SITE加入白名单

      • 创建样式http://YOUR_SITE/admin/config/media/image-styles/add

      • 根据需要配置视图并添加 CiviCRM Image URL 字段

      • 编辑视图 -> 高级 -> 信息

      • YOUR_THEME/templates/中找到与您要自定义的字段对应的文件名并使用该文件名创建文件

      • 粘贴以下代码(将'thumbnail'替换为您创建的样式名称):

        <?php
        if ($row->{$field->field_alias} != '') {
          print theme('imagecache_external', array(
            'path' => $row->{$field->field_alias},
            'style_name'=> 'thumbnail'));
        }
        ?>
        
      • 返回编辑视图 -> 高级 -> 信息 -> 重新扫描模板文件,然后保存视图。

      【讨论】:

      • 这不太奏效 - 请参阅下面的模板更改答案
      【解决方案3】:

      这在 drupal 7 / CiviCRM 5.10+ 系统上不太适用(不知道它是否仍然适用于早期版本)。
      要使其正常工作,请将其放入模板文件中:

      <?php
      $path = $field->render($row);
      if (!empty($path)) {
        print theme('imagecache_external', array(
          'path' => $path,
          'style_name'=> 'thumbnail'));
      }
      ?>
      

      【讨论】:

        猜你喜欢
        • 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
        相关资源
        最近更新 更多