[TYPO3-german] tt_news und realUrl - Umlaute und Leerzeichen funktionieren nicht

Pesch, Patric p.pesch at 11com7.de
Wed Sep 13 10:25:37 CEST 2006


Hi, ich habe ein Problem mit tt_news und realUrl.

Ich hab die config so übernommen, wie es bei realUrl empfohlen ist:

$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
    '_DEFAULT' => array(
        'init' => array(
            'enableCHashCache' => 1,
            'appendMissingSlash' => 'ifNotFile',
            'enableUrlDecodeCache' => 1,
            'enableUrlEncodeCache' => 1,
        ),
        'redirects' => array(),
        'preVars' => array(
            array(
                'GETvar' => 'no_cache',
                'valueMap' => array(
                    'nc' => 1,
                ),
                'noMatch' => 'bypass',
            ),
            array(
                'GETvar' => 'L',
                'valueMap' => array(
                    'de' => '0',
                    'en' => '1',
                ),
                'noMatch' => 'bypass',
            ),
        ),
        'pagePath' => array(
            'type' => 'user',
            'userFunc' =>
'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
            'spaceCharacter' => '-',
            'languageGetVar' => 'L',
            'expireDays' => 7,
###### include your rootpage id here
            'rootpage_id' => 1,
        ),
        'fixedPostVars' => array(),
        'postVarSets' => array(
            '_DEFAULT' => array(
                // news archive parameters
                'archive' => array(
                    array(
                        'GETvar' => 'tx_ttnews[year]' ,
                        ),
                    array(
                        'GETvar' => 'tx_ttnews[month]' ,
                        'valueMap' => array(
                            'january' => '01',
                            'february' => '02',
                            'march' => '03',
                            'april' => '04',
                            'may' => '05',
                            'june' => '06',
                            'july' => '07',
                            'august' => '08',
                            'september' => '09',
                            'october' => '10',
                            'november' => '11',
                            'december' => '12',
                            )
                        ),
                    ),
                // news pagebrowser
                'browse' => array(
                    array(
                        'GETvar' => 'tx_ttnews[pointer]',
                        ),
                    ),
                // news categories
                'select_category' => array (
                    array(
                        'GETvar' => 'tx_ttnews[cat]',
                        ),
                    ),
                // news articles and searchwords
                'article' => array(
                    array(
                        'GETvar' => 'tx_ttnews[tt_news]',
                        'lookUpTable' => array(
                            'table' => 'tt_news',
                            'id_field' => 'uid',
                            'alias_field' => 'title',
                            'addWhereClause' => ' AND NOT deleted',
                            'useUniqueCache' => 1,
                            'useUniqueCache_conf' => array(
                                'strtolower' => 1,
                                'spaceCharacter' => '_',
                                ),
                            ),
                        ),
                    array(
                        'GETvar' => 'tx_ttnews[swords]',
                        ),
                    ),
                ),
            ),
        // configure filenames for different pagetypes
    'fileName' => array(
            'index' => array(

              'index.htm' => array(
          'keyValues' => array(
           ),
         ),


                'rss.xml' => array(
                    'keyValues' => array(
                        'type' => 100,
                    ),
                ),
                'rss091.xml' => array(
                    'keyValues' => array(
                        'type' => 101,
                    ),
                ),
                'rdf.xml' => array(
                    'keyValues' => array(
                        'type' => 102,
                    ),
                ),
                'atom.xml' => array(
                    'keyValues' => array(
                        'type' => 103,
                    ),
                ),
            ),
        ),
     ),
);

Die Urls, die erzeugt werden sind auch ganz hübsch anzuschauen, jedoch
habe ich das Problem,
dass wenn man sie aufruft, tt_news folgendes ausspuckt: "Keine news_id
übergeben."

Wenn ich den 'spaceCharacter' => '_', auf 'spaceCharacter' => ' ',
ändere, dann kann ich die
News aufrufen, allerdings nur wenn kein Umlaut im title auftaucht. Ich
habe nun die letzten 2
Tage schon wie wild gegoogelt, aber alles was ich gefunden habe, bezog
sich entweder auf
ältere realUrl-Versionen und hat mir nicht weitergeholfen.

Nach einigem debugen (jede Menge echo's) bin ich nun dahintergekommen,
dass realUrl
in der News-Tabelle nachschaut, welche id zur SpeakingUrl gehört. Die
SQL-Abfrage
sieht dann in etwa so aus:

SELECT id FROM tt_news WHERE title='ueber_einen_aergerlichen_oetzi'

So kann man natürlich nichts finden, da der title in der Newstabelle
natürlich mit
Spaces und Umlauten steht "Über einen ärgerlichen Ötzi". Wenn ich per
$value = strtr($value, array('ae' => 'ä', 'ue'=>'ü', 'oe' => 'ö',
$cfg['useUniqueCache_conf']['spaceCharacter'] => ' '));
den Abfragewert ändere, dann findet er diese News, allerdings ist diese
Lösung ziemlich bescheiden!
So wird aus Neue z.B. Neü und News mit neue werden dann
selbstverständlich nicht mehr gefunden.

Habe ich etwas grundlegend falsch eingestellt? Denn das kann ja nicht
normal sein.

Schöne Grüße
Patric



More information about the TYPO3-german mailing list