[TYPO3-german] sg_glossary und realurl

Maik maik.vl at web.de
Thu Apr 26 14:33:49 CEST 2007


Hi!

Viele haben Probleme mit dem Parameter
tx_sgglossary_pi1[search][abc] und der Extension RealURL.

Mit keiner Konfiguration bekommt man den Parameter ordentlich umgeschrieben;
meist kommt dann sowas raus lexikon//andererParameter.htmlD
Die Slashes und das D (oder ein anderer Buchstabe am Ende, nach dem 
gerade gefiltert wird)
sorgen dafür, dass die URL nicht ausgewertet werden kann..

Ich habe rausgefunden, dass es nicht an RealURL liegt - RealURL kann mit 
multidimensionales Arrays durchaus was anfangen.
Das Problem liegt in der Klasse tx_sgzfelib der Library for Frontend 
plugins (/sg_zfelib) im Zusammenspiel mit der parse_url Funktion,
die von RealURL genutzt wird.

Problem: in der /tx_sgzfelib wird in der aus den Parametern erzeugten 
URL erstmal ein Platzhalter ###val### angehangen. Dieser wird später 
durch einen konkreten Wert ersetzt.
Nun kommt parse_url daher, und erkennt den Platzhalter noch vorm 
Ersetzen und parst folgende URL (beispielhaft)
index.php?tx_glossary[search][abc]=###val###

Da parse_url auch nach Ankern sucht, wird intern dem Parameter 
tx_glossary[search][abc] ein leerer String zugewiesen und als Anker-Teil 
(beginnt ja immer mit #) der URL steht ##val###.

Lange Rede, kurzer Sinn: bearbeitet die Klasse tx_sgzfelib und ersetzt 
alle Vorkommen von ###val### durch z.B. 0val0, hauptsache die #'s sind weg.
Nun könnt ihr mit folgender Beispielkonfiguration von realURL das 
Lexikon mit statischen URLs versehen:


'postVarSets' => array(
'_DEFAULT' => array(

    // Einträge im Glossar
    'suche' => array(
   
        array(
            'GETvar' => 'tx_sgglossary_pi1[searchmode]',
            'valueMap' => array(
                'buchstabe' => '1',
            ),
            'noMatch' => 'bypass',
        ),
        array(
            'GETvar' => 'tx_sgglossary_pi1[search][abc]',
            'valueMap' => array(
                'alle' => 'all',
            ),
        ),
       
       
        array(
            'GETvar' => 'no_cache',
            'noMatch' => 'bypass',
        ),
   
    ),
   
    'sieheauch' => array(
       
        array(
            'GETvar' => 'title',
        ),
    ),
       

    'definition-von' => array(
       
        array(
            'GETvar' => 'uid',
            'lookUpTable' => array(
                'table' => 'tx_sgglossary_entries',
                'id_field' => 'uid',
                'alias_field' => 'word',
                'addWhereClause' => ' AND NOT deleted',
                'useUniqueCache' => 1,
                'useUniqueCache_conf' => array(
                     'strtolower' => 1,
                     'spaceCharacter' => '-',
                 ),
            ),
         ),
        array(
            'GETvar' => 'cHash',
            'noMatch' => 'bypass'
        ),
        array(
            'GETvar' => 'type',
            'noMatch' => 'bypass'
        )
       ),

[weitere Konfiguration]

Ich hoffe es hilft jmd :)

Grüße
Maik
mediavrog.net


More information about the TYPO3-german mailing list