array( 'panel' => true, 'panel-default' => true, ), ); protected $_title; protected $_groups = array(); protected $_collapsible; public function __construct($title, $id = "", $collapsible = 0) { if (!empty($id)) { $this->_attributes['id'] = $id; } $this->_title = $title; $this->_collapsible = $collapsible; } public function add(Form_Group $group) { array_push($this->_groups, $group); $group->_setParent($this); return $group; } // Shortcut, adds a group for the specified input public function addInput(Form_Input $input) { $group = new Form_Group($input->getTitle()); $group->add($input); $this->add($group); return $input; } // Shortcut, adds a group with a password and a confirm password field. // The confirm password element is created by appending "_confirm" to the name supplied // The value is overwritten with a default pattern (So the user cannot see it) public function addPassword(Form_Input $input) { $group = new Form_Group($input->getTitle()); if ($input->getValue() != "") { $input->setValue(DMYPWD); } $input->setType("password"); $group->add($input); $confirm = clone $input; $confirm->setName($confirm->getName() . "_confirm"); $confirm->setHelp("Confirm"); $group->add($confirm); $this->add($group); return $input; } public function __toString() { $element = parent::__toString(); if (!empty(trim($this->_title)) || is_numeric($this->_title)) $title = htmlspecialchars(gettext($this->_title)); else $title = ''; $body = implode('', $this->_groups); $hdricon = ""; $bodyclass = '
'; $id = $this->_attributes['id']; if ($this->_collapsible & COLLAPSIBLE) { $hdricon = '' . '' . '' . '' . ''; $bodyclass = '
'; } else { $bodyclass .= 'in">'; } } if ($title == "NOTITLE") { return <<
EOT; } else if ($id == "") { return <<

{$title}{$hdricon}

{$bodyclass} {$body} EOT2; } else { // If an ID has been specified for this section, include an anchor tag in the header named with the ID // so that hrefs can jump directly to it return <<

{$title}{$hdricon}

{$bodyclass} {$body} EOT3; } } }