Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: cms2day Forum - Community & Support rund ums cms2day. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Montag, 10. August 2009, 12:06

Umwandlung von Umlauten und Sonderzeichen

Das CMS wandelt Umlaute und Sonderzeichen recht zuverlässig in die entsprechenden Entities um. Gibt es einen einfachen Weg diese Umwandlung zu verhindern/abzustellen?

Hintergrund: Ich habe das gesamte CMS auf utf-8 umgestellt und würde mich daher freuen, wenn nun keine Umwandlung mehr erfolgen würde.

Gérard

Werbung

squareZ

unregistriert

2

Montag, 10. August 2009, 15:51

Hallo,

wieso möchtest Du das denn ändern, stört es dich? Im Grunde genommen ist das immer sehr sinnvoll zu machen, ich weiß im Moment nicht genau ob es sich eventuell auf externe Seiten umschlägt wie z.B. in der Google Ergebnisseite, das z.B. Beschreibungen die mit "klaren" Sonderzeichen / Umlauten geschrieben wurden diese Form nicht beibehalten. In jedem Fall würde ich dir das empfehlen wie es im Moment ist - alles andere wäre ungünstig...

Aber nun gut, schaue dir den Code der Datei ***/includes/config.inc.php ab Zeile 1506 an, im Moment ist dieser so:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// CHECK UMLAUTE (1.) =>

// Mit dieser Funktion werden alle Umlaute umgewandelt.
// checkumlaute('STRING'); (STRING durch gewünschten Wert ersetzen)

function checkumlaute($wort) {
         
    $wort str_replace("&""&"$wort);
    $wort str_replace("&""&"$wort);
    
    $wort str_replace("ß""ß"$wort);
    $wort str_replace("ß""ß"$wort);
    
    $wort str_replace("<""&lt;"$wort);
    $wort str_replace(">""&gt;"$wort);
    
    $wort str_replace("ü""&uuml;"$wort);
    $wort str_replace("Ü""&Uuml;"$wort);
    
    $wort str_replace("ö""&ouml;"$wort);
    $wort str_replace("Ö""&Ouml;"$wort);
    
    $wort str_replace("ä""&auml;"$wort);
    $wort str_replace("Ä""&Auml;"$wort);

    return $wort;    

}



und

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// CHECK UMLAUTE (2.) =>

// Mit dieser Funktion werden alle Umlaute umgewandelt.
// check_umlaute('STRING'); (STRING durch gewünschten Wert ersetzen)

function check_umlaute($wort) {
         
    $wort str_replace("&amp;""&"$wort);
    $wort str_replace("&""&amp;"$wort);
    
    $wort str_replace("&szlig;""ß"$wort);
    $wort str_replace("ß""&szlig;"$wort);
    
    $wort str_replace("<""&lt;"$wort);
    $wort str_replace(">""&gt;"$wort);
    
    $wort str_replace("ü""&uuml;"$wort);
    $wort str_replace("Ü""&Uuml;"$wort);
    
    $wort str_replace("ö""&ouml;"$wort);
    $wort str_replace("Ö""&Ouml;"$wort);
    
    $wort str_replace("ä""&auml;"$wort);
    $wort str_replace("Ä""&Auml;"$wort);

    return $wort;    

}




In deinem Fall müssten beide so ausschauen:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// CHECK UMLAUTE (1.) =>

// Mit dieser Funktion werden alle Umlaute umgewandelt.
// checkumlaute('STRING'); (STRING durch gewünschten Wert ersetzen)

function checkumlaute($wort) {
         
    $wort str_replace("&amp;""&"$wort);
    $wort str_replace("&""&amp;"$wort);
    
    $wort str_replace("<""&lt;"$wort);
    $wort str_replace(">""&gt;"$wort);

    return $wort;    

}



sowie


PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// CHECK UMLAUTE (2.) =>

// Mit dieser Funktion werden alle Umlaute umgewandelt.
// check_umlaute('STRING'); (STRING durch gewünschten Wert ersetzen)

function check_umlaute($wort) {
         
    $wort str_replace("&amp;""&"$wort);
    $wort str_replace("&""&amp;"$wort);
    
    $wort str_replace("<""&lt;"$wort);
    $wort str_replace(">""&gt;"$wort);

    return $wort;    

}



Die " & " - Zeichen habe ich speziell drin gelassen, damit das konforme xHTML nicht angegriffen wird.
Hoffentlich jagt mir niemand ein Beil ins Bein für diese Antwort 8|

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »squareZ« (10. August 2009, 18:55)


Werbung

3

Montag, 10. August 2009, 16:43


wieso möchtest Du das denn ändern, stört es dich?

Im Prinzip ja - da das CMS bei mir mit Charset UTF-8 läuft (und im Frontend auch als xhtml 1.0 strict).

Zitat


... ich weiß im Moment nicht genau ob es sich eventuell auf externe Seiten umschlägt wie z.B. in der Google Ergebnisseite ...

Da passiert nichts Negatives - ich benutze auf allen neueren Websites nur noch UTF-8.

PHP-Quelltext

1
// CHECK UMLAUTE (1.) => ...

und

PHP-Quelltext

1
// CHECK UMLAUTE (2.) => ...


Soweit klar - was mir nicht klar ist, warum es 2 Funktionen gibt und wann welche zum Einsatz kommt.

Zitat

Die " & " - Zeichen habe ich speziell drin gelassen, damit das konforme xHTML nicht angegriffen wird.


Die hätte ich auch nicht raus genommen - deren Bedeutung ist mir klar.

Gérard

Werbung

4

Montag, 10. August 2009, 17:27

Das war alles noch nicht die gesuchte Lösung. Der Editor wandelt weiterhin automatisch um. Gibt es noch andere Vorschläge?

Gérard

Werbung

5

Montag, 10. August 2009, 22:49

Der Ansatz lief in die falsche Richtung:
Die Umlaute und Sonderzeichen, die ich meinte betreffen den Editor und nicht das CMS.

Die Umwandlungen, die das CMS vornimmt, sollte man in jedem Fall so lassen, ggf. noch erweitern z.B. in meinem Fall um die ganzen französischen Sonderzeichen - die machen sich nämlich in Dateinamen nicht so gut.

Den Editor anzupassen schein zwar möglich, sieht aber nach richtiger Arbeit aus.

Gérard

Werbung

6

Mittwoch, 12. August 2009, 18:25

Die Umwandlung stellst du wie folgt aus:
1. öffne ./admin/data/tiny_mce/config.js
2. trage unter

Quellcode

1
tinyMCE.init ({
(z.B. in Zeile 43)
folgende Zeile ein:

Quellcode

1
entity_encoding : "raw",

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »lotterfriends« (12. August 2009, 21:35)


Werbung

7

Mittwoch, 12. August 2009, 20:20

Der Tipp sieht zwar sehr gut aus - leider funktioniert er aber nicht.

Aber er hat mich auf eine Spur geführt: Die Dokumentation von TinyMCE. Danach sollte es zwar genau so gehen, wie du beschrieben hast, aber ... (siehe oben).

Mal sehen, ob ich den Fehler finde (das fehlende Komma hab ich schon dazu gesetzt).

Nachtrag:

Nun funktioniert es - es lag am Cache :whistling:

Gérard

Werbung

8

Mittwoch, 12. August 2009, 21:35

Ah Stimmt wollte eigentlich noch den Link zur Doku posten, sry wegen dem Komma ;)

Werbung

Ähnliche Themen