2009-07-24 117 views
3

任何人知道如何在用戶出現登錄屏幕並選擇創建新帳戶後返回「最後一頁」?在Drupal中註冊後重定向

基本上順序是這樣的:

  1. 用戶試圖去保護的內容
  2. 重定向到登錄頁面
  3. 如果他登錄如果他選擇「,他將被重定向到原來的頁面
  4. 創建新帳戶「並填寫完畢,他被重定向到主頁

我們如何讓他自動變紅被定向到原始頁面(不是靜態頁面)。

回答

4

有幾種方法可以解決這個問題。最直接的方法是在導航中的某處添加一個登錄鏈接,將鏈接追加到url。該代碼,這是一樣的東西:

<?php 
    if (user_is_anonymous()) { 
    $link = l(t('Login'), 'user/login', array('query' => drupal_get_destination())); 
    } 
?> 

您還可以在管理/設置/錯誤報告,可能要麼去輸出上面的代碼回調,或者一個簡單的PHP設置自定義訪問拒絕頁輸出該代碼的節點。

此外,Drupal核心提供的用戶登錄塊使用相同的方法將成功登錄重定向回原始頁面。

編輯:請注意,上述方法很少用於註冊,因爲這裏涉及更多的步驟。具體而言,當用戶需要驗證電子郵件地址時,通過電子郵件傳遞始發目的地將涉及修改核心用戶註冊過程。

它可能仍然可以在配置爲不驗證電子郵件地址的站點上運行。然後這個想法是提供2個鏈接:1個用於登錄,另一個用於註冊,都傳遞目的地信息。

LoginToboggan也可能值得追求,雖然它還沒有提供確切的註冊feature you're looking for

+0

這幾乎就是我所做的。我基本上通過鏈接到包含目的地的註冊頁面來定製用戶登錄塊(使用類似的語法)。似乎工作得很好。 – Jared 2009-07-24 23:22:18

0

直PHP將包含這種形式的頭:

<?php header("Location: " . $_SERVER['HTTP_REFERER']); ?> 

更多信息,請參閱php manual

編輯:

你也可以包括在一個隱藏字段您的表單並將其設置爲

$url = $_SERVER['PHP_SELF']; // or HTTP_REFERER depending on the setup 

包括剪切到您的註冊表單中的標題代碼。