我想在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
让我知道它是否适合你。如果没有,那么我们可以做更好的事情 –