[TYPO3-german] per Typoscript links innerhalb einer Content Spalte gezielt ansprechen

Philipp Gampe philipp.gampe at typo3.org
Fri Oct 18 14:34:03 CEST 2013


Hi Can Kat,

Can Kat wrote:

> hallo bernd, danke schonmal für deine antwort.
> ich bin noch relativ frisch mit typo deswegen nicht wundern wenn mein code
> gar keinen Sinn ergibt - habs nämlich noch nicht verstanden!

Schau dir erstmal das Tutorial an (45min):
http://docs.typo3.org/typo3cms/TyposcriptIn45MinutesTutorial/

> lib.parseFunc_RTE.tags.link {
>   typolink.ATagParams = style="ColPos 2"
>   if {
>     equals.field = colPos
>     value = 2
>     }
>   }
> 
> Hab ich mir jetzt einfach mal zusammengeschustert, funktioniert auch für
> ColPos2, leider fliegen bei ColPos 0,1,3 alle Links einfach raus, dachte
> ich so muss es dann aber gehen:

Du definierst, dass ATagParams nur verwendet werden soll, wenn colPos den 
Wert zwei hat.
TypoScript ist eine Konfigurationssprache, keine Programmiersprache. 
Deswegen ist es auch egal, in welcher Reihenfolge du die Konfiguration 
schreibst, solange du nichts überschriebst.

> lib.parseFunc_RTE.tags.link {
>   10.typolink.ATagParams = style="spalte0"
>   10.if {
>     equals.field = colPos
>     value = 0
>     }
>   
>   20.typolink.ATagParams = style="spalte1"
>   20.if {
>     equals.field = colPos
>     value = 1
>     }
>   
>   30.typolink.ATagParams = style="spalte3"
>   30.if {
>     equals.field = colPos
>     value = 2
>     }
>     
>   40.typolink.ATagParams = style="spalte4"
>   40.if {
>     equals.field = colPos
>     value = 3
>     }
>     
>   }

Link ist kein COA (content object array). Vermutlich ist es ein TEXT Objekt. 
Dort kannst du nur die Eigenschaften von TEXT setzen und stdWrap verwenden.

Du möchtest vermutlich so etwas wie switch/case verwenden:
http://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Case/Index.html

# Sichere die alte Konfiguration
# (es ist vermutlich ein TEXT Objekt)
temp.link < lib.parseFunc_RTE.tags.link
# Überschreibe link mit CASE
lib.parseFunc_RTE.tags.link = CASE
lib.parseFunc_RTE.tags.link {
  # Schau was in colPos steht
  key.field = colPos

  # Fall für den Wert 2
  # kopiere die alte Definition zurück
  2 < temp.link
  # überschrieb was geändert werden soll
  2.typolink.ATagParams = style="ColPos-2"

  # Alle nicht definierten Fälle
  # kopiere die alte Definition zurück
  default < temp.link 
}

Anstelle des CASE Objektes tritt beim Rendern das jeweilige Content Objekt 
in dem Unterschüssel.

Das Ganze basiert auf der Annahme, dass das Feld colPos an dieser Stelle 
definiert ist - sollte es aber sein.

> Leider auch nicht. Was mache ich falsch ?

Du hättest erst einmal die Doku lesen sollen ;)

Grüße
-- 
Philipp Gampe – PGP-Key 0AD96065 – TYPO3 UG Bonn/Köln
Documentation – Active contributor TYPO3 CMS
TYPO3 .... inspiring people to share!



More information about the TYPO3-german mailing list