2012-10-18 72 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]}

  • 發佈此模塊
  • 我希望它能工作。 謝謝