Author: chabotc
Date: Sat Aug 8 11:49:03 2009
New Revision: 802343
URL: http://svn.apache.org/viewvc?rev=802343&view=rev
Log:
Wrap template java script blocks in cdata sections to prevent them from being
html-entitied
Modified:
incubator/shindig/trunk/php/src/gadgets/render/GadgetBaseRenderer.php
incubator/shindig/trunk/php/src/gadgets/templates/TemplateLibrary.php
incubator/shindig/trunk/php/src/gadgets/templates/TemplateParser.php
Modified: incubator/shindig/trunk/php/src/gadgets/render/GadgetBaseRenderer.php
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/src/gadgets/render/GadgetBaseRenderer.php?rev=802343&r1=802342&r2=802343&view=diff
==============================================================================
--- incubator/shindig/trunk/php/src/gadgets/render/GadgetBaseRenderer.php
(original)
+++ incubator/shindig/trunk/php/src/gadgets/render/GadgetBaseRenderer.php Sat
Aug 8 11:49:03 2009
@@ -239,12 +239,13 @@
$output = new DOMDocument(null, 'utf-8');
foreach ($childNode->childNodes as $node) {
$outNode = $output->importNode($node, true);
- $output->appendChild($outNode);
+ $outNode = $output->appendChild($outNode);
}
// Restore single tags to their html variant, and remove the xml header
- $ret = str_replace(array(
- '<?xml version="" encoding="utf-8"?>', '<br/>'), array('',
- '<br>'), $output->saveXML());
+ $ret = str_replace(
+ array('<?xml version="" encoding="utf-8"?>', '<br/>', '<script
type="text/javascript"><![CDATA[', ']]></script>'),
+ array('', '<br>', '<script type="text/javascript">', '</script>'),
+ $output->saveXML());
return $ret;
}
}
@@ -274,11 +275,11 @@
* @return string script
*/
public function getBodyScript() {
+ $script = "gadgets.util.runOnLoadHandlers();";
if ($this instanceof GadgetHrefRenderer) {
- return " window.setTimeout(function(){gadgets.window.adjustHeight()},
10);";
- } else {
- return "gadgets.util.runOnLoadHandlers();";
+ $script .= "window.setTimeout(function(){gadgets.window.adjustHeight()},
10);";
}
+ return $script;
}
/**
@@ -408,20 +409,20 @@
if (! isset($gadgetConfig['osapi.services']) ||
count($gadgetConfig['osapi.services']) == 1) {
// this should really be set in config/container.js, but if not, we
build a complete default set so at least most of it works out-of-the-box
$gadgetConfig['osapi.services'] = array(
- 'gadgets.rpc' => array('container.listMethods'),
- 'http://%host%/social/rpc' => array("messages.update",
"albums.update",
- "activities.delete", "activities.update",
- "activities.supportedFields", "albums.get",
- "activities.get", "mediaitems.update",
- "messages.get", "appdata.get",
- "system.listMethods", "people.supportedFields",
- "messages.create", "mediaitems.delete",
- "mediaitems.create", "people.get", "people.create",
- "albums.delete", "messages.delete",
- "appdata.update", "activities.create",
- "mediaitems.get", "albums.create",
- "appdata.delete", "people.update",
- "appdata.create"),
+ 'gadgets.rpc' => array('container.listMethods'),
+ 'http://%host%/social/rpc' => array("messages.update",
"albums.update",
+ "activities.delete", "activities.update",
+ "activities.supportedFields", "albums.get",
+ "activities.get", "mediaitems.update",
+ "messages.get", "appdata.get",
+ "system.listMethods", "people.supportedFields",
+ "messages.create", "mediaitems.delete",
+ "mediaitems.create", "people.get", "people.create",
+ "albums.delete", "messages.delete",
+ "appdata.update", "activities.create",
+ "mediaitems.get", "albums.create",
+ "appdata.delete", "people.update",
+ "appdata.create"),
'http://%host%/gadgets/api/rpc' => array('cache.invalidate'));
}
return "gadgets.config.init(" . json_encode($gadgetConfig) . ");\n";
Modified: incubator/shindig/trunk/php/src/gadgets/templates/TemplateLibrary.php
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/src/gadgets/templates/TemplateLibrary.php?rev=802343&r1=802342&r2=802343&view=diff
==============================================================================
--- incubator/shindig/trunk/php/src/gadgets/templates/TemplateLibrary.php
(original)
+++ incubator/shindig/trunk/php/src/gadgets/templates/TemplateLibrary.php Sat
Aug 8 11:49:03 2009
@@ -54,7 +54,7 @@
if ($script = $template->getScript()) {
$scriptNode = $templateDomCopy->createElement('script');
$scriptNode->setAttribute('type', 'text/javascript');
- $scriptNode->appendChild($templateDomCopy->createTextNode($script));
+
$scriptNode->appendChild($templateDomCopy->createCDATASection($script));
$templateDomCopy->appendChild($scriptNode);
}
// Copy the DOM structure since parseNode() modifies the DOM structure
directly
Modified: incubator/shindig/trunk/php/src/gadgets/templates/TemplateParser.php
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/php/src/gadgets/templates/TemplateParser.php?rev=802343&r1=802342&r2=802343&view=diff
==============================================================================
--- incubator/shindig/trunk/php/src/gadgets/templates/TemplateParser.php
(original)
+++ incubator/shindig/trunk/php/src/gadgets/templates/TemplateParser.php Sat
Aug 8 11:49:03 2009
@@ -151,10 +151,8 @@
// And replace the node with the parsed output
$ownerDocument = $node->ownerDocument;
foreach ($ret->childNodes as $childNode) {
- if ($childNode) {
- $importedNode = $ownerDocument->importNode($childNode, true);
- $node->parentNode->insertBefore($importedNode, $node);
- }
+ $importedNode = $ownerDocument->importNode($childNode, true);
+ $importedNode = $node->parentNode->insertBefore($importedNode, $node);
}
$node->parentNode->removeChild($node);
}