RealUrl und Umlaute bei eigener Extension [Gelöst]

  • Devil Devil
    Padawan
    0 x
    49 Beiträge
    0 Hilfreiche Beiträge
    11. 05. 2009, 11:37

    Hallo,
    ich dreh echt noch am Rad. Ich hatte letzte Woche schon einmal bezgl. RealUrl, einer eigenen Extension und der Parameterübergabe geschrieben gehabt (http://www.typo3.net/forum/list/list_post//89510/). Das haut jetzt au super hin. Aber ich bekomme es absolut nicht hin, dass RealUrl mir meine Umlaute und Leerzeichen sauber umwandelt (Post die letzten zwei Beiträge unten). Folgendes habe ich gemacht.

    Einen Link erzeugt:

    1. $parameter[meinParameter] = "Rot & Grün";
    2. $this->pi_linkTP_keepPIvars("Text", $parameter, 1, 1, $GLOBALS['TSFE']->page['uid'])

    RealUrl-Konfiguration:

    1. 'postVarSets' => array(
    2. '_DEFAULT' => array(
    3. 'neuerParameter' => array(
    4. 'GETvar' => 'tx_meineExtension_pi1[meinParameter]',
    5. ),
    6. ),
    7. ),
    8. ),

    Ergebnis:
    http://www.meineDomain.de/neuerParameter/Rot%20%26%20Gr%FCn.html

    Dachte ich würde zumindest mit Hilfe der LookUpTable die Leerzeichen schon einmal umwandeln können, aber das haut nicht hin:

    1. 'postVarSets' => array(
    2. '_DEFAULT' => array(
    3. 'neuerParameter' => array(
    4. 'GETvar' => 'tx_meineExtension_pi1[meinParameter]',
    5. 'lookUpTable' => array(
    6. 'table' => 'meineTabelle',
    7. 'id_field' => 'uid',
    8. 'alias_field' => 'meinTabellenFeld',
    9. 'addWhereClause' => 'AND NOT deleted',
    10. 'useUniqueCache' => 1,
    11. 'useUniqueCache_conf' => array(
    12. 'strtolower' => 1,
    13. 'spaceCharacter' => '-',
    14. ),
    15. ),
    16. ),
    17. ),
    18. ),
    19. ),

    Was mache ich verkehrt? Das kann doch nicht so schwer sein.

    Danke für Eure Hilfe!

    Gruß Devil


  • 1
  • Devil Devil
    Padawan
    0 x
    49 Beiträge
    0 Hilfreiche Beiträge
    12. 05. 2009, 13:49

    Ich habs jetzt. Ich hatte vor lauter Tabellen die Felder falsch miteinander verknüpft, sodass RealUrl das ganze nicht zuweisen konnte mit dem id_field und alias_field.

  • 0 x
    14 Beiträge
    0 Hilfreiche Beiträge
    20. 03. 2012, 14:37

    Hi,

    ich habe leider ein ähnliches Problem.

    Und zwar habe ich tt_news um ein weiteres Feld vom Typ 'Text' erweitert (tx_ttnewserweiterung_vorundnachname).
    Nun möchte ich die tt_news-Suche nutzen um nach einem Namen suchen zu lassen.

    Das klappt auch, allerdings sehen die Links zur Suche nicht gerade optimal aus:

    www.meineseite.de/suche/Hans Schäfer/

    Funktionieren tut das Ganze, da der Link per urlencode umgeschrieben wird:

    www.meineseite.de/suche/Hans%20Sch%C3%A4fer

    Mein Ziel ist natürlich, dass RealURL die Links genauso wie bei normalen Seiten umschreibt, also:

    www.meineseite.de/suche/hans-schaefer/

    Aber das will einfach nicht gelingen.

    Meine RealURL-Config:

    1. 'suche_name' => array(
    2. 'GETvar' => 'tx_ttnews[swords]',
    3. //'userFunc' => 'fileadmin/scripts/class.tx_realurlHelper.php:&tx_removespaces_realurlHelper->main',
    4. 'lookUpTable' => array(
    5. 'table' => 'tt_news',
    6. 'id_field' => 'uid',
    7. 'alias_field' => 'tx_ttnewserweiterung_vorundnachname',
    8. 'addWhereClause' => ' AND NOT deleted',
    9. 'useUniqueCache' => 1,
    10. 'useUniqueCache_conf' => array(
    11. 'strtolower' => 1,
    12. 'spaceCharacter' => ' ',
    13. ),
    14. ),
    15. ),
    16. ),

    Über userFunc krieg ich wenigstens die Kleinschreibung hin und die Leerzeichen weg,
    aber die Umlaute bleiben.

    Hier der Code:

    1. <?php
    2. class tx_removespaces_realurlHelper {
    3. var $spaceReplacement = '-';
    4.  
    5. function main($params, $ref) {
    6. if ($params['decodeAlias']) {
    7. return $this->alias2id($params['value']);
    8. } else {
    9. return $this->id2alias($params['value']);
    10. }
    11. }
    12.  
    13. function id2alias($value) {
    14. $ersetzen = array('ä' => 'ae', 'ö' => 'oe', 'ü' => 'ue', 'ß' => 'ss');
    15. $value = strtr($value, $ersetzen);
    16. $value = strtolower($value);
    17.  
    18. return str_replace(' ', $this->spaceReplacement, $value);
    19. }
    20.  
    21. function alias2id($value) {
    22. return str_replace($this->spaceReplacement , ' ', $value);
    23. }
    24. }
    25. ?>

    Für hilfreiche Ideen wäre ich sehr dankbar!
    Grüße

  • 1