Tag: TypoScript

Typo3 UTF8 Test

Nachdem ich gestern darauf eingegangen bin, wie man die Typo3 Webseite auf UTF8 umstellt, werden sich vielleicht manche fragen, wie man es denn wirklich testen kann, ob die Typo3 Webseite in UTF8 läuft.

Sollte man die Umstellung bei einem bestehenden Projekt machen, mit viel Text, wird man den Effekt gleich sehen. Die Umlaute sollte nicht mehr lesbar sein. Daher empfiehlt es sich, wie gesagt, so etwas am Anfang zu machen.

Um zu kontrollieren ob auch wirklich alles auf Typo3 läuft empfiehlt es sich folgende Vorgehensweise.
1. Anlegen eines Templates ‘template.html’ mit folgendem beispielhaftem Inhalt:
[PHP]

Hällö Wörld

###INHALT###


[/PHP]

Anschließend folgendes TypoScript im TypoScript-Browser eintragen:
[PHP]
page.config.metaCharset = utf-8
page.config.additionalHeaders = Content-Type:text/html;charset=utf-8

page = PAGE
page.config.admPanel = 1

page.10 = TEXT
page.10.value = HELLÖ WÖRLD!

page.typeNum = 0
page.20 = TEMPLATE
page.20 {
template = FILE
template.file = fileadmin/template.html
workOnSubpart = DOKUMENT
marks {

INHALT < styles.content.get } } [/PHP] Außerdem auf der entsprechenden Seite ein Inhaltselement in der mittleren Spalte anlegen mit Text, der ebenfalls Umlaute enthalten sollte. Anschließend sich die Ausgabe auf der Webseite anschauen. Sollten hier alle Umlaute richtig dargestellt werden, kann man zu 50% davon ausgehen das die Typo3 Konfiguration mit UTF8 stimmt. Um 100% sicher sein zu können sollte man sich das noch in der Datenbank anschauen. Das angelegte Inhaltselement findet man in tt_content, das eingetragene TypoScript findet man in sys_template. Auch hier müssen die Umlaute, bei der Auswahl des richtigen Datensatzes, lesbar angezeigt werden. Sollte man sein Inhaltselement gar nicht im Frontend sehen, hat man die Includes im Template - content (default) vergessen. [random_content group_id="211" num_posts="1"]

Typo3 mit UTF-8

Besonders in internationalen Projekten sollte man darauf achten das die Typo3 Installation in UTF-8 läuft, weil es sonst Probleme mit den Umlauten geben kann bzw. wird. Im Internet finden sich auch bereits eine Menge Seiten mit Hilfestellungen jedoch ist das Problem vielschichtiger. Fangen wir von unten an:

1. Die Tabellen müssen in UTF-8 laufen
2. Die Verbindung zur Datenbank muss in UTF-8 laufen
3. Die Webseite muß dem Browser sagen, das alles in UTF-8 läuft

Ob die Datenbank in UTF-8 läuft sieht man in PhpMyAdmin. In der Spalte “Kollation” hier sollte “utf8_general_ci” stehen.

Wenn man in PHPMyAdmin auf die Startseite klickt (das kleine Häuschen) in der linken Menüleiste, ganz oben erfährt man etwas über die Verbindung Zeichensatz / Kollation der MySQL-Verbindung. Diese sollte natürlich auch in utf8_general_ci laufen.

Die Verarbeitung der Daten mit UTF-8 in Typo3 erreicht man durch folgenden Eintrag in der localconf.php im Ordner typo3conf. Alternativ kann man dies natürlich auch über das InstallTool* machen.:
[PHP]
$TYPO3_CONF_VARS[‘BE’][‘forceCharset’] = ‘utf-8’;
$TYPO3_CONF_VARS[‘SYS’][‘setDBinit’] = ‘set names utf8’
[/PHP]

Als nächstes müssen wir noch dem Browser mitteilen, das die Typo3 Seite in UTF-8 läuft. Das machen wir durch die beiden folgenden Einträge im TypoScript-Setup.

[PHP]
page.config.metaCharset = utf-8
page.config.additionalHeaders = Content-Type:text/html;charset=utf-8
[/PHP]

Anschließend sollte die Typo3 Seite in UTF-8 laufen. Hinter InstallTool hatte ich ein kleines * gemacht, weil ich dazu noch folgendes sagen will: Sicherlich macht die Umstellung auf UTF8 am Anfang eines Typo3 Projektes, bei dem es durchaus legitim ist, dass das Install Tool noch aktiviert ist. Sobald man das Install Tool jedoch einmal deaktiviert hat, durch ändern das Passworteres bzw. durch Löschen der ENABLE_INSTALL_TOOL kann man solche Einträge auch direkt in der localconf.php machen. Mehr macht das Install Tool auch nicht, bzw. ist man so natürlich noch schneller.

[random_content group_id=”211″ num_posts=”1″]

Typo3 weißer Bildschirm

Es gibt wohl nicht Schlimmeres als wenn man mit voller Euphorie an ein neues Typo3 Projekt geht und bereits kurz nach dem Start geht es für Stunden nicht mehr weiter. Besonders als Anfänger ist man dann natürlich total demotiviert, deshalb möchte ich hier einmal ein paar Tipps geben, wie man herausfinden kann, wo die Ursache für einen “weißen Bildschirm” liegen können.

Als erstes sollte man seinen TypoScript Code auf das Nötigste reduzieren. Damit sollte er in etwa so aussehen:

[php]
page = PAGE
page.typeNum = 0
page.20 = TEMPLATE
page.20 {
template = FILE
template.file = fileadmin/template.html
}
[/php]

Mehr braucht man für den Anfang nicht. Auch nicht bei den Ressourcen oder Includes, das kommt alles später. Sollte man nun einen weißen Bildschirm sehen, liegt die Vermutung nahe, das man sich bei der Pfadangabe verschrieben hat. Dies kann man überprüfen in dem man in die Dateiliste geht und schaut ob hinter der Template Datei in der Spalte Ref. eine 1 steht. Sollte dies der Fall sein findet Typo3 die Datei.

Wer nun immer noch einen weißen Bildschirm sieht, könnte als nächstes wieder zurück in das Template gehen und schauen ob beim TypoScript Object Browser irgendwelche Hinweise stehen.

[php]
ERRORS AND WARNINGS
1: Line 6: An end brace is in excess.
1: Line 13: An end brace is in excess.
[/php]

Diese sollte man natürlich beheben und erneut die Ausgabe prüfen. Sollte außer Schneesturm immer noch nichts zu sehen sein, empfiehlt es sich das Admin Panel einzuschalten. Dazu im TypoScript Setup folgendes hinzufügen:

[php]
page.config.admPanel = 1
[/php]

unsere gesamtes TypoScript sieht dann wie folgt aus:

[php]
page.config.admPanel = 1

page = PAGE
page.typeNum = 0
page.20 = TEMPLATE
page.20 {
template = FILE
template.file = fileadmin/template.html
}
[/php]

Außerdem muß man beim User bzw. der Gruppe das Admin Panel extra aktivieren. Dazu in das TSconfig folgendes eintragen:

[php]
# Admin Panel einschalten
admPanel.enable.edit = 1
admPanel.enable.cache = 1
admPanel.enable.hide = 0
[/php]

Während man gleichzeitig im Backend eingeloggt ist sollte man im Frontend die Möglichkeit haben, ein Menü aufzuklappen. Meldungen zu unserem Template Problem würden wir bei dem Punkt TypoScript finden. Dort einfach alle Optionen aktivieren und auf Aktualisieren klicken.

Sollte sich jetzt in roter Schrift folgender Satz offenbaren:

[php]
fileadmin/template.html is not a file (non-uploads/.. resource, did not exist)
[/php]

hat man Glück, denn dafür gibt es hier hoffentlich die Lösung. Zur Vollständigkeit sei hier erwähnt das es als Bug erfasst wurde: http://bugs.typo3.org/view.php?id=11143

Dieser verlinkt jedoch zum Schweriner Typo3 Toaster:
http://typo3.toaster-schwerin.de/typo3_english/2009_05/msg00323.html

Lange Rede kurzer Sinn, es ist kein Bug in Typo3 4.2.6, sondern es hängt vom Filesystem ab, wie der mit Symlinks umgeht. Also einfach den Symlink von der index.php entfernen und direkt aus den Sourcen kopieren und es sollte wieder funktionieren.

[random_content group_id=”211″ num_posts=”1″]

Prepend vs. preCObject

Ich heute bestimmt 2-3 Stunden damit rumgemacht um herauszufinden, wie ich ein Bild vor einen Link bekomme und dieses auch verlinkt ist. Vielleicht haette ich es auch frueher herausbekommen, wenn mein russisch besser gewesen waere, aber Scherz bei Seite. Hier ist nur der Code.

[code]
seite.10.marks.OTHER_LANG = COA
seite.10.marks.OTHER_LANG.10 = TEXT
seite.10.marks.OTHER_LANG.10.value = Other languages…
seite.10.marks.OTHER_LANG.10.preCObject = COA
seite.10.marks.OTHER_LANG.10.preCObject.5 = IMAGE
seite.10.marks.OTHER_LANG.10.preCObject.5.file = fileadmin/images/roter_punkt.gif
seite.10.marks.OTHER_LANG.10.preCObject.5.params = style=”vertical-align: middle”
seite.10.marks.OTHER_LANG.10.typolink.parameter.wrap=fileadmin/templates/popup.htm 300×200:menubar=0,scrollbars=0,resizable=0,location=0,toolbar=0 weiss
[/code]