从DRUPAL 7上的图像中删除宽度和高度属性

时间:2012-05-29 06:47:35

标签: image drupal height width

如何删除Drupal 7对图像的自动属性?

1 个答案:

答案 0 :(得分:13)

使用Drupal 7,您只需要实现hook_preprocess_image(),因为为每个主题函数执行预处理函数,而不仅仅是使用模板文件的函数。在您的情况下,以下代码就足够了。

function mymodule_preprocess_image(&$variables) {
  foreach (array('width', 'height') as $key) {
    unset($variables[$key]);
  }
}

由于$variables['attributes']还包含图像属性,因此以下代码更完整。

function mymodule_preprocess_image(&$variables) {
  $attributes = &$variables['attributes'];

  foreach (array('width', 'height') as $key) {
    unset($attributes[$key]);
    unset($variables[$key]);
  }
}

mymodule 替换为模块/主题的简称。

当您需要更改传递给主题函数/模板文件的变量时,首选预处理函数。仅当您需要更改它们返回的输出时,才应覆盖主题函数。在这种情况下,您只需要更改变量,因此不必覆盖主题函数。使用预处理钩子,您的代码将与未来的Drupal版本兼容。