在Drupal视图中调整CiViCRM图像的大小

时间:2014-04-07 09:09:49

标签: drupal-7 civicrm

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

3 个答案:

答案 0 :(得分:2)

想到2个解决方案

  1. 使用css为每个图像赋予max-width属性。这样可以使图像正确显示,但不会节省带宽,因为整个图像将被下载并在客户端进行缩放。
  2. 使用drupal模块,例如Image Resize Filter

答案 1 :(得分:1)

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

由于CiviCRM正在保护文件(自4.4.4以来我们没有数据库中的文件网址?),您需要使用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图片网址字段

  • 修改视图 - >高级 - >信息

  • 找到与您要自定义的字段对应的文件名,并在YOUR_THEME/templates/

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

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

答案 2 :(得分:0)

这在drupal 7 / CiviCRM 5.10+系统上不太起作用(不知道它是否仍可以在较早的版本上运行)。
要使其正常工作,请将其放在模板文件中:

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