/** * @param \AndreasGlaser\Helpers\Interfaces\RendererInterface|null $renderer * * @return string * @author Andreas Glaser */ public function render(RendererInterface $renderer = null) { if ($renderer) { return $renderer->render($this); } $attributes = null; if ($this->hasId()) { $attributes = 'id="' . $this->getId() . '"'; } if ($this->hasClasses()) { $attributes .= ' class="' . HtmlHelper::chars($this->getClassesImploded()) . '"'; } foreach ($this->attributes as $name => $value) { $attributes .= ' ' . $name . '="' . HtmlHelper::chars($value) . '"'; } $data = $this->getData(); if (!empty($data)) { foreach ($data as $key => $value) { $attributes .= ' data-' . $key . '="' . $value . '"'; } } $styles = $this->getStyles(); if (!empty($styles)) { $stylesCompiled = null; foreach ($styles as $name => $value) { $stylesCompiled .= $name . ':' . $value . ';'; } $attributes .= ' style="' . $stylesCompiled . '"'; } $attributes = trim($attributes); return !empty($attributes) ? ' ' . $attributes : ''; }
/** * @author Andreas Glaser */ public function testImage() { $this->assertEquals('<img id="CHESTNUT" class="horseradish cheese peanuts" src="/my-url/test.png" data-beef-steak="XYZ " />', HtmlHelper::image('/my-url/test.png', $this->testAttributes)); }
/** * @param $name * @param \AndreasGlaser\Helpers\Html\AttributesHelper|array|null $attributesHelper * * @return string * @author Andreas Glaser */ public static function glyphIcon($name, $attributesHelper = null) { $attributesHelper = AttributesHelper::f($attributesHelper); return HtmlHelper::span('', $attributesHelper->addClass('glyphicon')->addClass('glyphicon-' . $name)); }
/** * @param $value * @param $text * @param bool|false $selected * * @return string * @author Andreas Glaser */ public static function option($value, $text, $selected = false) { $attributesHelper = AttributesHelper::f(); $attributesHelper->set('value', $value); if ($selected) { $attributesHelper->set('selected', 'selected'); } return '<option' . $attributesHelper . '>' . HtmlHelper::chars($text) . '</option>'; }