⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smarty.class.php

📁 通达OA2007SE源代码 非常好的
💻 PHP
📖 第 1 页 / 共 3 页
字号:
<?
  class smarty
  {
    var $template_dir = './themes';
    var $compile_dir = './';
    var $config_dir = './langs';
    var $debugging = false;
    var $debug_tpl = 'file:debug.tpl';
    var $debugging_ctrl = 'NONE';
    var $global_assign = array ('HTTP_SERVER_VARS' => array (0 => 'SCRIPT_NAME'));
    var $undefined = null;
    var $compile_check = true;
    var $force_compile = false;
    var $caching = false;
    var $cache_dir = './cache';
    var $cache_lifetime = 3600;
    var $insert_tag_check = true;
    var $cache_handler_func = null;
    var $default_template_handler_func = '';
    var $tpl_file_ext = '.tpl';
    var $php_handling = SMARTY_PHP_PASSTHRU;
    var $security = false;
    var $secure_dir = array (0 => './templates');
    var $security_settings = array ('PHP_HANDLING' => false, 'IF_FUNCS' => array (0 => 'array', 1 => 'list', 2 => 'isset', 3 => 'empty', 4 => 'count', 5 => 'sizeof', 6 => 'in_array', 7 => 'is_array'), 'INCLUDE_ANY' => false, 'PHP_TAGS' => false, 'MODIFIER_FUNCS' => array (0 => 'count'));
    var $trusted_dir = array ();
    var $left_delimiter = '{';
    var $right_delimiter = '}';
    var $compiler_funcs = array ();
    var $custom_funcs = array ('html_options' => 'smarty_func_html_options', 'html_select_date' => 'smarty_func_html_select_date', 'html_select_time' => 'smarty_func_html_select_time', 'math' => 'smarty_func_math', 'fetch' => 'smarty_func_fetch', 'counter' => 'smarty_func_counter', 'assign' => 'smarty_func_assign', 'popup_init' => 'smarty_func_overlib_init', 'popup' => 'smarty_func_overlib', 'assign_debug_info' => 'smarty_func_assign_debug_info', 'um_translatebox' => 'smarty_func_um_translatebox', 'um_welcome_message' => 'smarty_func_um_welcome_message');
    var $custom_mods = array ('lower' => 'strtolower', 'upper' => 'strtoupper', 'capitalize' => 'ucwords', 'escape' => 'smarty_mod_escape', 'truncate' => 'smarty_mod_truncate', 'spacify' => 'smarty_mod_spacify', 'date_format' => 'smarty_mod_date_format', 'string_format' => 'smarty_mod_string_format', 'replace' => 'smarty_mod_replace', 'regex_replace' => 'smarty_mod_regex_replace', 'strip_tags' => 'smarty_mod_strip_tags', 'default' => 'smarty_mod_default', 'count_characters' => 'smarty_mod_count_characters', 'count_words' => 'smarty_mod_count_words', 'count_sentences' => 'smarty_mod_count_sentences', 'count_paragraphs' => 'smarty_mod_count_paragraphs', 'debug_print_var' => 'smarty_mod_debug_print_var');
    var $show_info_header = false;
    var $show_info_include = false;
    var $compiler_class = 'Smarty_Compiler';
    var $resource_funcs = array ();
    var $prefilter_funcs = array ();
    var $postfilter_funcs = array ();
    var $request_vars_order = 'EGPCS';
    var $compile_id = null;
    var $_error_msg = false;
    var $_tpl_vars = array ();
    var $_smarty_vars = array ();
    var $_sections = array ();
    var $_foreach = array ();
    var $_conf_obj = null;
    var $_config = array ();
    var $_smarty_md5 = 'f8d698aea36fcbead2b9d5359ffca76f';
    var $_version = '1.5.2';
    var $_extract = false;
    var $_inclusion_depth = 0;
    var $_compile_id = null;
    var $_smarty_debug_id = 'SMARTY_DEBUG';
    var $_smarty_debug_info = array ();
    var $_cache_info = array ();
    function smarty ()
    {
      foreach ($this->global_assign as $key => $var_name)
      {
        if (is_array ($var_name))
        {
          foreach ($var_name as $var)
          {
            if (isset ($GLOBALS[$key][$var]))
            {
              $this->assign ($var, $GLOBALS[$key][$var]);
              continue;
            }
            else
            {
              $this->assign ($var, $this->undefined);
              continue;
            }
          }
          continue;
        }
        else
        {
          if (isset ($GLOBALS[$var_name]))
          {
            $this->assign ($var_name, $GLOBALS[$var_name]);
            continue;
          }
          else
          {
            $this->assign ($var_name, $this->undefined);
            continue;
          }
          continue;
        }
      }
    }
    function assign ($tpl_var, $value = NULL)
    {
      if (is_array ($tpl_var))
      {
        foreach ($tpl_var as $key => $val)
        {
          if ((!empty ($key) AND isset ($val)))
          {
            $this->_tpl_vars[$key] = $val;
            continue;
          }
        }
      }
      else
      {
        if ((!empty ($tpl_var) AND isset ($value)))
        {
          $this->_tpl_vars[$tpl_var] = $value;
        }
      }
      $this->_extract = true;
    }
    function append ($tpl_var, $value = NULL)
    {
      if (is_array ($tpl_var))
      {
        foreach ($tpl_var as $key => $val)
        {
          if (!empty ($key))
          {
            if (!is_array ($this->_tpl_vars[$key]))
            {
              settype ($this->_tpl_vars[$key], 'array');
            }
            $this->_tpl_vars[$key][] = $val;
            continue;
          }
        }
      }
      else
      {
        if ((!empty ($tpl_var) AND isset ($value)))
        {
          if (!is_array ($this->_tpl_vars[$tpl_var]))
          {
            settype ($this->_tpl_vars[$tpl_var], 'array');
          }
          $this->_tpl_vars[$tpl_var][] = $value;
        }
      }
      $this->_extract = true;
    }
    function my_call_user_func_array ($func, $ar)
    {
      if (!function_exists ('call_user_func_array'))
      {
        $funcCall = ((''.$func).'(');
        for ($i = 0; ($i < sizeof ($ar)); ++$i)
        {
          eval ((((''.'$funcCall .= \'$ar[').$i).'],\';'));
        }
        $funcCall = substr ($funcCall, 0, -1);
        ($funcCall .= ')');
        eval ((((''.'$retval = ').$funcCall).';'));
        return $retval;
      }
      else
      {
        return call_user_func_array ($func, $ar);
      }
    }
    function clear_assign ($tpl_var)
    {
      if (is_array ($tpl_var))
      {
        foreach ($tpl_var as $curr_var)
        {
          unset ($$this->_tpl_vars);
        }
      }
      else
      {
        unset ($$this->_tpl_vars);
      }
    }
    function register_function ($function, $function_impl)
    {
      $this->custom_funcs[$function] = $function_impl;
    }
    function unregister_function ($function)
    {
      unset ($$this->custom_funcs);
    }
    function register_compiler_function ($function, $function_impl)
    {
      $this->compiler_funcs[$function] = $function_impl;
    }
    function unregister_compiler_function ($function)
    {
      unset ($$this->compiler_funcs);
    }
    function register_modifier ($modifier, $modifier_impl)
    {
      $this->custom_mods[$modifier] = $modifier_impl;
    }
    function unregister_modifier ($modifier)
    {
      unset ($$this->custom_mods);
    }
    function register_resource ($name, $function_name)
    {
      $this->resource_funcs[$name] = $function_name;
    }
    function unregister_resource ($name)
    {
      unset ($$this->resource_funcs);
    }
    function register_prefilter ($function_name)
    {
      $this->prefilter_funcs[] = $function_name;
    }
    function unregister_prefilter ($function_name)
    {
      $tmp_array = array ();
      foreach ($this->prefilter_funcs as $curr_func)
      {
        if (($curr_func != $function_name))
        {
          $tmp_array[] = $curr_func;
          continue;
        }
      }
      $this->prefilter_funcs = $tmp_array;
    }
    function register_postfilter ($function_name)
    {
      $this->postfilter_funcs[] = $function_name;
    }
    function unregister_postfilter ($function_name)
    {
      $tmp_array = array ();
      foreach ($this->postfilter_funcs as $curr_func)
      {
        if (($curr_func != $function_name))
        {
          $tmp_array[] = $curr_func;
          continue;
        }
      }
      $this->postfilter_funcs = $tmp_array;
    }
    function clear_cache ($tpl_file = null, $cache_id = null, $compile_id = null)
    {
      if (!isset ($compile_id))
      {
        $compile_id = $this->compile_id;
      }
      if ((isset ($compile_id) OR isset ($cache_id)))
      {
        $auto_id = ($compile_id.$cache_id);
      }
      else
      {
        $auto_id = null;
      }
      if (!empty ($this->cache_handler_func))
      {
        $funcname = $this->cache_handler_func;
        return $funcname ('clear', $this, $dummy, $tpl_file, $cache_id, $compile_id);
      }
      else
      {
        return $this->_rm_auto ($this->cache_dir, $tpl_file, $auto_id);
      }
    }
    function clear_all_cache ()
    {
      if (!empty ($this->cache_handler_func))
      {
        $funcname = $this->cache_handler_func;
        return $funcname ('clear', $this, $dummy);
      }
      else
      {
        return $this->_rm_auto ($this->cache_dir);
      }
    }
    function is_cached ($tpl_file, $cache_id = null, $compile_id = null)
    {
      if (!$this->caching)
      {
        return false;
      }
      if (!isset ($compile_id))
      {
        $compile_id = $this->compile_id;
      }
      return $this->_read_cache_file ($tpl_file, $cache_id, $compile_id, $results);
    }
    function clear_all_assign ()
    {
      $this->_tpl_vars = array ();
    }
    function clear_compiled_tpl ($tpl_file = null, $compile_id = null)
    {
      if (!isset ($compile_id))
      {
        $compile_id = $this->compile_id;
      }
      return $this->_rm_auto ($this->compile_dir, $tpl_file, $compile_id);
    }
    function get_template_vars ()
    {
      return $this->_tpl_vars;
    }
    function display ($tpl_file, $cache_id = null, $compile_id = null)
    {
      $this->fetch ($tpl_file, $cache_id, $compile_id, true);
    }
    function fetch ($_smarty_tpl_file, $_smarty_cache_id = null, $_smarty_compile_id = null, $_smarty_display = false)
    {
      global $HTTP_SERVER_VARS;
      global $QUERY_STRING;
      global $HTTP_COOKIE_VARS;
      if (((!$this->debugging AND ($this->debugging_ctrl == 'URL')) AND (!empty ($QUERY_STRING) AND strstr ($QUERY_STRING, $this->_smarty_debug_id))))
      {
        $this->debugging = true;
      }
      if ($this->debugging)
      {
        $debug_start_time = $this->_get_microtime ();
        $this->_smarty_debug_info[] = array ('type' => 'template', 'filename' => $_smarty_tpl_file, 'depth' => 0);
        $included_tpls_idx = (count ($this->_smarty_debug_info) - 1);
      }
      if (!isset ($_smarty_compile_id))
      {
        $_smarty_compile_id = $this->compile_id;
      }
      $this->_inclusion_depth = 0;
      if ($this->caching)
      {
        $this->_cache_info[] = array ('template', $_smarty_tpl_file);
        if ($this->_read_cache_file ($_smarty_tpl_file, $_smarty_cache_id, $_smarty_compile_id, $_smarty_results))
        {
          if ($this->insert_tag_check)
          {
            $_smarty_results = $this->_process_cached_inserts ($_smarty_results);
          }
          if ($_smarty_display)
          {
            echo $_smarty_results;
            if ($this->debugging)
            {
              $this->_smarty_debug_info[$included_tpls_idx]['exec_time'] = ($this->_get_microtime () - $debug_start_time);
              echo $this->_generate_debug_output ();
            }
            return null;
          }
          else
          {
            return $_smarty_results;
          }
        }
      }
      $this->_assign_smarty_interface ();
      if (($this->_conf_obj === null))
      {
        if (!class_exists ('Smarty_Config'))
        {
          include_once (SMARTY_DIR.'Smarty_Config.class.php');
        }
        $this->_conf_obj = new Config_File ($this->config_dir);
        $this->_conf_obj->read_hidden = false;
      }
      else
      {
        $this->_conf_obj->set_path ($this->config_dir);
      }
      extract ($this->_tpl_vars);
      $this->_config = array (array ('vars' => array (), 'files' => array ()));
      if ($this->show_info_header)
      {
        $_smarty_info_header = ((((('<!-- Smarty '.$this->_version).' ').strftime ('%Y-%m-%d %H:%M:%S %Z')).' -->').'
');
      }
      else
      {
        $_smarty_info_header = '';
      }
      $compile_path = $this->_get_compile_path ($_smarty_tpl_file);
      $_smarty_trusted = false;
      if ($this->security)
      {
        $this->_parse_file_path ($this->template_dir, $_smarty_tpl_file, $resource_type, $resource_name);
        if ($this->_is_trusted ($resource_type, $resource_name))
        {
          $_smarty_trusted = true;
          $this->security = false;
        }
      }
      if (($_smarty_display AND !$this->caching))
      {
        echo $_smarty_info_header;
        if ($this->_process_template ($_smarty_tpl_file, $compile_path))
        {
          if ($this->show_info_include)
          {
            echo (('
<!-- SMARTY_BEGIN: '.$_smarty_tpl_file).' -->
');
          }
          include $compile_path;
          if ($this->show_info_include)
          {
            echo (('
<!-- SMARTY_END: '.$_smarty_tpl_file).' -->
');
          }
        }
      }
      else
      {
        ob_start ();
        echo $_smarty_info_header;
        if ($this->_process_template ($_smarty_tpl_file, $compile_path))
        {
          if ($this->show_info_include)
          {
            echo (('
<!-- SMARTY_BEGIN: '.$_smarty_tpl_file).' -->
');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -