Schnellnavigation:

Kategorien

« August 2014»
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            

Kopieren Sie diesen Link in Ihren RSS-Reader

RSS 0.91Nachrichten
RSS 2.0Nachrichten

In eigener Sache

Peter Linzenkirchner, Lisardo EDV Beratung 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

Auch ohne TemplaVoila oder einem Template-Switcher können den Redakteuren verschiedene Layouts einfach über eine TypoScript-Konfiguration im Main-Template zur Verfügung gestellt werden:

  1. page = PAGE
  2. page {
  3.     10 = CASE
  4.     10.key.field = layout
  5.     # Standardtemplate
  6.     10.0= TEMPLATE
  7.     10.0.template = FILE
  8.     10.0.template.file = fileadmin/tmpl/standard.html
  9.     10.0.workOnSubpart = DOCUMENT_BODY
  10.     10.0.marks {
  11.         # etc.
  12.     }
  13.     # Variante 1:
  14.     10.1= TEMPLATE
  15.     10.1.template = FILE
  16.     10.1.template.file = fileadmin/tmpl/variante1.html
  17.     10.1.workOnSubpart = DOCUMENT_BODY
  18.     10.1.marks {
  19.         # etc.
  20.     }
  21.     # und so weiter.
  22. }

Standardmäßig sind vier Varianten vorgesehen. Diese können über PageTSconfig anders benannt werden:

  1. #In die Rootseite ins Feld Tsconfig:
  2. TCEFORM.pages {
  3.     layout.altLabels.0 = Standard Vorlage
  4.     layout.altLabels.1 = Zwei Spalter
  5.     layout.altLabels.2 = Drei Spalter
  6.     layout.altLabels.3 = Und so weiter.
  7. }

Falls vier Varianten nicht reichen, können noch weitere ergänzt werden:

  1. TCEFORM.pages{
  2.     layout.addItems {
  3.         4 = eine weitere Variante
  4.         # usw
  5.     }
  6. }

Mit dieser Technik kann sogar das klassische 4-Spalten-Layout im Backend mit TemplaVoila kombiniert werden, von Seite zu Seite individuell und einfach vom Redakteur auszuwählen:

  1. page = PAGE
  2. page {
  3.     10 = CASE
  4.     10.key.field = layout
  5.     # Standardtemplate
  6.     10.0 = USER
  7.     10.0.userFunc = tx_templavoila_pi1->main_page
  8.     # Variante 1:
  9.     10.1= TEMPLATE
  10.     10.1.template = FILE
  11.     10.1.template.file = fileadmin/tmpl/variante1.html
  12.     10.1.workOnSubpart = DOCUMENT_BODY
  13.     10.1.marks {
  14.         # etc.
  15.     }
  16.     # und so weiter.
  17. }

Allerdings muss dann TemplaVoila so konfiguriert werden, dass in der Rubrik »Web« im Backend beide Seiten-Module gezeigt werden: für TemplaVoila und das klassische. (Je nach Seitenlayout muss das passende Modul für die Eingabe der Inhalte verwendet werden). Dazu öffnet man im Extension Manager TemplaVolia und aktiviert die Option »Enable the classic page module«. Aber Achtung: da beide Seitenmodule leicht verwechselt werden können, erstellen ungeübte Redakteure schnell Inhalte in den falschen Modulen, was dazu führen kann, dass Inhalte zwar in TemplaVoila erscheinen sollen, aber dort nicht referenziert und damit letztlich auch nicht gezeigt werden. Diese Technik setzt also Redakteure voraus, die wissen was sie tun.

Falls doch einmal Inhalte nicht in TemplaVoila referenziert werden und damit nicht im Frontend erscheinen, so gibt es unter »Funktionen« den Assistenten »Referenziere unbenutzte Inhaltselement (TemplaVolia)«. Damit werden alle Inhaltselement in TemplaVoila-Spalten eingefügt – leider oft in die falschen. Aber immerhin sind sie jetzt da und und in der aktuellen Version von TemplaVoila können Inhaltselemente leicht per Drag und Drop verschoben werden, so dass sich der Aufwand in Grenzen hält.

Üblicherweise kann man Daten aus der pages-Tabelle mit dem Schlüsselwort »field» auslesen, etwa so:

  1. temp.head = COA
  2. temp.head {
  3.   10 = TEXT
  4.   10.field = subtitle//title
  5. }

Leider funktioniert das nicht mehr, wenn TemplaVoila im Einsatz ist.; man kann nicht mit »field« auf ein Datenfeld der »pages«-Tabelle zugreifen. Folgende Ansätz funktionieren:

  1. lib.page_head = COA
  2. lib.page_head {
  3.   10 = TEXT
  4.   10.data = page:subtitle
  5.   10.ifEmpty.cObject = TEXT
  6.   10.ifEmpty.cObject.data = page:title
  7.   10.wrap=<h2>|</h2>
  8. }
  9. # oder einfacher:
  10. lib.page_head = COA
  11. lib.page_head {
  12.   10 = TEXT
  13.   10.data = page:subtitle // page:title
  14.   10.wrap=<h2>|</h2>
  15. }

Weiterführende Links:

Wenn FCEs eingesetzt werden, so muss unter Umständen für jede Spalte ein eigener Wert für die Bildgröße eingesetzt werden. Das geht über eine Modifikation der DataStructure – also des XML – des FCE.

Diese drei Zeilen:

  1. 10 = RECORDS
  2. 10.source.current=1
  3. 10.tables = tt_content

müssen ersetzt werden durch:

  1. 5 = LOAD_REGISTER
  2. 5.maxImageWidthInText = xyz
  3. 5.maxImageWidth = abc
  4.  
  5. 10 = RECORDS
  6. 10.source.current=1
  7. 10.tables = tt_content
  8.  
  9. 15 = RESTORE_REGISTER

Natürlich geht das auch bei FCEs, die einen Inhaltsbereich für ein Bild enthalten. In diesem sieht der Code so aus:

  1. <TypoScript>
  2.   10 = IMAGE
  3.   10.file.import = uploads/tx_templavoila/
  4.   10.file.import.current = 1
  5.   10.file.import.listNum = 0
  6.   10.file.maxW = xyz
  7. </TypoScript>
  8.  

 

 

Besuchen Sie mich auf Google+