【发布时间】:2011-06-15 07:26:47
【问题描述】:
我正在创建一个 joomla 系统插件。 我想检查当前页面是否正在加载任何文章。
为此,我计划检查视图是否为文章并在这种情况下获取 id。 但这在 sef 开启时不起作用。
有没有办法得到这个。或在 SEF 为 ON 的情况下如何获取非 sef url。
【问题讨论】:
我正在创建一个 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
【讨论】: