diff options
author | xue <> | 2007-03-03 23:29:56 +0000 |
---|---|---|
committer | xue <> | 2007-03-03 23:29:56 +0000 |
commit | 902639d85f9ca13e54e04f9d2a59c691d4610195 (patch) | |
tree | 5229c2a062c57c0adbad547dca043cf7828adefe /framework/Web | |
parent | e6191197dbebab3ebee0a53ca2757c22e5b684c3 (diff) |
Fixed #503.
Diffstat (limited to 'framework/Web')
-rw-r--r-- | framework/Web/UI/TTemplateManager.php | 9 |
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);
|