http://drupal.org/node/110199
Description
To insert an image instead of text in a menu item you may rewrite
theme_menu_item_link().
Drupal 6 version
See here for a functional Drupal 6-tested version.
Step 1 of 2
Put this code into your template.php inside your themes directory:
<?phpfunction phptemplate_menu_item_link($item, $link_item) {
/* Allow HTML if the menu text is an image tag: call l() with 7th argument set to TRUE
* See <a href="http://api.drupal.org/api/4.7/function/l
" title="http://api.drupal.org/api/4.7/function/l
" rel="nofollow">http://api.drupal.org/api/4.7/function/l
</a> */
if( strpos($item['title'], '<img') === 0) {
return l($item['title'], $link_item['path'], !empty($item['description']) ? array('title' => $item['description']) : array(), NULL, NULL, FALSE, TRUE);
}
return l($item['title'], $link_item['path'], !empty($item['description']) ? array('title' => $item['description']) : array());
}?>
Here we just look for the menu title starting with the HTML tag
<img and if true call
l() with the 7th argument set to TRUE. This will allow HTML inside the menu text. See
http://api.drupal.org/api/4.7/function/l.
Step 2 of 2
Now just enter an image tag into the "Title" field inside the "edit menu item" form (administer > menus > (edit or add item)) like
<img src="/sites/default/menu_item.gif" />
Notes
- This code should work in Drupal 5.0 too. At least the
l() function did not change from 4.7 to 5.0
Additional resources
No comments:
Post a Comment