2016-09-19 71 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