commit 103b6fb3949ea640dee71b00ec4a2eb54d515693
parent 981296a28382488ae8a973c72547a658673c8a5a
Author: dankert <devnull@localhost>
Date: Wed, 7 Nov 2007 23:10:44 +0100
Variablen in Inhalten ({name})
Diffstat:
1 file changed, 38 insertions(+), 41 deletions(-)
diff --git a/serviceClasses/TemplateEngine.class.php b/serviceClasses/TemplateEngine.class.php
@@ -144,49 +144,46 @@ class TemplateEngine
function attributeValue( $value )
{
$parts = explode( ':', $value, 2 );
- if ( count($parts) == 2 )
+
+ if ( count($parts) < 2 )
+ $parts = array('',$value);
+
+ list( $type,$value ) = $parts;
+
+ $invert = '';
+ if ( substr($type,0,1)=='!' )
+ {
+ $type = substr($type,1);
+ $invert = '! ';
+ }
+
+ switch( $type )
{
- list( $type,$value ) = $parts;
-
- $invert = '';
- if ( substr($type,0,1)=='!' )
- {
- $type = substr($type,1);
- $invert = '! ';
- }
-
- switch( $type )
- {
- case 'var':
- return $invert.'$'.$value;
- case '':
- return "'".$value."'";
- case 'method':
- return $invert.'$this->'.$value.'()';
- case 'property':
- return $invert.'$this->'.$value;
- case 'message':
- return 'lang('."'".$value."'".')';
- case 'messagevar':
- return 'lang($'.$value.')';
- case 'config':
- $config_parts = explode('/',$value);
- return $invert.'@$conf['."'".implode("'".']'.'['."'",$config_parts)."'".']';
-
- default:
- die( get_class($this).': Unknown type "'.$type.'" in attribute. Allowed: var|method|property|message|messagevar|config or none');
+ case 'var':
+ return $invert.'$'.$value;
+ case '':
+ // Sonderfälle für die Attributwerte "true" und "false".
+ // Hinweis: Die Zeichenkette "false" entspricht in PHP true.
+ // Siehe http://de.php.net/manual/de/language.types.boolean.php
+ if ( $value == 'true' || $value == 'false' )
+ return $value;
+ else
+ return "'".preg_replace('/{(\w+)\}/','\'.$\\1.\'',$value)."'";
+ case 'method':
+ return $invert.'$this->'.$value.'()';
+ case 'property':
+ return $invert.'$this->'.$value;
+ case 'message':
+ return 'lang('."'".$value."'".')';
+ case 'messagevar':
+ return 'lang($'.$value.')';
+ case 'config':
+ $config_parts = explode('/',$value);
+ return $invert.'@$conf['."'".implode("'".']'.'['."'",$config_parts)."'".']';
+
+ default:
+ die( get_class($this).': Unknown type "'.$type.'" in attribute. Allowed: var|method|property|message|messagevar|config or none');
}
- }
- else
- {
- // Sonderfälle für die Attributwerte "true" und "false".
- // Hinweis: Die Zeichenkette "false" entspricht in PHP true.
- // Siehe http://de.php.net/manual/de/language.types.boolean.php
- if ( $value == 'true' || $value == 'false' )
- return $value;
- else
- return "'".$value."'";
- }
}