TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

[Howto] Backend Layout für bestehende Seiten einsetzen


Autor Nachricht
Verfasst am: 30. 01. 2012 [13:03]
miwalder
Dabei seit: 30.03.2009
Beiträge: 5
Die Backend Layouts ab Typo 3 4.5 sind eine einfache und effiziente Art den Content im Backend übersichtlicher darzustellen.

Dieses Tutorial erklärt auf einfache Art und Weise wie man das Backend Layout einrichten kann.

Die Sache nützte mir allerdings so noch nicht viel. Habe ich doch eine Kundin (Seite www.gartenbijoux.ch), die ein kompliziertes Layout mit überlappenden Bildern hat, dazu noch fixe Kästen, in der rechten Spalte, die mit Inhalt gefüllt werden müssen. Für die einzelnen Kästen habe ich zunächst Marker definiert. Doch diese nachher mit Inhalt zu füllen war gar nicht so einfach. Natürlich hätte man TemplaVoila (TV) dafür verwenden können, doch ich wollte mich dafür nicht extra einarbeiten und wollte dies mit Typo3 Hausmitteln erreichen. Also habe ich für die rechte Spalte wie Üblich colPos = 2 verwendet. Allerdings wird dafür nur ein Marker benötigt und nicht drei. Als Hook habe ich die Eigenschaft header_layout = 1, 2 und 3 verwendet und die drei Marker nachher mit SQL im Typoscript angesprochen:

TYPOSCRIPT
# Inhalt ausgeben: Box1 
    BOX1 = CONTENT 
    BOX1 { 
      table = tt_content 
      select.orderBy = sorting 
      select.where = colPos = 2 AND header_layout = 1 
      } 
    # Inhalt ausgeben: Overlay Grafik Box1 
    IMGBOX1 = CONTENT 
    IMGBOX1 { 
      table = tt_content 
      select.orderBy = sorting 
      select.where = colPos = 3 AND header_layout = 1 
      } 
    # Inhalt ausgeben: Box2 
    BOX2 = CONTENT 
    BOX2 { 
      table = tt_content 
      select.where = colPos = 2 AND header_layout = 2 
      } 
    # Inhalt ausgeben: Overlay Grafik Box2 
    IMGBOX2 = CONTENT 
    IMGBOX2 { 
      table = tt_content 
      select.orderBy = sorting 
      select.where = colPos = 3 AND header_layout = 2 
      } 
    # Inhalt ausgeben: Box3 
    BOX3 = CONTENT 
    BOX3 { 
      table = tt_content 
      select.where = colPos = 2 AND header_layout = 3 
      } 
    # Inhalt ausgeben: Overlay Grafik Box3 
    IMGBOX3 = CONTENT 
    IMGBOX3 { 
      table = tt_content 
      select.orderBy = sorting 
      select.where = colPos = 3 AND header_layout = 3 
      }


Das funktioniert zwar, doch der Nachteil war, dass alle Inhaltselemente im Backend in der rechten Spalte angezeigt werden und man nicht daraus schliessen kann welches zu welcher Box gehört.
Mit dem neuen Backend Layout lässt sich das Elegant lösen: Das Layout wird zunächst wie im erwähnten Tutorial beschrieben erstellt.
Da nur noch das Feld colPos benötigt wird muss noch etwas angepasst werden für die erste Box wählte ich den Wert colPos = 21 für die zweite 22 und für die dritte 23 und für die Imageboxen in der dritten Spalte entsprechend 31, 32, 33. Da es sich um eine bestehende Seite handelt müssen alle Elemente die bisher colPos 2 und header_layout =1 (2 und 3) verwendet haben angepasst werden. Das geht am schnellsten mit 6 SQL-Befehlen in phpmyadmin:
SQL
UPDATE `tt_content` SET colPos = 21 WHERE colPos = 2 AND header_layout = 1
UPDATE `tt_content` SET colPos = 22 WHERE colPos = 2 AND header_layout = 2
UPDATE `tt_content` SET colPos = 23 WHERE colPos = 2 AND header_layout = 3
UPDATE `tt_content` SET colPos = 31 WHERE colPos = 3 AND header_layout = 1
UPDATE `tt_content` SET colPos = 32 WHERE colPos = 3 AND header_layout = 2
UPDATE `tt_content` SET colPos = 33 WHERE colPos = 3 AND header_layout = 3


Nach dem Update werden zunächst keine Inhalte mehr in der rechten Spalte angezeigt, weil die Abfrage im Setup nicht mehr stimmt. Dies muss nun neu heissen:
TYPOSCRIPT
# Inhalt ausgeben: Box1 
    BOX1 = CONTENT 
    BOX1 { 
      table = tt_content 
      select.orderBy = sorting 
      select.where = colPos = 21
      } 
    # Inhalt ausgeben: Overlay Grafik Box1 
    IMGBOX1 = CONTENT 
    IMGBOX1 { 
      table = tt_content 
      select.orderBy = sorting 
      select.where = colPos = 31
      } 
    # Inhalt ausgeben: Box2 
    BOX2 = CONTENT 
    BOX2 { 
      table = tt_content 
      select.where = colPos = 22
      } 
    # Inhalt ausgeben: Overlay Grafik Box2 
    IMGBOX2 = CONTENT 
    IMGBOX2 { 
      table = tt_content 
      select.orderBy = sorting 
      select.where = colPos = 32
      } 
    # Inhalt ausgeben: Box3 
    BOX3 = CONTENT 
    BOX3 { 
      table = tt_content 
      select.where = colPos = 23
      } 
    # Inhalt ausgeben: Overlay Grafik Box3 
    IMGBOX3 = CONTENT 
    IMGBOX3 { 
      table = tt_content 
      select.orderBy = sorting 
      select.where = colPos = 33
      }

Nun müssen in den Eigenschaften der root Seite allenfalls noch TypoScript Konfigurationen entfernt werden z.B. wenn die anstatt dem Standard Layout 1, 2, 3 etc. andere Namen vergeben wurden.


[Dieser Beitrag wurde 3mal bearbeitet, zuletzt am 30.01.2012 um 14:51.]
Dateianhang

gbbe.jpg (Typ: image/jpeg, Größe: 55.84 Kilobyte) — 71 mal heruntergeladen
Profil