function listObjects() { if (Form::submitted()) { $operation = Form::filtered('operation'); list($object_id, $method) = each($operation); if (method_exists($this, $method)) { $this->{$method}($object_id); } else { trigger_error(__CLASS__ . "::{$method} does not exists"); } } $objects = $this->dbQuery('select id, name, comment, protected from t_objects'); foreach ($objects as $object) { /* there are several dufferent ways to put data into * the form elements, but you could use the way below: */ Form::choose()->set('name/value', $object['name'])->set('comment/value', $object['comment'])->set('protected/checked', $object['protected'] ? 'checked' : null); echo "<!-- {$object['id']} -->\n"; // output name & comment foreach (Form::fieldsetIDs('fieldset1') as $control_id) { echo Form::label(array($control_id, $object['id'])); foreach (Form::message($control_id) as $message) { echo "<p class=error>{$message}</p>"; } echo Form::control(array($control_id, $object['id'])); } // output checkbox, if it's for example optional echo Form::checkbox(Form::attrs(array('protected', $object['id']))); // ouput operation buttons echo Form::button(Form::attrs(array('save', $object['id']))); echo Form::button(Form::attrs(array('delete', $object['id']))); echo "<!-- /{$object['id']} -->\n"; } }
class Custom { function validate_custom($path, $filtered, $args) { echo "path: {$path}\n"; echo "value: "; var_export($filtered); echo "\n"; echo "args: "; var_export($args); echo "\n"; $valid_if_true = $filtered === $args; \AIIX\Form::msgIfFalse($valid_if_true, $path, 123, 'custom key'); } } $valid = array(); for ($_i = 0; $_i <= 2; ++$_i) { $valid["{$_i}.0"] = \AIIX\Form::validate("validate{$_i}.0"); $valid["{$_i}.1"] = \AIIX\Form::validate("validate{$_i}.1"); } $controller = new Custom(); for (; $_i <= 5; ++$_i) { $valid["{$_i}.0"] = \AIIX\Form::validate("validate{$_i}.0", $controller); $valid["{$_i}.1"] = \AIIX\Form::validate("validate{$_i}.1", $controller); } $message = array(); for ($_i = 0; $_i <= 5; ++$_i) { $message["{$_i}.0"] = \AIIX\Form::message("validate{$_i}.0"); $message["{$_i}.1"] = \AIIX\Form::message("validate{$_i}.1"); }