2013-01-25 42 views
1

我想在我的Joomla网站上制作SEF这是类似的东西root/<menu-item-alias>/<view-name>/<item-alias>从SEF链接中删除一部分链接joomla

我意识到,如果我添加任何东西在route.php返回的功能MyComponentBuildRoute()价值,它总是出现在我的网址:

$segments[] = $view; 
$segments[] = $item_alias; 
return $segments; 

我看一看在的Joomla com_content,它并没有<view-name>部分,只是root/<menu-item-alias>/<item-alias>然而在代码中还有类似

$segments[] = $view;

我该怎么办就好像默认com_content呢?如何从我的SEF链接中删除视图名称部分或其他任何部分?

回答

2

不推荐编辑joomla核心,如果你可以做到这一点,而不修改核心,那就太棒了。我建议使用Artio JoomSEF,它可以让您编辑SEF URL的组成部分,这样你就可以决定,为每个页面,您的网址是什么www.yourdomain.tld后/

enter image description here

完整的图像在:http://www.diystash.com/sefproblem.png

希望这BuildRoute()帮助

+0

我不是edditng Joomla核心,我在自己的组件上工作,我想将我的SEF链接配置应用到它上面 –

0

添加到$段仅要在看到这些值网址;

$segments[] = $query['task']; 

然后删除该变量,否则将仍然添加查询参数:

unset($query['task']); 

所以举例来说,如果你想摆脱布局参数,并不在乎其值,只是

unset($query['layout']); 

在ParseRoute():

假设$瓦尔是你回来,只是分配给你从URL段所需要的部分,但要确保重现那些你需要的数组:即视图等,以便恢复布局PARAM:

$vars['layout']='mydefaultlayout'; 

这样你就不会显示什么是不需要的,并且仍然让你的组件接收到正确初始化的参数。