我知道如何做到这一点在D6,使用一个图像缓存功能的覆盖。
但是现在,在D7中,我只是使用核心的图像字段(如我们在文章内容类型中)。

在我的template.php,我补充说

function bartik_image($variables) {
  $variables['attributes']['target'] = "_blank";
  $attributes = $variables['attributes'];
  $attributes['src'] = file_create_url($variables['path']);
  foreach (array('width', 'height', 'alt', 'title', 'target') as $key) {
    if (isset($variables[$key])) {
      $attributes[$key] = $variables[$key];
    }
  }
  return '<img' . drupal_attributes($attributes) . ' />';
}

我得到新的属性,但它不会改变链接。
如何进行?

注释

bfroehle的图片

 

实际的链接是用图像周围的A标签完成的。

产生图像和链接的主题函数是
theme_image_formatter()

你能用一个预处理器函数来完成这个吗?就像是

function bartik_preprocess_image_formatter(&$variables) {
  $variables['path']['options']['attributes']['target'] = '_blank';
}
bfroehle的图片

 

正是这样,非常感谢!

bfroehle的图片

 

状态:活性»修正

听到那个消息很开心。:)

 

状态:固定»关闭(固定)

自动关闭 - 问题固定为2周没有活动。

bfroehle的图片

 

嘿:) 
对不起重新打开一个封闭的问题,但这正是我也想做,但显然我做错了。我在我的template.php的末尾添加了bfroehle的代码(当然除了php标签),但没有改变。我究竟做错了什么?
(我使用bartik的“subheme”,基本上只是一个克隆的网站/所有/主题,有小的更改,这适用)
谢谢!

bfroehle的图片

 

嘿,

我在寻找类似的东西,但不想添加'_blank'目标到所有“a”标签,所以我在我的模块中添加了以下代码。希望这有助于别人。

谢谢,

$image = array(
                    'item' => $node->field_image['und'][0],
                    'image_style' => 'equipment_teaser',
                    'path' => array(
                                'path' => $path,
                                'options' => array(
                                    'attributes' => array(
                                        'target' => '_blank'
                                      )
                                    )
                                )
                );

$content = theme_image_formatter($image);

bfroehle的图片

 

jarvislukow,你添加这个作为一个自定义模块,或在template.php文件?

来自 https://www.drupal.org/node/1096228