[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