FormField.php
Go to the documentation of this file.00001 <?PHP
00002
00006 class FormField {
00007
00008 # ---- PUBLIC INTERFACE --------------------------------------------------
00009
00012
00023 function FormField($Name, $IsRequired, $Label, $ValidFunc, $ValidMsgs)
00024 {
00025 # save field info
00026 $this->MyName = $Name;
00027 $this->MyIsRequired = $IsRequired;
00028 $this->MyLabel = $Label;
00029 $this->MyValidFunc = $ValidFunc;
00030 $this->MyValidMsgs = $ValidMsgs;
00031
00032 # attempt to set value if available
00033 if (isset($_POST[$this->MyName]))
00034 {
00035 $this->MyValue = $_POST[$this->MyName];
00036 }
00037 elseif (isset($_GET[$this->MyName]))
00038 {
00039 $this->MyValue = $_GET[$this->MyName];
00040 }
00041 }
00046
00052 function Name($NewVal = NULL) { return $this->GetOrSet("MyName", $NewVal); }
00053
00061 function IsRequired($NewVal = NULL) { return $this->GetOrSet("MyIsRequired", $NewVal); }
00062
00067 function Label($NewVal = NULL) { return $this->GetOrSet("MyLabel", $NewVal); }
00068
00074 function Value($NewVal = NULL) { return $this->GetOrSet("MyValue", $NewVal); }
00075
00080 function IsPassword() { return method_exists($this, "PasswordFormField"); }
00081
00086
00092 function PrintField($DisplayErrorIndicator = FALSE)
00093 {
00094 $this->PrintLabel($DisplayErrorIndicator);
00095 $this->PrintInput($DisplayErrorIndicator);
00096 }
00097
00103 function PrintLabel($DisplayErrorIndicator = FALSE)
00104 {
00105 # print label
00106 print(($DisplayErrorIndicator ? "<span style=\"color: red;\"" : "")
00107 ."<label for=\"".$this->MyName."\">".$this->MyLabel."</label>"
00108 .($DisplayErrorIndicator ? "</span>" : "")
00109 ."\n");
00110 }
00115
00120 function IsInvalidValue($Value)
00121 {
00122 # assume value is valid
00123 $ErrorCode = 0;
00124
00125 # if custom validation function supplied
00126 if ($this->MyValidFunc)
00127 {
00128 # call custom function and return code
00129 $ValidFunc = $this->MyValidFunc;
00130 $ErrorCode = $ValidFunc($this->MyName, $Value);
00131 }
00132 else
00133 {
00134 # if value is required and none is set
00135 if ($this->MyIsRequired && !strlen($Value)
00136 && !method_exists($this, "PasswordFormField"))
00137 {
00138 # return code indicating missing value
00139 $ErrorCode = 1;
00140 }
00141 }
00142
00143 # return error code (if any) to caller
00144 return $ErrorCode;
00145 }
00146
00152 function GetInvalidValueMessage($ErrorCode)
00153 {
00154 $Messages = array(
00155 0 => "This value is valid.",
00156 1 => "%L is a required value.",
00157 );
00158 if (isset($this->MyValidMsgs[$ErrorCode]))
00159 {
00160 $Message = $this->MyValidMsgs[$ErrorCode];
00161 }
00162 else
00163 {
00164 $Message = isset($Messages[$ErrorCode])
00165 ? $Messages[$ErrorCode] :
00166 "INTERNAL ERROR - Invalid Error Code (Field = %N, Code = %C)";
00167 }
00168 return $Message;
00169 }
00170
00173 # ---- PRIVATE INTERFACE -------------------------------------------------
00174
00175 protected $MyName;
00176 protected $MyIsRequired;
00177 protected $MyLabel;
00178 protected $MyValue;
00179 protected $MyValidFunc;
00180 protected $MyValidMsgs;
00181
00182 # convenience function to handle getting and setting of values
00183 private function GetOrSet($ValueName, $NewValue)
00184 {
00185 if ($NewValue !== NULL)
00186 {
00187 $this->{$ValueName} = $NewValue;
00188 }
00189 return $this->{$ValueName};
00190 }
00191 }
00192
00193
00194 ?>