1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-16 11:36:08 +02:00

Issue #1460 - Fix crash in parser when posting code.

This commit is contained in:
Cameron
2016-04-01 11:27:06 -07:00
parent a30ee0d5b8
commit 10f0d80291
2 changed files with 23 additions and 71 deletions

View File

@@ -4408,36 +4408,37 @@ return;
// Disable Shortcodes in pre/code
foreach($this->nodesToDisableSC as $node)
foreach($this->nodesToDisableSC as $key => $node)
{
$value = $node->C14N();
$value = $node->C14N();
if(empty($value))
{
continue;
}
if(empty($value))
{
continue;
}
$value = str_replace("
","\r",$value);
$value = str_replace("
", "\r", $value);
if($node->nodeName == 'pre')
{
$value = preg_replace('/^<pre[^>]*>/','',$value);
$value = str_replace("</pre>", "", $value);
}
if($node->nodeName == 'pre')
{
$value = preg_replace('/^<pre[^>]*>/', '', $value);
$value = str_replace("</pre>", "", $value);
}
if($node->nodeName == 'code')
{
$value = preg_replace('/^<code[^>]*>/','',$value);
$value = str_replace("</code>", "", $value);
}
if($node->nodeName == 'code')
{
$value = preg_replace('/^<code[^>]*>/', '', $value);
$value = str_replace("</code>", "", $value);
}
$value = str_replace('{','{{{',$value); // temporarily change {e_XXX} to {{{e_XXX}}}
$value = str_replace('}','}}}',$value); // temporarily change {e_XXX} to {{{e_XXX}}}
$value = str_replace('{', '{{{', $value); // temporarily change {e_XXX} to {{{e_XXX}}}
$value = str_replace('}', '}}}', $value); // temporarily change {e_XXX} to {{{e_XXX}}}
// $value = htmlentities(htmlentities($value)); // Crashes apache.
$node->nodeValue = $value; // Crashes apache sometimes FIXME! .
$newNode = $doc->createElement($node->nodeName);
$newNode->nodeValue = $value;
}
$node->parentNode->replaceChild($newNode, $node);
}