[4.9.6] Meta-Tag Encoding

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

[4.9.6] Meta-Tag Encoding

Beitrag von Oldperl » Fr 27. Feb 2015, 14:14

Servus,

aus irgendwelchen Gründen greift in der Code-Generator Klasse (contenido/classes/code_generator/class.code.generator.standard.php) die Erstellung des Meta-Tags zum Encoding nicht richtig. Meine Vermutung ist/war, dass das entsprechende globale Array nicht korrekt ist. Ohne das aber nochmal gegen zu checken (ich habe auf die Schnelle nicht mal die Generierung gefunden) und da wir ja eh immer weniger auf globale Vars setzen wollten, habe ich die Stelle in der Methode _getBasicMetaTags() (ab Zeile 410) geändert und nutze dort nun die cApiLanguage-Klasse um benötigte Angaben direkt aus der DB zu holen.

Code: Alles auswählen

// add charset or content type meta tag        
        $cApiLanguage = new cApiLanguage($this->_lang);
        $encoding = $cApiLanguage->get('encoding');
        if (getEffectiveSetting('generator', 'html5', 'false') == 'true') {
            $metaTags[] = array(
                'charset' => $encoding
            );
        } elseif (getEffectiveSetting('generator', 'xhtml', 'false') == 'true') {
            $metaTags[] = array(
                'http-equiv' => 'Content-Type',
                'content' => 'application/xhtml+xml; charset=' . $encoding
            );
        } else {
            $metaTags[] = array(
                'http-equiv' => 'Content-Type',
                'content' => 'text/html; charset=' . $encoding
            );
        }
Mit dieser Änderung wird nun der Tag, entsprechend der Einstellungen bei den Sprachen, immer korrekt gesetzt.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: [4.9.6] Meta-Tag Encoding

Beitrag von Dodger77 » Do 5. Mär 2015, 09:38

DIe Änderung funktioniert natürlich. Es hätte aber wohl auch gereicht, den Frontend-Cookie zu löschen. :shock:

DIe globale Variable $encoding wird in der Session gespeichert, siehe:

https://git.contenido.org/projects/CON/ ... ontent.php

(Zeilen 102ff.)

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: [4.9.6] Meta-Tag Encoding

Beitrag von Oldperl » Do 5. Mär 2015, 10:08

Danke Ingo, das hab ich noch gar nicht gesehen :wink:
Da sieht man aber mal den Nachteil solcher Cookies als Cache. Eventuell wäre hier sowieso zu empfehlen das komplette Handling für die encoding-Var über die cRegistry umzusetzen, so hat man es dann zentral. Dabei sollte man aber eine Trennung von Frontend- und Backend-Encoding beachten.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: [4.9.6] Meta-Tag Encoding

Beitrag von Dodger77 » Do 5. Mär 2015, 10:43

Bis ich mich daran erinnert habe, hatte ich auch schon einige Zeit in der Encoding-Hölle verbracht. :wink:

Ich finde auch, dass das ungünstig ist. Man kann ja schlecht alle Nutzer auffordern, mal eben ihre Cookies zu löschen.

Und einfach wild alle Dateien im Verzeichnis zur Session-Speicherung zu löschen, könnte auf Shared-Hosting-Umgebungen Probleme bereiten. :twisted:

Vielleicht wäre so etwas ein Ansatz, falls das in der Session bleiben müsste:

http://stackoverflow.com/questions/5193 ... p-sessions

Antworten