2016-09-19 64 views
0

我想模仿我的Drupal網站elpais.com的行爲。它的工作原理如下:如何設置並獲取Drupal中最後訪問的頁面?

如果您訪問elpais.com並轉到任何部分,如brasil.elpais.com,然後關閉該選項卡/窗口,然後重新訪問elpais.com,系統會自動重定向到巴西.elpais.com。正如您注意到的,系統會保存用戶上次關閉的位置。

我想爲Drupal網站做這個;特別是對於任何頁面。

我迄今所做的很簡單:

  1. 添加了cookies.js文件到文件夾misc。 (此JavaScript文件的代碼從How do I set/unset cookie with jQuery?獲得。)
  2. page.tpl.php文件中,我使用此drupal_add_js('misc/cookies.js', 'file');來調用該文件以嵌入用於cookie管理的JavaScript代碼。

我有一個基本的想法:將當前URL保存爲一個cookie -using JavaScript-,然後在用戶訪問任何其他頁面時恢復它。

我需要做什麼?想法,建議等?

回答

1

首先,我不明白你爲什麼想從JavaScript中做到這一點。每次用戶打開某個頁面時,使用PHP並將當前路徑存儲到cookie或PHP會話中。然後,做一些邏輯,當頁面打開時,檢查cookie/session值並重定向到存儲的路徑。

Drupal有製造重定向goto功能:

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

但要注意不要讓重定向每一次,因爲你使人們無法訪問,除非你訪問第一個任何其他頁面。爲重定向添加一些額外的條件,即只有當您不是來自您網站的其他頁面時才進行重定向(請參閱$_SERVER["HTTP_REFERER"] php變量)。

+0

這是我到目前爲止所做的:page.tpl.php中的http://pastebin.com/gnbczNKV它無法正常工作。顯然,它所做的是省略重定向。你建議我修改什麼?謝謝 – InfZero

+0

嗯,不知道你可以在調用頭函數後執行任何其他代碼,因爲它會重定向你。嘗試在header()之上移動setcookie(); – MilanG