默认情况下,我的网站上的论坛已启用论坛;我希望他们转移到分享/论坛。我可以采取哪些不同的方法,哪一种最好?
我尝试使用Pathauto模块执行此操作,但是当我希望它显示“Home>> share>> forum”时,面包屑会显示“Home>> forum”。
答案 0 :(得分:0)
有很多方法, 1)要么你可以使用pathauto(你使用它但它使用默认的nid跟踪事情,这就是为什么在面包屑中它显示的那样) 2)使用子域模块和移动你的论坛(如果你的主机支持那个) 3)使用一个单独的论坛模块,如phpbb左右,并把它放到你想要的路径,并使用重定向。
无论哪个适合你..
答案 1 :(得分:0)
如果您只想在共享/论坛上显示论坛页面,可以在自定义模块中使用以下代码。
function mymodule_menu_alter(&$items) {
if (isset($items['forum'])) {
$items['share/forum'] = $items['forum'];
unset($items['forum']);
}
if (isset($items['forum/%forum_forum'])) {
$items['share/forum/%forum_forum'] = $items['forum/%forum_forum'];
unset($items['forum/%forum_forum']);
}
}
如果您希望论坛在旧路径和新路径中均可见,则可以使用以下代码。
function mymodule_menu() {
$items['share/forum'] = array(
'title' => 'Forums',
'page callback' => 'forum_page',
'access arguments' => array('access content'),
'file' => 'forum.pages.inc',
);
$items['share/forum/%forum_forum'] = array(
'title' => 'Forums',
'page callback' => 'forum_page',
'page arguments' => array(1),
'access arguments' => array('access content'),
'file' => 'forum.pages.inc',
);
return $items;
}
对于面包屑,您需要实施hook_menu_breadcrumb_alter(),考虑文档页面中报告的内容。
实现应该考虑到在调用这个钩子之后,menu_get_active_breadcrumb()随后对活动路径执行以下调整:
- 如果'href'与$ item的'href'相同,则删除$ active_trail中的最后一个链接。发生这种情况,因为面包屑通常不包含指向当前页面的链接。
- 如果当前$ item为MENU_DEFAULT_LOCAL_TASK,则会删除$ active_trail中的(第二个)最后一个链接。当发生在默认本地任务的路径上时,发生这种情况是为了不显示当前页面的链接;例如当位于路径节点/%/ view上时,面包屑不应包含指向节点/%.
的链接