l(t('Edit'), 'node/' . $node->nid . '/webform/components/' . $cid, array('query' => drupal_get_destination())),
我希望能够用图像替换“编辑”一词,但是当我将图像 src 放在那里时,它会显示为文本。我应该使用其他功能吗?
我使用 Drupal 作为我的框架。
谢谢菜鸟。
最好的方法是结合l()和theme_image():
print l(theme_image(array('path' => 'edit_button.png', 'attributes' => array('title' => t('Edit')))), 'node/' . $node->nid . '/webform/components/' . $cid, array('query' => drupal_get_destination(), 'html' => TRUE));
您还应该使用drupal_get_path()为图像的路径添加前缀。这样您将完全适用于 Drupal 编码标准,并使您的生活更轻松。
例如,该按钮应该有自己的类,action_button
或者一个 id,例如edit_button
. 现在使用 CSS 隐藏文本并在其位置使用背景图像,如下所示:
.action_button, #edit_button {
/* Hide Text */
text-indent: -9999px;
display: block;
background: url('edit_button.png') no-repeat;
/* Set width and height equal to the size of your image */
width: 20px;
height: 20px;
}
编辑1:
使用下面的代码更改您的代码并使用上面的 CSS:
l(t('Edit'), 'node/'.$node->nid.'/webform/components/'.$cid, array('attributes' => array('id' => array('edit_button')), 'query' => drupal_get_destination()));
编辑 2 [最终]:
传递html
as TRUE
to array parameter
ofl()
方法可以使我们能够使用first parameter
asimg
标记,而不仅仅是显示为链接的文本:
l('<img src="edit_button.png" alt="Edit" />', 'node/'.$node->nid.'/webform/components/'.$cid, array('query' => drupal_get_destination(), 'html' => 'TRUE'));
这是我实施的最佳方式:
list($nodeImage) = field_get_items('node', $node, 'uc_product_image');
$style_array = array('path' => $nodeImage['uri'], 'style_name' => 'MY_IMAGE_STYLE');
$render_node_image = theme('image_style', $style_array);
$render_node_image_WITH_LINK = l($render_node_image, 'node/' . $node->nid, array('html' => TRUE));
print $render_node_image_WITH_LINK