You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by ch...@apache.org on 2009/08/01 17:39:16 UTC
svn commit: r799890 -
/incubator/shindig/trunk/php/src/gadgets/render/GadgetBaseRenderer.php
Author: chabotc
Date: Sat Aug 1 15:39:16 2009
New Revision: 799890
URL: http://svn.apache.org/viewvc?rev=799890&view=rev
Log:
Properly support disableAutoProcessing, turns out it should not render templates but still perform the data-pipelining requests (and some formatting fixes)
Modified:
incubator/shindig/trunk/php/src/gadgets/render/GadgetBaseRenderer.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=799890&r1=799889&r2=799890&view=diff
==============================================================================
--- incubator/shindig/trunk/php/src/gadgets/render/GadgetBaseRenderer.php (original)
+++ incubator/shindig/trunk/php/src/gadgets/render/GadgetBaseRenderer.php Sat Aug 1 15:39:16 2009
@@ -66,7 +66,7 @@
* so javascript can take care of them
*/
public function addTemplates($content) {
- // If $this->gadget->gadgetSpec->templatesDisableAutoProcessing == true, unparsedTemplates will be empty, so the setting is ignored here
+ // If $this->gadget->gadgetSpec->templatesDisableAutoProcessing == true, unparsedTemplates will be empty, so the setting is ignored here
if (count($this->unparsedTemplates)) {
foreach ($this->unparsedTemplates as $key => $val) {
$content = str_replace("<template_$key></template_$key>", $val . "\n", $content);
@@ -85,10 +85,6 @@
* @param string $content html to parse
*/
public function parseTemplates($content) {
- if ($this->gadget->gadgetSpec->templatesDisableAutoProcessing) {
- // The only code path to this location is if content-rewriting is enabled but disableAutoProcessing = true
- return null;
- }
$osTemplates = array();
$osDataRequests = array();
// First extract all the os-data tags, and execute those in a single combined request, saves latency
@@ -111,20 +107,21 @@
require_once 'src/gadgets/templates/TemplateLibrary.php';
$templateLibrary = new TemplateLibrary($this->gadget->gadgetContext);
if ($this->gadget->gadgetSpec->templatesRequireLibraries) {
- foreach ($this->gadget->gadgetSpec->templatesRequireLibraries as $library) {
- $templateLibrary->addTemplateLibrary($library);
- }
+ foreach ($this->gadget->gadgetSpec->templatesRequireLibraries as $library) {
+ $templateLibrary->addTemplateLibrary($library);
+ }
}
foreach ($osTemplates[0] as $match) {
- if (($renderedTemplate = $this->renderTemplate($match, $templateLibrary)) !== false) {
+ if (! $this->gadget->gadgetSpec->templatesDisableAutoProcessing && ($renderedTemplate = $this->renderTemplate($match, $templateLibrary)) !== false) {
// Template was rendered, insert the rendered html into the document
$content = str_replace($match, $renderedTemplate, $content);
} else {
- /*
+ /*
* The template could not be rendered, this could happen because:
* - @require is present, and at least one of the required pieces of data is unavailable
* - @name is present
* - @autoUpdate == true
+ * - $this->gadget->gadgetSpec->templatesDisableAutoProcessing is set to true
* So set a magic marker (<template_$index>) that after the dom document parsing will be replaced with the original script content
*/
$index = count($this->unparsedTemplates);
@@ -153,6 +150,8 @@
$this->dataContext[$key] = $val['data']['entry'];
} elseif (isset($val['data'])) {
$this->dataContext[$key] = $val['data'];
+ } else {
+ $this->dataContext[$key] = $val;
}
}
}
@@ -164,7 +163,8 @@
* @param string $osDataRequests
*/
private function performDataRequests($osDataRequests) {
- //TODO check with the java implementation guys if they do a caching strategy here (same as with data-pipelining), would mean a much higher render performance..
+ //TODO check with the java implementation guys if they do a caching strategy here (same as with data-pipelining),
+ // would result in a much higher render performance..
libxml_use_internal_errors(true);
$this->doc = new DOMDocument(null, 'utf-8');
$this->doc->preserveWhiteSpace = true;
@@ -243,7 +243,7 @@
}
// Restore single tags to their html variant, and remove the xml header
$ret = str_replace(array(
- '<?xml version="" encoding="utf-8"?>', '<br/>'), array('',
+ '<?xml version="" encoding="utf-8"?>', '<br/>'), array('',
'<br>'), $output->saveXML());
return $ret;
}
@@ -405,20 +405,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";