summaryrefslogtreecommitdiff
path: root/framework/Web/UI/TTemplateManager.php
diff options
context:
space:
mode:
authorxue <>2007-03-03 23:29:56 +0000
committerxue <>2007-03-03 23:29:56 +0000
commit902639d85f9ca13e54e04f9d2a59c691d4610195 (patch)
tree5229c2a062c57c0adbad547dca043cf7828adefe /framework/Web/UI/TTemplateManager.php
parente6191197dbebab3ebee0a53ca2757c22e5b684c3 (diff)
Fixed #503.
Diffstat (limited to 'framework/Web/UI/TTemplateManager.php')
-rw-r--r--framework/Web/UI/TTemplateManager.php9
1 files changed, 7 insertions, 2 deletions
diff --git a/framework/Web/UI/TTemplateManager.php b/framework/Web/UI/TTemplateManager.php
index a8caba24..1f2bca68 100644
--- a/framework/Web/UI/TTemplateManager.php
+++ b/framework/Web/UI/TTemplateManager.php
@@ -854,7 +854,7 @@ class TTemplate extends TApplicationComponent implements ITemplate
*/
protected function parseAttribute($value)
{
- if(($n=preg_match_all('/<%[#=].*?%>/msS',$value,$matches,PREG_OFFSET_CAPTURE))>0)
+ if(($n=preg_match_all('/<%[#=\\$].*?%>|<%\\[.*?\\]%>/msS',$value,$matches,PREG_OFFSET_CAPTURE))>0)
{
$isDataBind=false;
$textStart=0;
@@ -869,7 +869,12 @@ class TTemplate extends TApplicationComponent implements ITemplate
$isDataBind=true;
if($offset>$textStart)
$expr.=".'".strtr(substr($value,$textStart,$offset-$textStart),array("'"=>"\\'","\\"=>"\\\\"))."'";
- $expr.='.('.substr($token,3,$length-5).')';
+ if($token[2]==='[') // localize
+ $expr.='.(Prado::localize(\''.strtr(trim(substr($token,3,$length-6)),array("'"=>"\\'","\\"=>"\\\\")).'\'))';
+ else if($token[2]==='$') // parameter
+ $expr.='.(Prado::getApplication()->getParameters()->itemAt(\''.strtr(trim(substr($token,3,$length-5)),array("'"=>"\\'","\\"=>"\\\\")).'\'))';
+ else // expression
+ $expr.='.('.substr($token,3,$length-5).')';
$textStart=$offset+$length;
}
$length=strlen($value);