Typo3 Filelinks – PDF Icon anpassen bzw. Icons ergänzen

Im Typo3 Standard-Contentelement Filelinks (Deutsch: Dateilinks) werden nicht alle Standard-Icons angezeigt.

Um hier z.B. ein PDF-Icon anzuzeigen muss in folgender Datei:

 

In folgender Abfrage diese Zeile ergänzt werden:

In meinem Fall habe ich natürlich nicht das Original-Template angepasst sondern das in meinem Override-Ordner.

Obige Code-Klasse funktioniert natürlich auch nur, wenn der Fontawesome Icon-Font eingebunden ist, er soll nur als Beispiel dienen.

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:

 

Typo3 Fluid: if Viewhelper (if – then – elseif – else)


Deprecated: pathinfo(): Passing null to parameter #1 ($path) of type string is deprecated in /html/typo3.andreas-huber.at/wp-content/plugins/crayon-syntax-highlighter/crayon_langs.class.php on line 84

Deprecated: pathinfo(): Passing null to parameter #1 ($path) of type string is deprecated in /html/typo3.andreas-huber.at/wp-content/plugins/crayon-syntax-highlighter/crayon_langs.class.php on line 84

Mit Typo3 8 wurde Fluid als Standalone Plugin weiterentwickelt und einigen Änderungen und Erweiterungen unterzogen. Da die Frage immer wieder mal auftaucht – hier eine kurze Übersicht die der if Viewhelper in Typo3 Fluid aufgebaut ist. Einmal in Typo3 7 und früher, einmal in Typo3 ab Version 8.

Fluid if Viewhelper in Typo3 7 und früher

Hier gab es das elseif-Konstrukt noch nicht, und man musste die if-Conditions in der Regel verschachteln:

Eine Ausnahme gab es, um ohne die if-Verschachtelung auszukommen – man konnte via Arrays die logische UND-Verknüpfung (&&) wie folgt nachbauen, und sich somit das Verschachteln der if-Anweisungen sparen:

 

Fluid if-Viewhelper in Typo3 8 und höher

Möglich ist auch, diese Abfragen mit logischen UND bzw. ODER in kürzerer Schreibweise zu schreiben:

Weitere Beispiele:

Ist wahr, wenn eine der beiden Variablen gesetzt ist.

 

Inline Schreibweise von if-Conditions:

If – Abfragen können auch inline geschrieben werden. Das ist z.B. sinnvoll, wenn in Fluid-Templates je nach gesetzten Variablen oder bei bestimmten Varialben-Werten bestimmte CSS-Klassen ausgegeben werden sollen.

 

Beispielsweise wenn im Backend bei Inhaltselementen im Reiter „Erscheinungsbild“ bestimmte Layouts, Frames oder Abstände ausgewählt werden.

Hier die generelle Schreibweise:

 

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):

 

Umstellung einer Domain auf SSL / https in Typo3

Die Umstellung einer Domain auf SSL (also von http:// auf https:// ) ist normalerweise kein großes Problem. Ein paar Dinge gibt es doch zu beachten.

Gerade in einer Multi-Domain Installation von Typo3 müssen ein paar Dinge beachtet werden. Einige der Tipps, die man im Web so findet passen da nicht. Zum Beispiel werden oft .htaccess Snippets genannt die alle Domains innerhalb des Typo3 zum Beispiel von http:// auf https:// weiterleiten.

Zuallerst muss das SSL-Zertifikat bestellt und eingerichtet werden – nicht vergessen, den A-Record der Domain auf die neue IP zu mappen bei den DNS-Einstellungen.

In meinem Fall habe ich aber folgendes gebraucht:

  • Weiterleitung von http://domain.com auf https://www.domain.com
  • Weiterleitung von https://domain.com auf https://www.domain.com
  • Weiterleitung von http://www.domain.com auf https://www.domain.com

Anmerkung:

Gerade die Weiterleitung von non-www auf https://www. sollte aus SEO-Gründen nicht verkettet passieren (also keine Weiterleitung von http://domain.com nach http://www.domain.com und dann nach https://www.domain.com) sondern in einem Rutsch.

Folgender Code bewerkstelligt diese Anforderungen:

 

Aber besser noch dieses Snippet: (danke an Gerald)

 

Zusätzliche Einstellungen für Typo3:

Damit das Ganze auch richtig funktioniert, müssen in Typo auch noch ein paar Einstellungen gemacht werden:

  1. Bei den Seiteneinstellungen muss unter „Behaviour“ das Protokoll der jeweiligen Seite auf https:// umgestellt werden.

    (Leider muss das für jede einzelne Seite gemacht werden – hier hilft es, in der List Ansicht mittels Plus-Symbol den Wert „Enforce Protocol“ in die Listansicht zu holen. So kann man wenigstens alle Seiten einer Ebene in einem Rutsch abarbeiten.)Typo3 SSL https Umstellung
  2. Bei den Seiteneinstellungen kann man unter „Resources“ auf der Startseite der Domain gleich unter Page TS Config folgendes eintragen:

    Das sorgt dafür, dass neu angelegte Seiten gleich den Wert „https://“ als Protokoll bekommen.
  3. Im Typoscript Template folgendes eintragen:

    Sollten noch config.baseURL-Einträge vorhanden sein können diese mit absRefPrefix ersetzt werden (sofern Typo3 >= 6.2). Bei der Domain nun als Protokoll ebenso https:// einsetzen.

Das wars :-).

Typo3 8 LTS – Die Neuerungen

Typo3 8 LTS

Endlich – viele von uns haben schon auf die neue LTS Version von Typo3 gewartet – nun ist sie, 18 Monate nach der Typo3 7 LTS Version, erschienen. Und sie wartet mit ein paar wirklich tollen Neuerungen auf, hier die für mich persönlich wichtigsten Neuerungen:

  • Responsive Backend:
    Es wurde weiter an dem Responsive Design im Backend gearbeitet – und man kann sagen, dass dieses nun komplett umgesetzt wurde.
  • Performance:
    Die neue Typo3 8 LTS hat als Mindestanforderung PHP Version ab 7. Das hat zur Folge, dass das Typo3 Backend nun gefühlt sehr viel schneller ist. Fluid wurde komplett ausgelagert, was zudem zu einem schnelleren Backend führt.
  • Bildbearbeitung:
    Auch hier hat man einige neue Features integriert und vorhandenes optimiert. Es ist nun möglich, das Seitenverhältnis zu definieren, ausserdem für Tablet und Smartphone-Varianten des Bildes Fokusbereiche zu definieren. Fazit: Sehr praktisch!
  • Rich Text Editor: CKEditor integriert
    Der in die Jahre gekommene Editor HTMLArea wurde von CKEditor abgelöst – CKEditor ist sehr einfach zu integrieren und konfigurieren und hat ein paar tolle Features – unter anderem einen „Frontend-Editing“ – Modus, welcher in zukünftigen Versionen von Typo3 integriert werden soll.
  • FLUID
    Auch bei der Sprache FLUID hat sich einiges getan – so hat man FLUID nun aus dem Typo3 Core entkoppelt und es gibt einige neue Features.

Eine Liste von allen Neuerungen kann man hier finden oder bei dem PDF „What’s New Slides“ (111 Seiten).

Typo3 Update via SSH und Symlinks

Meistens muss ich, wenn ich ein Typo3 Update durchführe, die SSH Befehle dazu googeln, da ich sie nicht so oft brauche und mir aus diesem Grund auch nicht vollständig merke. Zeit, diese SSH Befehle hier niederzuschreiben :-).

Wie oft hab ich schon TYPO3 Updates gemacht und schaue jedes mal wieder die Befehle auf der Kommandozeile nach? Daher publiziere ich hier nichts Neues, aber Sinnvolles:

Erst einmal Grundlegende Befehle:

Auflistung eines Ordnerinhaltes:
ls
ls -l – Mit Details

Ordner:
cd ordnername – Wechseln in den Ordner „ordnername“
cd ordnername/subordner/noch/einer/ – Wechseln in bestimmten Unterordner
cd .. – Eine Ebene höher
cd / bzw. cd ~ – Wechseln das Home Verzeichnis

Holen der aktuellen Typo3-Version, z.B.:
wget get.typo3.org/8.6.0

Das heruntergeladene File (tar.gz) entpacken:
tar xvfz typo3_src-8.6.0.tar.gz

Wechseln zum richtigen Verzeichnis:
cd html/

Der alte Symlink muss entfernt werden:
rm typo3_src

Neuen Symlink setzen:
ln -s typo3_src-8.6.0/ typo3_src

Möglicherweise müssen folgende Symlinks ebenfalls noch gesetzt werden:
(Symlinks für typo3/ , t3lib/ und index.php)

ln -s typo3_src/index.php index.php
ln -s typo3_src/typo3 typo3
ln -s typo3_src/t3lib t3lib

Ist das erledigt, muss man in das Install-Tool von Typo3 und dort den Upgrade-Wizard ausführen.

Typo3 Fluid: Debugging


Deprecated: pathinfo(): Passing null to parameter #1 ($path) of type string is deprecated in /html/typo3.andreas-huber.at/wp-content/plugins/crayon-syntax-highlighter/crayon_langs.class.php on line 84

Deprecated: pathinfo(): Passing null to parameter #1 ($path) of type string is deprecated in /html/typo3.andreas-huber.at/wp-content/plugins/crayon-syntax-highlighter/crayon_langs.class.php on line 84

Deprecated: pathinfo(): Passing null to parameter #1 ($path) of type string is deprecated in /html/typo3.andreas-huber.at/wp-content/plugins/crayon-syntax-highlighter/crayon_langs.class.php on line 84

Debug von bestimmten Variablen oder allen Variablen:

 

Debug bis zu einer bestimmten Tiefe der Variable:

 

Um die Debug-Informationen nicht über der Webseite, sondern inline an der Stelle wo er vorkommt anzuzeigen kann folgender Code verwendet werden:

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


Deprecated: pathinfo(): Passing null to parameter #1 ($path) of type string is deprecated in /html/typo3.andreas-huber.at/wp-content/plugins/crayon-syntax-highlighter/crayon_langs.class.php on line 84

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


Deprecated: pathinfo(): Passing null to parameter #1 ($path) of type string is deprecated in /html/typo3.andreas-huber.at/wp-content/plugins/crayon-syntax-highlighter/crayon_langs.class.php on line 84

Deprecated: pathinfo(): Passing null to parameter #1 ($path) of type string is deprecated in /html/typo3.andreas-huber.at/wp-content/plugins/crayon-syntax-highlighter/crayon_langs.class.php on line 84

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: