<?

/**
 * error.mod.php
 * @package   Modules
 */

/**
 * Module name
 */
define("MES_ERROR",$name);

$modules[$name]= new ErrorMessage;

/**
 * ErrorMessage
 *
 * This message-module creates an interface for adding error-messages and
 * aborting the other modules when an error was reported. Most of the
 * errors will be reported in one run at the end.
 * @package   Messages
 * @author    Herman Suijs
 * @see          Message
 */
class ErrorMessage extends Message {
  var 
$name "ErrorMessage";
  var 
$id MES_ERROR;

  
/**
   * Constructor
   *
   * Set options and call the superConstructor
   */
  
function ErrorMessage() {
    
$this->content ERROR_CONTENT;
    
$this->Message();
    
$this->set_noop(false);
  } 
/* function ErrorMessage() */

  /**
   * Message added
   *
   * Execute some code after the error message is added to the array
   */
  
function message_added($errlevel,$module="",$message="") {
    global 
$debug;
    if (
$module=="") {
      
$this->error();
      if (
$errlevel>EXIT_EXECUTION) {
    
$this->exit_execution();
      } elseif (
$errorlevel>EXIT_ACTION) {
    
$debug->set_noop(true);
      } 
/* if ($errlevel>EXIT_EXECUTION) ... */
    
} else { /* if ($module=="") */

      
switch($errlevel) {
    case 
ERR_DEBUG :
      
$debug->add(DB_ERROR,$module,$message);
      break;
    case 
ERR_INP_CONT :
    case 
ERR_CONF_CONT :
    case 
ERR_DEV_CONT :
    case 
ERR_CRIT_CONT :
      
$this->error();
      
$debug->set_noop(true);
      break;
    case 
ERR_INP_END :
    case 
ERR_CONF_END :
    case 
ERR_DEV_END :
    case 
ERR_CRIT_END :
      
$this->error();
      
$this->exit_execution();
      break;
      } 
/* switch($errlevel) */
   /* if ($module=="") { ... } else */    
}
  } 
/* function message_added($errlev... */

  /**
   * Stop execution
   *
   * Make sure execution is stopped after an error
   */
  
function error() {
    
$this->enabled=true;
    
$this->set_noop(true);
  } 
/* function error() */

  /**
   * Exit script with an error
   *
   * Directly stop the working of the script
   */
  
function exit_execution() {
    global 
$modules;
    
$this->enabled true;
    
exit_fh();
  } 
/* function exit_execution() */

/* class ErrorMessage extends Mes... */