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 '

Edit "'.$this->rule->GetName().'"

'; echo '
'; echo ''; foreach($params as $p) { /* @var $p HtRule_Param */ $id = 'field-'.$p->Name(); $name = $p->Name(); $class = ''; if ($p->IsMulti()) { $class .= ' multi'; $name .= '[]'; } $value = $p->Value(); if ($p->Help() != "") $help = 'class="tooltip" title="'.$p->Help().'"'; else $help = ''; switch($p->Type()) { case HtRule_Param::TYPE_STRING: $class .= ' type-string'; if ($p->IsMulti()) { echo '
'; foreach($p->Value() as $value) { echo "'; echo ''; } echo '
'; } else { echo ''; echo ''; } break; case HtRule_Param::TYPE_TEXT: $class .= ' type-text'; echo ''; break; case HtRule_Param::TYPE_DUALTEXT: $class .= ' type-dualtext'; echo ''. '
'. ''. ''; break; case HtRule_Param::TYPE_INT: $class .= ' type-int'; echo ''; break; case HtRule_Param::TYPE_DECIMAL: $class .= ' type-decimal'; echo ''; break; case HtRule_Param::TYPE_BOOLEAN: $class .= ' type-checkbox'; $checked = ''; if ($value == True) $checked = ' checked="checked"'; echo ''; break; }//Switch }//Foreach param echo ''; echo '
'; echo '
'; }//ShowForm }