Samstag, 2. November 2013

T3jquery mit Typo3 6.2 kompatibel machen

Bekommt ihr, wenn ihr im Backend das T3jquery-Modul unter Typo3 6.2 (Beta 2) aufruft, die Fehlermeldung

"Fatal error: require_once(): Failed opening required 'PATH_t3libclass.t3lib_scbase.php' ...?

Das liegt daran, dass T3Jquery im Backend die Klasse bzw. die Datei "/t3lib/class.t3lib_scbase.php" aufruft. Diese Klasse ist unter Typo3 6.2 allerdings "deprecated", wurde also in dieser Form entfernt und mit einer neuen Klasse ersetzt. Solange noch kein Patch rausgekommen ist, könnt ihr euch selbst helfen!

Öffnet dazu die Datei /typo3conf/ext/t3jquery/mod1/index.php und verändert den Code in Zeile 33 von

require_once(PATH_t3lib . 'class.t3lib_scbase.php');

zu

require_once(\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('backend') . 'Classes/Module/BaseScriptClass.php');

Danach die Datei abspeichern und Voila! Das Backendmodul funktioniert wieder.


----
Update 1

Das gleiche funktioniert natürlich auch  mit anderen Extensions, die das Backend nutzen, wie z.B. dix_urltool.

Hier müsst ihr in der Datei /typo3conf/ext/dix_urltool/mod1/index.php die Zeile 40 auf die gleiche Art und Weise modifizieren wie oben.

----
Update 2

Seit Ende März gibt es auch ein offizielles Update von t3jquery, die mit Typo3 6.2 kompatibel ist!
http://typo3.org/extensions/repository/view/t3jquery

Dienstag, 22. Oktober 2013

"Page is being generated" in Typo3 6.2.x entfernen

Ihr kennt es bestimmt gerade bei kleineren Websites auf Shared-Hostern: wenn mehrere Leute auf eine Seite zugreifen, die gerade erzeugt und im Cache abgelegt wird, bekommt man meistens zunächst eine leere, weiße Seite mit dem Hinweis "Page is being generated" und dass man 30 Sekunden lang abwarten soll. Oftmals ist eine Seite viel früher fertig und wer möchte schon 30 Sekunden lang warten und womöglich die Seite auch noch manuell aktualisieren?

Mit einem leichten Eingriff könnt ihr die Generierung einer solchen Zwischenseite unterdrücken. Diese Vorgehensweise wurde zwar des öfteren schon erwähnt. Doch in Typo3 6.2 wurde dies verändert Anstatt in der Datei "/typo3/sysext/cms/tslib/class.tslib_fe.php" müsst ihr ab jetzt in der Datei "/typo3/sysext/frontend/Classes/Controller/TypoScriptFrontendController.php" einen Code verändern.

Vergesst nicht, vorher eine Sicherheitskopie zu erstellen!

Sucht in der Datei "TypoScriptFrontendController.php" den Code "$this->tempPageCacheContent();" und kommentiert diesen so aus "// $this->tempPageCacheContent();"

Das war's! Jetzt sollte die Meldung nicht mehr kommen. Ein Besucher muss zwar immer noch warten, bekommt die Seite aber sofort geliefert, sobald diese fertig ist und wird nicht durch die leere Seite irritiert.

Dienstag, 30. Juli 2013

Typo3 6.x Scheduler bei 1und1 mit Crontab und PHP5.4 einrichten

Endlich habe ich den Typo3-Scheduler in meinem 1und1-Hosting-Paket zum Laufen gebracht! Bei 1und1-Hosting gibt es einige Hürden einen Cronjob einzurichten, nicht zuletzt weil 1und1 standardmäßig nur PHP 4.4 bzw. 5.2 laufen hat, wenn man der offiziellen Anleitung von 1und1 folgt.
Da man für neuere Typo3-Versionen (oder auch Joomla) mindestens PHP 5.3 benötigt, unter anderem für die PHP-Funktion "Namespaces", zeige ich euch, wie ihr einen Cronjob mit PHP 5.4 zum Laufen bringt.

1. Klickt auf "Backend users" und erstellt einen Benutzer Namens "_cli_scheduler". Dieser sollte *kein* Amin-User sein und (aus Sicherheitsgründen) ein anderes Passwort haben als euer Login. Dieser Benutzer wird vom Scheduler verwendet, um die eure eingestellten Aufgaben abzuarbeiten.

2. Öffnet im Typo3-Backend den Menüpunkt "Scheduler" und öffnet den Reiter "Setup check". Hier findet ihr den Pfad zu eurem Scheduler (der so ähnlich aussieht: "/kunden/homepages/xx/dxxxxxxxxx/htdocs/Unterordner/typo3/cli_dispatch.phpsh scheduler"), den ihr euch kopiert - nachher werdet ihr diesen Pfad benötigen.

3. Loggt euch in euer 1und1-Account ein und öffnet unter "Zugänge" den Menüpunkt "SSH-Konfiguration". Hier könnt ihr eure Zugangsdaten für die Shell einsehen und konfigurieren. Diese Zugangsdaten werdet ihr ebenfalls gleich benötigen.

4. Ladet euch Putty herunter (ein kostenloser SSH-Client) und loggt euch mit den Zugangsdaten von Punkt 3 ein.

5. Gebt in der Shell den Befehl "crontab -e" ein, und gebt danach "i" ein, um in den Editier-Modus zu gelangen.

6. Scrollt mit den Cursortasten bis ganz nach unten und gebt dies ein, in 2 Zeilen.

MAILTO=max.mustermann@email.de
0 0 * * * php6 /kunden/homepages/xx/dxxxxxxxxx/htdocs/Unterordner/typo3/cli_dispatch.phpsh schedule


1und1 Typo3 Cronjob Scheduler mit Crontab und SSH einstellen
Zum vergrößern klicken!


Wie ihr erkennen könnt, ist der Abschnitt mit dem Pfad /kunden/.../ der gleiche Pfad aus Punkt 2, den ihr euch notiert habt (natürlich sind die vielen "/xx/xxx/" nur Platzhalter - bei jedem 1und1-Kunden ist der Pfad anders).

Die Zeile mit "MAILTO" ist optional - wenn ihr hier eure E-Mail-Adresse eingebt, bekommt ihr immer einen Statusbericht, wenn mit dem Cronjob etwas nicht richtig läuft.

Mit dem Befehl php6 wird die aktuellste php-dev von 1und1 eingesetzt, in diesem Fall ist es die Version 5.4.17. 

Der Cronjob in diesem Beispiel wird jeden Tag um punkt 0 Uhr ausgeführt. Ich empfehle euch dies beizubehalten, in den meisten Fällen sollte das ausreichen. Solltet ihr andere Zeiten wollen bzw. eine höhere Frequenz, müsst ihr die ersten 5 Zeichen verändern. Hier einige Beispiele:

Jede volle Stunde: 0 * * * *
Jeden Tag um fünf Uhr morgens: 0 5 * * *
An jedem 15. des Monats um Mitternacht: 0 0 15 * *

Ihr könnt optional auch den Befehl > /dev/null hinter "schedule" dranhängen, dann gibt es nur eine Benachrichtigung, wenn eine Fehlermeldung gekommen ist.

7. Um den Editier-Modus von Crontab zu beenden, gebt "Esc" ein, und danach "ZZ". Danach könnt ihr Putty mit dem Befehl "exit" schließen.

8. Das war's! Jetzt wird der Cronjob von 1und1 mit PHP 5.4 ausgeführt und sollte z.B. nicht mehr die Fehlermeldung wegen PHP 5.2 "Unexpected character in input:  '\' (ASCII=92)" ausspucken. Ihr könnt dies nochmal checken, indem ihr nach der zu erwartenden Ausführungszeit wieder im "Setup check" vom Scheduler im Typo3-Backend nachseht ob der Cronjob korrekt ausgeführt wurde.

Wenn ihr irgendwelche Fragen habt, schreibt mir ein Kommentar, ich werde versuchen euch so schnell wie möglich zu antworten!

Dienstag, 9. Juli 2013

Einsteiger-Smartphone Empfehlung: Das Ace 2 bei Tchibo im Angebot

Hallo ihr Lieben,

ist schon eine Weile her, dass ich zuletzt etwas geschrieben habe - nun wollte ich euch zum Thema Mobilfunk etwas schreiben. Einige von euch haben es vielleicht schon mitbekommen, vor einigen Wochen gab es das Galaxy Ace 1 bei Tchibo für 99 Euro inklusive Smartphone-Tarif (100 Minuten, 100 SMS, 300 MB Internet für knapp 8 Euro monatlich).

Das ging wie zu erwarten weg wie Semmeln. Allerdings ist das Einsteiger-Smartphone Galaxy Ace 1 nicht gerade besonders gut ausgestattet - zugegebenermaßen sollte man für knapp 100 Euro nicht so viel erwarten können im Vergleich zu einem Mittelklasse-Modell für 250-300 Euro oder gar ein High-End-Modell für 500 Euro.

Für alle, die entweder das Angebot verpasst haben oder die doch "etwas mehr" möchten, kann ich das aktuelle Smartphone-Angebot von Tchibo empfehlen: Im Moment gibt es das Ace 2 für 149 Euro mit ähnlichen Konditionen wie vor 3 Wochen (statt 8 Euro 10 Euro monatlich). Welchen Mehrwert bekommt man im Vergleich zum Ace 1?

  • Deutlich höhere Displayauflösung (480x800 Pixel, wie z.B. beim Galaxy S2)
  • Größeren Akku (kompensiert die höhere Auflösung)
  • Dualcore 800 Mhz anstatt SingleCore (ebenfalls 800 Mhz)
Aber den wichtigsten Unterschied macht ein Detail aus: Samsung hat für das Galaxy Ace 2 ein Update auf eine ziemlich aktuelle Androidversion 4.1 ausgerollt. Dies verspricht in Kombination mit dem DualCore vor allem eine Butterweiche Oberfläche und die Google Now!-Funktion. Weitere Infos zum Update könnt ihr in dem eben genannten Link finden.

Für 149 Euro ist das Ace 2 in Hinblick auf das Update definitiv ein besseres Angebot als das Ace 1 vor wenigen Wochen. Wer ein Einsteiger-Smartphone möchte, mit einem fairen Tarif, dem kann ich dieses Angebot wärmstens ans Herz legen. Selbst auf Amazon kostet dieses Handy im Moment 174 Euro!

Hinweis: Der Smartphone-Tarif von Tchibo ist ein Prepaid-Tarif auch wenn die Gebühren monatlich abgebucht werden! Dies ist insofern vor allem für O2 Vertragskunden relevant, da man die Rufnummer in diesem Fall nicht mitnehmen kann. Dies habe ich selbst vor kurzem erst schmerzlich erfahren müssen :-(

Mittwoch, 1. Mai 2013

RealUrl Kompatibilität mit Typo3 6.1

Typo3 6.1 wurde gestern veröffentlicht - leider funktioniert RealUrl noch nicht mit dieser Version zusammen wegen der Umstellung auf mysqli. Ein Patch gibt es zwar bereits schon, wurde aber noch nicht veröffentlicht im Extension Repository.

Um euch die Wartezeit zu verkürzen, könnt ihr bis dahin aber auch selbst Hand anlegen:
  1. Öffnet die Datei /typo3conf/ext/realurl/class.tx_realurl.php, und ersetzt die Zeilen 239-243 mit folgendem Code:

    if (!t3lib_extMgm::isLoaded('dbal')) {
    $this->useMySQLExtendedSyntax = TRUE;
  2. Verändert ansonsten nichts vom Code (also bis Zeile 238 und ab Zeile 244). Speichert die Datei ab, löscht den Typo3 Cache im Backend und fertig! Jetzt sollte RealUrl wieder wie gewohnt laufen.
Sobald das eigentliche Update fertig ist, würde ich auf jeden Fall empfehlen diese dann auch zu installieren. Dieser Code sollte in erster Linie nur eine Überbrückung bis zum Update sein.

Die Quelle für den Fix könnt ihr hier einsehen: https://review.typo3.org/#/c/19452/

Update 06.05.2013: RealUrl wurde jetzt offiziell geupdated und sollte nun auch auf Typo3 6.1 korrekt laufen. Hier der Link zur Extension Repository http://typo3.org/extensions/repository/view/realurl

Donnerstag, 31. Januar 2013

Typo3 6.0.1 Fehlermeldung "File has been deleted"

Habt ihr auch gerade von Typo3 6.0 auf 6.0.1 geupdated und bemerkt, dass im Backend beim Modul "Sprachen" immer noch die Fehlermeldung "File has been deleted" auftaucht mit einer entsprechenden Verlinkung zum Bugtracker von Typo3?

Fehlerbehebung:

Solltet ihr diesen Fehler bereits in Version 6.0 haben, müsst ihr folgendes machen:
  1. Alle Caches löschen

    Alle Caches löschen

  2. Im Installations-Tool unter "Clean up" die temporär gespeicherten Dateien löschen (keine Sorge, es sind nur temporäre Dateien - kein Datenverlust)

  3. In der Datenbank den Befehl "truncate sys_file_processedfile" ausführen. Durch diesen Befehl wird diese Tabelle geleert. Solltet ihr bei einem Hostingpaket von z.B. 1und1 sein und euch nicht so sehr mit Datenbanken auskennen, müsst ihr folgende Schritte folgen.
  • In eurem Kundenbereich den Menüpunkt "MySQL" auswählen.
  • In der Übersicht der Datenbanken auf "phpMyAdmin" klicken (neues Fenster wird geöffnet).
  • Auf der linken Seite die Tabelle "sys_file_processedfile" auswählen.
  • Schließlich ganz oben rechts auf "leeren" klicken. Nach einer Abfrage ob tatsächlich der Befehl "truncate sys_file_processedfile" ausgeführt werden soll, klickt ihr auf "ja". Das war's schon.

MySQL im 1und1-Kundenkonto
MySQL im 1und1 Kundenkonto

phpMyAdmin in den MySQL-Einstellungen
phpMyAdmin in den MySQL-Einstellungen

Die sys_file_processedfile-Tabelle in der Datenbank
Die sys_file_processedfile-Tabelle in der Datenbank

Tabelle leeren bzw. "truncate" sys_file_processedfile
Tabelle leeren bzw. "truncate"

Hintergrund:

Im Zuge der neuen Version 6.0 wurde das neue FAL (File Abstraction Layer) eingeführt: Kurzum werden in dieser Tabelle die temporären Dateien verzeichnet - sollten temporäre Dateien manuell entfernt worden sein kann es passieren, dass Typo3 nach temporären Dateien sucht, die eigentlich gar nicht mehr existieren und deswegen diese Fehlermeldung ausspucken. Selbst beim Update auf 6.0.1 bleibt diese Fehlermeldung bestehen, wenn diese Tabelle nicht zuvor geleert wird.

Wenn ihr weitere Fragen habt, oder einen Fehler in meiner Beschreibung gefunden habt, zögert nicht mich darauf hinzuweisen, entweder hier durch ein Kommentar oder direkt über mein Google+-Profil, welches ihr oben rechts finden könnt.