/** * Finishes rendering a group, called after processing grouped elements * * @param HTML_QuickForm2_Node $group Group being rendered */ public function finishGroup(HTML_QuickForm2_Node $group) { $gTpl = str_replace(array('{attributes}', '{id}', '{class}'), array($group->getAttributes(true), array_pop($this->groupId), $group->getAttribute('class')), $this->prepareTemplate($this->findTemplate($group, '{content}'), $group)); $separator = $group->getSeparator(); $elements = array_pop($this->html); if (!is_array($separator)) { $content = implode((string) $separator, $elements); } else { $content = ''; $cSeparator = count($separator); for ($i = 0, $count = count($elements); $i < $count; $i++) { $content .= (0 == $i ? '' : $separator[($i - 1) % $cSeparator]) . $elements[$i]; } } $this->html[count($this->html) - 1][] = str_replace('{content}', $content, $gTpl); }