我想在Drupal 7中創建一個自定義錯誤頁面。有像set_message
這樣的東西,但是他們不記錄錯誤。那麼是否有任何鉤子或類似的東西來捕捉錯誤,將其記錄並向用戶顯示人爲錯誤?Drupal錯誤頁面
1
A
回答
1
您在上面陳述過,您的目標是「發現錯誤,記錄並向用戶顯示人爲錯誤」。
在這種情況下,您可能正在尋找功能Try/Catch,它允許您嘗試運行一段代碼,如果出現問題,它會顯示一條消息。
在您的特定情況下,你可以用看門狗功能錯誤記錄到Drupal的數據庫日誌記錄系統http://api.drupal.org/api/drupal/includes--bootstrap.inc/function/watchdog/7
可選您也可以登錄該到PHP的error_log以及看到http://php.net/manual/en/function.error-log.php
然後,你可以繼續使用您已經想出的drupal_set_message函數將消息顯示給用戶。
爲你想要什麼來完成會是這個樣子的最終代碼:
try {
// RUN YOUR CUSTOM CODE HERE
} catch (Exception $e) {
// Record the error Drupal's database log
watchdog('error_page', $e->getMessage());
// Record the error to PHP's error_log
error_log($e->getMessage());
// Display a message to the user
drupal_set_message("We're sorry, but we couldn't find the page you were looking for.", 'error');
}
0
drupal_get_messages()可用於獲取數組以迭代消息的錯誤類型。
我不確定我是否對您的問題有100%的理解,但是因爲您引用了drupal_set_message(),我認爲這可能是您正在尋找的內容。
你可以在hook_init()中處理它,檢查那裏的消息,如果你找到任何東西,就用它做點什麼。
重定向一個錯誤雖然可能會破壞默認的drupal功能,如窗體。
相關問題
- 1. 在drupal中找不到頁面錯誤
- 2. Drupal首頁錯誤
- 3. 您無權訪問此頁面drupal 8管理登錄頁面錯誤
- 4. Drupal 8 preprocess頁面
- 5. Drupal頁面內容
- 6. Drupal面板頁Pathauto
- 7. Drupal 7.23打開頁面時出現警告和錯誤信息
- 8. 如何在404頁面上設置隱藏塊(錯誤)Drupal
- 9. 的Drupal:錯誤消息時添加新的頁面
- 10. Drupal 7使用視圖添加頁面SQL錯誤
- 11. 去Drupal站點/管理頁面時出現403錯誤
- 12. 添加新頁面內容時出現錯誤:floor_type in drupal 7
- 13. asp.net頁面錯誤
- 14. CasperJS:頁面錯誤
- 15. HTML頁面錯誤
- 16. CloudFlare錯誤頁面
- 17. ViewPager錯誤頁面
- 18. LocalHost8080錯誤頁面
- 19. 錯誤404頁面
- 20. JSP錯誤頁面
- 21. Wordpress頁面錯誤
- 22. ADFS錯誤頁面
- 23. 頁面錯誤和髒頁
- 24. 頁表:頁面錯誤
- 25. drupal上登錄頁面的頁面
- 26. Drupal hook_theme錯誤
- 27. drupal menu_get_object錯誤
- 28. 禁用Cloudflare錯誤頁面並顯示實際錯誤頁面
- 29. 如何捕獲Apache錯誤頁面的錯誤頁面截圖?
- 30. Coldfusion錯誤和IIS7.5錯誤頁面
發現這裏類似http://stackoverflow.com/questions/1705840/how-to-log-error -message-in-drupal –
太棒了!謝謝! – Michiel
讓我知道它是否適合你。如果沒有,那麼我們可以做更好的事情 –