Die neue Chain packt man in die Datei "include.chain.content.html2xhtml.php" im Verzeichnis "contenido/plugins/chains/includes/" mit folgendem Inhalt (zuletzt geändert 30.01.2007 15:53):
Code: Alles auswählen
<?php
function cecContentHtml2Xhtml ($idartlang, $int2, $int3, $string)
{
global $cfg;
/* Cache the XHTML setting for performance reasons */
if (!is_array($cfg) || !array_key_exists("generate_xhtml", $cfg))
{
if (function_exists("getEffectiveSetting"))
{
$cfg["generate_xhtml"] = getEffectiveSetting("generator", "xhtml", false);
} else {
$cfg["generate_xhtml"] = false;
}
}
if ($cfg["generate_xhtml"] === "false")
{
$cfg["generate_xhtml"] = false;
}
if ($cfg["generate_xhtml"] == true)
{
$string = preg_replace ("/(<\/?)(\w+)([^>]*>)/me"
,"'\\1'.strtolower('\\2').cecContentHtmlAttr2Xhtml('\\3')"
,$string
);
$string = preg_replace ("/(<)(area|base|basefont|br|col|frame|hr|img|input|isindex|link|meta|param)([^>]*?)((?<!\/)>)/m"
,"\\1\\2\\3 />"
,$string
);
}
return $string;
}
function cecContentHtmlAttr2Xhtml ($string)
{
$string = stripslashes ($string);
$string = stripslashes (preg_replace ("/(\w+)(\=)([\"|\'])([^\"']+)([\"|\'])(\s)/me"
,'strtolower("\1")."=\"\4\" "'
,$string
));
$string = stripslashes (preg_replace ("/([\s]([\w]+)[\s]+)(?!\=[\"\'])(?=[\/]?[>]|[\w\s]+[\=])/me"
,' '.strtolower('\\2').'="'.strtolower('\\2').'"'
,$string
));
$string = stripslashes (preg_replace ("/([\s]([\w]+)[\s]+)(?!\=[\"\'])(?=[\/]?[>]|[\w\s]+[\=])/me"
,' '.strtolower('\\2').'="'.strtolower('\\2').'"'
,$string
));
return $string;
}
?>
Code: Alles auswählen
cInclude("plugins", "chains/includes/include.chain.content.html2xhtml.php");
$_cecRegistry->addChainFunction("Contenido.Content.SaveContentEntry", "cecContentHtml2Xhtml");
Zurzeit werden:
- Tags und Attribute in Kleinschreibung umgewandelt,
- einzelstehende Tags (br,hr,base,img,input,meta,link) von "<br>" in "<br />" umgewandelt und
- Attribute ohne Wert (z.B. "selected") in die korrekte Schreibweise (selected="selected") überführt