2012-10-18 46 views
3

我已经创建了自己的扩展。该扩展可以从网站的不同组件和部分访问。返回上一页joomla

我遇到的问题是可能有多个链接到此扩展的不同URL。我有一个“取消”按钮,我无法弄清楚如何让这个按钮链接到前一个URL。

想知道是否有东西内置到像getPreviousURL的joomla?找不到任何东西。

编辑:我应该说,我仍然希望能够运行我的取消()方法。例如index.php?option = com_mycomp & task = mycomp.cancel。然后,cancel()方法将执行前一页的重定向。

+1

你是什么意思的“以前的网址”?浏览器历史记录中的前一个网址或其他内容? – jondinham

+0

嗯,我真的不想使用浏览器历史记录,但是,是的,我的意思是如果你点击后退按钮的URL,那就是你要去的URL。 –

+0

然后使用“window.history.back();” – jondinham

回答

6

如果我理解你的问题是正确的,这将帮助你确定。 Joomla不支持这样的东西,但JavaScript。

JS

<script> 
function goBack() 
    { 
    window.history.back() 
    } 
</script> 

HTML

<input type="button" value="Cancel" onclick="goBack()" /> 

背面()方法加载在历史列表中的前一个URL。这是 与点击后退按钮或history.go(-1)相同。

根据需要更新了答案。

PHP

如果JavaScript并不是一种可能性,你可以使用HTTP_REFERER,消毒它,并通过PHP回声出来。

<?php 
    $url = htmlspecialchars($_SERVER['HTTP_REFERER']); 
    $this->setRedirect($url); 
?> 

这不会工作,如果

  • 进入网站的URL在浏览器地址栏中本身。
  • 通过浏览器维护的书签访问该网站。
  • 作为窗口/选项卡中的第一页访问该网站。
  • 已安装安全软件(防病毒/防火墙/等),从所有请求中删除引荐来源。
  • 以编程方式(如curl)访问网站,而不设置引用标头(searchbots!)。

如果遇到任何问题,请告诉我。

更新答案 - 的Joomla方法

$url = JFactory::getURI(); 
$request_url = $url->toString(); 
+0

谢谢Dasun。抱歉,我应该说我仍然想运行我的cancel()方法。例如的index.php?选择= com_mycomp&任务= mycomp.cancel。然后,cancel()方法将执行前一页的重定向。 –

+0

检查更新的答案。 – Techie

+0

谢谢 - 这似乎并不奏效。它只刷新页面,即与当前页面相同的URL。 –

1

我已经做到了这个办法:

  1. 安装Joomla扩展“JUMI” @网址http://extensions.joomla.org/extensions/extension/core-enhancements/coding-a-scripts-integration/jumi

  2. 创建一个HTML文件(例如:back.html)并编写以下代码:

<script> 
 
function goBack() 
 
    { 
 
    window.history.back() 
 
    } 
 
</script>
<input type="button" value="Back" onclick="goBack()" />

  • 保存成的Joomla根目录。

  • 在的Joomla创建自定义模块和写语法:

  • {JUMI [back.html]}

  • 发布此模块
  • 我希望它能工作。 谢谢