<?

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

/**
 * Define name
 */
define("MOD_SETCOOKIE",$name);

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

class 
SetCookieModule extends Module {
  
/**
   * Name of this module
   */
  
var $name "SetCookieModule";
  
/**
   * ID of this module
   */
  
var $id MOD_SETCOOKIE;
  
/**
   * Execution level of this module
   */
  
var $execlevel 13;
  
/**
   * Fields to store information for
   */
  
var $cookiefields = array();

  
/**
   * Constructor
   *
   * Set options and call the superConstructor
   */
  
function SetCookieModule() {
    
//$this->options[] = new Option("name:alias1:alias2","regular expression",required,stay_enabled_if_omitted,"default");
    
$this->options[] = new Option("cookie:cookies:cookiefields","",true,false);
    
$this->Module();
  } 
/* function SetCookieModule() */
  
  /**
   * Before action
   *
   * Check options and create array of fields to be stored
   */
  
function before_action() {
    global 
$formHandler,$debug;
    
$this->check_options();
    if (
$this->options[0]) {
      
$vars $formHandler->get_vars();
      
$fieldnames explode(COOKIE_SEP,$this->options[0]->value);
      while(list(,
$name) = each($fieldnames)) {
    if (!empty(
$vars[$name])) {
      
$this->cookiefields[$name] = $vars[$name];
    } 
/* if (!empty($vars[$name])) */
      
/* while(list(,$name) = each($fie... */
      
$debug->add(DB_FLOW,$this->name,"Cookiefields recognized");
    } 
/* if ($this->options[0]) */
  
/* function before_action() */

  /**
   * Do action
   *
   * Set cookies for the fields defined
   */
  
function do_action() {
    global 
$debug;
    if(
$this->action()) {
      if(!empty(
$this->cookiefields)) {
    while (list(
$name,$value) = each($this->cookiefields)) {
      
setcookie($name,$value,COOKIE_EXPIRE);
      
$debug->add(DB_FLOW,$this->name,"Cookie %s=%s set",$name,$value);
    } 
/* while (list($name,$value) = ea... */
      
/* if(!empty($this->cookiefields)... */
    
/* if($this->action()) */
  
/* function do_action() */

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