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 16:49:21 UTC

svn commit: r799878 - /incubator/shindig/trunk/php/src/gadgets/templates/TemplateParser.php

Author: chabotc
Date: Sat Aug  1 14:49:21 2009
New Revision: 799878

URL: http://svn.apache.org/viewvc?rev=799878&view=rev
Log:
Evaluate expressions on os:Html nodes too

Modified:
    incubator/shindig/trunk/php/src/gadgets/templates/TemplateParser.php

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=799878&r1=799877&r2=799878&view=diff
==============================================================================
--- incubator/shindig/trunk/php/src/gadgets/templates/TemplateParser.php (original)
+++ incubator/shindig/trunk/php/src/gadgets/templates/TemplateParser.php Sat Aug  1 14:49:21 2009
@@ -396,7 +396,15 @@
         if (! $node->getAttribute('code')) {
           throw new ExpressionException("Invalid os:Html tag, missing code attribute");
         }
-        $node->parentNode->insertBefore($node->ownerDocument->createTextNode($node->getAttribute('code')), $node);
+        preg_match_all('/(\$\{)(.*)(\})/imsxU', $node->getAttribute('code'), $expressions);
+        if (count($expressions[2])) {
+          $expression = $expressions[2][0];
+          $code = ExpressionParser::evaluate($expression, $this->dataContext);
+        } else {
+          $code = $node->getAttribute('code');
+        }
+        $node->parentNode->insertBefore($node->ownerDocument->createTextNode($code), $node);
+        
         return $node;
         break;
 
@@ -413,20 +421,6 @@
 
       case 'osx:navigatetoperson':
         break;
-
-      /****** Extension - Functions ******/
-
-      case 'osx:parsejson':
-        break;
-
-      case 'osx:decodebase64':
-        break;
-
-      case 'osx:urlencode':
-        break;
-
-      case 'osx:urldecode':
-        break;
     }
     return false;
   }