SEF启用时,获得Joomla非安全网址

问题描述

| 我正在创建一个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