rule = $rule; $rules = new HtRule_List(); $this->index = array_search($rule, $rules->GetRules()); } function Validate($values, &$error) { $params = $this->rule->GetParams(); foreach($params as $p) { /* @var $p HtRule_Param */ $name = $p->Name(); $value = get_request($name); if ($value === False && $p->Type() != HtRule_Param::TYPE_BOOLEAN) { $error = "Missing value for ".$p->Title(); return False; } switch($p->Type()) { case HtRule_Param::TYPE_STRING: break; case HtRule_Param::TYPE_TEXT: break; case HtRule_Param::TYPE_INT: if (!preg_match('/-?[0-9]+/', $value)) { $error = "Invalid integer for ".$p->Title(); return False; } break; case HtRule_Param::TYPE_DECIMAL: if (!is_numeric($value)) { $error = "Invalid number for ".$p->Title(); return False; } break; }//Switch }//For each return True; } function Save($values) { $params = $this->rule->GetParams(); foreach($params as $p) { /* @var $p HtRule_Param */ $name = $p->Name(); $value = get_request($name); if ($p->Type() == HtRule_Param::TYPE_BOOLEAN) $p->Value(False); if ($value === False) continue; if ($p->Type() == HtRule_Param::TYPE_BOOLEAN && $value == 'yes') $p->Value(True); else $p->Value($value); } } function ShowForm() { $params = $this->rule->GetParams(); $formName = 'form_'.get_class($this->rule); echo '