'two', 4 => 'four', 6 => 'six', 8 => 'eight', 12 => 'twelve', 20 => 'medium', 30 => 'big', 45 => 'huge', ); /** * Constructor * * @access public */ function __construct() { $template = CRM_Core_Smarty::singleton(); parent::__construct($template); } /** * Static instance provider. * * Method providing static instance of as in Singleton pattern. */ static function &singleton() { if (!isset(self::$_singleton)) { self::$_singleton = new CRM_Core_Form_Renderer(); } return self::$_singleton; } /** * Creates an array representing an element containing * the key for storing this. We allow the parent to do most of the * work, but then we add some CiviCRM specific enhancements to * make the html compliant with our css etc * * @access private * * @param object An HTML_QuickForm_element object * @param bool Whether an element is required * @param string Error associated with the element * * @return array */ function _elementToArray(&$element, $required, $error) { self::updateAttributes($element, $required, $error); $el = parent::_elementToArray($element, $required, $error); // add label html if (!empty($el['label'])) { $id = $element->getAttribute('id'); if (!empty($id)) { $el['label'] = ''; } else { $el['label'] = ""; } } return $el; } /** * Update the attributes of this element and add a few CiviCRM * based attributes so we can style this form element better * * @access private * * @param object An HTML_QuickForm_element object * @param bool Whether an element is required * @param string Error associated with the element * * @return array * @static */ static function updateAttributes(&$element, $required, $error) { // lets create an id for all input elements, so we can generate nice label tags // to make it nice and clean, we'll just use the elementName if it is non null $attributes = array(); if (!$element->getAttribute('id')) { $name = $element->getAttribute('name'); if ($name) { $attributes['id'] = str_replace(array(']', '['), array('', '_'), $name ); } } $class = $element->getAttribute('class'); $type = $element->getType(); if (empty($class)) { $class = 'form-' . $type; if ($type == 'text') { $size = $element->getAttribute('size'); if (!empty($size)) { if (array_key_exists($size, self::$_sizeMapper)) { $class = $class . ' ' . self::$_sizeMapper[$size]; } } } } if ($required) { $class .= ' required'; } if ($error) { $class .= ' error'; } $attributes['class'] = $class; $element->updateAttributes($attributes); } } // end CRM_Core_Form_Renderer