forked from extern/egroupware
Fixed problem with escaping and added a few test cases to the PHP->JS compiler
This commit is contained in:
parent
db074aa39c
commit
efc173cd2c
@ -352,8 +352,8 @@
|
|||||||
|
|
||||||
if (typeof part == "string")
|
if (typeof part == "string")
|
||||||
{
|
{
|
||||||
// Escape all "'" chars and add the string to the parts array
|
// Escape all "'" and "\" chars and add the string to the parts array
|
||||||
parts.push("'" + part.replace(/'/g, "\\'") + "'");
|
parts.push("'" + part.replace(/'/g, "\\'").replace(/\\/g, "\\\\") + "'");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -361,6 +361,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (parts.length == 0)
|
||||||
|
{
|
||||||
|
parts.push('""');
|
||||||
|
}
|
||||||
|
|
||||||
return parts.join(" + ");
|
return parts.join(" + ");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -399,7 +404,7 @@
|
|||||||
var js = _php_compileJSCode(_vars, syntaxTree);
|
var js = _php_compileJSCode(_vars, syntaxTree);
|
||||||
|
|
||||||
// Log the successfull compiling
|
// Log the successfull compiling
|
||||||
et2_debug("log", "Compiled PHP '" + _expr + "' --> '" + js + "'");
|
et2_debug("log", "Compiled PHP " + _expr + " --> " + js);
|
||||||
|
|
||||||
// Prepate the attributes for the function constuctor
|
// Prepate the attributes for the function constuctor
|
||||||
var attrs = [];
|
var attrs = [];
|
||||||
@ -415,3 +420,25 @@
|
|||||||
|
|
||||||
}).call(window);
|
}).call(window);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Include this code in in order to test the above code
|
||||||
|
/*(function () {
|
||||||
|
var row = 10;
|
||||||
|
var row_cont = {"title": "Hello World!"};
|
||||||
|
var cont = {10: row_cont};
|
||||||
|
|
||||||
|
function test(_php, _res)
|
||||||
|
{
|
||||||
|
console.log(
|
||||||
|
et2_compilePHPExpression(_php, ["row", "row_cont", "cont"])
|
||||||
|
(row, row_cont, cont) === _res);
|
||||||
|
}
|
||||||
|
|
||||||
|
test("${row}[title]", "10[title]");
|
||||||
|
test("{$row_cont[title]}", "Hello World!");
|
||||||
|
test('{$cont["$row"][\'title\']}', "Hello World!");
|
||||||
|
test("\\\\", "\\");
|
||||||
|
test("", "");
|
||||||
|
})();*/
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user