芝麻web文件管理V1.00
编辑当前文件:/home/prismawe/clients/canaldegap.fr/lib/smarty/CMS_Compiler.class.php
* @author Andrei Zmievski
* @version 2.6.10 * @copyright 2001-2005 New Digital Group, Inc. * @package Smarty */ /* $Id: Smarty_Compiler.class.php 2312 2005-12-08 03:08:53Z wishy $ */ /** * Template compiling class * @package Smarty */ include_once(dirname(__FILE__) . '/Smarty_Compiler.class.php'); class CMS_Compiler extends Smarty_Compiler { /** * compile custom function tag * * @param string $tag_command * @param string $tag_args * @param string $tag_modifier * @return string */ function _compile_custom_tag($tag_command, $tag_args, $tag_modifier, &$output) { $found = false; $have_function = true; /* * First we check if the custom function has already been registered * or loaded from a plugin file. */ if (isset($this->_plugins['function'][$tag_command])) { $found = true; $plugin_func = $this->_plugins['function'][$tag_command][0]; if (!is_callable($plugin_func)) { $message = "custom function '$tag_command' is not implemented"; $have_function = false; } } /* * Otherwise we need to load plugin file and look for the function * inside it. */ else if ($plugin_file = $this->_get_plugin_filepath('function', $tag_command)) { $found = true; include_once $plugin_file; $plugin_func = 'smarty_cms_function_' . $tag_command; if (!function_exists($plugin_func)) { $message = "plugin function $plugin_func() not found in $plugin_file\n"; $have_function = false; } else { $this->_plugins['function'][$tag_command] = array($plugin_func, null, null, null, true); } } if (!$found) { return parent::_compile_custom_tag($tag_command, $tag_args, $tag_modifier, $output); } else if (!$have_function) { #$this->_syntax_error($message, E_USER_WARNING, __FILE__, __LINE__); #return true; return parent::_compile_custom_tag($tag_command, $tag_args, $tag_modifier, $output); } /* declare plugin to be loaded on display of the template that we compile right now */ $this->_add_plugin('function', $tag_command); $this->_plugins['function'][$tag_command][4] = false; $this->_plugins['function'][$tag_command][5] = array(); $_cacheable_state = $this->_push_cacheable_state('function', $tag_command); $attrs = $this->_parse_attrs($tag_args); $arg_list = $this->_compile_arg_list('function', $tag_command, $attrs, $_cache_attrs=''); $output = $this->_compile_plugin_call('function', $tag_command).'(array('.implode(',', $arg_list)."), \$this)"; if($tag_modifier != '') { $this->_parse_modifiers($output, $tag_modifier); } if($output != '') { $output = '_pop_cacheable_state('function', $tag_command) . "?>" . $this->_additional_newline; } #var_dump($output); return true; } /** * display Smarty syntax error * * @param string $error_msg * @param integer $error_type * @param string $file * @param integer $line */ function _syntax_error($error_msg, $error_type = E_USER_ERROR, $file=null, $line=null) { $this->_trigger_fatal_error("syntax error: $error_msg", $this->_current_file, $this->_current_line_no, $file, $line, $error_type); } function trigger_error($error_msg, $error_type = E_USER_WARNING) { var_dump("Smarty error: $error_msg"); } } /* vim: set et: */ ?>