【发布时间】:2014-04-07 09:09:49
【问题描述】:
如何在 Drupal 视图中调整 civicrm 图像(通过网络表单上传)的大小。 图片正在显示,但宽度和高度是上传图片时的大小..
【问题讨论】:
如何在 Drupal 视图中调整 civicrm 图像(通过网络表单上传)的大小。 图片正在显示,但宽度和高度是上传图片时的大小..
【问题讨论】:
想到2个解决方案
max-width 属性。这将使图像正确显示,但不会节省带宽,因为将在客户端下载和缩放完整图像。【讨论】:
如果您需要更高级的调整大小/图像转换选项,您可以为图像 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'));
}
?>
【讨论】: