问题描述
|
我正在创建一个joomla系统插件。
我想检查当前页面是否正在加载任何文章。
为此,我计划检查视图是否为文章,并在这种情况下获取ID。
但这在打开sef的情况下不起作用。
有什么办法可以做到这一点。或在SEF为ON的情况下如何获取非安全网址。
解决方法
这可能为时已晚。 :)但是其他有相同问题的人可以使用此代码-
您应该在系统插件中使用onAfterRoute事件。
尝试这个-
function onAfterRoute()
{
$option = JRequest::getVar(\'option\');
$view = JRequest::getVar(\'view\');
}
无论SEF是打开还是关闭,这都应该始终捕捉\'option \'和\'view \'部分。
同样,您可以捕获URL的其他部分。
编辑:对于Joomla 3.x,请注意您应该使用JInput
$jinput = JFactory::getApplication()->input;
$option = $jinput->get(\'option\');
$view = $jinput->get(\'view\');
, 您可能还需要检查view变量,因为还有更多的布局,这意味着您不在文章页面上,例如类别博客布局。
, 您可以通过以下行在variables
时获得它:
$yourVariable = JRequest::getVar(\'yourVariableName\');
只需确定,在yourComponentNameBuildRoute
函数中的router.php
上将变量传递给$segment
,在yourComponentNameParseRoute
函数中将变量返回到$var
时就将变量放入。
有关更多详细信息,请访问:
http://docs.joomla.org/Supporting_SEF_URLs_in_your_component