Tag: Bug

Call to undefined method GeneralUtility::readLLXMLfile()

Eine Aktualisierung von der TYPO3 CMS Version 4.5 LTS auf die 6.2 LTS wird wahrscheinlich die Tage häufiger durchgeführt, da es sich um die LTS-Versionen handelt und bei der 4.5 der Support ausläuft. Besonders wenn viele Extensions installiert sind, kann der Umstieg mehr als holprig werden. In diesem Fall kam es im Backend zu einer Fehlermeldung, wenn man neue Inhalte anlegen wollte:

Fatal error: GeneralUtility::readLLXMLfile

Folgende Fehlermeldung wird angezeigt, wenn auch ggf. in einer anderen Datei:

Fatal error: Call to undefined method TYPO3\CMS\Core\Utility\GeneralUtility::readLLXMLfile() in class.tx_xyz_wizicon.php on line 65

Glück im Unglück, die Fehlermeldung ist sehr sprechend und es ist auch gleich der Dateiname und die Zeilennummer angegeben, wodurch die Behebung schnell durchgeführt werden kann.

Der Fix: makeInstance(‘t3lib_l10n_parser_Llxml’)

Einfach in die angezeigte Datei wechseln und mittels Strg+F die entsprechende Stelle suchen und folgende Ersetzung durchführen:

// $LOCAL_LANG = t3lib_div::readLLXMLfile($llFile, $GLOBALS['LANG']->lang);
$parser = t3lib_div::makeInstance('t3lib_l10n_parser_Llxml');
$LOCAL_LANG = $parser->getParsedData($llFile, $GLOBALS['LANG']->lang);

Anschließend den Cache leeren und erneut Testen, ggf. kommt in einer Datei der Aufruf mehrmals vor, bzw. in vielen unterschiedlichen Dateien.

Gefunden hier: http://forge.typo3.org/issues/44413

Eine weitere Problematik ist häufig die Depraction-Meldung bzgl. Split().

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

Oxid Update

Wer bei Google nach “Oxid Update” sucht bekommt beim ersten Treffer, auf der offiziellen Oxid-Homepage, folgende netten Hinweis zu sehen:

Wie installiere ich Updates?
Zu jedem Update gehört eine install.html. In dieser Datei wird die komplette Update-Prozedur beschrieben.
Quelle: http://www.oxid-esales.com/de/resources/help-faq/faq/wie-installiere-ich-updates

Das ist totaler Quatsch !!! Weder im Oxid Package noch im Update Package befindet sich eine install.html. Von daher ist es auch keine Wunder, das die Seite mit einem Stern gerated ist. Für ein Oxid Update könnt ihr ein Cumulatives Package herunterladen, welches ihr hier findet: http://wiki.oxidforge.org/Cumulative_Packages

Darin befindet sich eine README Datei, welche euch wiederum auf folgende Seite verweist: http://www.oxid-esales.com/en/resources/help-faq/eshop-manual/update-one-release-another

Bevor ihr mit irgendwelchen Änderungen beginnt, seit sicher das ihr ein Backup habt, von euren Dateien und von der Datenbank. Merke: Backup ist wie ein Regenschirm, immer wenn man einen braucht hat man keinen.

Dort ist genau beschrieben wie man ein Oxid Update durchführt. Grundsätzlich gibt es vier Ordner in einem Oxid Update Package. Zuerst müßt ihr das “copy_this”-Verzeichnis ins Root-Verzeichnis eures Servers übertragen. Anschließend das updateApp Verzeichnis und dieses über den Browser aufrufen mittel http://www.example.com/updateApp . Anschließend müßt ihr das Verzeichnis wieder händisch vom Server löschen, auch wenn dort steht das es bereits gemacht wurde, hat es die Anwendung bei mir nicht geschafft. Falls ihr es nicht löscht, gibt es im Backend eine Fehlermeldung.

Im Verzeichnis “changed_full” vom Oxid Update Package findet ihr neue Templates, die ihr ggf. anpassen müßt, falls ihr selbst Änderungen an den Templates vorgenommen hattet. Das Verzeichnis “templ_docu” dokumentiert nur nochmal die Unterschiede und braucht nicht auf den Server hochgeladen zu werden.

Am Ende solltet ihr noch das tmp Verzeichnis auf dem Server löschen, damit die Änderungen auch sichtbar werden.

Typo3: PNG transparenter Hintergrund orange

Beim vergrößern bzw. verkleinern von PNG Grafiken kann es passieren, das der Hintergrund Orang ausgefüllt wird. Dies liegt an der verringerten Farbgrafik, welche in der Thumbs.php fälschlicherweise gesetzt wird.

Zur Behebung von diesem Bug einfach in der Zeile 237 von /t3lib/thumbs.php die entsprechende Zeile auskommentieren.
[php]
// Vorher
$colors = ($sizeMax>56)?’-colors 64′:’-colors 16′;
[/php]

[php]
// Nachher
// $colors = ($sizeMax>56)?’-colors 64′:’-colors 16′;
[/php]

Das wars schon. Jetzt sollten die Grafiken wieder normal angezeigt werden.

[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″]

ncftp – Rekursivität vergißt Ordner

NcFTP ist ein kleiner schneller FTP client, der besonders im Linux Umfeld verbreitet ist um sich per Konsole auf andere Rechner zu verbinden. An dieser Stelle soll natürlich nicht vergessen werden darauf hinzuweisen, das FTP generell unsicher ist, weil das Passwort im Klartext übertragen wird, so wie alle andere Informationen, Host und Benutzername, auch. Damit wird es einem Hacker natürlich recht einfach gemacht. Jedoch gerade bei billigen Anbietern hat man oft keine andere Wahl.

Somit wurde ich auch mal wieder gezwungen auf NcFTP zurückzugreifen. Die Aufgabe war simple. Es ging bloß darum eine Kopie vom FTP Host zu erstellen und diese auf einem anderen Rechner einzuspielen.

Mit get -R ./ dachte ich, könnte schon nicht schief gehen. Jedoch stelle ich später fest, das ein paar Verzeichnisse fehlten. Um genau zu sein, es fehlten die Enden von den Ästen. Alles was tiefer als Level 5 lag, wurde nicht mehr kopiert. Ein Blick ins Manual brachte folgendes zur Tage:

Bugs
There are no such sites named bowser.nintendo.co.jp or sphygmomanometer.unl.edu.
Auto-resume should check the file timestamps instead of relying upon just the file sizes, but it is difficult to do this reliably within FTP.
Directory caching and recursive downloads depend on UNIX-like behavior of the remote host.

Source: http://www.ncftp.com/ncftp/doc/ncftp.html

Bedauerlicherweise wird jedoch nicht verraten, wo man herausfinden kann, wie sich das UNIX System verhält.