Mittwoch, 7. November 2018

Speaking URLs mit TYPO3 9.5.x + tx_news

Hallo Leute,

wie ihr wisst, gibt es RealURL bei TYPO3 9.5 nicht mehr. Um für tx_news die sprechenden URLs einzurichten, müsst ihr folgendes tun:

Öffnet diese Datei:

typo3conf/sites/eure-site/config.yaml

Fügt anschließend ganz am Ende der Datei folgende Codezeilen hinzu. Wichtig ist, dass ihr die eingerückten Zeilen/Leerzeichen beachtet! Ich füge daher zusätzlich einen Screenshot bei.

routeEnhancers:
  NewsPlugin:
    type: Extbase
    limitToPages: [8]
    extension: News
    plugin: Pi1
    routes:
      - { routePath: '/{news_title}', _controller: 'News::detail', _arguments: {'news_title': 'news'} }
    defaultController: 'News::detail'
    aspects:
      news_title:
        type: PersistedAliasMapper
        tableName: 'tx_news_domain_model_news'
        routeFieldName: 'path_segment'

Screenshot












  • Bei limitToPages fügt ihr die ID der jeweiligen Detail-Seite ein. 
  • Wenn ihr ein Segment wie /detail/ benötigt, könnt ihr entweder das über die eigentliche Unterseite lösen, die z.B. "Detail" heißt, oder 
  • Alternativ könnt ihr auch in diesem Beispiel in der Zeile 35 routePath: '/detail/{news_title}', schreiben. 
Et Voilà! Zugegebermaßen deckt diese Lösung keine Varianten wie z.B. "Archiv" ab, aber als Baseline-Lösung ist das sicherlich ein guter Ausgangspunkt!

Viel Spaß!

Euer Tao

Freitag, 19. Oktober 2018

fbclid + RealURL (und tx_news)

Hallo Leute,

wie ihr sicherlich mitbekommen habt, fügt Facebook seit einigen Tagen bei ausgehenden Links von Postings ab und zu einen Query String "fbclid" an. Analog zu Google Ads Query String "gclid" steht "fbclid wohl für "Facebook Click Identifier".

"fbclid" hat allerdings für gehörigen Wirbel bei einigen Betreibern von TYPO3-Websites in Kombination mit RealURL (und meistens auch tx_news o.ä.) gesorgt.

Folgende Phänomene tauchten plötzlich auf:

Phänomen 1: Falscher Inhalt wird gecached und demnach ausgeliefert


Wenn man News A aufruft mit einer fbclid ist zunächst alles ok.

.../newsA/?fbclid=xxx

Wenn man schließlich einen weiteren, beliebigen Newseintrag aufruft mit einem beliebigen fbclid-Parameter dranhängt, wird News A angezeigt.

.../newsB/?fbclid=xxx

Es wird immer die ursprüngliche News angezeigt, die als erstes mit fbclid aufgerufen wurde. Das ist natürlich sehr ärgerlich, wenn man einen Newseintrag auf Facebook teilt und dem User wird dann plötzlich ein anderer oder uralter Eintrag dargestellt.

Phänomen 2: Die Seite wird mit "fbclid" erst gar nicht angezeigt -> 404


In Kombination mit der Einstellung 'FE' => 'pageNotFoundOnCHashError' => true wird erst gar keine Seite angezeigt.

Die Lösung:

1. Im Installtool diese beiden Einstellungen setzen:

'FE' => 'pageNotFoundOnCHashError' => false,

'cHashExcludedParameters' => 'L, pk_campaign, pk_kwd, utm_source, utm_medium, utm_campaign, utm_term, utm_content, gclid, fbclid',

2. Bei RealURL folgende Einstellung setzen 

(achtet auf die Schreibweise, vielleicht habt ihr noch Array):

'cache' => [
'ignoredGetParametersRegExp' => '/^(?:gclid|fbclid|utm_[a-z]+|pk_campaign|pk_kwd|TSFE_ADMIN_PANEL.*)$/',
],

Anschließend sämtliche Caches (auch RealURL) löschen. Damit sollte das Problem vom Tisch sein :-)

Freitag, 6. Juli 2018

WPML und Oshine Theme Page Builder

Nutzt du Wordpress zusammen mit dem Oshine Page Builder und möchtest Übersetzungen/XLIFF mit WPML exportieren? Folgende Konfiguration für die Shortcodes sollten helfen!

<wpml-config>
    <shortcodes>
 
        <shortcode>
            <tag>text</tag>
        </shortcode>
     
        <shortcode>
            <tag>special_sub_title</tag>
        </shortcode>
     
        <shortcode>
            <tag>accordion</tag>
        </shortcode>
     
        <shortcode>
            <tag>chart</tag>
        </shortcode>
     
        <shortcode>
            <tag>animated_numbers</tag>
        </shortcode>
     
        <shortcode>
            <tag>flex_slider</tag>
        </shortcode>
     
        <shortcode>
            <tag>be_slider</tag>
        </shortcode>
     
        <shortcode>
            <tag>blog</tag>
        </shortcode>
     
        <shortcode>
            <tag>bubble_testimonial</tag>
        </shortcode>
     
        <shortcode>
            <tag>button_group</tag>
        </shortcode>
     
        <shortcode>
            <tag>button</tag>
        </shortcode>
     
        <shortcode>
            <tag>call_to_action</tag>
        </shortcode>
     
        <shortcode>
            <tag>contact_form</tag>
        </shortcode>
     
        <shortcode>
            <tag>content_slides</tag>
        </shortcode>
     
        <shortcode>
            <tag>be_countdown</tag>
        </shortcode>
     
        <shortcode>
            <tag>separator</tag>
        </shortcode>
     
        <shortcode>
            <tag>dropcap</tag>
        </shortcode>
     
        <shortcode>
            <tag>dropcap2</tag>
        </shortcode>
     
        <shortcode>
            <tag>linebreak</tag>
        </shortcode>
     
        <shortcode>
            <tag>animate_icons_style1</tag>
        </shortcode>
     
        <shortcode>
            <tag>gallery</tag>
        </shortcode>
     
        <shortcode>
            <tag>gmaps</tag>
        </shortcode>
     
        <shortcode>
            <tag>icon_card</tag>
        </shortcode>
     
        <shortcode>
            <tag>icon_group</tag>
        </shortcode>
     
        <shortcode>
            <tag>grids</tag>
        </shortcode>
     
        <shortcode>
            <tag>icon</tag>
        </shortcode>
     
        <shortcode>
            <tag>justified_gallery</tag>
        </shortcode>
     
        <shortcode>
            <tag>lists</tag>
        </shortcode>
     
        <shortcode>
            <tag>menu_card</tag>
        </shortcode>
     
        <shortcode>
            <tag>newsletter</tag>
        </shortcode>
     
        <shortcode>
            <tag>notifications</tag>
        </shortcode>
     
        <shortcode>
            <tag>shortcode_modules</tag>
        </shortcode>
     
        <shortcode>
            <tag>portfolio</tag>
        </shortcode>
     
        <shortcode>
            <tag>portfolio_carousel</tag>
        </shortcode>
     
        <shortcode>
            <tag>project_details</tag>
        </shortcode>
     
        <shortcode>
            <tag>portfolio_navigation_module</tag>
        </shortcode>
     
        <shortcode>
            <tag>pricing_column</tag>
        </shortcode>
     
        <shortcode>
            <tag>process_style1</tag>
        </shortcode>
     
        <shortcode>
            <tag>recent_posts</tag>
        </shortcode>
     
        <shortcode>
            <tag>services</tag>
        </shortcode>
     
        <shortcode>
            <tag>skills</tag>
        </shortcode>
     
        <shortcode>
            <tag>special_sub_title</tag>
        </shortcode>
     
        <shortcode>
            <tag>special_heading</tag>
        </shortcode>
     
        <shortcode>
            <tag>special_heading2</tag>
        </shortcode>
     
        <shortcode>
            <tag>special_heading3</tag>
        </shortcode>
     
        <shortcode>
            <tag>special_heading4</tag>
        </shortcode>
     
        <shortcode>
            <tag>special_heading5</tag>
        </shortcode>
     
        <shortcode>
            <tag>tabs</tag>
        </shortcode>
     
        <shortcode>
            <tag>team</tag>
        </shortcode>
     
        <shortcode>
            <tag>testimonials</tag>
        </shortcode>
     
        <shortcode>
            <tag>title_icon</tag>
        </shortcode>
     
        <shortcode>
            <tag>tweets</tag>
        </shortcode>
     
        <shortcode>
            <tag>animate_icons_style2</tag>
        </shortcode>
     
        <shortcode>
            <tag>video</tag>
        </shortcode>
     
        <shortcode>
            <tag>clients</tag>
        </shortcode>     
 
    </shortcodes>
</wpml-config>

Mittwoch, 6. Dezember 2017

Simples Cheat-Sheet für AdWords

Ich habe für mich persönlich mal ein kleines Cheat-Sheet für AdWords erstellt mit den wichtigsten Basics, um entsprechende Kampagnen zu optimieren:

  • Nutze keine automatischen Placements. 
  • Nutze keine weitestgehend passenden Keywords (und wenn doch, dann mindestens mit Modifizierern)
  • Suchbegriffe checken
    • Füge negative Keywords auf wöchentlicher Basis hinzu
    • Füge Suchbegriffe, die Conversions erzeugt haben, als Keyword hinzu. Ggf. gezielt mehr bieten auf besonders gute Keywords
  • Optimiere deine Anzeigentexte (ggf. A/B-Tests)
  • Optimiere deine Landing Pages (ggf. A/B-Tests)
  • Lehn dich zurück und entspanne dich zwischendurch ;-)

Mittwoch, 27. September 2017

Typo3 7.x+: Typo3-Link-Tags auch in HTML-Content-Elementen von fluid_styled_content

Früher (Typo3 bis 6.x) bzw. css_styled_content konnte man auf folgende Weise TypoLinks wie <link 1 - - "Linktitel">Linktext</link> auch in HTML-Elementen parsen:

tt_content.html.parseFunc.tags.link < lib.parseFunc.tags.link


Da man ab Typo3 7.x auch fluid_styled_content nutzen kann (und meiner Meinung nach auch sollte), funktioniert der Typoscript-Codeschnipsel nicht mehr. Um diese Funktionalität wiederherzustellen, müsst ihr folgendes machen (Vielen Dank auch an Georg Ringer für seinen Input, der mich überhaupt erst darauf gebracht hat).


Zunächst müsst ihr das Template für das HTML-Element von fluid_styled_content (typo3/sysext/fluid_styled_content/Resources/Private/Templates/Html.html) überschreiben. 


Weitere Informationen zum Überschreiben von Standard-Templates findet ihr hier: https://docs.typo3.org/typo3cms/extensions/fluid_styled_content/7.6/Configuration/OverridingFluidTemplates/Index.html


Anschließend könnt ihr den vorhanden Code-Schnipsel ändern:

Vorher: 

<f:format.raw>{data.bodytext}</f:format.raw>

Nachher:

<f:format.htmlentitiesDecode>
    <f:format.html parseFuncTSPath="lib.parseFunc">
        {data.bodytext}
    </f:format.html>

</f:format.htmlentitiesDecode>

Erläuterung:

f:format.html parseFuncTSPath="lib.parseFunc" sorgt dafür, dass der HTML-Inhalt geparsed wird und die <link>-Tags durch entsprechende HTML-Tags ersetzt werden. 

f:format.htmlentitiesDecode wird im nächsten Schritt die HTML-Entitäten korrekt in sauberen HTML-Code umwandeln, damit diese auch vom Browser korrekt interpretiert werden. 

Et voilà!

Freitag, 15. Mai 2015

Typo3 7.x und 1und1: Crontab Scheduler auf PHP 5.5 umstellen

Vor einziger Zeit habe ich einen Artikel geschrieben, wie ihr beim Webhosting von 1und1 in Kombination mit Typo3 6.x den Scheduler richtig einrichtet. Bei Typo3 7.x ist der Einsatz von PHP ab Version 5.5 unbedingt nötig, weswegen ihr etwas umstellen müsst, andernfalls bekommt ihr bei der Ausführung vom Scheduler eine Fehlermeldung wie diese hier:

X-Powered-By: PHP/5.4.39Content-type: text/html
Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /homepages/xx/xxxxxxxxxx/htdocs/xxxxxx/typo3/sysext/core/Classes/Core/Bootstrap.php on line 121

Bisher war der Befehl für den Einsatz der bisherigen dev-Version "php6" gewesen (PHP5.4), so wie in diesem Beispiel: 

0 0 * * * php6 /kunden/homepages/xx/dxxxxxxxxx/htdocs/Unterordner/typo3/cli_dispatch.phpsh schedule

Um aber jetzt PHP 5.5 einzusetzen, müsst ihr anstatt php6 jetzt /usr/bin/php5.5 eingeben. Das sieht dementsprechend nun so aus:

0 0 * * * /usr/bin/php5.5 /kunden/homepages/xx/dxxxxxxxxx/htdocs/Unterordner/typo3/cli_dispatch.phpsh schedule

(in diesem Beispiel wurde der Scheduler so eingestellt, dass er immer Nachts um 0 Uhr gestartet wird)

Jetzt sollte auch der Scheduler von Typo3 7.x bei eurem 1und1 Hostingpaket laufen!

Donnerstag, 12. Februar 2015

Typo3 6.x und mehrsprachige Bilderelemente: "Localize all records" freischalten

Habt ihr bei Typo3 6.x auch das Problem, dass es bei mehrsprachigen Websites ziemlich kompliziert ist, die Bilder der Zielsprachen im Nachgang anzupassen? 

Bei einem normalen Kopiervorgang in Typo3 6.x von einem Content Element mit Bildern werden alle aktuell vorhandenen Bilder übernommen - soweit so gut. Wenn ihr aber nun in der Originalsprache die Bilder verändert, hinzfügt oder entfernt, müsst ihr theoretisch alle Schritte in jeder Zielsprache per Hand durchführen. Hier gibt es in der Standardkonfiguration keine Möglichkeit, die Übersetzung mit dem Original abzugleichen oder zu synchronisieren, obwohl diese Funktion grundsätzlich vorgesehen ist. Das Löschen und die erneute Kopie von einem Content Element ist langfristig keine wirkliche Lösung. Ich zeige euch, wie man die Lokalisierung und Synchronisierung von Bildern aktiviert. 

Keine Möglichkeit, veränderte Bilder im Nachgang aus dem Original zu "übernehmen"
Keine Möglichkeit, veränderte Bilder im Nachgang aus dem Original zu "übernehmen"


Erstellt im Ordner /typo3conf/ eine Datei mit dem Namen extTables.php, falls noch nicht vorhanden. Fügt in dieser Datei folgende Zeilen hinzu.

<?php

$GLOBALS['TCA']['tt_content']['columns']['image']['config']['appearance']['showPossibleLocalizationRecords'] = TRUE;
$GLOBALS['TCA']['tt_content']['columns']['image']['config']['appearance']['showRemovedLocalizationRecords'] = TRUE;
$GLOBALS['TCA']['tt_content']['columns']['image']['config']['appearance']['showAllLocalizationLink'] = TRUE;
$GLOBALS['TCA']['tt_content']['columns']['image']['config']['appearance']['showSynchronizationLink'] = TRUE;

?>

Achtet bei einer bereits vorhandenen Datei darauf, dass ihr die <?php und ?> Klammern nicht doppelt hinzufügt, hier reichen dann auch die 4 Zeilen aus.

Nun habt ihr auch die zusätzlichen Buttons "Localize all records" und "Synchronize with original language". "Localize all records" bewirkt, dass alle Bilder, die im Original hinterlegt sind und in der Übersetzung nicht vorhanden sind, übernommen werden. "Synchronize with original language" bewirkt, dass auch eine eventuell veränderte Reihenfolge der Bilder im Original auch in der Übersetzung übernommen wird. Beide Buttons erleichtern die Arbeit mit Typo3-Inhalten bei mehrsprachigen Websites ungemein!

"Localize all records" und "Synchronize with original language" sind verfügbar
"Localize all records" und "Synchronize with original language" sind verfügbar


Dienstag, 4. November 2014

Typo3-Extension "Quick Google Maps" (cbgooglemaps) anpassen

Ich finde die Extension "Quick Google Maps" (cbgooglemaps) ist ziemlich genial, allerdings gibt es da 2 Dinge, die man nicht direkt über die Einstellungen der Extension beeinflussen kann: Die Reaktion von Google Maps auf das Scrollrad und der Einsatz von eigenen Pushpins, wobei Ersteres die Usability beeinflusst (stört beim scrollen) und letzteres die Optik. 

Leider habe ich nicht herausgefunden, wie man ein eigenes Template bei cbgooglemaps einsetzt, daher habe ich als quick'n'dirty-Anpassung einfach das ursprüngliche Template (/typo3conf/ext/cbgooglemaps/Resources/Private/Templates/Map/Index.html) direkt angepasst.
Öffnet das Template und fügt an den entsprechenden Stellen den Code hinzu  (ist eigentlich ziemlich offensichtlich)

Meine Anpassungen sind die Deaktivierung vom Scrollrad hinter Zeile 22
mapOptions_{contentId}.scrollwheelfalse;

und den Einsatz von einer eigenen Pin-Grafik hinter Zeile 29 (ändert die entsprechende URL)
mapCenter_{contentId}.icon '/fileadmin/images/Pushpin.png';

Hier könnt ihr die Extension mit den Veränderungen live begutachten - eigener Pushpin und kein Scrollwheel: http://www.e-kern.com/de/kontakt/standorte-europa/deutschland/frankfurt.html

(diese Anpassungen basieren auf der Version 2.1.15 für Typo 4.x)

Mittwoch, 29. Oktober 2014

Typo3 4.5.x: Schwarze Hintergründe bei Bildkonvertierung mit Transparenzen

Habt ihr auch das Problem, dass beim Umwandeln von PNG-, GIF- oder PDF-Dateien zu JPG die transparenten Bildelemente schwarz dargestellt werden? Ich hatte dieses Problem vor allem bei PDF- und GIF-Dateien gehabt. Bisher habe ich das Problem hauptsächlich bei Typo3 4.5.x und niedriger gehabt, bei Typo3 6.2 hingegen gar nicht (für 6.1, 6.0 und 4.7 habe ich nicht getestet).


Öffnet hierzu die Datei /t3lib/class.t3lib_stdgraphic.php und ersetzt folgenden Code

$this->cmds['jpeg'] = '-colorspace ' . $this->colorspace . '

mit diesem Code

$this->cmds['jpeg'] = '-colorspace ' . $this->colorspace . ' -background white -flatten 


Achtet bitte zur Sicherheit auch darauf, dass hinter -flatten auch ein Leerzeichen ist. Wir ihr ablesen könnt, wird bei diesem Befehl für eine Umwandlung in JPG zunächst ein weißer Hintergrund hinzugefügt und anschließend das Bild "flachgelegt", also die Bildebenen zusammengelegt unter Berücksichtigung der vorher festgelegten Hintergrundfarbe.

Mittwoch, 15. Oktober 2014

Sicherheitslücke in der Extension dmmjobcontrol und Workaround

Update 20.10.2014: Kevin Renskers arbeitet zwar nicht mehr an der Extension und sucht auch jemanden, der die Extension gerne "adoptiert", aber er hat die unten genannten Änderungen übernommen und hochgeladen. Einen Bug gibt es zwar noch, aber auch dieser wird gerade von jemand anderen bearbetet und demnächst hochgeladen: Zwar wird die Sicherheitslücke mit diesen Änderungen gestopft, aber die Suchfunktion ist dann nicht mehr Nutzbar.
----------------------------------

Ein Sicherheitsleck in der Extension dmmjobcontrol wurde auf typo3.org bekannt gegeben: http://typo3.org/teams/security/security-bulletins/typo3-extensions/typo3-ext-sa-2014-012/

Langfristig ist es sicherlich sinnvoller auf eine andere Extension aufzubauen, die auch gewartet wird, z.B. Job Fair, welches optisch fast eine 1:1 Kopie von dmmjobcontrol ist. Leider läuft diese Extension nur auf Typo3 6.x läuft, was den Umstieg etwas komplizierter macht, wenn man noch Typo3 4.5 nutzt. Manche Websites haben sehr viele Einträge in der Extension und eine Übertragung in eine andere Extension wird nicht so schnell funktionieren. Es scheint aber so, als würde Job Fair laut Angaben des Autors fast die gleiche Datenbankstruktur zu haben wie dmmjobcontrol - vielleicht ist es möglich, mit einer Art "Update-Script"

Auf http://seclists.org/fulldisclosure/2014/Sep/89 habe ich ein Workaround gefunden, wie ihr diese beiden Sicherheitslücken vorübergehend stopfen könnt. Dies sollte aber meiner Meinung nach nicht dauerhaft geschehen, sondern sollte solange, bis man es geschafft hat, auf eine andere Extension umzusteigen - wer weiß welche Sicherheitslücken in Zukunft auftauchen.


Öffnet die Datei typo3conf/ext/dmmjobcontrol/pi1/class.tx_dmmjobcontrol_pi1.php

Ersetzt die Zeile 112 mit folgendem Code gegen die XSS-Lücke
$markerArray['###KEYWORD_VALUE###'] = htmlspecialchars($session['search']['keyword'], ENT_QUOTES);

Ersetzt die Zeile 257 mit folgendem Code gegen die SQL-Injection-Lücke:
$whereAdd[] = $table.'.uid_local=tx_dmmjobcontrol_job.uid AND ('.$table.'.uid_foreign='.implode(' OR '.$table.'.uid_foreign=', intval($value)).')';

Montag, 27. Januar 2014

Extension ve_guestbook mit Typo3 6.2 (Beta 4) kompatibel machen

Bekommt ihr, wenn ihr versucht unter Typo3 6.2 (Beta 4) die Extension "ve_guestbook" zum Laufen zu bringen diese Fehlermeldung?

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

Ähnlich wie beim vorherigen Posting zum Thema T3jquery und Typo3 6.2 Beta, wird hier in der Extension eine veraltete Klasse aufgerufen, die es nicht mehr gibt. Hier eine Anleitung, wie ihr das umgehen könnt, bis eine angepasste Version der Extension veröffentlicht wird.

Öffnet dazu die Datei /typo3conf/ext/ve_guestbook/pi1/class.tx_veguestbook_pi1.php (Sicherheitskopie anlegen!) und verändert den Code in Zeile 31 von

require_once (PATH_t3lib . "class.t3lib_tcemain.php");

zu

require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('core') . 'Classes/DataHandling/DataHandler.php';

Fertig! Jetzt sollte die Extension wieder Laufen

---------------------------------
Update vom 23. April 2014:

in der oben genannten Datei müsst ihr auch in Zeile 25 den Code

require_once (PATH_tslib . "class.tslib_pibase.php");

durch diesen Code ersetzen:

require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('frontend') . 'Classes/Plugin/AbstractPlugin.php';
----------------------------------------

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.