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

问题描述 投票:4回答:3

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

drupal-7 civicrm
3个回答
2
投票

我想到了2种解决方案

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

1
投票

如果需要更高级的大小调整/图像转换选项,可以为图像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图像URL字段
  • 编辑视图 - >高级 - >信息
  • 找到与要自定义的字段对应的文件名,并在YOUR_THEME/templates/中使用此文件名创建文件
  • 粘贴以下代码(将'thumbnail'替换为您创建的样式名称): <?php if ($row->{$field->field_alias} != '') { print theme('imagecache_external', array( 'path' => $row->{$field->field_alias}, 'style_name'=> 'thumbnail')); } ?>
  • 返回编辑视图 - >高级 - >信息 - >重新扫描模板文件,然后保存视图。

0
投票

这在drupal 7 / CiviCRM 5.10+系统上并不是很有用(不知道它是否仍能在之前运行)。 为了使其工作,将其放在模板文件中:

<?php
$path = $field->render($row);
if (!empty($path)) {
  print theme('imagecache_external', array(
    'path' => $path,
    'style_name'=> 'thumbnail'));
}
?>
© www.soinside.com 2019 - 2024. All rights reserved.