如何在 Drupal 视图中调整 civicrm 图像(通过 webform 上传)的大小。图像正在显示,但宽度和高度是上传图像时的大小..
3 回答
想到2个解决方案
- 使用 css 为每个图像赋予一个
max-width
属性。这将使图像正确显示,但不会节省带宽,因为将下载完整图像并在客户端缩放。 - 使用一个 drupal 模块,例如Image Resize Filter
如果您需要更高级的调整大小/图像转换选项,您可以为图像 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')); } ?>
返回编辑视图 -> 高级 -> 信息 -> 重新扫描模板文件,然后保存视图。
这在 drupal 7 / CiviCRM 5.10+ 系统上不太适用(不知道它是否仍然适用于早期)。
要使其正常工作,请将其放入模板文件中:
<?php
$path = $field->render($row);
if (!empty($path)) {
print theme('imagecache_external', array(
'path' => $path,
'style_name'=> 'thumbnail'));
}
?>