Error_Page.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. /**
  3. * Error page file.
  4. *
  5. * Provides a class with all the properties and methods to display the page.
  6. *
  7. * @author Iñigo Valentin <i@inigovalentin.com>
  8. * @license https://www.gnu.org/licenses/gpl-3.0.en.html GNU General Public License V3
  9. * @package SWDB
  10. */
  11. require_once(PATH::PAGE . "Page.php");
  12. /**
  13. * Error page model.
  14. *
  15. * @category Page
  16. */
  17. class Error_Page extends Page{
  18. /**
  19. * Constructor.
  20. *
  21. * Retrieves the data and initializes the variables.
  22. *
  23. * @param int $code HTTP Error code. Optional, default 500.
  24. * @param string $messages HTTP Error message. Optional, default null.
  25. */
  26. public function __construct($code = null, $message = null){
  27. parent::__construct();
  28. $this->set_public(true);
  29. $this->set_view("error.php");
  30. $this->set_title("Error");
  31. $this->set_canonical("");
  32. $this->add_css("error.css");
  33. if (null == $code || intval($code) < 200 || intval($code) > 599){
  34. $this->set_code(500);
  35. }
  36. else{
  37. $this->set_code($code);
  38. }
  39. if (null != $message){
  40. $this->set_message($message);
  41. }
  42. else{
  43. switch(intval($this->get_code())){
  44. case 400:
  45. $this->set_message("Invalid request");
  46. break;
  47. case 404:
  48. $this->set_message("Not found");
  49. break;
  50. case 500:
  51. $this->set_message("Server error");
  52. break;
  53. default:
  54. $this->set_message("Unknown error");
  55. }
  56. }
  57. $this->set_description("Error " . $this->get_code() . ": " . $this->get_message());
  58. }
  59. }