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

Peter Linzenkirchner liste at lisardo.de
Mon Aug 30 13:14:09 CEST 2010


Hallo Christian, 

das ist ein sehr guter Hinweis, da ich dr_wiki gerade einsetzen will. Vielen Dank!

Gruß
Peter

Am 30.08.2010 um 12:29 schrieb Christian Hennecke:

> 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.
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german



More information about the TYPO3-german mailing list