/** * Accepts a renderer. Overload select in case we'd like to see the * checkboxes/radio buttons in a group when renderering with another * renderer. * * This function was copied from HTML_QuickForm_group::accept() and * modified for use with this class. * * @param HTML_QuickForm_Renderer $renderer the QF renderer * @param bool $require whether a group is required * @param string $error an error message associated with a group * @see HTML_QuickForm_group::accept() * @access public * @return void */ function accept(&$renderer, $required = false, $error = null) { // if not asked to act like a group, then pass off to regular accept method if ($this->_type != 'group') { return parent::accept($renderer, $required, $error); } $this->_separator = null; $this->_appendName = null; $this->_required = array(); // Beginning of code from HTML_QuickForm_group::accept() // ---8<--- //$this->_createElementsIfNotExist(); $renderer->startGroup($this, $required, $error); $name = $this->getName(); // --->8--- // use our method to get the elements instead $this->_elements = $this->getElements(); // ---8<--- foreach (array_keys($this->_elements) as $key) { $element =& $this->_elements[$key]; if ($this->_appendName) { $elementName = $element->getName(); if (isset($elementName)) { $element->setName($name . '[' . (strlen($elementName) ? $elementName : $key) . ']'); } else { $element->setName($name); } } $required = !$element->isFrozen() && in_array($element->getName(), $this->_required); $element->accept($renderer, $required); // restore the element's name if ($this->_appendName) { $element->setName($elementName); } } $renderer->finishGroup($this); // --->8--- }