当 SEF 打开时获取 Joomla 非 sef url

发布于 2024-11-15 15:20:17 字数 153 浏览 4 评论 0原文

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

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

有什么办法可以得到这个吗?或者在 SEF 开启的情况下如何获取非 sef url。

I am creating a joomla system plugin.
i want to check if the current page is loading any article.

For this i planned to check if view is article and get the id in that case.
But this is not working in case when sef is on.

Is there any way to get this. or how to get non-sef url in case SEF is ON.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

水水月牙 2024-11-22 15:20:17

这可能为时已晚。 :)但是其他有同样问题的人可以使用这个代码-
您应该在系统插件中使用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');

This might be too late to answer. :) But others having same issue can use this code-
You should use onAfterRoute event in system plugin.
try this-

function onAfterRoute()
{
   $option = JRequest::getVar('option');
   $view   = JRequest::getVar('view');
}

This should always catch the 'option' and 'view' part no matter if SEF is on or off.
Similarly you can catch other parts of the url.

EDIT: Note for Joomla 3.x you should use JInput

$jinput = JFactory::getApplication()->input;
$option = $jinput->get('option');
$view   = $jinput->get('view');
捶死心动 2024-11-22 15:20:17

您可能还想检查视图变量,因为有更多布局,这意味着您不是专门在文章页面上,例如类别博客布局......

You might also want to check the view variable, as there are more layouts which would mean you are not specifically on an article page for example the category blog layout...

魄砕の薆 2024-11-22 15:20:17

当您需要时,您可以通过这一行获取您的变量:

$yourVariable = JRequest::getVar('yourVariableName');

请确保在 router.phpyourComponentNameBuildRoute 函数中将您的变量传递给 < code>$segment 并在 yourComponentNameParseRoute 函数中在返回 $var 时放置您的变量。

欲了解更多详情,请访问:
http://docs.joomla.org/Supporting_SEF_URLs_in_your_component

You can get your variables when you wanted it by this line:

$yourVariable = JRequest::getVar('yourVariableName');

just be sure, on router.php in yourComponentNameBuildRoute function pass your varable to $segment and in yourComponentNameParseRoute function put your variable when you returned $var.

for more details visit this:
http://docs.joomla.org/Supporting_SEF_URLs_in_your_component

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文