CMS - Der Dirigent » Support » Anwenderforum

Neue Umfrage | neues Thema | Antworten

Seiten: (2) [1] 2  ( Zum ersten neuen Beitrag )

Sonderzeichen und mod_rewrite, Titel für die Navigation

« Älteres Thema | Neueres Thema » Thema abonnieren | Thema versenden | Thema drucken

mike
Geschrieben am: 12. May 2005 - 19:48


Who is XIII?


Gruppe: Tester
Beiträge: 319
Mitgliedsnummer: 654
Mitglied seit: 09. Jul 2004


Wie kann ich Sonderzeichen in Navigationsname anzeigen ohne dass dafür die URL des mod_rewrite nicht geht.
Im Klartext anhand eines Beispieles:

In der Navigation steht:
Demonstración en vivo

mod_rewrite 2 setzt es wir folgt um:
.../demonstración_en_vivo/index.html

FF kommt damit klar - IE aber nicht.
Wie kann ich es ändern damit es in der Navigation weiterhin so steht aber die URL ../demonstracion_en_vivo/index.html ohne Sonderzeichen sich aufbaut?

Danke
Top  
Olaf
Geschrieben am: 12. May 2005 - 20:12


offline


Gruppe: Members
Beiträge: 3689
Mitgliedsnummer: 120
Mitglied seit: 01. May 2003


Oh, oh, und Eppi nicht da.....

Guck dir mal die Dateien aus der Erweiterung an, da muss ja irgendwo angegeben sein, dass aus ö->oe wird, da musst du dir halt noch die gebrauchten Zeichen mit einbauen, denk ich mal wink.gif

--------------------

Gruß, Olaf
Top    
Renard
Geschrieben am: 12. May 2005 - 20:40


Unregistered








Unter /projekt01/cms/inc gibt's die Datei mod_rewrite.php. Wenn du dort in Zeile 5 und 6 die Arrays entsprechend anpasst, sollte es funktionieren - genauer gesagt: hat es bei mir funktioniert.

Hasta luego

Renard
Top
roberto
Geschrieben am: 12. May 2005 - 21:04


Unicoder


Gruppe: Tester
Beiträge: 1853
Mitgliedsnummer: 343
Mitglied seit: 16. Oct 2003


In etwa so?

mehr CODE
$in = array("![ÄÆäæ]!", "![ÀÁÂÃÅàáâãå]!", "![ÖöØø]!", "![ÒÓÔÕòóôõ]!", "![Üü]!", "![ÙÚÛùúû]!", "![ÈÉÊËèéêë]!", "![ÌÍÎÏ]!", "![Ýý]!", "![Çç]!", "![ÐðþÞ]!", "![Ññ]!", "![Šš]!", "![Žž]!", "!ß!", "!&!", "!¡!", "!§!", "!€!", "!¥!", "!£!", "![\"\'\?\s]!", "![:<>@\[\]\{-\`ƒ-‰‹‘-•˜›¡¤¦¨-¿]!");
$out = array('ae', 'a', 'oe', 'o', 'ue', 'u', 'e', 'i', 'y', 'c', 'th', 'n', 's', 'z', 'ss', 'und', '!', 'paragraph', 'euro', 'yen', 'pound', '_', '');

--------------------

Lokal: DeDi 1.01; SuSE 8.1 | Apache/1.3.26 & PHP 4.3.10 | MYSQL 3.23.52
Top   
Renard
Geschrieben am: 12. May 2005 - 21:36


Unregistered








Das sollte für den Anfang wohl genügen. wink.gif

Gruß

Renard
Top
mike
Geschrieben am: 12. May 2005 - 21:38


Who is XIII?


Gruppe: Tester
Beiträge: 319
Mitgliedsnummer: 654
Mitglied seit: 09. Jul 2004


Super ich hatte zwar selber angefangen zu schreiben! Aber da ist roberto einfach gigantisch! So viele sonderzeichen in kürzeste Zeit ist doch genial biggrin.gif
Thx
Top  
Burgi1986
Geschrieben am: 21. Aug 2005 - 12:07


Member


Gruppe: Members
Beiträge: 27
Mitgliedsnummer: 1119
Mitglied seit: 05. Mar 2005


Hi leute,

Ich verwende in meinem Projekt mod_rewrite2.
Das Problem bei Links mit Sonderzeichen ist, dass diese oft durch "falsche" Zeichen ersetzt werden.
Ein ü wird durch ein a ersetzt anstatt durch ein u.
Ein é wird durch ein a ersetzt anstatt durch ein e.
Das & wird hingegen korrekt durch und ersetzt.

Also manche Zeichen sind richtig andere falsch. Woran kann das liegen?
Installiert ist dedi bei mir mit der erweiterung und meine beiden Projektsprachen sind auf utf8 eingestellt.

MfG Burgi
Top   
roberto
Geschrieben am: 22. Aug 2005 - 10:34


Unicoder


Gruppe: Tester
Beiträge: 1853
Mitgliedsnummer: 343
Mitglied seit: 16. Oct 2003


Falls Du als Zeichensatz utf-8 verwendest, hätte ich eine Idee. Anderenfalls: Keine Ahnung.
Am besten, Du postest statt dem Schicksal einzelner Zeichen mal eine Zeichenkette (komplettes Wort) und sagst, was daraus wird (in etwa so: Rügen => Ragen).
Da wird man schon eher draus schlau.

--------------------

Lokal: DeDi 1.01; SuSE 8.1 | Apache/1.3.26 & PHP 4.3.10 | MYSQL 3.23.52
Top   
Burgi1986
Geschrieben am: 23. Aug 2005 - 20:18


Member


Gruppe: Members
Beiträge: 27
Mitgliedsnummer: 1119
Mitglied seit: 05. Mar 2005


Sorry für die späte antwort, aber ich habe mein problem mittlerweile selbst lösen können.
Meine Sprachen sind UTF-8. Die Umlaute wurden im Quelltext als z.B "A1/4" (oder ähnlich) dargestellt, weshalb die Sonderzeichen von mod_rewrite nicht ausgewechselt wurden, da mod_rewrite bei $in nach ä ö und ü sucht. Solche zeichen waren aber nirgends vorhanden.

Ich hab mir nun abhilfe geschafft, in dem ich im Backend die Umlaute in Seitennamen im Format &# 252 ; eingebe. Sieht im Backend halt nicht schön aus, dafür erkennt meine umgeschriebene mod_rewrite die Sonderzeichen.


mehr CODE

$in = array (
'@&(agrave|#224);@i',
'@&(aacute|#225);@i',
'@&(acirc|#226);@i',
'@&(auml|#228);@e',
'@&(ccedil|#231);@i',
'@&(egrave|#232);@i',
'@&(eacute|#233);@e',
'@&(ecirc|#234);@e',
'@&(ouml|#246);@e',
'@&(uuml|#252);@e',
"![\s]!");

$out = array (
'a',
'a',
'a',
'ae',
'c',
'e',
'e',
'e',
'oe',
'ue',
'_');

$output = preg_replace($in, $out, $output);


@Robert: Falls du weisst, was ich tun kann, damit ich bei den Ordner und Seitennamen im Backend auch wieder normal Sonderzeichen verwenden kann, wäre ich natürlich sehr dankbar. Denn schön sieht es im Backend echt nicht aus, wenn anstatt einem ü, &# 252 ; im Seitentitel steht! ohmy.gif
Top   
hk-cons
Geschrieben am: 23. Aug 2005 - 21:02


Dauertester


Gruppe: Tester
Beiträge: 5444
Mitgliedsnummer: 71
Mitglied seit: 31. Mar 2003


hmmm burgi .. war das nur in einem browser? auf einem pc ? oder konntest du das woanders auch beobachten?

--------------------

spart sich sprüche und wird humorlos
Top   
roberto
Geschrieben am: 23. Aug 2005 - 22:35


Unicoder


Gruppe: Tester
Beiträge: 1853
Mitgliedsnummer: 343
Mitglied seit: 16. Oct 2003


Dachte ich mir doch. utf-8 und mod_rewrite ist leider nicht so trivial.
Die Ersetzungsregeln sind dafür zu dumm, weil sie byteweise vorgehen...
Aus dem ü wurde deswegen ein a, weil der Input ü (2 Byte für ü) ist. Die Ersetzungsregeln machen à zu a und ¼ fällt unter den Tisch.
Edit: Meiner Meinung nach macht es nicht wirklich Sinn, dafür eine generelle Lösung zu erfinden, weil das gemessen an den tatsächlich zu ersetzenden Zeichen der Overkill wäre und sich auch nur ein kleiner Ausschnitt der in utf-8 möglichen Zeichen automatisch in ASCII darstellen lassen.
Praktikabel ist dagegen eine Lösung konkret für die Sprachen/Zeichen, die verwendet werden. Soweit ich aus Deinen Ersetzungsregeln sehen kann, sind das bei Dir ja nur Zeichen, die sich auch in iso-8859-1 abbilden lassen. Dann hieße für Dich die Lösung, in der Datei mod_rewrite.php mit der Funktion modrewrite_changecase zuerst den utf-8 codierten String ($output) nach iso-8859-1 zu konvertieren.

mehr CODE
function modrewrite_changecase($output) {
       $output = utf8_decode($output);
$output = strtolower(trim($output));
// usw. usf.
}

Probiere das mal.

--------------------

Lokal: DeDi 1.01; SuSE 8.1 | Apache/1.3.26 & PHP 4.3.10 | MYSQL 3.23.52
Top   
Burgi1986
Geschrieben am: 24. Aug 2005 - 17:47


Member


Gruppe: Members
Beiträge: 27
Mitgliedsnummer: 1119
Mitglied seit: 05. Mar 2005


Hey roberto, das klappt!! Bist super klasse! cool.gif
Ne andere kleine Frage: Verstehen alle Browser Umlaute wie ü welche aber mit A1/4 im Quelltext stehen, genau gleich wie wenn diese als ü dort stehen, oder könnte es da Probleme mit einigen Browsern geben?

@hk-cons: Selbstverständlich hat das Problem nicht nur auf meinem Rechner und einem Browser bestanden. Ich habs bei mir mit Opera und dann auch noch mit IE festgestellt.
Ein Freund von mir hatte auf seinem Rechner mit Firefox dasselbe Problem wie ich, wenn er meine Seite abgerufen hat.
Top   
roberto
Geschrieben am: 24. Aug 2005 - 20:33


Unicoder


Gruppe: Tester
Beiträge: 1853
Mitgliedsnummer: 343
Mitglied seit: 16. Oct 2003


QUOTE (Burgi1986 @ 24. Aug 2005 - 18:47)
Verstehen alle Browser Umlaute wie ü welche aber mit A1/4 im Quelltext stehen, genau gleich wie wenn diese als ü dort stehen, oder könnte es da Probleme mit einigen Browsern geben?

Weder IE noch Mozilla oder Firefox stellen ein utf-8-kodiertes ü als ü im Quelltext dar. Jedenfalls bei mir unter Windows 2000 nicht. Bei welchem Browser / welchem Betriebssystem passiert denn sowas? Was benutzt Du denn - Win95 vielleicht?
Mir ist bisher noch kein Browser untergekommen, der utf-8 nicht korrekt darstellt.

--------------------

Lokal: DeDi 1.01; SuSE 8.1 | Apache/1.3.26 & PHP 4.3.10 | MYSQL 3.23.52
Top   
Burgi1986
Geschrieben am: 25. Aug 2005 - 05:12


Member


Gruppe: Members
Beiträge: 27
Mitgliedsnummer: 1119
Mitglied seit: 05. Mar 2005


Es liegt ja nicht daran, dass mein system es falsch kodiert, sondern wahrscheinlich an dedi selber.
Ich benutze win XP Pro und Opera als Browser. Nebenbei hab ich es auch mit dem IE getestet und da trat derselbe fehler auf.

Die Sonderzeichen welche über den WYSIWYG-Editor eingegeben wurden und irgendwo im Text stehen, werden im Quelltext normal nach & #xxx; umgewandelt.
Bloss die Sonderzeichen von Seiten- und Ordnertiteln welche ich im Backend eingebe, stehen als ü usw. im Quelltext. Also meiner Meinung nach ein Fehler von DeDi, dass die Sonderzeichen im Titel nicht nach & #xxx; umgewandelt werden.

Ich frage mich nun ob gewisse Browser Probleme haben und dieses ü welches DeDi in den Seitentiteln ausspuckt nicht verstehen könnten?
Top   
luxli
Geschrieben am: 25. Aug 2005 - 08:27


Member


Gruppe: Members
Beiträge: 276
Mitgliedsnummer: 1327
Mitglied seit: 26. Jun 2005


QUOTE
Bloss die Sonderzeichen von Seiten- und Ordnertiteln welche ich im Backend eingebe, stehen als ü usw. im Quelltext.

In der Seitenansicht geschah dies bei mir auch in der Navigation bei Verwendung der Module Navigation 1.1.1, Listen-Navigation 0.0.2 und URHere 1.1. Da es bei mir nur das Wort "Übersicht" betraf habe ich es umbenannt in "Uebersicht".
Top   

Thema wird von 0 Benutzer gelesen (0 Gäste und 0 Anonyme Benutzer)
0 Mitglieder:

26 Antworten seit 12. May 2005 - 19:48

Thema abonnieren | Thema versenden | Thema drucken


Seiten: (2) [1] 2 

<< Zurück zu Anwenderforum

Neue Umfrage | neues Thema

Home | Das Projekt | Download | Entwicklung | Dokumentation | Forum | Impressum