[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • [gelöst] Umlaut-Problem in Addon REXkalender - März
Seite 1 von 1

[gelöst] Umlaut-Problem in Addon REXkalender - März

Verfasst: 8. Mär 2010, 11:22
von argon
Hi,

ich suche seit Tagen nach einer Lösung, komme aber kein Schritt weiter.
Es geht um die Darstellung des Monats März im FrontEnd.

Im FrontEnd steht immer M�rz 2010, was natürlich nicht schön ist.

System:
----------
Redaxo 4.2.1
Das System ist auf UTF-8 eingestellt. Datenbank ist UTF-8.
Es wird ansonsten alles richtig angezeigt.
----------

Ich habe die folgende Datei gefunden:
jquery.datePicker.dateMethods-de.js

enthalten ist unter anderem folgende Zeile:

Code: Alles auswählen

Date.monthNames = ['Januar', 'Februar', 'M'+unescape('%E4')+'rz', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'];
Ich bin mir nicht 100%ig sicher ob diese Datei für die Ausgabe im FrontEnd zuständig ist. Eine Änderung des Monats März hatte keine Auswirkung auf die Anzeige im FrontEnd.

Wenn ich die Zeichenkodierung im Browser auf ISO umstelle, wird März richtig angezeigt, dann werden aber alle anderen Sonderzeichen falsch angezeigt.

Wird da was gecached? Bin ich auf der falschen Fährte? Ich weiß nicht mehr weiter.

Würde mich über Hilfe sehr freuen.

VG, argon

Verfasst: 8. Mär 2010, 11:43
von Xong
Mit der Javascript-Datei bist du auf dem falschen Weg. (Edit: Und die solltest du auch nicht ändern, da sie richtig ist.)

In der Datei /classes/a423_kalender.php werden die Ausgaben falsch kodiert.

Such mal nach allen Vorkommen von strtotime und ändere nach folgendem Prinzip:
Code der Art

Code: Alles auswählen

if ($this->charset == "UTF-8") {
  $monthsArray[$i]=utf8_encode(strftime("%B",$timestamp));
  } else {
  $monthsArray[$i]=utf8_decode(strftime("%B",$timestamp));
}
wird zu

Code: Alles auswählen

if ($this->charset == "UTF-8") {
  $monthsArray[$i]=utf8_encode(strftime("%B",$timestamp));
  } else {
  $monthsArray[$i]=strftime("%B",$timestamp);
}
und Code der Art

Code: Alles auswählen

if ($this->charset == "UTF-8") {
  echo (strftime('%B',strtotime($currentDate)));
} else {
  echo utf8_decode(strftime('%B',strtotime($currentDate)));
}
wird zu

Code: Alles auswählen

if ($this->charset == "UTF-8") {
  echo utf8_encode(strftime('%B',strtotime($currentDate)));
} else {
  echo strftime('%B',strtotime($currentDate));
}

Verfasst: 8. Mär 2010, 12:05
von argon
Hi Xong,

vielen, vielen Dank. :D

Funktioniert super!!!