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 8.5 erschienen

Ein verfrühtes Weihnachtsgeschenk, so wird es auch auf typo3.org genannt. Wir werden uns gleich die wichtigsten Neuerungen von Typo3 8.5 ansehen, einiges davon klingt vielversprechend.

So wurde endlich die Erstellung von Formularen z.B. um Kontaktformulare zu erstellen, überarbeitet. Die Funktionen wanderten von einer Extension nun zum „Form Framework“.

Es können nun einfach und schnell Formulare erstellt werden, hierzu ein kleines Video:

Eine weitere, lang erwartete Änderung ist die Erneuerung des Rich-Text-Editors (RTE). Dieser basiert standardmäßig seit einiger Zeit auf HTML-Area-RTE. Nun hat man endlich eine Basis-Version des ziemlich soliden CKEditor in Typo3 8.5 integriert.

CKEditor in Typo3 8.5
CKEditor in Typo3 8.5

In den nächsten Versionen wird diese Integration immer weiter fortgeführt.

Weitere Änderungen im Changelog.

 

 

Typo3 Fluid: Debugging

Debug von bestimmten Variablen oder allen Variablen:

<f:debug title="Debug of MyArray">{myarray}</f:debug>
<f:debug title="All available variables">{_all}</f:debug>

 

Debug bis zu einer bestimmten Tiefe der Variable:

<f:debug maxDepth="3">{data}</f:debug>

 

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

<f:debug inline="true">{data}</f:debug>

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:

page.headerData.40 = TEXT
page.headerData.40 {
 typolink.parameter.data = TSFE:id
 typolink.forceAbsoluteUrl = 1
 typolink.returnLast = url
 typolink.additionalParams.cObject = COA
 typolink.additionalParams.cObject {
 10 = TEXT
 10.dataWrap = &tx_ttnews[tt_news]={GP:tx_ttnews|tt_news}
 10.if.isTrue.data = GP:tx_ttnews|tt_news
 20 = TEXT
 20.dataWrap = &tx_ttnews[cat]={GP:tx_ttnews|cat}
 20.if.isTrue.data = GP:tx_ttnews|cat
 }
 wrap = <link href="|" rel="canonical">
}

 

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:

page.bodyTagCObject = TEXT
page.bodyTagCObject.value (
<!--[if lt IE 7 ]> <body class="ie6"> <![endif]-->
<!--[if IE 7 ]> <body class="ie7"> <![endif]-->
<!--[if IE 8 ]> <body class="ie8"> <![endif]-->
<!--[if IE 9 ]> <body class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <body> <!--<![endif]-->
)

 

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

page.bodyTag >

page.bodyTagCObject = TEXT
page.bodyTagCObject.field = uid
page.bodyTagCObject.wrap = <body id="blog-|">

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:

######################################################
# MENÜ DER UNTERSEITEN MIT BILD AUS PAGEHEADER
######################################################

tt_content.menu {
 20 {
 10 = HMENU
 10 {
 special = directory
 #special = list
 #special.value.field = pages
 1 = TMENU
 1.wrap = |
 1.NO {
 doNotLinkIt = 1
 stdWrap.cObject = COA
 stdWrap.cObject {
 10 = FILES
 10 {
 references {
 table = pages
 fieldName = media
 }
 renderObj = IMAGE
 renderObj {
 file {
 width = 80c
 height = 65c
 maxW = 81c
 maxH = 66c
 # height 263c
 # width 155c
 import.data = file:current:publicUrl
 }
 altText.field = title
 imageLinkWrap = 1
 imageLinkWrap {
 enable = 1
 typolink.parameter.field = uid
 }
 }
 stdWrap.wrap = <div class="row"><div class="col-md-2">|</div>
 }
 
 20 = TEXT
 20.field = title
 20.typolink.parameter.field = uid
 20.wrap = <div class="col-md-10"><h3 class="subpage-teaser">|</h3>
 
 30 = TEXT
 30.field = abstract
 30.wrap = <p>|</p></div></div>
 }
 }
 } 
 }
}

 

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:

UPDATE tt_content SET bodytext = REPLACE(bodytext, 'Informationen', 'Informatiionen') WHERE uid = 443

Ein kurzer Check ob es funktioniert hat:

SELECT * FROM `tt_content` WHERE bodytext LIKE '%Informatiionen%' ORDER BY `pid` ASC

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:

UPDATE tt_content SET bodytext = REPLACE(bodytext, '\r\n\r\n', '\r\n')

 

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.