我正在创建一个joomla系统插件。 我想检查当前页面是否正在加载任何文章。
为此,我打算检查视图是否为文章并在此情况下获取id。 但是,当sef打开时,这不起作用。
有没有办法解决这个问题。或者如果SEF开启,如何获得非sef网址。
答案 0 :(得分: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');
答案 1 :(得分:0)
您可能还想检查视图变量,因为有更多布局意味着您不是专门针对文章页面,例如类别博客布局......
答案 2 :(得分:0)
您可以通过以下行获取variables
:
$yourVariable = JRequest::getVar('yourVariableName');
确保在router.php
yourComponentNameBuildRoute
函数中将您的可变量传递给$segment
,并在yourComponentNameParseRoute
函数中将您的变量放回$var
。< / p>
了解更多详情,请访问: http://docs.joomla.org/Supporting_SEF_URLs_in_your_component