Kategorien
- [-]Developer (94)
- API (14)
- Backend (16)
- Extensions (26)
- HTML & CSS (4)
- Typoscript (31)
- [-]Redaktionelles (15)
- Anleitungen (6)
- Tipps (6)
- Sonstiges (36)
Schlagwortwolke
| « | Mai 2012 | » | ||||
|---|---|---|---|---|---|---|
| S | M | T | W | T | F | S |
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | 31 | ||
Letzte Nachrichten
- Cookie Control und die europäische Cookie-Richtlinie
- 18.05.2012 21:41
- Schafft er es auf die erste Seite?
- 18.05.2012 14:39
- TYPO3camp Berlin 2012
- 11.05.2012 15:35
- Webdesign in Zeiten des iPad 3: und immer noch mehr Pixel.
- 10.05.2012 17:14
Letzte Kommentare
- Hallo David, das ist ein guter Tipp, werde ich mir...
- 13.05.2012 13:19
- Hallo! In der Aufzählung gehst du nicht auf den verfügbaren...
- 12.05.2012 14:35
- Müsste eigentlich so funktionieren, ich mache es hier ja...
- 10.04.2012 13:03
- Erst einmal - Danke für die Extension. Eine Frage habe...
- 10.04.2012 10:30
In eigener Sache
Peter Linzenkirchner, Lisardo Multimedia in Augsburg. Freelance und Partner für Design- und Webagenturen in Augsburg und München. Pixelgenaue Templates, valides HTML, barrierearm. TYPO3-Projekte, Extension-Programmierung und mehr ...
Zur Zeit wird gefiltert nach: Typoscript
Filter zurücksetzen
Typoscript: IF-Bedingungen mit OR verknüpfen
IF-Konstrutionen in Typoscript sind reichlich verzinkt und kosten viel Hirnschmalz, vor allem wenn mehrere Bedingungen miteinander verknüpft werden sollen. Mein Problem:
Ein neu erstelltes Inhaltselement soll es ermöglichen, bequem und schnell einen Downloadlink mit einem Vorschau-Bild zu erstellen. Es soll folgende Features haben:
- die Vorschau-Bilder sollen nebeneinander floaten
- die Vorschaubilder sollen unabhängig vom Frontend-User-Login zwar immer erscheinen, bei bei fehlendem Login oder falscher Benutzergruppe abgedimmt werden.
- die Download-Links auf den Vorschaubildern sollen nur erscheinen, wenn der Besucher in einer bestimmten Frontend-Usergruppe ist
- zusätzlich soll der Redakteur mit einer Checkbox bestimmen können, dass ausnahmsweise der Downloadlink auch dann gezeigt wird, wenn der Besucher nicht eingeloggt ist.
Das kann alles noch über Typoscript gelöst werden. Die Schritte:
- Extension erstellen, die tt_content um mehrere Felder erweitert
- Die extTables.php so anpassen, dass im Backend die richtigen Felder gezeigt werden
- die Extension um ein Typoscript-Setup erweitern, das den Output vornimmt.
Und darin ist die oben erwähnte IF-Konstruktion erforderlich: der Link wird gerendert, wenn der Besucher in der Usergruppe 10 ist ODER wenn eine Checkbox durch den Redakteur angeklickt wurde.
Der wesentliche Teil des Typoscripts sieht so aus:
- 10 = COA
- 10 {
- 10 = IMAGE
- import = uploads/myExt/
- import.field = preview
- import.listNum = 0
- maxW = 224
- maxH = 209
- }
- # Link aus einem Feld holen.
- stdWrap.typolink.parameter = uploads/myExt/{field:myLink}
- stdWrap.typolink.parameter.insertData = 1
- # ODER-Verknüpfungen gehen am einfachsten über cObject.
- stdWrap.typolink.parameter.if {
- isTrue.cObject = COA
- isTrue.cObject {
- 10 = TEXT
- 10.data= TSFE:fe_user|user|usergroup
- 10.if {
- # Prüfen, ob in einer bestimmten User-Gruppe
- value.data = TSFE:fe_user|user|usergroup
- isInList = 10
- }
- 20 = TEXT
- 20.field = checkbox
- }
- }
- }
Eine OR-Verknüpfung geht am einfachsten über ein cObject. Das Ergebnis des gesamten cObjects wird true, wenn eine Zeile true wird. Man kann also auf diese Art beliebig viele Fehler mit OR verbinden. Etwas kniffliger ist es, wenn man auf einen bestimmten Wert prüfen will und nicht nur auf true oder false, weil in diesem Fall eine weitere IF-Konstruktion eingeschachtelt werden muss.
Ganz am Schluss darf natürlich nicht vergessen werden, mit Hilfe der Extension naw_securedl und einer .htaccess-Datei im Uploads-Ordner der Extension die Downloads gegen Deeplinks abzusichern.
Prinzipiell ist es möglich, mit Hife der Extension rtelightbox eine Lightbox im RTE umzusetzen – in der Regel reicht es einfach, eine gängige Lightbox zu installieren und danach im Template folgende statische Typoscript-Templates einzubinden:
- das Template der jeweiligen Lightbox
- Clickenlarge Rendering (rtehtmlarea)
- RTE Lightbox (rtelightbox)
und zwar muss das Template von RTE Lightbox an letzter Stelle stehen.
Leider hat die Extension aber einen kleinen Fehler: sie bindet das unbearbeitete Originalbild in die Lightbox ein, heisst, man erhält unter Umständen ein viel zu großes Bild in der Lightbox.
[mehr]

