<?

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

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

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

/**
 * Required
 *
 * This module checks if some set of fields that is defined required is
 * really filled in.
 * @package   Modules
 * @author    Herman Suijs
 */

class RequiredModule extends Module {
  var 
$name "RequiredModule";
  var 
$id MOD_REQUIRED;
  var 
$execlevel 12;

  
/**
   * Constructor
   *
   * Set options and call the superConstructor
   */
  
function RequiredModule() {
    
$this->options[] = new Option("required:require");
    
$this->Module();
  } 
/* function RequiredModule() */
  
  /**
   * Before action
   *
   * Check options
   */
  
function before_action() {
    
$this->check_options(); // necessary for intergration with class module
  
/* function before_action() */

  /**
   * Do action
   *
   * Check if required fields are entered
   */
  
function do_action() {
    global 
$error,$formHandler;

    
$this->action();

    
$vars $formHandler->get_vars(SHOW_VARS);
    
$required strtolower($this->options[0]->value);

    
//echo var_dump($this->options[0]) . " $required<br>";

    
if (!strpos($required,REQUIRED_SEP)===false) {
      
$required explode(REQUIRED_SEP,$required);
      while (list(,
$field) = each($required)) {
    if (!isset(
$vars[$field])||empty($vars[$field]))
      
//$error->add_message("Field $field is required, but missing",$this->name,2);
      
$error->add(ERR_INP_CONT,$this->name,"Field %s is required, but missing",$field);
      } 
/* while (list(,$field) = each($r...  */
    
} else { /* if (!strpos($required,REQUIRED... */
      
if (isset($vars[$required])||empty($vars[$field]))
      
//$error->add_message("Field $required is required, but missing",$this->name,2);
      
$error->add(ERR_INP_CONT,$this->name,"Field %s is required, but missing",$required);
   
/* if (!strpos($required,REQUIRED... */  // end if strpos

  
// end function do_action /* function do_action() */

  /**
   * After action
   *
   * Cleanup
   */
  
function after_action() {
    
$this->clean_up();
  } 
/* function after_action() */
/* class RequiredModule extends M... */