2016-09-19 9 views
0

私はDrupalウェブサイトのelpais.comの動作を模倣したいと思っています。Drupalで最後に訪問したページを設定して取得するには?

elpais.comにアクセスしてbrasil.elpais.comのようなセクションに移動し、タブ/ウィンドウを閉じてからelpais.comに再度アクセスすると、システムは自動的にブラジルにリダイレクトされます.elpais.com。ご存じのとおり、システムはユーザーが最後に閉じた場所を保存します。

私はこれをDrupalウェブサイト用にしたいと思います。特にどのページでも。私がこれまでに行っていることは非常に簡単です

  1. miscフォルダにcookies.jsファイルを追加しました。 (このJavaScriptファイルのコードはHow do I set/unset cookie with jQuery?から取得しました)
  2. page.tpl.phpファイルでは、このdrupal_add_js('misc/cookies.js', 'file');を使用してファイルを呼び出し、Cookie管理用のJavaScriptコードを埋め込みました。

私は基本的な考え方を持っています:現在のURLをクッキーに保存します。JavaScriptを使用して、ユーザーが他のページにアクセスしたときに復元します。

これを実行するには何が必要ですか?アイデア、提案など?

答えて

1

まず、私はあなたがなぜJavaScriptからそれをしたいのかわかりません。ユーザーがページを開くたびに、PHPを使用してCookieまたはPHPセッションに現在のパスを保存します。次に、ページが開かれたときにそのクッキー/セッション値をチェックし、保存されたパスへのリダイレクトを行うロジックを作成します。

Drupalはリダイレクトを行うためのgoto機能があります。

https://www.drupal.org/node/2023537

をしかし、あなたはそれは不可能あなたが訪問した最初のものを除いて、他のページを訪問してあげるために、毎回リダイレクトをしないように監視します。リダイレクトにいくつかの余分な条件を追加します。つまり、サイトの他のページから来ていない場合にのみリダイレクトが行われます($_SERVER["HTTP_REFERER"] PHP変数をチェックしてください)。

+0

これはこれまで私が行ったことです:http://pastebin.com/gnbczNKV in page.tpl.php正しく動作しません。それがしているのは、明らかにリダイレクトを省略したことです。修正するように私に何を提案しますか?ありがとう – InfZero

+0

うーん、それはあなたをリダイレクトするので、あなたがヘッダー関数を呼び出した後に他のコードを実行できるかどうかはわかりません。 setcookie()をheader()の上に移動してみてください。 – MilanG

関連する問題