<?

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

/**
 * Name of this module
 */
define("MOD_LOG",$name);

/**
 * Optionname log
 */
define("OPT_LOG",0);
/**
 * Optionname No Operation
 */
define("OPT_NOOP",1);
/** 
 * Optionname LogLevel
 */
define("OPT_LEVEL",2);

/**
 * LogModule
 *
 * This module takes the log and noop options to control the
 * log-messages.
 * Options:
 * log: show log-message.
 * noop: no action (don't send mail)
 * @package   Modules
 * @author    Herman Suijs
 */
class LogModule extends Module {
  var 
$name "LogModule";
  var 
$id MOD_LOG;
  var 
$execlevel 1;

  
/**
   * Constructor
   *
   * Define options and call the superConstructor
   */
  
function LogModule() {
    
$this->options[OPT_LOG] = new Option("log");
    
$this->options[OPT_NOOP] = new Option("noop");
    
$this->options[OPT_LEVEL] = new Option("level:loglevel:log-level:log_level");

    
/* call super-constructor */
    
$this->Module();
  } 
/* function LogModule() */

  /**
   * Before action
   *
   * Check the options and set the specified values
   */
  
function before_action() {
    global 
$debug,$log;

    
$this->check_options();

    if(isset(
$this->options[OPT_LOG])) {
      
$debug->add_message("Option: " $this->options[OPT_LOG]->name " "$this->options[OPT_LOG]->value,$this->name);
      
//$switch = (is_true($this->options[OPT_LOG]->value)) ? false : true;
      
if (empty($log)||$log->dummy) {
    require_once(
MODULES_DIR."/log.mes.php");
    
$log = new Log();
      } 
/* if (empty($log)||$log->dummy) */
      
$log->enable(is_true($this->options[OPT_LOG]->value));
    } 
/* if(isset($this->options[OPT_LO... */
    
unset($this->options[OPT_LOG]);

    if(isset(
$this->options[OPT_NOOP])) {
      
$debug->add_message("Option: " $this->options[OPT_NOOP]->name " "$this->options[OPT_NOOP]->value,$this->name);
      
//$switch = (is_true($this->options[OPT_NOOP]->value)) ? false : true;
      
$log->set_noop($this->options[OPT_NOOP]->value);
    } 
/* if(isset($this->options[OPT_NO... */
    
unset($this->options[OPT_NOOP]);

    if(isset(
$this->options[OPT_LEVEL])) {
      
$log->set_level($this->options[OPT_LEVEL]);
    } 
/* if(isset($this->options[OPT_LE... */
    
unset($this->options[OPT_LEVEL]);

  } 
/* function before_action() */

  /**
   * Do action
   */
  
function do_action() {
    
$this->action();
  } 
/* function do_action() */

  /**
   * After action
   *
   * Cleanup
   */
  
function after_action() {
    
$this->clean_up();
  } 
/* function after_action() */
/* class LogModule extends Module */

$modules[$name]= new LogModule();