2011-02-24 83 views
3

非常簡單的問題,我堅持。限制訪問Drupal中的匿名用戶頁面

我正在製作一個非常簡單的「分類廣告」網站;我有一個'分類'類型的內容類型,我想只爲註冊用戶提供該內容類型的訪問權限;我編輯權限,所以只有'認證'的用戶可以'創建分類',並創建了一個菜單鏈接'節點/添加/分類'。

問題是,當匿名時,我沒有看到'創建分類'菜單鏈接(對,因爲用戶沒有'創建'的權利),但我仍然希望這個菜單項出現我正在重定向到我的自定義403頁面,上面寫着'嗨,您必須先創建一個帳戶才能發佈分類'。

什麼是最好的「優雅」的方式來實現這一目標?

+0

能否也幫我這個http://stackoverflow.com/questions/5107212/how-to-實施基於類別的新聞簡報 – Disco 2011-02-24 18:44:38

回答

1

我實際上爲分類廣告系統做了同樣的事情。創建絕對URL作爲菜單項適用於我,而且非常簡單。

例如,而不是使菜單項路徑「節點/添加/分類」,將路徑設置爲「http://example.com/node/add/classified」。當你註銷時(如匿名)點擊菜單項時,Drupal會嘗試去創建分類頁面,但是會失敗權限檢查並重定向到你的自定義403頁面。

1

嘗試手動創建新的菜單項(管理>站點構建>菜單> 菜單名稱>添加項目),以指向節點/添加/保密的URL。

更新:您可以嘗試鏈接到/節點/ 403目的地=節點/添加/分類(其中節點/ 403是您的自定義403錯誤頁面)?

+1

沒有鍛鍊,我認爲這很明顯,爲什麼。 – Disco 2011-02-24 15:35:45

+0

我已經更新了我的答案。對不起,錯誤的答案,我還沒有早上咖啡因。 – 2011-02-24 17:54:22

+0

+1爲藉口 – Disco 2011-02-24 18:44:14

2

我的解決方案是創建一個新的頁面(通過hook_menu)在說「機密/添加」。在此頁面中,檢查用戶的ID =是否爲0,然後顯示有關加入網站的友好信息。

如果它們不是0,則追加/返回node_add('classified')。 (請注意,node_add是node.pages.inc,所以在需要的時候,你會希望包括。)