4

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

4

3 回答 3

2

想到2个解决方案

  1. 使用 css 为每个图像赋予一个max-width属性。这将使图像正确显示,但不会节省带宽,因为将下载完整图像并在客户端缩放。
  2. 使用一个 drupal 模块,例如Image Resize Filter
于 2014-04-16T17:04:05.993 回答
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 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'));
    }
    ?>
    
  • 返回编辑视图 -> 高级 -> 信息 -> 重新扫描模板文件,然后保存视图。

于 2014-11-24T20:33:42.033 回答
0

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

<?php
$path = $field->render($row);
if (!empty($path)) {
  print theme('imagecache_external', array(
    'path' => $path,
    'style_name'=> 'thumbnail'));
}
?>
于 2019-03-22T12:48:55.653 回答