2013-01-25 41 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'; 

這樣你就不會顯示什麼是不需要的,並且仍然讓你的組件接收到正確初始化的參數。