Das ist ein Klassischer Fall von: "Was sollen wir dir dazu jetzt sagen?"
Auch wenn du jetzt sehr schön Erklärt hast was du gemacht hast, ist im Endeffekt doch niemandem Bekannt was du denn nun genau gemacht hast. Somit können wir jetzt eigentlich nur Helfen indem wir Tipps zur Eingrenzung der Fehlerquelle geben.
Es wäre z.B. sehr nützlich gewesen wenn du die -in der Fehlermeldung angegebene- Zeile Posten würdest. Am bestem nen Codeblock +/- 10 Zeilen bei dem du angibst welche Zeile die bemängelte ist.
Da du gesagt hast das die Zeilenummer beim entfernen aller Änderungen 2167 ist, hab ich mal in eine meiner Dateien geschaut die noch Original sein müsste. Mein Ergebnis ist das es sich um
Code: Alles auswählen
return strtr(@gmdate($date_cache[$format]['format_long'], $gmepoch + $zone_offset), $date_cache[$format]['lang']);
handeln müsste. Das ist die letzte Zeile der Funktion
format_date.

Der Fehler besagt nun das das zweite Argument von strstr Fehlerhaft ist. Das zweite Argument ist
$date_cache[$format]['lang']
Wenn wir nun im Code ein paar Zeilen hoch gehen, wird dort
$date_cache[$format]['lang'] definiert indem auf die Sprachdateien zugegriffen wird. Und zwar auf diesen Teil der common.php (aus deinem Language Ordner)
Code: Alles auswählen
'datetime' => array(
'TODAY' => 'Heute',
'TOMORROW' => 'Morgen',
'YESTERDAY' => 'Gestern',
'AGO' => array(
0 => 'vor weniger als einer Minute',
1 => 'vor %d Minute',
2 => 'vor %d Minuten',
60 => 'vor 1 Stunde',
),
'Sunday' => 'Sonntag',
'Monday' => 'Montag',
'Tuesday' => 'Dienstag',
'Wednesday' => 'Mittwoch',
'Thursday' => 'Donnerstag',
'Friday' => 'Freitag',
'Saturday' => 'Samstag',
'Sun' => 'So',
'Mon' => 'Mo',
'Tue' => 'Di',
'Wed' => 'Mi',
'Thu' => 'Do',
'Fri' => 'Fr',
'Sat' => 'Sa',
'January' => 'Januar',
'February' => 'Februar',
'March' => 'März',
'April' => 'April',
'May' => 'Mai',
'June' => 'Juni',
'July' => 'Juli',
'August' => 'August',
'September' => 'September',
'October' => 'Oktober',
'November' => 'November',
'December' => 'Dezember',
'Jan' => 'Jan',
'Feb' => 'Feb',
'Mar' => 'Mär',
'Apr' => 'Apr',
'May_short' => 'Mai', // Short representation of "May". May_short used because in English the short and long date are the same for May.
'Jun' => 'Jun',
'Jul' => 'Jul',
'Aug' => 'Aug',
'Sep' => 'Sep',
'Oct' => 'Okt',
'Nov' => 'Nov',
'Dec' => 'Dez',
),
Der Hinweis den du auf phpbb.com gefunden hast, ist somit durchaus richtig.

Nun sagst du das du die Sprachdateien bereits geprüft und erneuert hast. Prüf das nochmals indem du die die Datei des Fehlerfreien Forums einspielst. Wenn der Fehler bleibt obwohl du die Datei des Funktionierenden Forums nutzt, musst du einen Schritt weiter gehen. Und zwar wird nur auf die Sprachdatei zugegriffen, wenn das Datumsformat nicht an die Funktion
format_date übergeben wurde.
An dieser stelle wird es mir jetzt etwas zu aufwändig. Vor allem weil ich keine Zeit mehr habe, da ich zum Grillen eingeladen bin. Du müsstest jetzt nämlich ermitteln wo du Funktion aufgerufen wird. Da der Fehler kommt wenn du die viewforum.php mit einem falschen Parameter aufrufst, müsstest du also in der viewforum.php nach der stelle suchen die auf diesen falschen Aufruf reagiert und den ganzen weg -bis zum Aufruf der
format_date verfolgen. Dort müsstest du schauen wie die Variable heist die als zweites Argument (beim aufruf von
format_date) genutzt wird. (Ich denke mal sie heist $format.) Wenn du das weisst, suchst du die stelle an der diese Variable definiert bzw. bearbeitet wird. In dem Bereich müsste ein Fehler sein.
Wie du siehst recht aufwändig.
Da du ein Funktionierendes und ein Fehlerhaftes Forum hast, würde ich empfehlen du nimmst das Funktionierende, baust da (nach und nach) sehr Gewissenhaft alles nochmal aus das du in dem Fehlerhaften nicht mehr drin hast und prüfst dabei regelmäßig auf Fehler.
Das dürfte einfacher sein als Fehleranalyse.
