I needed a navigation menu that used both text and images; replacing the text where an appropriate image existed.
This solution works well as a function in your custom theme template.php:
/** * Allows for images as menu items. * Just supply the an image path in the title. The image path will be replaced * with an img tag. The description is used as alt text and title. * Implements theme_menu_link(). * Reference: https://scito.ch/content/allow-images-menu-items-drupal-7 * All social image files need to be saved in files/social_icons */ function custom_theme_menu_link($variables) { $element = &$variables['element']; $title= $element['#title']; $file= 'public://social_icons/'.$title.'.png'; $directfile = '/files/social_icons/'.$title.'.png'; if(file_exists($file)){ // only grab a social icon if it exists based upon the name of the link in the menu $element['#title'] = '<img alt = "' . $title . '" src = "' . $directfile . '" title="Go to our '.$title.' channel." />'; $element['#localized_options']['html'] = TRUE; } return theme_menu_link($variables); }
Comments
Thanks for sharing that solution @onyx.