/** * @see Advertikon\View\Helper\Element::render() */ public function render() { $this->addClass('dropdown-toggle'); $this->_element->setAttributes(['data-toggle' => 'dropdown', 'aria-haspopup' => 'true', 'aria-expanded' => 'false']); $str = self::newLine('<div class="btn-group">'); self::$indCount++; $str .= parent::openTag(); if ($label = $this->_element->getLabel()) { $str .= self::newLine($this->translate($label) . '<span class="caret"></span>'); } $str .= parent::closeTag(); $str .= self::newLine('<ul class="dropdown-menu">'); self::$indCount++; foreach ($this->_element->getValueOptions() as $value => $text) { if (is_array($text)) { if (isset($text['options'])) { $disabled = isset($text['disabled']) ? (array) $text['disabled'] : []; foreach ($text['options'] as $subValue => $subText) { $str .= sprintf("<li %s><a href='#' data-value='%s'>%s</a></li>", in_array($subValue, $disabled) ? 'class="disabled"' : '', $this->escaper->escapeHtmlAttr($subValue), $this->translate($subText)); } } } else { $str .= self::newLine(sprintf("<li><a href='#' data-value='%s'>%s</a></li>", $this->escaper->escapeHtmlAttr($value), $this->translate($text))); } } self::$indCount--; $str .= self::newLine('</ul>'); self::$indCount--; $str .= self::newLine('</div>'); return $str; }
/** * @see Advertikon\View\Helper\Element::render() */ public function render() { $this->addClass('dropdown-toggle'); $this->_element->setAttributes(['aria-haspopup' => 'true', 'aria-expanded' => 'false']); if ($this->_element->getOption('dropdown') == 'custom') { $this->_element->setAttribute('data-toggle', 'custom'); } else { $this->_element->setAttribute('data-toggle', 'dropdown'); } $str = self::newLine('<div class="input-group-btn">'); self::$indCount++; $str .= parent::openTag(); $caret = ''; if ($label = $this->_element->getLabel()) { $caret .= $this->translate($label); } $caret .= '<span class="caret"></span>'; $str .= self::newLine($caret); $str .= parent::closeTag(); $str .= self::newLine('<div class="dropdown-menu">'); self::$indCount++; $count = 0; $accordionId = $this->_element->getAttribute('id') . '-accordion'; $str .= self::newLine(sprintf('<div id="%s" class="panel-group" role="tablist">', $accordionId)); self::$indCount++; foreach ($this->_element->getValueOptions() as $value => $text) { $pannelHeadingId = $this->_element->getAttribute('id') . '-heading-' . $count; $pannelCollapseId = $this->_element->getAttribute('id') . '-panel-' . $count; $str .= self::newLine('<div class="panel panel-defult">'); self::$indCount++; if (is_array($text)) { if (isset($text['options'])) { $str .= self::newLine(sprintf('<div id="%s" class="panel-heading" role="tab">', $pannelHeadingId)); self::$indCount++; $str .= self::newLine('<h4 class="panel-title">'); self::$indCount++; $str .= self::newLine(sprintf('<a data-toggle="collapse" data-parent="#%1$s" href="#%2$s" aria-expanded="false" aria-controls="%2$s">%3$s</a>', $accordionId, $pannelCollapseId, $this->translate($value))); self::$indCount--; $str .= self::newLine('</h4>'); self::$indCount--; $str .= self::newLine('</div>'); //<-- .panel-heading $str .= self::newLine(sprintf('<div id="%s" class="panel-collapse collapse" role="tabpanel" aria-expanded="false" aria-labelledby="%s" >', $pannelCollapseId, $pannelHeadingId)); self::$indCount++; $str .= self::newLine('<ul class="list-group">'); self::$indCount++; $disabled = isset($text['disabled']) ? (array) $text['disabled'] : []; foreach ($text['options'] as $subValue => $subText) { $str .= self::newLine(sprintf("<li class='list-group-item%s'><a href='#' data-value='%s'>%s</a></li>", in_array($subValue, $disabled) ? ' disabled' : '', $this->escaper->escapeHtmlAttr($subValue), $this->translate($subText))); } self::$indCount--; $str .= self::newLine('</ul>'); self::$indCount--; $str .= self::newLine('</div>'); //<- .pannel-collapse } } else { $str .= self::newLine('<div class="panel-heading" role="tab">'); self::$indCount++; $str .= self::newLine('<h4 class="panel-title">'); self::$indCount++; $str .= self::newLine(sprintf('<a href="#%s" value="%s" >%s</a>', $this->_classId . '-' . $count, $this->escaper->escapeHtmlAttr($value), $this->translate($text))); self::$indCount--; $str .= self::newLine('</h4>'); self::$indCount--; $str .= self::newLine('</div>'); //<-- .panel-heading } self::$indCount--; $str .= self::newLine('</div>'); //<- .panel $count++; } self::$indCount--; $str .= self::newLine('</div>'); //<-- .panel-group self::$indCount--; $str .= self::newLine('</div>'); //<-- .dropdown-menu self::$indCount--; $str .= self::newLine('</div>'); //<-- .input-group-button return $str; }