DCE: Select field (manuelle Liste) mit if in Fluid abfragen

An dieser simplen Aufgabe bin ich einige Zeit gesessen. Wenn man z.B. im DCE für die Backend-Fields die Möglichkeit braucht mehrere Optionen auszuwählen.

Die Aufgabenstellung bei mir war:

Für eine Gruppe von Autohäusern stehen drei Automarken zu Verfügung. Für jeden Standort sollten die angebotenen Marken am Standort gewählt werden können.

Ich habe das Content Element mit der Extension DCE, die ich wirklich gerne verwende, erstellt. Als Feld habe ich ein Select-Feld verwendet, definiert als manuelle Liste mit drei Einträgen:

 

Im Fluidtemplate wollte ich die Abfrage mittels einem IF-Konstrukt lösen:

Das klappte aber nicht – hat die manuelle Liste des Elementes mehr als zwei Optionen lässt sie sich mittels Fluid IF so nicht mehr abfragen. (Bei zwei Optionen kann auf wahr/falsch abgefragt werden.)

Und das klappte deswegen nicht, da ein Fluid-Debug zeigte, dass die Variable kein Array ist, sondern ein String:

Die Lösung:

Um diesen String nun umzuwandeln hilft dce:explode (danke an die Hilfe von Armin und Erik im #dce-Channel von Slack):

 

Namespace nicht vergessen: 
{namespace dce=ArminVieweg\Dce\ViewHelpers}

Fluid in Typo3: Override Templates hat sich geändert

Der Typoscript Code um Templates zu überschreiben (override templates) hat sich geändert. Ich musste dies bei mir in Typo3 8.x ändern – und hab die Lösung erst nach einigem Suchen gefunden.

Die Typoscript lib hat sich geändert von lib.contentElement zu lib.fluidContent.

Richtig heisst der Typoscript-Code also um Templates in Fluid zu überschreiben:

 

Bootstrap 3 Spaltenelemente in Typo3

Ich setze bei meinen Projekten ganz gerne auf die Lösung von  Stefan Schäfer / merec.org, um Spaltenelemente basierend auf Bootstrap 3 Klassen zu realisieren.

Aufgrund der Anforderung, dass die Redakteure das Aussehen der Inhalte, im speziellen Fall auch der Bootstrap Spalten, anpassen sollen, habe ich das Typoscript Setup von Stefan noch etwas erweitert bzw. geändert.

Die prinzipielle Struktur die ich gerne wollte war:

Folgende Dinge soll der Redakteur beeinflussen können:

  • Ob die Zeile 100% der Seitenbreite einnimmt oder die vordefinierte Inhaltsbreite (aus dem Reiter „Erscheinungsbild“ -> Frame)
  • Abstand davor und Abstand danach (aus dem Reiter „Erscheinungsbild“ -> Space Before / Space After)
  • Hintergrundfarbe der Zeile (aus dem Reiter „Erscheinungsbild“ -> Layout)

 

Ich habe also beim Typoscript Code von Stefan folgendes ergänzt (heller hinterlegte Zeilen):

 

Canonical Tags bei News-Urls in Typo3 Multi-Domain System

Hat man in einer Typo3-Installation mehrere Domains laufen und publiziert News (via tt_news) auf mehreren Domains dann läuft man Gefahr, ein Duplicate-Content Problem bei Google zu bekommen.

Man kann mit folgendem Typoscript-Code bei der News ein Canonical Tag hinterlegen, und verweist somit auf eine „Haupt-Url“ der News:

 

HTML Body-Tag: Bestimmte Klassen ausgeben

Je nach Template kann es notwendig sein, beim Body-Tag bestimmte CSS-Klassen aus Typo3 auszugeben.

Dies kann z.B. mit folgendem Code bewerkstelligt werden, es können aber auch direkt in Typoscript schon Unterscheidungen getroffen werden:

Unterscheidung in HTML nach IE-Version:

 

Unterscheidung in Typoscript, hier wird z.B. die Seiten ID mitgegeben:

Typoscript: Menü der Unterseiten inkl. Beschreibung und Bild

Bildschirmfoto 2016-08-23 um 09.26.39

Um schöne Teaser der Unterseiten in Typo3 anzeigen zu können kann man mittels Typoscript eine neue Darstellung des Menüs „Menü der Unterseiten inkl. Abstract“ erstellen. So ist eine Darstellung der Unterseiten mit Titel, Kurzbeschreibung und Bild (jeweils aus dem Seitenheader der Unterseiten) möglich:

 

Doppelte Zeilenschaltungen (New Lines bzw. Carriage Returns) in Datenbank durch einfache Zeilenschaltungen ersetzen

Wer zu Anfangszeiten den Fehler gemacht hat, doppelte Zeilenschaltungen für Absätze zu machen und P-Tags auf Margin 0 zu setzen und das Problem nun beheben möchte, weil die P-Tags korrekt als Absätze definiert werden sollen der kann das in der MySQL Datenbank wie folgt machen:

Um zu sehen, ob auch alles korrekt funktioniert zuerst ein kleiner Test, wir ändern ein Wort ab:

Ein kurzer Check ob es funktioniert hat:

Der finale Code

Wird hier die Änderung richtig angezeigt dann kann es los gehen. Mit folgendem Befehl werden ALLE doppelten Zeilenschaltungen für Textelemente der Spalte „bodytext“ in der Tabelle tt_content durch einfache ersetzt:

 

Infos:
  • \r ist ein „carriage return„, kommt vom „Wagenrücklauf“ der Schreibmaschine und bedeutet soviel wie „zurück zum Zeilenanfang“.
  • \n bedeutet „new line“ und ist der Zeilenumbruch

Getestet auf einem Typo3 7.6 System.