我正在尝试将“id =”background“的属性添加到实际的图片代码中。
<?php print render($content['field_bg_image']); ?>
我查了很多文章,他们都关注hook_form_alter,这不是一个表格。这只是一个图像字段,我只需要一个带有背景值的ID属性。我知道我可以使用javascript,但我想使用Drupal而不是添加更多的javascript。
答案 0 :(得分:5)
图像渲染通过theme_image_formatter()
运行,不允许您设置属性。
您可以通过手动构建图像来解决这个问题:
$img = theme('image', array(
'path' => $content['field_bg_image'][0]['#item']['uri'],
'alt' => $content['field_bg_image'][0]['#item']['alt'],
'attributes' => array('id' => 'background')
));
$content['field_bg_image'][0] = array(
'#markup' => $img
);
echo render($content['field_bg_image']);
那是未经测试的,所以如果您有任何问题请告诉我
答案 1 :(得分:0)
您可以为cck字段使用模板,在您的情况下,此文件的名称可以是field--field-bg-image.tpl.php
,并且应该放在当前主题文件夹中,然后您可以添加id
属性,例如这样:
// in field--field-bg-image.tpl.php
<div id="your-id" class="<?php echo $classes; ?>">
<?php print render($items); ?>
</div>
如果您不想在实际id
标记上设置img
,则可以在field--field-bg-image.tpl.php
文件的这些行中执行以下操作:
$object = $element['#object'];
$data = $object->field_bg_image[$object->language][0];
$fid = $data['fid'];
$width = $data['width'];
$height = $data['height'];
print '<img id="your-id" src="'.file_create_url(file_load($fid)->uri).'" width="'.$width.'" height="'.$height.'" />';
您也可以结帐theme_image()并执行以下操作:
print theme_image(
array('path'=>file_load($fid)->uri,
'attributes'=>
array('alt'=>'','id'=>'your-id')
)
);