Index: trunk/kernel/include/parseditem.php =================================================================== diff -u -r2564 -r2717 --- trunk/kernel/include/parseditem.php (.../parseditem.php) (revision 2564) +++ trunk/kernel/include/parseditem.php (.../parseditem.php) (revision 2717) @@ -500,77 +500,77 @@ return $html; } - function ParseTemplateText($text) + function ParseTemplateText($text) { $html = $text; $search = "TagPrefix; //$next_tag = strpos($html,"",$next_tag); $end_tag = strpos($html,"/>",$next_tag); - if($end_tag < $closer || $closer == 0) - { - $tagtext = substr($html,$next_tag,($end_tag - $next_tag)+2); - $pre = substr($html,0,$next_tag); - $post = substr($html,$end_tag+2); - $inner = $this->ParseElement($tagtext); - $html = $pre.$inner.$post; - } - else - { + if($end_tag < $closer || $closer == 0) + { + $tagtext = substr($html,$next_tag,($end_tag - $next_tag)+2); + $pre = substr($html,0,$next_tag); + $post = substr($html,$end_tag+2); + $inner = $this->ParseElement($tagtext); + $html = $pre.$inner.$post; + } + else + { $OldTagStyle = ""; - - ## Try to find end of TagName - $TagNameEnd = strpos($html, " ", $next_tag); - - ## Support Old version -// $closer = strpos(strtolower($html),"",$next_tag); - if ($TagNameEnd) - { - $Tag = strtolower(substr($html, $next_tag, $TagNameEnd-$next_tag)); + + ## Try to find end of TagName + $TagNameEnd = strpos($html, " ", $next_tag); + + ## Support Old version + // $closer = strpos(strtolower($html),"",$next_tag); + if ($TagNameEnd) + { + $Tag = strtolower(substr($html, $next_tag, $TagNameEnd-$next_tag)); $TagName = explode(":", $Tag); - if (strlen($TagName[1])) + if (strlen($TagName[1])) $CloserTag = ""; - } - else - { - $CloserTag = $OldTagStyle; - } - - $closer = strpos(strtolower($html), $CloserTag, $next_tag); - - ## Try to find old tag closer - if (!$closer && ($CloserTag != $OldTagStyle)) - { - $CloserTag = $OldTagStyle; - $closer = strpos(strtolower($html), $CloserTag, $next_tag); - } - + } + else + { + $CloserTag = $OldTagStyle; + } + + $closer = strpos(strtolower($html), $CloserTag, $next_tag); + + ## Try to find old tag closer + if (!$closer && ($CloserTag != $OldTagStyle)) + { + $CloserTag = $OldTagStyle; + $closer = strpos(strtolower($html), $CloserTag, $next_tag); + } + $end_tag = strpos($html,">",$next_tag); - $tagtext = substr($html,$next_tag,($end_tag - $next_tag)+1); - $pre = substr($html,0,$next_tag); - $inner = substr($html,$end_tag+1,$closer-($end_tag+1)); - $post = substr($html,$end_tag+1+strlen($inner) + strlen($CloserTag)); - //echo "PRE:". htmlentities($pre,ENT_NOQUOTES); - //echo "INNER:". htmlentities($inner,ENT_NOQUOTES); - //echo "POST:". htmlentities($post,ENT_NOQUOTES); + $tagtext = substr($html,$next_tag,($end_tag - $next_tag)+1); + $pre = substr($html,0,$next_tag); + $inner = substr($html,$end_tag+1,$closer-($end_tag+1)); + $post = substr($html,$end_tag+1+strlen($inner) + strlen($CloserTag)); + //echo "PRE:". htmlentities($pre,ENT_NOQUOTES); + //echo "INNER:". htmlentities($inner,ENT_NOQUOTES); + //echo "POST:". htmlentities($post,ENT_NOQUOTES); - $parsed = $this->ParseElement($tagtext); - if(strlen($parsed)) - { - $html = $pre.$this->ParseTemplateText($inner).$post; - } - else - $html = $pre.$post; - } - $next_tag = strpos($html,$search); - } - return $html; + $parsed = $this->ParseElement($tagtext); + if(strlen($parsed)) + { + $html = $pre.$this->ParseTemplateText($inner).$post; + } + else + $html = $pre.$post; + } + $next_tag = strpos($html,$search); + } + return $html; } function ParseTemplate($tname)