11. Dezember 2008

Typo3-Wahnsinn: Probleme zwischen realURL & tt_news

Die letzten beiden Tage waren definitiv zum Mäuse melken. Ich habe versucht – und es mittlerweile sogar geschafft – die News-Extension tt_news von Typo3 mit meiner SEO-Extension realurl zu “verkuppeln”.

Da ich die News direkt in meinem Live-Auftritt eingepflegt habe, wurde erst mal alles auf versteckten Seiten getestet. Alles ging wunderbar, auch die SEO-Links gingen. Als alles bereit war, machte ich die Seite sichtbar.

Nun gingen die SEO-Links von der Listen-Ansicht zur Single-Ansicht nicht mehr. Die Seite wurde zwar aufgerufen, erfreute mich aber mit einem “Keine News in dieser Ansicht.”. Ein kurzer Gegencheck zu meiner lokalen realURL-Konfiguration (bei der diese Links eben gingen) zeigte mir einen Unterschied bei der Option: ‘disablePathCache’.

Also habe ich diese Option der lokal Konfiguration angepasst, d.h. auf “1″ gesetzt, und somit den Cache deaktiviert. Und siehe da, die Links zur Single-Ansicht funktionierten.

Leider ging nun die Meta-Navigation nicht mehr. Wieder verzweifelte Google-Suchen und Haare raufen. Nichts gefunden… Und wenn ich einen Foren-Beitrag mit einem ähnlichen Thema fand, gab es dort nie Antworten.

Irgendwann habe ich mir mal eine realURL-Konfiguration von einem in der Entwicklung befindlichen Typo3-Auftritt angesehen und dort getestet. Mit ‘disablePathCache’ => ’1′ ging die Meta-Navigation! Dafür die “normale” Navigation nicht mehr… Ein Vergleichich der Seitenstruktur ergab, dass nur der Teil der Navigation ging, der an erster Stelle in der Seitenstruktur ging. Das sieht ungefähr so aus:

rootlevel
|– root
|– |– MetaNavigation <– Klappt wunderbar mit deaktivierten Cache…
|– |– |– Unterseite X
|– |– |– Unterseite Y
|– |– Navigation <– Bringt 404 bzw. realURL-Fehler
|– |– |– Unterseite 1
|– |– |– Unterseite 2

Ein Platztausch der beiden Navigation bewirkt, dass “Navigation” geht, “MetaNavigation” aber nicht.

Es sei dazu gesagt, dass ich mir den Aufbau der Seitenstruktur nicht selbst ausgedacht habe, sondern von “Robert Meyer – Praxiswissen Typo3″ übernommen habe.

Die Lösung der Geschichte:

Ich versetzte die “MetaNavigation” unter den Punkt “Navigation” und passte das Backend entsprechend an, so dass es im Endeffekt keinerlei Unterschied im Frontend gab.

rootlevel
|– root
|– |– Navigation
|– |– |– MetaNavigation
|– |– |–|– Unterseite X
|– |– |–|– Unterseite Y
|– |– |– Unterseite 1
|– |– |– Unterseite 2

Das noch vorhandene Problem:

Ich verstehe nicht, warum es einen Unterschied macht, wo die Navigationen eingebunden sind. Zumal alle unterhalb von “root” liegen und ‘rootpage_id’ in der realURL-Konfiguration entsprechend gesetzt ist. Nun ja, es geht jetzt erstmal…

Anhang:

Für Interessierte hier Auszüge aus meiner realURL-Konfiguration.

Die News-Links werden nach folgendem Prinzip zusammengebaut:

http://webstylisten.de/aktuelles/beitrag/[JAHR]/[MONAT]/[TITEL].html

Zu sehen unter webstylisten.de

...
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl'] = array (
    '_DEFAULT' =&gt; array (
        'init' =&gt; array (
            'useCHashCache' =&gt; '0',
            'enableCHashCache' =&gt; '1',
            'appendMissingSlash' =&gt; 'ifNotFile',
            'enableUrlDecodeCache' =&gt; '1',
            'enableUrlEncodeCache' =&gt; '1',
        ),
...
...
        'pagePath' =&gt; array (
            'rootpage_id' =&gt; '1',
            'type' =&gt; 'user',
            'userFunc' =&gt; 'EXT:realurl/class.tx_realurl_advanced.php:&amp;tx_realurl_advanced-&gt;main',
            'spaceCharacter' =&gt; '-',
            'segTitleFieldList' =&gt; 'alias,tx_realurl_pathsegment,nav_title,title',
            'languageGetVar' =&gt; 'L',
            'expireDays' =&gt; '7',
            'disablePathCache' =&gt; '1',
        ),
        'fixedPostVars' =&gt; array (
        ),
        'postVarSets' =&gt; array (
            '_DEFAULT' =&gt; array (
                'beitrag' =&gt; array (
                    '0' =&gt; array (
                        'GETvar' =&gt; 'tx_ttnews[year]',
                    ),
                    '1' =&gt; array (
                        'GETvar' =&gt; 'tx_ttnews[month]',
                    ),
                    '2' =&gt; array (
                        'GETvar' =&gt; 'tx_ttnews[tt_news]',
                        'lookUpTable' =&gt; array (
                            'table' =&gt; 'tt_news',
                            'id_field' =&gt; 'uid',
                            'alias_field' =&gt; 'title',
                            'addWhereClause' =&gt; ' AND NOT deleted',
                            'useUniqueCache' =&gt; '1',
                            'useUniqueCache_conf' =&gt; array (
                                'strtolower' =&gt; '1',
                                'spaceCharacter' =&gt; '-',
                            ),
                        ),
                    ),
                    '3' =&gt; array(
                        'GETvar' =&gt; 'tx_ttnews[backPid]',
                    ),
                    '4' =&gt; array (
                        'GETvar' =&gt; 'tx_ttnews[swords]',
                    ),
                ),
                'browse' =&gt; array (
                    '0' =&gt; array (
                        'GETvar' =&gt; 'tx_ttnews[pointer]',
                        'valueMap' =&gt; array (
                          'weiter' =&gt; '1',
                          'weiter' =&gt; '2',
                        ),
                    ),
                ),
            ),
        ),
...


Kommentar schreiben: