1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- <?php
- /**
- * Template Lite compile config variables - template internal module
- *
- * Type: template
- * Name: compile_config
- */
- function compile_compile_config($variable, &$object)
- {
- $_result = "";
- // remove the beginning and ending #
- $variable = substr($variable, 1, -1);
- // get [foo] and .foo and (...) pieces
- preg_match_all('!(?:^\w+)|(?:' . $object->_var_bracket_regexp . ')|\.\$?\w+|\S+!', $variable, $_match);
- $variable = $_match[0];
- $var_name = array_shift($variable);
- $_result = "\$this->_confs['$var_name']";
- foreach ($variable as $var)
- {
- if ($var{0} == '[')
- {
- $var = substr($var, 1, -1);
- if (is_numeric($var))
- {
- $_result .= "[$var]";
- }
- elseif ($var{0} == '$')
- {
- $_result .= "[" . $object->_compile_variable($var) . "]";
- }
- elseif ($var{0} == '#')
- {
- $_result .= "[" . $object->_compile_config($var) . "]";
- }
- else
- {
- $_result .= "['$var']";
- }
- }
- else if ($var{0} == '.')
- {
- if ($var{1} == '$')
- {
- $_result .= "[\$this->_TPL['" . substr($var, 2) . "']]";
- }
- else
- {
- $_result .= "['" . substr($var, 1) . "']";
- }
- }
- else if (substr($var,0,2) == '->')
- {
- if(substr($var,2,2) == '__')
- {
- $object->trigger_error('call to internal object members is not allowed', E_USER_ERROR, __FILE__, __LINE__);
- }
- else if (substr($var, 2, 1) == '$')
- {
- $_output .= '->{(($var=$this->_TPL[\''.substr($var,3).'\']) && substr($var,0,2)!=\'__\') ? $_var : $this->trigger_error("cannot access property \\"$var\\"")}';
- }
- }
- else
- {
- $object->trigger_error('#' . $var_name.implode('', $variable) . '# is an invalid reference', E_USER_ERROR, __FILE__, __LINE__);
- }
- }
- return $_result;
- }
- ?>
|