Go to the documentation of this file.00001 <?php
00018 class axFieldsetHelper extends axBaseHelper {
00019
00024 protected $_fieldset_lines = array();
00025
00030 public function __construct ($legend = "") {
00031 parent::__construct('fieldset');
00032 if ($legend)
00033 $this->appendChild("<legend>$legend</legend>");
00034 }
00035
00047 public function addLine ($name, $display_name = null, $type = "text", $value = "", $class = "") {
00048 $this->appendChild($this->_fieldset_lines[$name] = axFormLineHelper::export($name, $display_name, $type, $value, $class));
00049 return $this;
00050 }
00051
00058 public function getLine ($name) {
00059 return isset($this->_fieldset_lines[$name]) ? $this->_fieldset_lines[$name] : null;
00060 }
00061
00068 public function setErrors (array $names) {
00069 foreach ($names as $name) {
00070 if ($line = $this->getLine($name))
00071 $line->setClass($line->getClass() ? $line->getClass() . ' error' : 'error');
00072 }
00073 return $this;
00074 }
00075
00084 public function autoFill ($desc) {
00085 foreach ($this->_children as &$node) {
00086 if ($node instanceof Helper) {
00087 $name = $node->getName();
00088 if (is_object($desc) && $desc instanceof axModel && isset($desc->$name)) {
00089 $value = $desc->$name;
00090 }
00091 elseif (is_array($desc) && isset($desc[$name])) {
00092 $value = $desc[$name];
00093 }
00094 else {
00095 continue;
00096 }
00097
00098 if ($node->getType() == 'radio' || $node->getType() == 'checkbox') {
00099 if ($node->getValue() == $value)
00100 $node->setChecked("checked");
00101 }
00102 else {
00103 $node->setValue($value);
00104 }
00105
00106 unset($name);
00107 }
00108 }
00109 return $this;
00110 }
00111
00118 public static function export ($legend = "") {
00119 return new self ($legend);
00120 }
00121 }