如何将 img 标签添加到菜单链接?
How to add an img tag to menu links?
请帮我解决我的问题。
我在数据库中有一个 table,其中包含 mlid
(菜单 link id)列和 path
列 - 每个 link 主菜单都有一个图像。我创建了我的自定义模块,它将文件上传字段添加到菜单 link 编辑表单,并将其 mlid
(菜单 link id)和 path
(图像路径)保存到数据库。
我的问题是:如何在我的菜单项中显示我的图像?我只想为每个菜单项添加一个 <img src="..">
标签。
代码:
<ul class="menu">
<li>
<a>First menu item</a>
// <img>HERE I WISH TO GENEARATE AN IMG TAG</img>
</li>
<li>
<a>Second menu item</a>
// <img>HERE I WISH TO GENEARATE AN IMG TAG</img>
</li>
...
</ul>
请帮忙。
您可以在模块中实现 preprocess hook,以便将图像路径加载到传递给模板的 $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);
}
那你只需要重写模板函数,让它根据是否设置图片源输出tag即可。
在您的 主题的 template.php 中,创建您自己的 THEME_menu_link() 函数(或者如果它已被您当前的主题覆盖,请仔细添加逻辑到现有的) - 例如,以下覆盖主菜单的 default implementation):
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";
}
请帮我解决我的问题。
我在数据库中有一个 table,其中包含 mlid
(菜单 link id)列和 path
列 - 每个 link 主菜单都有一个图像。我创建了我的自定义模块,它将文件上传字段添加到菜单 link 编辑表单,并将其 mlid
(菜单 link id)和 path
(图像路径)保存到数据库。
我的问题是:如何在我的菜单项中显示我的图像?我只想为每个菜单项添加一个 <img src="..">
标签。
代码:
<ul class="menu">
<li>
<a>First menu item</a>
// <img>HERE I WISH TO GENEARATE AN IMG TAG</img>
</li>
<li>
<a>Second menu item</a>
// <img>HERE I WISH TO GENEARATE AN IMG TAG</img>
</li>
...
</ul>
请帮忙。
您可以在模块中实现 preprocess hook,以便将图像路径加载到传递给模板的 $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);
}
那你只需要重写模板函数,让它根据是否设置图片源输出tag即可。
在您的 主题的 template.php 中,创建您自己的 THEME_menu_link() 函数(或者如果它已被您当前的主题覆盖,请仔细添加逻辑到现有的) - 例如,以下覆盖主菜单的 default implementation):
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";
}