Meta-Tag Content-Type

Fragen zur Installation von CONTENIDO 4.10? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
bodil
Beiträge: 231
Registriert: Fr 7. Okt 2011, 04:10
Kontaktdaten:

Meta-Tag Content-Type

Beitrag von bodil » Di 26. Jan 2021, 13:26

Liebe Gemeinde!
Eine Fehlermeldung im HTML-Validierer von w3.org fürht mich in Bereiche, in denen ich mich nicht mehr auskenne.
Contenido schreibt ohne mein Zutun

Code: Alles auswählen

<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
in den head.
Der Validator sagt dazu jetzt Folgendes:
Bad value application/xhtml+xml; charset=utf-8 for attribute content on element meta: The legacy encoding declaration did not start with text/html;.
Und mit Bezug auf diesselbe Zeile:
A document must not include both a meta element with an http-equiv attribute whose value is content-type, and a meta element with a charset attribute.
Gefühlt hat das mit der Frage zu tun, ob ich in der System-Konfiguration das Häkchen bei XHTML generieren gesetzt habe. Hab ich. Ohne Häkchen gibts aber denselben Fehler.
Das System läuft auf Contenido 4.10.1. unter PHP 7.0.33.
Der Validator ist dieser: https://validator.w3.org/nu/
Weiß da jemand Rat?
Besten Dank!
Bodil

Faar
Beiträge: 1719
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Meta-Tag Content-Type

Beitrag von Faar » Di 26. Jan 2021, 16:41

Der Fehler ist bekannt und wurde auch schon beschrieben.
Da muss man in den Code von Contenido und etwas ändern, wenn man das lösen will.
Ich weiß nicht, wo der Artikel dazu ist und ob es schon ein Ticket gibt zur Lösung und vielleicht schon für die nächste Version gelöst ist.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

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

Re: Meta-Tag Content-Type

Beitrag von Oldperl » Di 26. Jan 2021, 18:55

Servus,

Contenido 4.10.x kann keine HTML5 konformen Metatags erstellen, nur HTML und XHTML. Die MetaTags werden sowohl in der Code-Generierung als auch in einer Chain überprüft bzw. erstellt. An diesen 2 Punkten muss man schauen und diese entsprechend ändern. Generell wäre eine erweiterte Metatag-Chain in Zukunft wohl die cleverere Lösung.

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

Faar
Beiträge: 1719
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Meta-Tag Content-Type

Beitrag von Faar » Di 26. Jan 2021, 19:35

Oldperl hat geschrieben:
Di 26. Jan 2021, 18:55
Servus,
Servus Ortwin 8)
Contenido 4.10.x kann keine HTML5 konformen Metatags erstellen, nur HTML und XHTML.
Wo werden denn die Metatags erstellt?
Vielleicht kann man da ansetzen und was ändern für die nächste Version?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

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

Re: Meta-Tag Content-Type

Beitrag von Oldperl » Di 26. Jan 2021, 23:20

Hallo Frank,
Faar hat geschrieben:
Di 26. Jan 2021, 19:35
Wo werden denn die Metatags erstellt?
Oldperl hat geschrieben:
Di 26. Jan 2021, 18:55
Die MetaTags werden sowohl in der Code-Generierung als auch in einer Chain überprüft bzw. erstellt.
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

bodil
Beiträge: 231
Registriert: Fr 7. Okt 2011, 04:10
Kontaktdaten:

Re: Meta-Tag Content-Type

Beitrag von bodil » Mi 27. Jan 2021, 08:37

Vielen Dank an alle!
Meine Skills an der Suchfunktion des Forums sind wohl ausbaufähig. Zu dem Tag hab ich einiges gefunden. Aber eben nicht, dass da statt application/xhtml+xml was anderes stehen soll.
Vom Namen her müsste die Funktionalität am ehesten in includes/chains/include.chain.content.createmetatags.php zu finden sein. Da habe ich aber nichts dazu entdeckt.
Ich denke, ich werde eine eigene Chain bauen, den Hook Contenido.Frontend.HTMLCodeOutput nutzen und das komplette Tag austauschen.
Möge die Übung gelingen! (Und das Tag nicht erst nach dem Hook generiert werden …)
Grüße!
Bodil

bodil
Beiträge: 231
Registriert: Fr 7. Okt 2011, 04:10
Kontaktdaten:

Re: Meta-Tag Content-Type

Beitrag von bodil » Mi 27. Jan 2021, 09:06

Ja, es hat geklappt!
Wer es nachbasteln will:
1. in contenido/includes/chains die Datei include.chain.frontend.htmlcodeoutput.php anlegen (falls es sie noch nicht gibt).
2 in die Datei folgenden Code schreiben:

Code: Alles auswählen

<?php
defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');

function cecHtmlCodeOutput($htmlCode) {
	$htmlCode = str_replace('<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />', '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />', $htmlCode);
	return $htmlCode;
}
?>
3. in data/config/production die Datei config.chains.load.php öffnen und diese beiden Zeilen ergänzen:

Code: Alles auswählen

cInclude('includes', 'chains/include.chain.frontend.htmlcodeoutput.php');
$_cecRegistry->addChainFunction('Contenido.Frontend.HTMLCodeOutput', 'cecHtmlCodeOutput');
Achtung:
  • diese Maßnahme wird ein Update nicht ohne weiteres überleben.
  • »die Chain greift nicht bei Artikeln ohne Output-Buffering« – Zitat Oldperl in einem ähnlichen Zusammenhang
  • die Maßnahme ist nicht schlau, Änderungen im System führen nicht zu Änderungen des Tags. Entweder es wird ersetzt oder nicht.

Faar
Beiträge: 1719
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Gelöst: Meta-Tag Content-Type

Beitrag von Faar » Mi 27. Jan 2021, 10:32

Oldperl hat geschrieben:
Di 26. Jan 2021, 18:55
Die MetaTags werden sowohl in der Code-Generierung als auch in einer Chain überprüft bzw. erstellt.
Ok, habs zum Teil gefunden und zugleich einen der Fehler.
Datei: class.code.generator.standard.php

Zeile 527

Code: Alles auswählen

        
        if (getEffectiveSetting('generator', 'html5', 'false') == 'true') {
            $metaTags[] = array(
                'charset' => $encoding[$this->_lang]
            );
Dieses Effective Seeting befindet sich sinnvollerweise in den Mandanteineinstellungen.
In den Eigenschaften des Mandanten kann ich lediglich XHTML ausschalten aber nicht HTML5 einschalten.
Gleiches in System->Konfiguration, dort kann ich XHTML nur ausschalten.

Ok, so denkt sich der Laie, dann füge ich in den Mandanteneinstellungen einfach einen weiteren Eintrag hinzu:
'generator' - 'html5' - 'true'

Und siehe da, nichts hat sich geändert.
Der Profi denkt sich, war da nicht was mit Cache und so?
Ja, man muss noch unter System->Bereinigung die Code Generierung neu erzwingen und voila, wird das in der Webseite angezeigt:

Code: Alles auswählen

<meta charset="utf-8">
Es funktioniert also mittels Mandanteneinstellungen und XHTML Ausschalten und Code Generierung neu erzwingen. 8)

Was noch fehlt, ist die Einrückung der MetaTags, die sind alle linksbündig. :?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

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

Re: Meta-Tag Content-Type

Beitrag von Oldperl » Mi 27. Jan 2021, 11:59

Servus,
Faar hat geschrieben:
Mi 27. Jan 2021, 10:32
Dieses Effective Seeting befindet sich sinnvollerweise in den Mandanteineinstellungen.
In den Eigenschaften des Mandanten kann ich lediglich XHTML ausschalten aber nicht HTML5 einschalten.
Gleiches in System->Konfiguration, dort kann ich XHTML nur ausschalten.
Nun, dazu müssten einfach das Select-Feld bei den Mandanten und die Tabelle in der System-Konf entsprechend geändert werden, und natürlich deren Logik. Diese Speichern ihre Einstellungen ja ebenfalls in der Settings-Tabelle.
Generell ist hier zu überlegen, ob man nicht die alte HTML-Einstellung entsprechend umbaut, da es inzwischen wohl kaum noch Seiten damit geben wird und HTML5 eigentlich inzwischen Standard ist.
Auch sollte das Handling der MetaTags komplett in eine Chain ausgelagert werden, die InCode-Manipulation resultiert noch aus den Anfangszeiten von Contenido, lässt sich schlecht warten und noch schlechter per eigener Chain modifizieren.

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

Faar
Beiträge: 1719
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Meta-Tag Content-Type

Beitrag von Faar » Mi 27. Jan 2021, 12:46

Oldperl hat geschrieben:
Mi 27. Jan 2021, 11:59
Servus,
Grüezi,

dazu müssten einfach
Vermutlich ist es doch nicht so einfach?
Generell ist hier zu überlegen, ob man nicht die alte HTML-Einstellung entsprechend umbaut, da es inzwischen wohl kaum noch Seiten damit geben wird und HTML5 eigentlich inzwischen Standard ist.
Ja, weil HTML5 ist Standard und wer was anderes will, muss es von Hand eintragen.
Wobei ja HTML5 noch mehr zu bieten hat außer der Charakter-Einstellung.
Siehe <br />
Da liegt die Crux.
Das mit dem Meta-Tag ist ja noch einfach.
Auch sollte das Handling der MetaTags komplett in eine Chain ausgelagert werden, die InCode-Manipulation resultiert noch aus den Anfangszeiten von Contenido, lässt sich schlecht warten und noch schlechter per eigener Chain modifizieren.
hm? :shock:
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

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

Re: Meta-Tag Content-Type

Beitrag von Oldperl » Mi 27. Jan 2021, 13:31

Servus,

wenn ich die Zeit hätte... :roll:

Aber momentan bin ich auf Job- bzw. Projektsuche, damit wenigstens ein bisserl Kohle rein kommt, denn Hilfe von Papa Staat habe ich wohl keine zu erwarten.
Bei meiner ConLite habe ich dahingehend aber schon begonnen HTML5 zum Standard zu machen. Bei Mandanten kann man dort HTML5 auswählen, und bei der Chain und im Core bei der MetaTag-Erstellung prüfe ich das und passe die Tags an. Zur Zeit bin ich aber vorrangig an den Anpassungen der CL zu PHP 8, die sich doch recht umfangreich darstellen. Setup läuft schon, nun ist das Backend dran.

Falls das aber jemand für Contenido 4.10.x umsetzen möchte, helfe ich gerne mit Tipps und Infos dazu hier im Forum.

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

Faar
Beiträge: 1719
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Meta-Tag Content-Type

Beitrag von Faar » Mi 27. Jan 2021, 16:13

gut. Muss man sich nur noch in Github einarbeiten.

Denk aber bei Deiner CL auch an MySQL 8.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

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

Re: Meta-Tag Content-Type

Beitrag von Oldperl » Mi 27. Jan 2021, 16:27

Faar hat geschrieben:
Mi 27. Jan 2021, 16:13
gut. Muss man sich nur noch in Github einarbeiten.
gitport.de mein Lieber, nicht github.com. :roll:
Und Einarbeiten solltest Du Dich dann in Git, wofür es aber recht gute Tutorials, auch in deutsch gibt.

Und ja, ich habe die CL schon teilweise in Richtung MySQL 7, und damit auch indirekt an MySQL 8 angepasst. Nutze dazu eine Docker-Umgebung, da man ja MySQL leider nicht wie PHP in verschiedenen Versionen umschaltbar installieren kann.

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

xmurrix
Beiträge: 2982
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Meta-Tag Content-Type

Beitrag von xmurrix » Mi 27. Jan 2021, 19:43

Hallo zusammen,

die Erweiterung der System-Konfiguration um die Ausgabe von HTML5 ist eine schlechte Idee.

Wenn man das macht, sollte man auch das Backend HTML5-Konform ausgeben. Allerdings kann man das Backend noch nicht auf HTML5 umstellen. Das Backend generiert anhand dieser Einstellung sämtliche Elemente, siehe cHTML und davon abgeleitete Klassen. In HTML 5 sind Frames als missbilligt eingestuft und das Backend läuft noch mit Frames. Man wird sich also viele Probleme einhandeln, wenn man die System-Konfiguration um HTML5 erweitert.

Es hat also einen guten Grund, warum die Generierung von HTML5 über die Mandanten-Konfiguration geschehen sollte, zumal eine CONTENIDO-Installation mehrere Mandanten haben kann und nicht jeder Mandant zwingend HTML5 Code ausgeben muss.

Grüße
xmurrix
CONTENIDO downloads: CONTENIDO 4.10.1
CONTENIDO links: Documentation, API documentation
CONTENIDO @ Github: CONTENIDO 4.10

Faar
Beiträge: 1719
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Meta-Tag Content-Type

Beitrag von Faar » Do 28. Jan 2021, 09:40

xmurrix hat geschrieben:
Mi 27. Jan 2021, 19:43
Es hat also einen guten Grund, warum die Generierung von HTML5 über die Mandanten-Konfiguration geschehen sollte...
Hallo Xmurrix,
mir ging es nur um die Generierung von HTML5 für die Frontenddarstellung der Seiten, also im Mandanten.
Das Frontend sollte HTML5 auswerfen können, statt XHTML.

So wie ich es bei Dir lese und jetzt befürchte, ist die Frontendausgabe von HTML und die des Backends miteinander vermischt, so dass es nur ein entweder-oder geben würde?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Antworten