3

独自の拡張機能を作成しました。この拡張機能には、Webサイトのさまざまなコンポーネントや部分からアクセスできます。

私が抱えている問題は、この拡張機能にリンクするさまざまなURLが存在する可能性があることです。「キャンセル」ボタンがあり、このボタンを前のURLにリンクする方法がわかりません。

getPreviousURLのようなjoomlaに組み込まれているものがあるかどうか疑問に思っていますか?何も見つかりませんでした。

編集:cancel()メソッドを実行できるようにしたいということを言っておくべきでした。例:index.php?option = com_mycomp&task=mycomp.cancel。次に、cancel()メソッドは、前のページへのリダイレクトを実行します。

4

2 に答える 2

6

私があなたの質問を正しく理解していれば、これは確かにあなたを助けるでしょう. Joomla はそのようなものをサポートしていませんが、Javascript はサポートしています。

JS

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

HTML

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

back() メソッドは、履歴リストに以前の URL をロードします。これは、[戻る] ボタンまたは history.go(-1) をクリックするのと同じです。

必要に応じて回答を更新しました。

PHP

JavaScript が使用できない場合は、HTTP_REFERER を使用してサニタイズし、PHP 経由でエコーアウトすることができます。

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

次の場合、これは機能しません。

  • ブラウザのアドレスバー自体にサイトの URL を入力しました。
  • ブラウザが保持するブックマークからサイトにアクセスしました。
  • ウィンドウ/タブの最初のページとしてサイトにアクセスしました。
  • すべてのリクエストからリファラーを削除するセキュリティ ソフトウェア (ウイルス対策/ファイアウォールなど) がインストールされている。
  • リファラー ヘッダー (searchbots!) を設定せずにプログラム (curl など) でサイトにアクセスした。

問題が発生した場合は、お知らせください。

更新の回答 - Joomla メソッド

$url = JFactory::getURI();
$request_url = $url->toString();
于 2012-10-18T06:15:21.933 に答える
1

私はこのようにしました:

  1. Joomla 拡張機能「jumi」@ URL http://extensions.joomla.org/extensions/extension/core-enhancements/coding-a-scripts-integration/jumiをインストールします。

  2. html ファイル (ex: back.html) を作成し、次のコードを記述します。

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

  1. Joomla ルート ディレクトリに保存します。

  2. Joomla でカスタム モジュールを作成し、構文を記述します。

{じゅみ[back.html]}

  1. このモジュールを公開

うまくいくことを願っています。ありがとう

于 2015-04-27T17:08:17.793 に答える