我正在创建一个 joomla 系统插件。我想检查当前页面是否正在加载任何文章。
为此,我计划检查视图是否是文章并在这种情况下获取 id。但这在 sef 开启的情况下不起作用。
有没有办法得到这个。或在 SEF 为 ON 的情况下如何获取非 sef url。
回答这个问题可能为时已晚。:) 但是其他有同样问题的人可以使用这个代码——你应该在系统插件中使用onAfterRoute事件。尝试这个-
function onAfterRoute()
{
$option = JRequest::getVar('option');
$view = JRequest::getVar('view');
}
无论 SEF 是打开还是关闭,这都应该始终捕获“选项”和“视图”部分。同样,您可以捕获 url 的其他部分。
编辑:注意 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