Seite 1 von 1

Contenido ergänzt falschen iso-Code im Metatag

Verfasst: Mi 11. Okt 2017, 00:11
von homtata
Hallo Gemeinde,
ich habe eine 4.6.24 über Zwischenschritte auf 4.9.12 aktualisiert und bin damit eigentlich auch gut erfahren. In der 4.9.12 läuft die Datenbankkollation auf utf8, die Mandantensprache ist utf8, config.php auf utf8, ABER im Gegensatz zu reinen 4.9.x-Installationen bastelt Contenido selbständig weiterhin fröhlich folgenden falschen Metatag zusammen:

Code: Alles auswählen

<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" />
der in den anderen fehlerfreien Versionen aber utf8 ausspuckt:

Code: Alles auswählen

<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
Ich finde KEINE Stelle in der Datenbank, im Quellcode, in den Contenido-Settings, wo iso noch hinterlegt ist. Alle Caches sind gelöscht, das System ist blank.
Hat jemand von Euch eine Idee, woher das kommen könnte?

Re: Contenido ergänzt falschen iso-Code im Metatag

Verfasst: Mi 11. Okt 2017, 08:33
von frederic.schneider_4fb
Guten Morgen,

die Datei class.codegenerator.standard.php (Ordner contenido/classes/code_generator) schreibt einen entsprechenden Meta-Tag in der Funktion _getBasicMetaTags(). Dabei wird von dieser Funktion jener Wert eingefügt, den Du für Deine jeweilige Sprache eingestellt hast.

Wird für die Generierung einer Seite die cGuiPage-Klasse verwendet, dann gibt es theoretisch auch noch die Möglichkeit, dass über die Funktion setEncoding() ein Charset manuell übergeben werden kann.

Vielleicht hilft Dir das schon einmal weiter?

Re: Contenido ergänzt falschen iso-Code im Metatag

Verfasst: Mi 11. Okt 2017, 10:49
von homtata
Hallo Frederic,
das IST ja das schräge: In der Sprache des Mandanten (deutsch) ist definitiv utf8 eingestellt (auch in der Datenbank überprüfbar). Trotzdem landet da iso im Quellcode... ich habe versucht, durch Modifikationen der class Änderungen zu erzwingen, aber es ist so, als ob sich selbst das Umbenennen der Datei (und damit ihr Fehlen) nicht auswirken würde... So, als würde der Contenido-Pfad nicht stimmen und er auf ein anderes Contenido zugreifen, was aber nicht sein kann, da das System nachweislich jetzt auf 4.9 läuft und nirgends eine parallele 4.9 auf dem Server liegt, auf die Zugriff bestünde.
Ich steh grad auf dem Schlauch.

EDIT:
Durch ständiges Leeren des Caches ist die class nun doch soweit manipulierbar, dass sie durch händische Anpassung andere Codes ausspuckt (ist ja aber nicht im Sinne des Erfinders. Offensichtlich stimmt der Inhalt von $encoding auf die lang=1 nicht... Wo wird die denn eingestellt? Woher kann sich diese Variable die falsche iso-Einstellung ziehen??

Re: Contenido ergänzt falschen iso-Code im Metatag

Verfasst: Mi 11. Okt 2017, 11:00
von frederic.schneider_4fb
Und es gibt auch keine alten 4.6 Layouts/Templates/Module, in denen das noch drinnen stehen könnte?

Re: Contenido ergänzt falschen iso-Code im Metatag

Verfasst: Mi 11. Okt 2017, 11:28
von homtata
Nope, alles durchgesehen. Es gibt überhaupt nur 2 Layouts und 3 Module, und diese Module habe ich ALLE gegen die neuesten Module getauscht (noch nicht mal angepasst, wirklich getauscht). Auch neue Layouts angelegt - nix. Ich suche gerade, ob es an der php-Version liegen kann, die per htaccess auf 5.6 gefaked werden muss für den Test, während sonst auf dem Server 5.6 läuft...?

Re: Contenido ergänzt falschen iso-Code im Metatag

Verfasst: Mi 11. Okt 2017, 11:41
von frederic.schneider_4fb
Wüsste spontan nicht, ob das so eine Auswirkung hat. Hast Du Dir auf dem Server mal die gecachten Dateien angesehen und versucht, durch Debugging der Ursache näher zu kommen? So würde ich jedenfalls an die Sache herangehen: Mich herantasten an die Ursache, um herauszufinden, an welcher Stelle der iso-Wert in den Meta-Tag geschrieben wird. Es gibt ja nur drei Varianten: 1. Der Iso-Wert steht in irgendeinem Template. 2. Der Iso-Wert steht hardcoded in irgendeiner PHP-Codezeile. 3. Der Iso-Wert wird in einer Konfigurationsdatei oder in der Datenbank abgespeichert und durch eine CONTENIDO-Klasse dynamisch geschrieben. Da Du ein Update von der 4.6 auf die 4.9 gemacht hast, ist es ja nur so zu erklären, dass von der 4.6 noch Werte übrig geblieben sind, sei es also eine Datei, die noch vorhanden ist, obwohl sie es nicht sein sollte, oder sei es eine Konfiguration, die aus der 4.6 noch vorhanden ist und nicht überschrieben oder entfernt wurde. Das ist jetzt viel Theorie, aber ich glaube wir kommen nicht anders weiter als wenn Du versuchst durch Debugging auf Grundlage dieser Theorie Dich praktisch dem Problem zu nähern. Ich wiederhole mich: Genauso würde ich jedenfalls jetzt vorgehen.

Re: Contenido ergänzt falschen iso-Code im Metatag

Verfasst: Mi 11. Okt 2017, 11:59
von homtata
Ich mach ja schon nix anderes :-) Der Wert wird definitiv falsch durch die globale Variable $encoding eingefügt sprich: $encoding[1] ist falsch. Kannst du mir mehr dazu sagen, wo die initiiert wird?

Re: Contenido ergänzt falschen iso-Code im Metatag

Verfasst: Mi 11. Okt 2017, 12:09
von homtata
Okay, es sieht tatsächlich so aus, als ob die PHP-Umgebung das beeinflusst. Wir haben das gerade testweise auf einen echten 5.6er umgezogen, und siehe da: die Codierungen stimmen jetzt überall.

Re: Contenido ergänzt falschen iso-Code im Metatag

Verfasst: Mi 11. Okt 2017, 12:19
von frederic.schneider_4fb
Das ist aber interessant. Mich würde interessieren, welcher Code von uns den Unterschied bei den PHP-Versionen auslösen soll, dass er mal Utf8 setzt und dann wieder Iso.