- - - By CrazyStat - - -

CMSimple_XH (1.6.X) Dokumentation



(Version 1.0.7 vom 13.11.2017)

Sie sind hier: Startseite > Architektur > Konventionen für (X)HTML > Doctype Declaration

5.10.2 • • Doctype Declaration

Um zu vermeiden, dass Browser in den so genannten Quirksmode fallen, sollten (X)HTML Dokumente immer mit einer gültigen Doctype Declaration beginnen. Diesen zu erzeugen ist bei CMSimple_XH Aufgabe des Templates. Um ein reibungsloses Zusammenspiel mit dem Core und Plugins zu ermöglichen, empfiehlt es sich diese Doctype Declaration dynamisch in Abhängigkeit der Einstellung xhtml_endtags zu erzeugen:

<?php if ($cf['xhtml']['endtags'] == 'true'):?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
 lang="<?php echo $sl;?>" xml:lang="<?php echo $sl;?>">
<?php else:?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
<html lang="<?php echo $sl;?>">
<?php endif;?>

Der öffnende <html> Tag ist bereits mit eingebunden, da dieser bei XHTML noch den Namespace enthält und somit auch je nach HTML oder XHTML unterschiedlich gesetzt werden muss.

Alternativ kann auch die so genannte HTML5 Doctype Declaration verwendet werden:

<!DOCTYPE html>
<html lang="<?php echo $sl;?>">

Diese könnte im Zusammenspiel mit einigen (vor allem älteren) Plugins gelegentliche Validierungsfehler ergeben, was aber für die Darstellung im Browser irrelevant sein dürfte. Zudem könnte es bei der traditionellen dynamischen Erzeugung der Doctype Declaration Validierungsprobleme mit neueren und zukünftigen Plugins geben, so dass der HTML5 Doctype vermutlich für neue Templates die sinnvollere Variante darstellt.

Anschließend folgt in beiden Fällen:

<head>

Wenn im Template inhaltsleere Elemente verwendet werden, sollten diese natürlich per PHP mit tag() eingebunden werden, wie weiter unten beschrieben. Dies ist zwar für HTML5 nicht unbedingt erforderlich, aber so wäre das Template bereits für die möglicherweise in einer zukünftigen CMSimple_XH Version eingeführte optionale Auslieferung der Website als application/xhtml+xml vorbereitet.