[TYPO3-german] Re: wrap before email link

Kettner Kettner
Thu Jun 12 11:19:47 CEST 2014


So, Problem selbst gelöst auf Basis von http://wiki.typo3.org/External_links

Zur Erläuterung hier der Hintergrund meiner Problemstellung:

Ich verwende den Bootstrap 3 Framework. Teil des Frameworks ist ein 200-Font-Glyphicons-Halflings-Set von Glyphicons (http://glyphicons.com/). Das sind Icons als Font. Vorteil: Farbe und Größe definierbar wie bei anderen Fonts.

Verwendung: <span class="glyphicon glyphicon-envelope"></span><a href="mailto:...">ich</a>  setzt einen Briefumschlag vor den Link.

Im RTE ist die Verwendung von spans per default nicht erlaubt. Das kann man zwar ändern. Von einfachen Webredakteuren, die später die Seite betreuen sollen, ist aber zu viel verlangt im HTML-Quelltext bei den Links solche spans fehlerfrei einzufügen.

Per :before in CSS geht's nicht, weil man keine HTML-Elemente per CSS einfügen kann, sondern nur reinen Text.

Also Lösung per TS.

Hier meine kommentierte Lösung, bei der das Skript in Abhängigkeit vom eingestellten Stil (siehe Link-Edit-Popup) des Links (entspricht einer css-Klasse) dem Link ein span mit passender glyphicon-Klasse voranstellt.

lib.parseFunc.tags.link {
  typolink.parameter.append = LOAD_REGISTER
  typolink.parameter.append {
    linkClass {
      cObject = TEXT
      cObject {
        stdWrap.data = parameters:allParams
      }
      # Teilt sämtliche Link-Parameter in 4 Stücke. Trennzeichen 32 = Leerzeichen
      split {
        token.char = 32
        cObjNum = 1||2||3||4
        # Der dritte Parameter des Links ist der Inhalt von class="..."
        3 = TEXT
        3.current = 1        
      }
    }
  }
  newWrap.cObject = CASE
  newWrap.cObject {
    key.data = register:linkClass
    # Falls nichts zurifft, nimm das Icon 'book'
    default = TEXT
    default.value = <span class="glyphicon glyphicon-book"></span> |
    # Bei mail das Icon 'envelope' usw.
    mail = TEXT
    mail.value = <span class="glyphicon glyphicon-envelope"></span> |
    internal-link = TEXT
    internal-link.value = <span class="glyphicon glyphicon-book"></span> |
    internal-link-new-window = TEXT
    internal-link-new-window.value = <span class="glyphicon glyphicon-book"></span> |
    external-link = TEXT
    external-link.value = <span class="glyphicon glyphicon-globe"></span> |
    external-link-new-window = TEXT
    external-link-new-window.value = <span class="glyphicon glyphicon-globe"></span> |
    download = TEXT
    download.value = <span class="glyphicon glyphicon-download"></span> |
    download-new-window = TEXT
    download-new-window.value = <span class="glyphicon glyphicon-download"></span> |
  }
}

lib.parseFunc_RTE.tags.link {
  typolink.parameter.append < lib.parseFunc.tags.link.typolink.parameter.append
  wrap < lib.parseFunc.tags.link.newWrap
}

That's it.

Gruß vom fooomaker




More information about the TYPO3-german mailing list