Odd characters within MODX Snippet Parameters

January 16th, 2009 § 0

Some installs of MODX have issues parsing quotes and equals within snippet parameters. So solve this change the code in document.parser.class.inc.php.

Original part of code (MODx 0.9.5) of this function looks like:


function evalSnippets($documentSource) {
...
$snippetParamCount= count($tempSnippetParams); // Find this place of code. It's near the end of function
for ($x= 0; $x < $snippetParamCount; $x++) {
if (strpos($tempSnippetParams[$x], '=', 0)) {
if ($parameterTemp= explode("=", $tempSnippetParams[$x])) { // here's the problem!
$fp= strpos($parameterTemp[1], '`');
$lp= strrpos($parameterTemp[1], '`');
if (!($fp === false && $lp === false))
$parameterTemp[1]= substr($parameterTemp[1], $fp +1, $lp -1);
$parameter[$parameterTemp[0]]= $parameterTemp[1];
}
}
...
}

To fix the issue, this part of code should be changed to:


function evalSnippets($documentSource) {
...
$snippetParamCount= count($tempSnippetParams);
for ($x= 0; $x < $snippetParamCount; $x++) {
$param = $tempSnippetParams[$x];
$eqPos = strpos($param, '=', 0);
if ($eqPos) {
$parameterTemp[0] = substr($param, 0, $eqPos);
$parameterTemp[1] = substr($param, $eqPos+1);

$fp= strpos($parameterTemp[1], '`');
$lp= strrpos($parameterTemp[1], '`');
if (!($fp === false && $lp === false))
$parameterTemp[1]= substr($parameterTemp[1], $fp +1, $lp -1);
$parameter[$parameterTemp[0]]= $parameterTemp[1];
}
}
...
} // end of method

§ Leave a Reply

What's this?

You are currently reading Odd characters within MODX Snippet Parameters at Digital John.

meta