30.08.2017, 23:33
(Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2017, 23:43 von initium8novum.)
Hallo zusammen,
es tut mir leid, im Forum 'Programmierung' darf ich leider noch kein Thema erstellen. Daher hoffe ich, ihr seht es mir nach, das ich das Thema für meine Frage zur Anpassung des MyBB in Bezug auf Codeänderungen hier erstelle.
URL zum Forum
https://initiumnovum.de
Welche Styles nutzt du?
Theme und Template von Flatty, mit Anpassungen von mir
Hast du Plugins installiert? Welche? (wenn möglich bitte Links zu den Plugins angeben)
Nein
Welche MyBB-Version benutzt du?
1.8.12
Welche PHP-Version benutzt du?
5.6.31
Welche Datenbank benutzt du? (mit Version)
MySQLi 5.6.34
Hast du ein Update/Upgrade durchgeführt?
Ja, 1.8.8 auf 1.8.12
Hast du dein MyBB Forum von einer anderen Boardsoftware konvertiert?
Nein
Seit wann tritt das Problem auf?
Kein Problem, nur Anpassung
Wird eine Fehlermeldung ausgegeben? Welche? Wann?
Nein
Es gibt bereits einige Themen zur Anpassung der Wochentage und Monatsnamen auf Deutsch. Ein Thema, das die Frage noch am ehesten beantwortet, ist dieser von März 2009: https://www.mybb.de/forum/thread-12803.html
Doch leider ist das für jemanden wie mich, der sich mit PHP kaum auskennt, nicht sonderlich hilfreich.
Ich persönlich finde es viel schöner, wenn das Datums-Format im Forum allgemein folgendermaßen aussieht:
Beispiel: Mi, 30. August 2017 (auf Deutsch)
Gut wäre es natürlich auch, wenn dieses Datums-Format ein Benutzer im UCP auch auswählen könnte. Allerdings wäre das für mich zweitrangig.
Versucht habe ich bereits, wie im oben genannten Thema angeregt, die Funktionen setlocal() und strftime(). Die Übersetzung ins Deutsche mit der Funktion setlocal() habe ich sogar noch hinbekommen.
Jedoch die Funktion strftime() in die bestehende Datums-Funktion my_date() in der Datei inc/functions.php zu implementieren, damit die Wochentage und Monatsnamen auf Deutsch angezeigt werden, da bin ich gescheitert.
Der Funktion werden folgende Werte übergeben: function my_date($format, $stamp=0, $offset="", $ty=1, $adodb=false)
Der Rückgabewert: return $date;
Wobei der Rückgabewert auch den String 'Heute', 'Gestern' usw. beinhalten kann.
Somit muss, wenn ich das richtig verstanden habe, in der Funktion selbst überall, wo der Timestamp als Datum und nicht als 'Heute' etc. übergeben wird, die Funktion strftime() eingesetzt werden.
Doch dies scheitert bereits an der Stelle, wo die Funktionen adodb_date und gmdate() zum Einsatz kommen:
gmdate() muss ja stehen bleiben, wo soll ich dort also noch strftime() unterbringen. Die beiden kommen sich doch gegenseitig in die Quere.
Also habe ich dann versucht, mit den Arrays zu arbeiten.
Dort habe ich ein ähnliches Problem, denn die Ausgabe müsste in meinem Fall ja wie folgt lauten:
Der eigentliche Code in der Funktion my_date() sieht folgendermaßen aus:
Zum einen bin ich mir nicht sicher, wo ich die Arrays hinpacken soll. Kommen die mit in die Funktion my_date()?
Und zum anderen weiß ich nicht, wie ich den Codeabschnitt so anpassen soll, das er funktioniert. Da sind mir die Funktionen adodb_date() und gmdate() im Weg, die jedoch wohl drinbleiben müssen.
mit
zu ersetzen funktioniert nicht.
Wäre super, wenn mir hier jemand weiterhelfen könnte.
es tut mir leid, im Forum 'Programmierung' darf ich leider noch kein Thema erstellen. Daher hoffe ich, ihr seht es mir nach, das ich das Thema für meine Frage zur Anpassung des MyBB in Bezug auf Codeänderungen hier erstelle.
URL zum Forum
https://initiumnovum.de
Welche Styles nutzt du?
Theme und Template von Flatty, mit Anpassungen von mir
Hast du Plugins installiert? Welche? (wenn möglich bitte Links zu den Plugins angeben)
Nein
Welche MyBB-Version benutzt du?
1.8.12
Welche PHP-Version benutzt du?
5.6.31
Welche Datenbank benutzt du? (mit Version)
MySQLi 5.6.34
Hast du ein Update/Upgrade durchgeführt?
Ja, 1.8.8 auf 1.8.12
Hast du dein MyBB Forum von einer anderen Boardsoftware konvertiert?
Nein
Seit wann tritt das Problem auf?
Kein Problem, nur Anpassung
Wird eine Fehlermeldung ausgegeben? Welche? Wann?
Nein
Es gibt bereits einige Themen zur Anpassung der Wochentage und Monatsnamen auf Deutsch. Ein Thema, das die Frage noch am ehesten beantwortet, ist dieser von März 2009: https://www.mybb.de/forum/thread-12803.html
Doch leider ist das für jemanden wie mich, der sich mit PHP kaum auskennt, nicht sonderlich hilfreich.
Ich persönlich finde es viel schöner, wenn das Datums-Format im Forum allgemein folgendermaßen aussieht:
Beispiel: Mi, 30. August 2017 (auf Deutsch)
Gut wäre es natürlich auch, wenn dieses Datums-Format ein Benutzer im UCP auch auswählen könnte. Allerdings wäre das für mich zweitrangig.
Versucht habe ich bereits, wie im oben genannten Thema angeregt, die Funktionen setlocal() und strftime(). Die Übersetzung ins Deutsche mit der Funktion setlocal() habe ich sogar noch hinbekommen.
Jedoch die Funktion strftime() in die bestehende Datums-Funktion my_date() in der Datei inc/functions.php zu implementieren, damit die Wochentage und Monatsnamen auf Deutsch angezeigt werden, da bin ich gescheitert.
Der Funktion werden folgende Werte übergeben: function my_date($format, $stamp=0, $offset="", $ty=1, $adodb=false)
Der Rückgabewert: return $date;
Wobei der Rückgabewert auch den String 'Heute', 'Gestern' usw. beinhalten kann.
Somit muss, wenn ich das richtig verstanden habe, in der Funktion selbst überall, wo der Timestamp als Datum und nicht als 'Heute' etc. übergeben wird, die Funktion strftime() eingesetzt werden.
Doch dies scheitert bereits an der Stelle, wo die Funktionen adodb_date und gmdate() zum Einsatz kommen:
PHP-Code:
$date = gmdate($mybb->settings['dateformat'], $stamp + ($offset * 3600));
Also habe ich dann versucht, mit den Arrays zu arbeiten.
PHP-Code:
$days = array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa");
$months = array(1=>"Januar",2=>"Februar",3=>"März",4=>"April",5=>"Mai",6=>"Juni",
7=>"Juli",8=>"August",9=>"September",10=>"Oktober",11=>"November",12=>"Dezember");
PHP-Code:
$date = $days[date("w", $stamp)].date(", d. ", $stamp).$months[date("n", $stamp)].date(" Y", $stamp);
PHP-Code:
$todaysdate = $yesterdaysdate = '';
if($ty && ($format == $mybb->settings['dateformat'] || $format == 'relative'))
{
$_stamp = TIME_NOW;
if($adodb == true)
{
$date = adodb_date($mybb->settings['dateformat'], $stamp + ($offset * 3600));
$todaysdate = adodb_date($mybb->settings['dateformat'], $_stamp + ($offset * 3600));
$yesterdaysdate = adodb_date($mybb->settings['dateformat'], ($_stamp - 86400) + ($offset * 3600));
}
else
{
$date = gmdate($mybb->settings['dateformat'], $stamp + ($offset * 3600));
$todaysdate = gmdate($mybb->settings['dateformat'], $_stamp + ($offset * 3600));
$yesterdaysdate = gmdate($mybb->settings['dateformat'], ($_stamp - 86400) + ($offset * 3600));
}
}
Und zum anderen weiß ich nicht, wie ich den Codeabschnitt so anpassen soll, das er funktioniert. Da sind mir die Funktionen adodb_date() und gmdate() im Weg, die jedoch wohl drinbleiben müssen.
PHP-Code:
$mybb->settings['dateformat']
PHP-Code:
$days[date("w", $stamp)].date(", d. ", $stamp).$months[date("n", $stamp)].date(" Y", $stamp)
Wäre super, wenn mir hier jemand weiterhelfen könnte.