[TYPO3-german] Lösung für dr_wiki, RealURL und Leerzeichen in Keywords/URLs

Christian Hennecke christian.hennecke at os2voice.org
Mon Aug 30 12:29:54 CEST 2010


Hallo zusammen,

bei der Verwendung von dr_wiki mit RealURL kann es je nach Version zu 
mehr oder weniger schwerwiegenden Problemen kommen:

- Leerzeichen im Keyword tauchen als Leerzeichen in der URL auf, was 
generell ungünstig ist.

- Bei manchen RealURL-Versionen werden die Leerzeichen in URLs beim 
Dekodieren in Pluszeichen umgewandelt, so daß vorhandene Wiki-Seiten 
nicht mehr gefunden werden. Z.B. wird aus "Verzeichnis der Artikel" das 
Keyword "Verzeichnis+der+Artikel".

Bisher habe ich dafür im Netz keine Lösung gefunden, nun aber selbst 
eine erstellt. Man kann dem mit einer angepaßten RealURL-Konfiguration 
entgegenwirken.

Im Bereich postVarSets verwendet man etwa folgendes:

'postVarSets' => array(
     '_DEFAULT' => array(
         // dr_wiki
         'wiki' => array(
             array(
                 'GETvar' => 'tx_drwiki_pi1[keyword]',
                 'userFunc' => 
'fileadmin/class.tx_realurlHelper.php:&tx_drwiki_realurlHelper->main',
             ),
             array(
                 'GETvar' => 'tx_drwiki_pi1[showUid]',
             ),
             array(
                 'GETvar' => 'tx_drwiki_pi1[cmd]',
             ),
         ),
     ),
),

Außerdem erstellt man die Datei fileadmin/class.tx_realurlHelper.php mit 
folgendem Inhalt:

<?php
class tx_drwiki_realurlHelper {
     // character to use instead of spaces
     var $spaceReplacement = '_';

     function main($params, $ref) {
         if ($params['decodeAlias']) {
             return $this->alias2id($params['value']);
         } else {
             return $this->id2alias($params['value']);
         }
     }

     function id2alias($value) {
         return str_replace(' ', $this->spaceReplacement, $value);
     }

     function alias2id($value) {
         return str_replace($this->spaceReplacement , ' ', $value);
     }
}
?>

Nun werden die Leerzeichen durch das in $spaceReplacement angegebene 
Zeichen ersetzt. Natürlich muß man darauf achten, daß dieses nicht in 
Keywords vorkommt.


More information about the TYPO3-german mailing list