[TYPO3-german] RealURL Konfiguration: postVarSets, valueMaps und Doppelslashes

Mikel lists at con-version.com
Fri Jan 24 14:17:40 CET 2014


Hallo zusammen,

gibt es eine Möglichkeit, RealURL so zu konfigurieren, dass nicht 
vorhandene Parameter einfach nicht ausgewertet werden? Ohne dabei 
valueMap und noMatch zu verwenden?

Ich habe eine Extension, in der es mehrere Controller gibt.
Sich wiederholende Darstellungen sind dabei in Partials ausgelagert, die 
von allen Controllern verwendet werden dürfen.

Ein einfaches Beispiel:

Eine Jahreszahl wird an manchen Stellen mit übergeben. Diese wird jedoch 
nicht überall benötigt.
Wenn diese nun in der Konfiguration eingebunden wird mit
'GETvar' => 'tx_pressandevents_pressreleases[year]',
dann bindet RealURL dieses Segment immer mit in die URL, auch wenn der 
Parameter garnicht übergeben wird.
Dies führt zu einem Doppelslash in der URL, also zu einem leeren Wert.

noMatch kann in RealURL nur verwendet werden, wenn eine valueMap 
erstellt wurde. Für eine Jahreszahl natürlich kein Problem, da ich mir 
als Workaround einfach kurz ein Array mit 40 Jahren erstellen lasse und 
das Mapping dadurch erstellen kann.

Ein komplexeres Beispiel:

Wenn ich allerdings komplexere Daten habe, die ich nicht wie eine 
Jahreszahl eben mal schnell erstellen kann, gibt es auch keinen Workaround.

Der Parameter tx_pressandevents_pressreleases[pressRelease] wird hier 
per lookUpTable "geschönt". Dieser Parameter muss allerdings nicht von 
allen Stellen übergeben werden. Wenn er also nicht mit übergeben wird, 
dann wird auch hier ein leeres Segment in die URL geschrieben, was auch 
hier zu einem Doppelslash führt.

Auch hier müsste eine valueMap erzeugt werden, um noMatch verwenden zu 
können. Dies ist hier jedoch nicht möglich, oder?

'GETvar' => 'tx_pressandevents_pressreleases[pressRelease]',
'lookUpTable' => array(
     'table' => 'tx_pressandevents_domain_model_pressrelease',
     'id_field' => 'uid',
      'alias_field' => 'headline',
      'addWhereClause' => ' AND NOT deleted',
      'useUniqueCache' => 1,
     'useUniqueCache_conf' => array(
     'strtolower' => 1,
      'spaceCharacter' => '-',
      ),
),

Ich bräuchte also einfach nur sowas wie "dontIncludeSegmentIfEmpty" :-)

Hat jemand einen hilfreichen Tipp?

Mikel


More information about the TYPO3-german mailing list