2011-06-15 98 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