/** * Renders the accordion * * @return string */ public function render() { if (!$this->name) { $this->name = Helpers::generateId($this); } $attributes = new Attributes($this->attributes, ['class' => 'panel-group', 'id' => $this->name]); $string = "<div {$attributes}>"; $count = 0; foreach ($this->contents as $item) { $itemAttributes = array_key_exists('attributes', $item) ? $item['attributes'] : []; $itemAttributes = new Attributes($itemAttributes, ['class' => 'panel panel-default']); $string .= "<div {$itemAttributes}>"; $string .= "<div class='panel-heading'>"; $string .= "<h4 class='panel-title'>"; $string .= "<a data-toggle='collapse' data-parent='#{$this->name}' " . "href='#{$this->name}-{$count}'>{$item['title']}</a>"; $string .= "</h4>"; $string .= "</div>"; $bodyAttributes = new Attributes(['id' => "{$this->name}-{$count}", 'class' => 'panel-collapse collapse']); if ($this->opened == $count) { $bodyAttributes->addClass('in'); } $string .= "<div {$bodyAttributes}>"; $string .= "<div class='panel-body'>{$item['contents']}</div>"; $string .= "</div>"; $string .= "</div>"; $count++; } $string .= "</div>"; return $string; }
/** * Renders the carousel * * @return string */ public function render() { if (!$this->name) { $this->name = Helpers::generateId($this); } $attributes = new Attributes($this->attributes, ['id' => $this->name, 'class' => 'carousel slide', 'data-ride' => 'carousel']); $string = "<div {$attributes}>"; $string .= $this->renderIndicators(); $string .= $this->renderItems(); $string .= $this->renderControls(); $string .= "</div>"; return $string; }
/** * Renders the button * * @param Attributes $attributes The attributes of the modal * @return string */ protected function renderButton(Attributes $attributes) { if (!$this->button) { return ''; } if (!isset($attributes['id'])) { $attributes['id'] = Helpers::generateId($this); } $this->button->addAttributes(['data-toggle' => 'modal', 'data-target' => "#{$attributes['id']}"])->render(); return $this->button->render(); }