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
