/** * Generates a XMLElement representation of a Symphony drawer widget. * A widget is identified by it's `$label`, and it's contents is defined * by the `XMLElement`, `$content`. * * @since Symphony 2.3 * @param string $id * The id attribute for this drawer * @param string $label * A name for this drawer * @param XMLElement $content * An XMLElement containing the HTML that should be contained inside * the drawer. * @param string $default_state * This parameter defines whether the drawer will be open or closed by * default. It defaults to closed. * @param array $attributes (optional) * Any additional attributes can be included in an associative array with * the key being the name and the value being the value of the attribute. * Attributes set from this array will override existing attributes * set by previous params, except the `id` attribute. * @return XMLElement */ public function Drawer($id = '', $label = '', XMLElement $content = null, $default_state = 'closed', $context = '', array $attributes = array()) { $id = General::createHandle($id); $contents = new XMLElement('div', $content, array('class' => 'contents')); $contents->setElementStyle('html'); $drawer = new XMLElement('div', $contents, $attributes); $drawer->setAttribute('data-default-state', $default_state); $drawer->setAttribute('data-context', $context); $drawer->setAttribute('data-label', $label); $drawer->addClass('drawer'); $drawer->setAttribute('id', 'drawer-' . $id); return $drawer; }