Вы можете реализовать обработчик препроцессора в вашем модуле, чтобы загрузить путь к изображению в массив $variables
, который передается в шаблон:
function MODULE_preprocess_menu_link(&$variables) {
$element = &$variables['element'];
$mlid = $element['#original_link']['mlid'];
# Retrieve image source (if any) from database/original_link object.
$element['image_src'] = _your_helper_function($mlid);
}
Тогда вам просто нужно переопределить функцию шаблона, чтобы она выводила тег в соответствии с тем, был ли установлен источник изображения.
В файле template.php вашей темы создайте собственную функцию THEME_menu_link () (или, если она уже переопределена вашей текущей темой, аккуратно добавьте логику в существующую) - например, следующие переопределения реализация по умолчанию для Главного меню):
function THEME_menu_link__main_menu($variables) {
$element = $variables['element'];
$sub_menu = '';
if ($element['#below']) {
$sub_menu = drupal_render($element['#below']);
}
$output = l($element['#title'], $element['#href'], $element['#localized_options']);
if (!empty($element['image_path'])) {
$output .= '<img src="' . $element['image_path'] . '" />';
}
return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
}