Beispiel #1
0
 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']);
 }
Beispiel #2
0
 public function asHtml(ElementNode $el)
 {
     // Try to execute the video filter
     try {
         $filter = $this->config->get('filter.video', null);
         if (is_object($filter) and $filter instanceof FilterInterface) {
             $filter->setConfig($this->config);
             return $filter->execute($el);
         }
     } catch (FilterException $e) {
     }
     // Video nur verlinken
     $definition = new UrlOption($this->config);
     return $definition->asHtml($el);
 }
 public function __construct(Config $config)
 {
     parent::__construct($config);
     $this->setTagName('YWLINK');
 }