Zum Inhalt springen

RealURL

Erstellt am 7. November 2016 · 1 Antwort · letzte Antwort am 24. Januar 2017

Tags: RealURL, TYPO3 7, Frage

lukesn ·

Hallo zusammen,

ich nutze in meinem System RealURL (Version 2.1.4) sowie eine selbst angelegte Extension die ich für das Verwalten von Projektdatensätzen verwende. Die Projekte werden in einer Liste aufgeführt und ein Klick öffnet sie im Detail, ganz klassisch.

Damit die Links auch in schöne, sprechende URLs verwandelt werden habe ich meine RealURL-Config im Bereich "postVarSets" (in "'_DEFAULT'") so erweitert:

'project' => array(
    array(
        'GETvar' => 'uidProject',
        'lookUpTable' => array(
            'table' => 'tx_clientprojects_domain_model_projects',
            'id_field' => 'uid',
            'alias_field' => 'title',
            'addWhereClause' => ' AND NOT deleted',
            'useUniqueCache' => 1,
            'useUniqueCache_conf' => array(
                'strtolower' => 1,
                'spaceCharacter' => '-'
            )
        )
    )
),

Das funktionier soweit auch wunderbar, ich bekomme in der Projekt-Übersicht die gewünschten Links und diese führen mich auch in die Detailansicht.

Nun das Problem: Ich befinde mich in der Detail-Ansicht eines Projektes und bearbeite den Datensatz parallel im Backend. Klicke ich auf Speichern und aktualisiere das Frontend bekomme ich folgenden Fehler:
Reason: Segment "the-title-of-the-project" was not a keyword for a postVarSet as expected on page with id=16.
Die Seite mit der ID ist in diesem Falle die Seite auf welche die Detail-Links führen.

Was mir aufgefallen ist: In der Tabelle "tx_realurl_urldata" existiert ein Datensatz, der den Original-Link (z.B. "L=0&id=3&uidProject=1" ) und den generierten Link beinhaltet, z.B. "category-name/project/the-title-of-the-project/".

Speichere ich den Extension-Datensatz wird dieser Eintrag gelöscht und der Link funktioniert nicht mehr. Öffne ich die Projekt-Übersicht im Frontend wird der Eintrag wieder generiert und der Link klappt wieder.

Kann ich dieses Verhalten irgendwie optimieren so dass der Eintrag nach dem Speichern eines Projekts bestehen bleibt oder nur aktualisiert wird?

Hier die vollständige RealURL-Config:

<?php
$TYPO3_CONF_VARS['FE']['addRootLineFields'].= ',tx_realurl_pathsegment';
$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
    '_DEFAULT' => array(
        'init' => array(
            'enableCHashCache' => 1,
            'appendMissingSlash' => 'ifNotFile',
            'enableUrlDecodeCache' => 1,
            'enableUrlEncodeCache' => 1,
            'postVarSet_failureMode' => '',
        ),
        'redirects' => array(),
        'preVars' => array(
            array(
                'GETvar' => 'no_cache',
                'valueMap' => array(
                    'nc' => 1,
                ),
                'noMatch' => 'bypass',
            ),
            array(
                'GETvar' => 'L',
                'valueMap' => array(
                    # 'en' => '0',
                    'de' => '1',
                ),
                'valueDefault' => 'en',
                'noMatch' => 'bypass',
            ),
        ),
        'pagePath' => array(
            'type' => 'user',
            'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
            'spaceCharacter' => '-',
            'languageGetVar' => 'L',
            'expireDays' => 7,
            'rootpage_id' => 1,
            'firstHitPathCache' => 1,
        ),
        'fixedPostVars' => array(),
        'postVarSets' => array(
            '_DEFAULT' => array(

                'project' => array(
                    array(
                        'GETvar' => 'uidProject',
                        'lookUpTable' => array(
                            'table' => 'tx_clientprojects_domain_model_projects',
                            'id_field' => 'uid',
                            'alias_field' => 'title',
                            'addWhereClause' => ' AND NOT deleted',
                            'useUniqueCache' => 1,
                            'useUniqueCache_conf' => array(
                                'strtolower' => 1,
                                'spaceCharacter' => '-'
                            )
                        )
                    )
                ),
            ),
        ),
        // configure filenames for different pagetypes
        'fileName' => array(
            'defaultToHTMLsuffixOnPrev' => 0,
            'index' => array(
                'print.html' => array(
                    'keyValues' => array(
                        'type' => 98,
                    ),
                ),
                'rss.xml' => array(
                    'keyValues' => array(
                        'type' => 100,
                    ),
                ),
                'rss091.xml' => array(
                    'keyValues' => array(
                        'type' => 101,
                    ),
                ),
                'rdf.xml' => array(
                    'keyValues' => array(
                        'type' => 102,
                    ),
                ),
                'atom.xml' => array(
                    'keyValues' => array(
                        'type' => 103,
                    ),
                ),
            ),
        ),
    ),
);

Danke und Grüße,
Lukas