Ergebnis 1 bis 7 von 7

Thema: Newsletter Link/Anker Problem insert link:url

  1. #1
    Contao-Nutzer Avatar von waschbecken
    Registriert seit
    12.04.2010.
    Ort
    Graz Österreich
    Beiträge
    7

    Standard Newsletter Link/Anker Problem insert link:url

    Hallo!

    Habe Probleme folgende Probleme beim Newsletter HTML (TL version 2.7.6)
    1) Insert Tag {{link_url::64}} wird anscheinend korrekt umgewandelt sobald der Newsletter raus geht in http://www.xyz.com/meineseite.html
    2) Sobald ich beim insert tag {{link_url::64}}#anker hinzu füge klappt das auch noch (www.xyz.com/meineseite.html), jedoch mein Link der nur auf diese Seite allgemein linkt ({{link_url::64}}) klappt dann nicht mehr (anstatt http://www.xyz.com/meineseite.html wird daraus meineseite.html). Im Code werden anscheinend alle http:// Link durchsucht und verändert, soweit mein Verständnis.

    Im Code habe bzw. im TL Forum habe ich folgende Info gefunden und erweitert. Hier meine tl_newsletter.php (convertRelativeLinks)


    PHP-Code:
    /**
         * Convert relative URLs from TinyMCE to absolute URLs
         * @param string
         * @return string
         */
        
    public function convertRelativeLinks($strContent)
        {
            
    $arrLinks preg_split('/href="([^"]+)/'$strContent, -1PREG_SPLIT_DELIM_CAPTURE);
            
    $strContent '';

            for(
    $i=0$i<count($arrLinks); $i=$i+2)
            {
                
    $strContent .= $arrLinks[$i];
                
    $strLink $arrLinks[$i+1];

                if (!
    strlen($strLink))
                {
                    continue;
                }

                if (!
    preg_match('@^https?://|ftp:|mailto:|@i'$strLink))
                
    //if (!preg_match('@^https?://|ftp:|mailto:|#@i', $strLink)) Problem with ancor links
                
    {
                    
    $strLink $this->Environment->base . (($strLink != '/') ? $strLink '');
                }
                
    // https://contao.org/board/message/67971.html Problem bei anchors mit base links
                
    elseif (substr($strLink,0,1) != '#')
                    {
                        
    $strContent str_replace($strLink$this->Environment->base $strLink$strContent);
                    }


                
    $strContent .= 'href="' $strLink;
            }

            return 
    $strContent;
        } 
    Weiters hatte ich davor Probleme mit externen Links, z.b. http://www.abc.com wird in http://www.xyz.com/http:/www.abc.com umgewandelt und die BaseURL http://www.abc.com wurde auf http://www.abc.com/undefined verlinked.

    In der TL Version 2.8.1 wird folgendes definiert:
    PHP-Code:
    /**
         * Convert relative URLs from TinyMCE to absolute URLs
         * @param string
         * @return string
         */
        
    public function convertRelativeLinks($strContent)
        {
            return 
    $this->convertRelativeUrls($strContent);
        }


        
    /** 
    Habe jedoch keine Ahnung wo ich die Methode der Klasse finde (kenn mich nicht viel mit PHP) aus.
    Vielen Dank für eure Hilfe,

    Didi

    PS: Ein simples Rückstellen auf die Originalversion von 2.7.6 hat leider auch nicht geholfen.

  2. #2
    Contao-Nutzer Avatar von waschbecken
    Registriert seit
    12.04.2010.
    Ort
    Graz Österreich
    Beiträge
    7

    Standard

    Aja noch ein Hinweis, für die Schleife, die durchgangen wird.

    Mein erster Link beinhaltet einen Anker (es folgende 6 Stück), dann ein Link zu gleichen Seite jedoch ohne Anker (direkt Link zur Seite), darunter der Link zur Domain.

    Mit der 2.7.6 Version klappen die Anker Links nicht mehr, es wird keine Domain voranstellt, der normal link:url wird hingegen korrekt umgesetzt.

    Beim Link auf die Domain wird http://www.xyz.com/../../undefined erzeugt.

    Mit meiner modifzierten Version klappen es so halbwegs.

  3. #3
    Contao-Nutzer Avatar von waschbecken
    Registriert seit
    12.04.2010.
    Ort
    Graz Österreich
    Beiträge
    7

    Standard Test mit TL Version 2.8.1

    Hallo! Habe nun mal die Version 2.8.1 der function convertRelativeLinks($strContent) genommen.

    Leider ebenso kein Erfolg, url:link klappt dann gar nicht mehr mit und ohne #

    Domain Link wird nur mehr zu undefined/

    Hier der Code:

    PHP-Code:
    public function convertRelativeLinks($strContent)
        {
            
            
    $arrUrls preg_split('/((href|src)="([^"]+)")/i'$strContent, -1PREG_SPLIT_DELIM_CAPTURE);
            
    $strContent '';

            for(
    $i=0$i<count($arrUrls); $i=$i+4)
            {
                
    $strContent .= $arrUrls[$i];

                if (!isset(
    $arrUrls[$i+2]))
                {
                    continue;
                }

                
    $strAttribute $arrUrls[$i+2];
                
    $strUrl $arrUrls[$i+3];

                if (!
    preg_match('@^(https?://|ftp://|mailto:|#)@i'$strUrl))
                {
                    
    $strUrl $strBase . (($strUrl != '/') ? $strUrl '');
                }

                
    $strContent .= $strAttribute '="' $strUrl '"';
            }

            return 
    $strContent;
        } 
    Bitte um Info, wäre ziemlich wichtig für mich.

  4. #4
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo waschbecken,

    willkommen im TYPOlight-Forum.

    Hast Du Dir dieses Ticket schon angesehen: http://https://contao.org/issues/1809

    Ich glaub, da geht's um was ähnliches bzw. um's gleiche.
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  5. #5
    Contao-Nutzer Avatar von waschbecken
    Registriert seit
    12.04.2010.
    Ort
    Graz Österreich
    Beiträge
    7

    Frage

    Danke für die Info, ist zum teil schon sehr ähnlich.

    Dennoch verstehe ich nicht ganz, warum es einmal klappt und einmal nicht.
    Naja werde mal versuchen, die Links umzudrehen, vielleicht hilft das.

    Bin ansonsten ziemlich ratlos

  6. #6
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Mal schauen, ob Leo das im Ticket dargelegte Problem, so auch nachvollziehen kann...
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  7. #7
    Contao-Nutzer Avatar von waschbecken
    Registriert seit
    12.04.2010.
    Ort
    Graz Österreich
    Beiträge
    7

    Standard Problem einkippen

    Hallo!

    Konnte gestern Abend noch eine Lösung aktiveren, die einigermaßen funktioniert.

    Mir ist dabei aufgefallen, dass der BaseLink (sofern man im Newsletter, den eigenen Domainnamen einsetzt) immer so lauten muss: http://www.xyz.com/ also mit Slash am Ende sonst wird wieder mit /undefined geplacted.

    Weiters konnte ich dann die insert tags url_link:xy nicht mehr bei Links mit # Anker Links verwenden, statt dessen den Dateinamen (Article-Name samt Endung) klappte zum Glück. Bei Links ohne Anker klappt der insert tag hingegen.

    Hier mein Code:

    /system/modules/newsletter/dca/tl_newsletter.php:
    PHP-Code:
         public function convertRelativeLinks($strContent)
         {
             
    $arrLinks = array();        preg_match_all('/href="([^"]+)"/i'$strContent$arrLinks);     
                foreach (
    $arrLinks[1] as $strLink)        
                {            
                    if (!
    preg_match('@^(http://|https://|ftp:|mailto:)@i'$strLink))
                        {
                        if (
    $strLink == '/')                
                        {
                        
    $strContent str_replace('href="/"''href="' $this->Environment->base '"'$strContent);                
                        }
                        elseif (
    substr($strLink,0,5) != '#')                
                        {                    
                        
    $strContent str_replace($strLink$this->Environment->base $strLink$strContent);
                        }
                    }    
                } 
            return 
    $strContent;    
            } 
    Hilft es etwas wenn ich mein besprochenes Problem zum bereits vorhandenen hinzufüge? (wie gesagt mit TLVersio 2.7.6 oder 2.8.1 klappt da nicht viel was)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Antworten: 23
    Letzter Beitrag: 22.08.2015, 15:17
  2. back-link / Insert-Tag für den FF 3.5 einrichten
    Von thymian im Forum Allgemeine Inhaltselemente
    Antworten: 1
    Letzter Beitrag: 14.06.2010, 08:58
  3. Insert Tag {{link::back}} im ie7 oder ie8
    Von mveltrup im Forum Sonstiges zu Contao
    Antworten: 1
    Letzter Beitrag: 24.09.2009, 21:30
  4. Insert Tag für Link auf Artikel
    Von sunny im Forum Sonstiges zu Contao
    Antworten: 1
    Letzter Beitrag: 22.09.2009, 19:20
  5. Antworten: 3
    Letzter Beitrag: 16.08.2009, 19:52

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •