2011-06-15 97 views
2

我正在創建一個joomla系統插件。 我想檢查當前頁面是否正在加載任何文章。當SEF開啓時獲取Joomla非sef網址

爲此,我計劃檢查視圖是否爲文章並在此情況下獲取id。 但是,當sef打開時,這不起作用。

有什麼辦法可以得到這個。或者在SEF爲ON的情況下如何獲得非sef url。

回答

6

這可能是來不及回答。 :)但其他人有同樣的問題可以使用此代碼 - 你應該使用onAfterRoute事件在系統插件。 嘗試這個 -

function onAfterRoute() 
{ 
    $option = JRequest::getVar('option'); 
    $view = JRequest::getVar('view'); 
} 

這應該總是抓的「選項」和「視圖」部分不管SEF是打開還是關閉。 同樣,你可以捕捉網址的其他部分。

編輯:注意爲Joomla 3.x的,你應該使用JInput

$jinput = JFactory::getApplication()->input; 
$option = $jinput->get('option'); 
$view = $jinput->get('view'); 
0

您還可能要檢查的視圖變量,因爲有更多的佈局,這將意味着你是不是專門針對例如博客排版的文章頁面上...

0

你可以得到你的variables當您通過此行希望它:

$yourVariable = JRequest::getVar('yourVariableName'); 

只是可以肯定,在router.phpyourComponentNameBuildRoute函數將您的可變函數傳遞給$segment並在yourComponentNameParseRoute函數中將您的變量放回$var

欲瞭解更多詳情,請訪問此: http://docs.joomla.org/Supporting_SEF_URLs_in_your_component