. */ abstract class Appl { const ACCESS_RW = 2; const ACCESS_R = 1; const ACCESS_NO = 0; protected $appl_id; protected $name; protected $value; protected $oldvalue; protected $compulsory = false; protected $access = -1; protected $error = false; protected $error_txt = ""; abstract public function __construct($appl_id); public function __destruct() { // Destructor } abstract public function get_print_name(); abstract public function get_print_name_short(); abstract public function get_print_value($readonly=false); abstract public function set($value); public function init($value) { if( $this->set($value) ) $this->oldvalue=$value; else $this->oldvalue=""; } public function check() { $this->error = false; if( isset($_POST[ $this->name ]) ) { $this->value = stripslashes(trim($_POST[ $this->name ])); return $this->set( $this->value ); }else { $this->error = true; $this->error_txt = "The field " . $this->name . " hasn't been filled in."; return false; } } public function get($oldvalue=false) { if( $oldvalue ) return $this->oldvalue; else return $this->value; } public function is_error() { return $this->error; } public function get_error() { if( $this->error ) { return $this->error_txt; }else { return ""; } } public function get_compulsory() { return $this->compulsory; } public function get_access($new=true) { if( $this->access>=0 ) return $this->access; elseif( isset($_SESSION['sess_functions']) && in_array("application_edit", $_SESSION['sess_functions']) ) return self::ACCESS_RW; elseif( isset($_SESSION['sess_functions']) && in_array("application_viewdetail", $_SESSION['sess_functions']) ) return self::ACCESS_R; elseif( is_anon() AND $new ) return self::ACCESS_RW; elseif( isset($_SESSION['access_user']) && $_SESSION['access_user'] ) return self::ACCESS_RW; else return self::ACCESS_NO; } public function set_access($value) { if( $value>=0 AND $value<=2 ) $this->access = $value; } /* * get_sql(): Returns an array $var[item]=value * @param: - * @return: array $var[item]=value */ public function get_sql($new=true) { if( $this->get_access($new)==Appl::ACCESS_RW ) return array($this->name => $this->value); else return array(); } public function get_value($new=true) { $r = array(); if( !$new ) $r['old'][$this->get_print_name()] = $this->get(true); if( $this->get_access($new)==Appl::ACCESS_RW OR ($new AND $this->get_access($new)==Appl::ACCESS_R) ) $r['new'][$this->get_print_name()] = $this->get(); return $r; } public function display($value, $PersonID=0, &$allvalues="") { return $value; } // Return the value to be shown on screen (text only) public function displaytext($value, $PersonID=0, &$allvalues="") { return $this->display($value, $PersonID, $allvalues); } public function displaytitle($value) { return ""; } public function displayoptions($personID=0) { return ""; } public function sql_columnname() { return "`persons`.`".$this->name."`"; } public function is_sqlcolumn() { return true; } } ?>