当SEF开启时,获取Joomla非sef url

时间:2011-06-15 07:26:48

标签: joomla sef

我正在创建一个joomla系统插件。 我想检查当前页面是否正在加载任何文章。

为此,我打算检查视图是否为文章并在此情况下获取id。 但是,当sef打开时,这不起作用。

有没有办法解决这个问题。或者如果SEF开启,如何获得非sef网址。

3 个答案:

答案 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