ilch Forum » Allgemein » HTML, PHP, SQL,... » bbcode mit fancybox

Geschlossen
  1. #1
    User Pic
    marco1978 Mitglied
    Registriert seit
    03.12.2008
    Beiträge
    116
    Beitragswertungen
    1 Beitragspunkte
    Hallo
    habe mal wider eine frage ich würde gerne über den bbcode meine bilder mit fancybox anzeigen lassen habe das auch gefunden wo ich das ändern kann aber wen ich das änder dann geht der normale link nicht mehr

    wie kann ich das machen... hir mal ein kleiner Auszug der bbcode.php

        protected function _shorturl($string, $caption = null)
        {
            if ($caption == null) {
                $caption = $string;
            }
            $string = trim($string);
            $caption = trim($caption);
            $server = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'];
            //Wenn kein Protokoll angegeben ist
            if (preg_match('%^((http|ftp|https)://)|^/%i', $string) == 0) {
                //Schauen ob Link mit www. beginnt, ansonsten wird angenommen, dass der Link relativ sein soll
                if (preg_match('/^www\./i', $string) == 1) {
                    $string = 'http://' . $string;
                }
            }
            if (substr($string, 0, 1) == '/' OR strpos($string, $server) !== false) {
                $target = '_self';
            } else {
                $target = '_blank' ;
            }
    		
            if (strlen($caption) >= $this->info['UrlMaxLaenge']) {
                $caption = $this->_shortcaptions($caption);
            }
            return '<a href="' . $string . '" target="' . $target . '" class="fancybox" rel="gallery">' . $caption . '</a>';
        }



    verwendete ilch Version: 1.1 P
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    BadRandolph Mitglied
    Registriert seit
    31.05.2006
    Beiträge
    26
    Beitragswertungen
    8 Beitragspunkte
    Hallo Marco,

    klar, das gilt ja für alle Links wenn du das direkt in die Ausgabe reinschreibst.

    Gibt es in der BBCode-Klasse nicht eine Funktion, die für Bilder zuständig ist? Vielleicht wäre das da besser aufgehoben.

    Hier eine Lösung, sie ist jedoch ungetestet da ich kein Ilch 1.1 zur Verfügung habe (öffnet jetzt aber alle verlinkten Bilder in der Fancybox):

    protected function _shorturl($string, $caption = null) {
            if ($caption == null) {
                $caption = $string;
            }
            $string = trim($string);
            $caption = trim($caption);
            $server = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'];
            //Wenn kein Protokoll angegeben ist
            if (preg_match('%^((http|ftp|https)://)|^/%i', $string) == 0) {
                //Schauen ob Link mit www. beginnt, ansonsten wird angenommen, dass der Link relativ sein soll
                if (preg_match('/^www\./i', $string) == 1) {
                    $string = 'http://' . $string;
                }
            }
            if (substr($string, 0, 1) == '/' OR strpos($string, $server) !== false) {
                $target = '_self';
            } else {
                $target = '_blank';
            }
    
            if (strlen($caption) >= $this->info['UrlMaxLaenge']) {
                $caption = $this->_shortcaptions($caption);
            }
            // Fancybox
            //return '<a href="' . $string . '" target="' . $target . '" class="fancybox" rel="gallery">' . $caption . '</a>';
            $fancyboxAttributes = '';
            $fancyboxLinkFileExtension = pathinfo(parse_url($string, PHP_URL_PATH), PATHINFO_EXTENSION);
            if (in_array($fancyboxLinkFileExtension, array('jpg', 'png', 'gif', 'jpeg'))) {
                $fancyboxAttributes = ' class="fancybox" rel="gallery"';
            }
    
            return '<a href="' . $string . '" target="' . $target . '"' . $fancyboxAttributes . '>' . $caption . '</a>';
            // Ende: Fancybox
        }


    Alle Links, die auf jpg, png, gif oder jpeg enden, werden jetzt mit der Fancybox aufgemacht, sofern Fancybox korrekt installiert und initialisiert wurde (hoffe ich zumindest ^^). Wenn jedoch z.B. im Forum in verschiedenen Posts immer wieder solche Links auftauchen, wird das von Fancybox als eine Galerie zum druchgklicken über alle Fancybox-Links auf der Seite hinweg dargestellt.

    Grüße,
    Tobi


    Zuletzt modifiziert von BadRandolph am 23.07.2015 - 20:15:31
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    marco1978 Mitglied
    Registriert seit
    03.12.2008
    Beiträge
    116
    Beitragswertungen
    1 Beitragspunkte
    Hallo BadRandolph

    ich danke dir es geht und läuft wunder bar

    LG Marco
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten