public function asHtml(ElementNode $el) { // Try to execute the image filter try { $filter = $this->config->get('filter.image', null); if (is_object($filter) and $filter instanceof FilterInterface) { $filter->setConfig($this->config); return $filter->execute($el); } } catch (FilterException $e) { } $content = ''; // Soll das Bild verlinkt werden? $use_anchor = true; // Prüfen, ob wir uns innerhalb eines [url] Tags befinden if ($el->closestParentOfType('url')) { $use_anchor = false; } foreach ($el->getChildren() as $child) { $content .= $child->getAsText(); } // Mögliche Leerzeichen trimmen $url = trim($content); // URL Schema voranstellen, wenn nichts angegeben wurde if ($url !== '' and parse_url($url, PHP_URL_SCHEME) === null) { $url = 'http://' . $url; } // Wenn die URL nicht gültig ist, zeigen wir nur den Text if ($url === '' or !$this->config->getValidation()->isValidUrl($url)) { return $content; } // Prüfen, ob die URL wirklich auf ein Bild zeigt // Wenn es kein Bild ist, nicht einbetten, sondern nur verlinken if ($this->config->get('callbacks.image.force_check') and !$this->config->getValidation()->isValidImageUrl($url)) { // Bild nicht verlinken if (!$use_anchor) { return $content; } // Bild nur verlinken $definition = new UrlOption($this->config); return $definition->asHtml($el); } $attr = array('class' => 'img-responsive', 'border' => '0'); $img_code = Html::img($url, $attr); if (!$use_anchor) { return $img_code; } return Html::anchor($url, $img_code, ['target' => '_blank']); }