[…] […]
Extension Css_Filelinks mit TYPO3 6.2 Update
Wieder eine Extension weniger. Juchhuuu... Manchmal muss man die Sache einfach positiv sehen, wenn auch css_filelinks beim Update auf TYPO3 6.2 Probleme macht. Weg damit! Jede zusätzliche Extension macht unter Umständen beim nächsten Update wieder Ärger. Das ist leider so und wird sich wohl auch in Zukunft nicht ändern. Es hat also auch etwas Positives, wenn man durch ein Update gezwungen wird eine andere Lösung zu finden, die mit TYPO3-Core-Funktionalitäten auskommt. So ging es uns mit css_filelinks. Da diese Extension aktuell nicht unter TYPO3 6.2 läuft, mussten wir uns was einfallen lassen. Eigentlich, war es gar nicht so schwer. Es gibt ja schon ein Rendering für Dateilinks in TYPO3. Auch wenn's kein schönes ist. Ein kleines Typoscript-Snippet war die Lösung. Dieses deckt unsere Bedürfnisse voll und ganz und kann jederzeit einfach erweitert werden. Schaut selbst:
TypoScript
tt_content.uploads {
wrap = |
# Unser neues COA
200 = COA
200 {
10 = FILES
10 {
references {
table = tt_content
fieldName = media
}
renderObj = COA
renderObj {
wrap = |
100 = TEXT
100 {
# Bildbeschreibung der aktuellen Datei auslesen
data = file:current:description
wrap = |
# Link bauen, falls die Datei verlinkt ist
typolink {
parameter.data = file:current:publicUrl
fileTarget = _blank
# und noch einen title Tag für den Link
title.dataWrap = Datei {file:current:description} herunterladen
}
}
}
}
}
# altes Rendering von Dateilinks löschen
20 >
}
Diese TS einfach in Euer TypoScript-Setup einfügen und gut. Keine Extension mehr nötig, keine php-Userfunc oder Ähnliches und vor allem kein Ballast an HTML, das man sowieso meistens nicht braucht. Falls ihr zusätzliche Daten der Dateien (Größe etc.) braucht oder andere Felder ausgeben wollt, hier ein kleiner Hinweis auf die passende Stelle in der TS-Ref. http://docs.typo3.org/typo3cms/TyposcriptReference/DataTypes/Gettext/Index.html?highlight=gettext#file Hier findet Ihr alles, was Ihr auslesen könnt. Nun viel Spass beim Ausprobieren und hoffentlich eine Sorge weniger beim Update auf TYPO3 6.2 ;-).
Kommentare
leider wurden die html tags scheinbar beim upload entfernt, so ist der code unbrauchbar - anbei eine enkodierte version.
tip: dekodieren auf http://www.opinionatedgeek.com/DotNet/Tools/HTMLEncode/Decode.aspx
### [ts] css_filelinks -- anfang
tt_content.uploads {
wrap = <div class="downloads">|</div><div style="height:20px;"></div>
# Unser neues COA
200 = COA
200 {
10 = FILES
10 {
references {
table = tt_content
fieldName = media
}
renderObj = COA
renderObj {
#wrap = <div>|</div>
100 = TEXT
100 {
# Bildbeschreibung der aktuellen Datei auslesen
data = file:current:size
bytes.labels = Byte | kB | MB | GB
#wrap = <span>|</span>
innerWrap.dataWrap = <span class="name"><span class="icon {file:current:extension}"></span>{file:current:description}</span><span class="date">{file:current:name}</span><span class="size">|
# Link bauen, falls die Datei verlinkt ist
typolink {
ATagParams = class="row"
parameter.data = file:current:publicUrl
fileTarget = _blank
# und noch einen title Tag für den Link
title.dataWrap = Datei {file:current:name} herunterladen
}
}
110 = TEXT
110 {
value=</span>
}
}
}
}
# altes Rendering von Dateilinks löschen
20 >
}
### [ts] css_filelinks -- ende
@typohosting: danke!
danke erstmal! ist sehr hilfreich!
mit dieser variante könnt ihr das stylesheet von css_filelinks beibehalten, alles wird gleich (oder besser) angezeigt aber eben nur typoscript nötig. 2 cents sponsored by typohosting.at :)
<pre lang="typoscript">
### [ts] css_filelinks -- anfang
tt_content.uploads {
wrap = |
# Unser neues COA
200 = COA
200 {
10 = FILES
10 {
references {
table = tt_content
fieldName = media
}
renderObj = COA
renderObj {
#wrap = |
100 = TEXT
100 {
# Bildbeschreibung der aktuellen Datei auslesen
data = file:current:size
bytes.labels = Byte | kB | MB | GB
#wrap = |
innerWrap.dataWrap = {file:current:description}{file:current:name}|
# Link bauen, falls die Datei verlinkt ist
typolink {
ATagParams = class="row"
parameter.data = file:current:publicUrl
fileTarget = _blank
# und noch einen title Tag für den Link
title.dataWrap = Datei {file:current:name} herunterladen
}
}
110 = TEXT
110 {
value=
}
}
}
}
# altes Rendering von Dateilinks löschen
20 >
}
### [ts] css_filelinks -- ende
</pre>