42 lines
		
	
	
		
			988 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			988 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace nur\v\html5;
 | 
						|
 | 
						|
use nur\b\UserException;
 | 
						|
use nur\v\base\AbstractPage;
 | 
						|
use nur\v\http;
 | 
						|
use nur\v\model\IErrorPage;
 | 
						|
use nur\v\page;
 | 
						|
use nur\v\vo;
 | 
						|
 | 
						|
class Html5BasicErrorPage extends AbstractPage implements IErrorPage {
 | 
						|
  function __construct(...$vs) {
 | 
						|
    foreach ($vs as &$v) {
 | 
						|
      $v = q($v);
 | 
						|
    }; unset($v);
 | 
						|
    $this->vs = $vs;
 | 
						|
  }
 | 
						|
 | 
						|
  protected $vs;
 | 
						|
 | 
						|
  function printError(): void {
 | 
						|
    $error = $this->getError();
 | 
						|
    $message = $error["message"];
 | 
						|
    if (!$message) $message = $this->vs;
 | 
						|
    if (!$message) $message = "Une erreur inattendue s'est produite";
 | 
						|
    vo::p(["class" => "error-message", q($message)]);
 | 
						|
    $exception = $error["exception"];
 | 
						|
    if ($exception) {
 | 
						|
      vo::pre(["class" => "error-exception",
 | 
						|
        q(UserException::get_summary($exception)), "\n",
 | 
						|
        q(UserException::get_traceback($exception)),
 | 
						|
      ]);
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  function print(): void {
 | 
						|
    page::no_cache();
 | 
						|
    http::error500(null, null, false);
 | 
						|
    $this->printError();
 | 
						|
  }
 | 
						|
}
 |