我正在創建一個joomla系統插件。 我想檢查當前頁面是否正在加載任何文章。當SEF開啓時獲取Joomla非sef網址
爲此,我計劃檢查視圖是否爲文章並在此情況下獲取id。 但是,當sef打開時,這不起作用。
有什麼辦法可以得到這個。或者在SEF爲ON的情況下如何獲得非sef url。
我正在創建一個joomla系統插件。 我想檢查當前頁面是否正在加載任何文章。當SEF開啓時獲取Joomla非sef網址
爲此,我計劃檢查視圖是否爲文章並在此情況下獲取id。 但是,當sef打開時,這不起作用。
有什麼辦法可以得到這個。或者在SEF爲ON的情況下如何獲得非sef url。
這可能是來不及回答。 :)但其他人有同樣的問題可以使用此代碼 - 你應該使用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');
您還可能要檢查的視圖變量,因爲有更多的佈局,這將意味着你是不是專門針對例如博客排版的文章頁面上...
你可以得到你的variables
當您通過此行希望它:
$yourVariable = JRequest::getVar('yourVariableName');
只是可以肯定,在router.php
在yourComponentNameBuildRoute
函數將您的可變函數傳遞給$segment
並在yourComponentNameParseRoute
函數中將您的變量放回$var
。
欲瞭解更多詳情,請訪問此: http://docs.joomla.org/Supporting_SEF_URLs_in_your_component