11.03.2011

Content Element uploads Beschreibung verlinken

Christian Wolfram in Tutorials/TypoScript

Das Content Element Dateilinks (uploads) eignet sich in TYPO3 als gute Variante, wenn man einfach auf Dateien zum Download verlinken möchte.

An den Dateilinks habe mich allerdings 2 Dinge gestört.

  1. Es wird immer der Dateiname verlinkt, was optisch keinen guten Eindruch macht.
  2. Das Layout ist in eine Tabelle gefasst, was die Formatierung mit CSS teilweise erschwert.

 Im Internet habe ich bei http://www.npostnik.de einen guten Lösungsansatz gefunden, welchen ich noch ein wenig verfeinert haben.

 

Um die Beschreibung zu verlinken, muss im TS-Setup folgende Zeilen eingefügt werden:

 

 

 

  1.  
  2. tt_content.uploads.20.itemRendering.20 {
  3. 1 ><br />2 >
  4.  
  5. 1 = TEXT<br />1.value = <span><a href="
  6.  
  7. 2 = TEXT<br />2.data = register:path
  8.  
  9. 3 = TEXT<br />3.data = register:filename
  10.  
  11. 4 = TEXT<br />4.value = ">
  12.  
  13. # Beschreibung anzeigen, wenn vorhanden<br />5 = TEXT<br />5.data = register:description<br />5.if.isTrue.data = register:description
  14.  
  15. # ansonsten Dateinamen anzeigen<br />6 = TEXT<br />6.data = register:filename<br />6.if.isTrue.data = register:description<br />6.if.negate = 1
  16.  
  17. 7 = TEXT<br />7.value = </a></span>
  18. }
  19.  

 

 

 

Dadurch wird nun die Dateibeschreibung verlinkt, falls diese vorhanden ist. Falls nicht, wird weiterhin der Dateiname verlinkt.

Um nun noch das Tabellenlayout zu entfernen und durch DIV-Container, SPAN oder LI zu ersetzen, müssen die wrap-Eigenschaften angepasst werden.

 

 

 

  1.  
  2. tt_content.uploads.20.outerWrap=<div class="mytest">|</div>
  3.  

 

 

 

Durch diese Zeilen entfernen wir schon einmal das fest codierte Table-Tag in class.tx_cssstyledcontent_pi1.php. Nun muss das Rendering der einzelnen Dateien noch angepasst werden:

 

 

 

  1.  
  2. tt_content.uploads.20.itemRendering{
  3. wrap =<div class="div-odd divfirst">|</div> |*| <div class="div-even">|</div> || <div class="div-odd">|</div> |*|
  4.  
  5. 10.wrap=<div class="divcsc-uploads-icon">|</div>
  6.  
  7. 20.wrap=<div class="divcsc-uploads-fileName">|</div>
  8.  
  9. 30.wrap=<div class="divcsc-uploads-fileSize">|</div><div class="clear"></div>
  10. }
  11.  

 

 

Das war es auch schon soweit.

 

Was mir bisher noch nicht gelungen ist, dass Layout entsprechend der Layouteinstellungen im Content Element anzupassen. Zum Beispiel wäre dies sinnvoll, wenn unterschiedliche CSS-Klassen benutzt werden sollen. Falls in dieser Richtung noch jemand einen Tipp hat, dann her damit.

 

Den kompletten Code gibt es hier auch noch mal als Download.



Gravatar: Dirk

Mir scheint es muss heissen: tt_content.uploads.20.itemRendering.20

Dirk schrieb am 08.12.2011
Gravatar: Christian Wolfram

Hallo Dirk, vielen Dank für den Hinweis. Habe es im Beitrag entsprechend korrigert. In dem Downloadscript war sogar korrekt drin.

Christian Wolfram schrieb am 08.12.2011

Mein Kommentar

Zurück

 
Design downloaded from free website templates.