acquia_marina(1.9版本)模板主菜单是采用menu_tree函数输入,与一般的模板是不一样的,在启用i18n模块之后,对主菜单的各项设置之后,发现所有的语言菜单都出现在主菜单的位置,而不是相关的语言.
这个要去修改模板文件template.php中的东东,找到这一行之后
$vars['primary_links_tree'] = menu_tree(variable_get('menu_primary_links_source', 'primary-links'));
将这行注释了,用下面的语句替代
$menu_name = 'primary-links';
static $menu_output = array();
if (!isset($menu_output[$menu_name])) {
$tree = menu_tree_page_data($menu_name);
global $language;
// Leave only current language menus and language neutral menus
$current_language = $vars['language']->language;
if ( ! empty($tree) ) {
foreach ( $tree as $menu_key => $menu_link ) {
if ( $menu_link['link']['options']['langcode'] != $current_language &&
! empty( $menu_link['link']['options']['langcode'] ) ) {
unset( $tree[$menu_key] ) ;
}
}
}
$menu_output[$menu_name] = menu_tree_output($tree);
}
$vars['primary_links_tree'] = $menu_output[$menu_name];
最新评论