Unsere Snippets

Auslesen des Dateisystems mittels Filelist und Filelink

Das folgende Snippet ließt, wenn man das ganze in eine reguläre Programmlogik wie in PHP übersetzt, das Filesystem eines Ordners über eine Schleife aus und packt das Ergebnis in einen Array, über den man in TS direkten Zugriff hat wenn man due stdWrap-Funktion split auf die value Eigenschaft anwendet.

Standardmäßig ist in diesem Fall der Trenner ein komma.

Der Array wird später über Split wieder getrennt, wobei die Dateiendung in einem Typoscriot-Register zwischengespeichert und später dazu dient über CASE-Struktur ein entsprechendes Icon vor den eigentlichen Linktext zu packen.

Filelist unterscheidet sich primär von der stdWrap-Funktion filelink dadurch das zum Schluss nochmals die Typolink-Funktion verwendet werden muss, um ein einzelnes Objekt zu verlinken.

Die TS Funktion current entspricht im Prinzip der PHP Funktion Current und verweißt auf das aktuellen Element. Den Rest kann man sich auf Basis der Kommentare herleiten.

Insgesamt eine interessante Funktion. Sollte man das ganze nicht bereits als fertiges PHP Snippet haben, ist das so hier bereits eine Zeitersparnis für manche Zwecke.

Ein Knackpunkt ist nicht zu unterschlagen, in der Konfiguration des Scriptes kann derzeit nur mit maximal drei Buchstaben zurechtkommen bei der Dateiendung um ein benutzerdefiniertes Icon hinzufügen.

config.lockFilePath = fileadmin/
20 = HTML
#### Einlesen der Daten in Verpackung in eine kommaseparierte Liste ####
20.value.filelist.cObject = COA
20.value.filelist.cObject {
             ### Pfad auf Server der ausgelesen werden soll
                  10 = TEXT
                  10.value = fileadmin/Domain/Templates/CSS/
           

#### Nur Dateien mit Endung css,ttf sortiert nach Datum
                  20 = TEXT
                  20.value = | css,ttf | date | true  
          }

          ##### Aufgliederung der einzelnen Links in cObj mittels TEXT Funktionen ####
### Im Prinzip nichts anderes als ne Schleife
        20.value.split.token = ,
          20.value.split {
                  cObjNum = 1

            
                  1 = TEXT
                  1.current = 1
#### Anker Text wird überschrieben ####
                  1.override.cObject = COA
                  1.override.cObject {
### Wert der Dateiendung wird zwischengespeichert im Register fileExt kürzung mittels substring
                            10 = LOAD_REGISTER
                            10.fileExt.cObject = TEXT
                            10.fileExt.cObject.current = 1
                            10.fileExt.cObject.substring = -3,3
                            
                     #### Switch of in PHP
                            20 = CASE
                            20 {
                               key.data = register:fileExt
                               
                               default = TEXT
                               default.value = Datei
                             
### Name inklusive Dateiendung wird hinten drangehängt
### auf Basis dessen wird jeweils ein Bild dem eigentlichen Text vorangehängt
                               css = TEXT
                               css.current = 1
                               css.prepend = IMAGE
                               css.prepend.file = fileadmin/Domain/Files/IMAGES/icons/css.gif
                              
                               ttf < .css
                               ttf.value = Eine TTF Datei
                            }
                  }
                  1.wrap = | <br/>
### Verlinkung des ganzen über typolink
                1.typolink.parameter.current = 1
                  1.typolink.parameter {
                             rawUrlEncode = 1
                             wrap = fileadmin/Domain/Templates/CSS/|
                  }
          }
Kategorie: Typoscript
Ansprechpartner: Timo Prüssing (www.mediengarage.de)
« Zurück