/** * Adds all necessary buttons to the given page object. * * @param object $page Page where to put the button * @param array $buttons Key/label of each button/event to handle * @param mixed $attributes (optional) Either a typical HTML attribute string * or an associative array. * @return void * @since 1.1 * @access public * @throws HTML_PROGRESS_ERROR_INVALID_INPUT */ function createButtons(&$page, $buttons, $attributes = null) { if (!is_a($page, 'HTML_QuickForm_Page')) { return HTML_Progress::raiseError(HTML_PROGRESS_ERROR_INVALID_INPUT, 'exception', array('var' => '$page', 'was' => gettype($page), 'expected' => 'HTML_QuickForm_Page object', 'paramnum' => 1)); } elseif (!is_array($buttons)) { return HTML_Progress::raiseError(HTML_PROGRESS_ERROR_INVALID_INPUT, 'exception', array('var' => '$buttons', 'was' => gettype($buttons), 'expected' => 'array', 'paramnum' => 2)); } elseif (!is_array($attributes) && !is_string($attributes) && !is_null($attributes)) { return HTML_Progress::raiseError(HTML_PROGRESS_ERROR_INVALID_INPUT, 'exception', array('var' => '$attributes', 'was' => gettype($attributes), 'expected' => 'array | string', 'paramnum' => 3)); } $confirm = $attributes = HTML_Common::_parseAttributes($attributes); $confirm['onClick'] = "return(confirm('Are you sure ?'));"; $prevnext = array(); foreach ($buttons as $event => $label) { if ($event == 'cancel') { $type = 'submit'; $attrs = $confirm; } elseif ($event == 'reset') { $type = 'reset'; $attrs = $confirm; } else { $type = 'submit'; $attrs = $attributes; } $prevnext[] = $page->createElement($type, $page->getButtonName($event), $label, HTML_Common::_getAttrString($attrs)); } $page->addGroup($prevnext, 'buttons', '', ' ', false); }
/** * DB_DataObject_FormBuilder_QuickForm::_getAttributes() * * Returns the attributes to apply to a field based on the field name and * element type. The field's attributes take precedence over the element type's. * * @param string $elementType the internal type of the element * @param string $fieldName the name of the field * @return array an array of attributes to apply to the element */ function _getAttributes($elementType, $fieldName) { if (isset($this->elementTypeAttributes[$elementType])) { if (is_string($this->elementTypeAttributes[$elementType])) { $this->elementTypeAttributes[$elementType] = HTML_Common::_parseAttributes($this->elementTypeAttributes[$elementType]); } $attr = $this->elementTypeAttributes[$elementType]; } else { $attr = array(); } if (isset($this->fieldAttributes[$fieldName])) { if (is_string($this->fieldAttributes[$fieldName])) { $this->fieldAttributes[$fieldName] = HTML_Common::_parseAttributes($this->fieldAttributes[$fieldName]); } $attr = array_merge($attr, $this->fieldAttributes[$fieldName]); } return $attr; }