Full Code of xcg340122/PHP300Framework2.0 for AI

master 2ba403cd2776 cached
247 files
1.2 MB
331.2k tokens
1398 symbols
1 requests
Download .txt
Showing preview only (1,353K chars total). Download the full file or copy to clipboard to get everything.
Repository: xcg340122/PHP300Framework2.0
Branch: master
Commit: 2ba403cd2776
Files: 247
Total size: 1.2 MB

Directory structure:
gitextract_9fpoihz6/

├── .gitignore
├── Extend/
│   ├── Class/
│   │   └── UploadFile.class.php
│   └── Package/
│       └── smarty/
│           ├── Autoloader.php
│           ├── Smarty.class.php
│           ├── SmartyBC.class.php
│           ├── bootstrap.php
│           ├── noted.txt
│           ├── plugins/
│           │   ├── block.textformat.php
│           │   ├── function.counter.php
│           │   ├── function.cycle.php
│           │   ├── function.fetch.php
│           │   ├── function.html_checkboxes.php
│           │   ├── function.html_image.php
│           │   ├── function.html_options.php
│           │   ├── function.html_radios.php
│           │   ├── function.html_select_date.php
│           │   ├── function.html_select_time.php
│           │   ├── function.html_table.php
│           │   ├── function.mailto.php
│           │   ├── function.math.php
│           │   ├── modifier.capitalize.php
│           │   ├── modifier.date_format.php
│           │   ├── modifier.debug_print_var.php
│           │   ├── modifier.escape.php
│           │   ├── modifier.mb_wordwrap.php
│           │   ├── modifier.regex_replace.php
│           │   ├── modifier.replace.php
│           │   ├── modifier.spacify.php
│           │   ├── modifier.truncate.php
│           │   ├── modifiercompiler.cat.php
│           │   ├── modifiercompiler.count_characters.php
│           │   ├── modifiercompiler.count_paragraphs.php
│           │   ├── modifiercompiler.count_sentences.php
│           │   ├── modifiercompiler.count_words.php
│           │   ├── modifiercompiler.default.php
│           │   ├── modifiercompiler.escape.php
│           │   ├── modifiercompiler.from_charset.php
│           │   ├── modifiercompiler.indent.php
│           │   ├── modifiercompiler.lower.php
│           │   ├── modifiercompiler.noprint.php
│           │   ├── modifiercompiler.string_format.php
│           │   ├── modifiercompiler.strip.php
│           │   ├── modifiercompiler.strip_tags.php
│           │   ├── modifiercompiler.to_charset.php
│           │   ├── modifiercompiler.unescape.php
│           │   ├── modifiercompiler.upper.php
│           │   ├── modifiercompiler.wordwrap.php
│           │   ├── outputfilter.trimwhitespace.php
│           │   ├── shared.escape_special_chars.php
│           │   ├── shared.literal_compiler_param.php
│           │   ├── shared.make_timestamp.php
│           │   ├── shared.mb_str_replace.php
│           │   ├── shared.mb_unicode.php
│           │   └── variablefilter.htmlspecialchars.php
│           └── sysplugins/
│               ├── smarty_cacheresource.php
│               ├── smarty_cacheresource_custom.php
│               ├── smarty_cacheresource_keyvaluestore.php
│               ├── smarty_data.php
│               ├── smarty_internal_block.php
│               ├── smarty_internal_cacheresource_file.php
│               ├── smarty_internal_compile_append.php
│               ├── smarty_internal_compile_assign.php
│               ├── smarty_internal_compile_block.php
│               ├── smarty_internal_compile_break.php
│               ├── smarty_internal_compile_call.php
│               ├── smarty_internal_compile_capture.php
│               ├── smarty_internal_compile_config_load.php
│               ├── smarty_internal_compile_continue.php
│               ├── smarty_internal_compile_debug.php
│               ├── smarty_internal_compile_eval.php
│               ├── smarty_internal_compile_extends.php
│               ├── smarty_internal_compile_for.php
│               ├── smarty_internal_compile_foreach.php
│               ├── smarty_internal_compile_function.php
│               ├── smarty_internal_compile_if.php
│               ├── smarty_internal_compile_include.php
│               ├── smarty_internal_compile_include_php.php
│               ├── smarty_internal_compile_insert.php
│               ├── smarty_internal_compile_ldelim.php
│               ├── smarty_internal_compile_make_nocache.php
│               ├── smarty_internal_compile_nocache.php
│               ├── smarty_internal_compile_private_block_plugin.php
│               ├── smarty_internal_compile_private_foreachsection.php
│               ├── smarty_internal_compile_private_function_plugin.php
│               ├── smarty_internal_compile_private_modifier.php
│               ├── smarty_internal_compile_private_object_block_function.php
│               ├── smarty_internal_compile_private_object_function.php
│               ├── smarty_internal_compile_private_php.php
│               ├── smarty_internal_compile_private_print_expression.php
│               ├── smarty_internal_compile_private_registered_block.php
│               ├── smarty_internal_compile_private_registered_function.php
│               ├── smarty_internal_compile_private_special_variable.php
│               ├── smarty_internal_compile_rdelim.php
│               ├── smarty_internal_compile_section.php
│               ├── smarty_internal_compile_setfilter.php
│               ├── smarty_internal_compile_shared_inheritance.php
│               ├── smarty_internal_compile_while.php
│               ├── smarty_internal_compilebase.php
│               ├── smarty_internal_config_file_compiler.php
│               ├── smarty_internal_configfilelexer.php
│               ├── smarty_internal_configfileparser.php
│               ├── smarty_internal_data.php
│               ├── smarty_internal_debug.php
│               ├── smarty_internal_errorhandler.php
│               ├── smarty_internal_extension_handler.php
│               ├── smarty_internal_method_addautoloadfilters.php
│               ├── smarty_internal_method_adddefaultmodifiers.php
│               ├── smarty_internal_method_append.php
│               ├── smarty_internal_method_appendbyref.php
│               ├── smarty_internal_method_assignbyref.php
│               ├── smarty_internal_method_assignglobal.php
│               ├── smarty_internal_method_clearallassign.php
│               ├── smarty_internal_method_clearallcache.php
│               ├── smarty_internal_method_clearassign.php
│               ├── smarty_internal_method_clearcache.php
│               ├── smarty_internal_method_clearcompiledtemplate.php
│               ├── smarty_internal_method_clearconfig.php
│               ├── smarty_internal_method_compileallconfig.php
│               ├── smarty_internal_method_compilealltemplates.php
│               ├── smarty_internal_method_configload.php
│               ├── smarty_internal_method_createdata.php
│               ├── smarty_internal_method_getautoloadfilters.php
│               ├── smarty_internal_method_getconfigvariable.php
│               ├── smarty_internal_method_getconfigvars.php
│               ├── smarty_internal_method_getdebugtemplate.php
│               ├── smarty_internal_method_getdefaultmodifiers.php
│               ├── smarty_internal_method_getglobal.php
│               ├── smarty_internal_method_getregisteredobject.php
│               ├── smarty_internal_method_getstreamvariable.php
│               ├── smarty_internal_method_gettags.php
│               ├── smarty_internal_method_gettemplatevars.php
│               ├── smarty_internal_method_literals.php
│               ├── smarty_internal_method_loadfilter.php
│               ├── smarty_internal_method_loadplugin.php
│               ├── smarty_internal_method_mustcompile.php
│               ├── smarty_internal_method_registercacheresource.php
│               ├── smarty_internal_method_registerclass.php
│               ├── smarty_internal_method_registerdefaultconfighandler.php
│               ├── smarty_internal_method_registerdefaultpluginhandler.php
│               ├── smarty_internal_method_registerdefaulttemplatehandler.php
│               ├── smarty_internal_method_registerfilter.php
│               ├── smarty_internal_method_registerobject.php
│               ├── smarty_internal_method_registerplugin.php
│               ├── smarty_internal_method_registerresource.php
│               ├── smarty_internal_method_setautoloadfilters.php
│               ├── smarty_internal_method_setdebugtemplate.php
│               ├── smarty_internal_method_setdefaultmodifiers.php
│               ├── smarty_internal_method_unloadfilter.php
│               ├── smarty_internal_method_unregistercacheresource.php
│               ├── smarty_internal_method_unregisterfilter.php
│               ├── smarty_internal_method_unregisterobject.php
│               ├── smarty_internal_method_unregisterplugin.php
│               ├── smarty_internal_method_unregisterresource.php
│               ├── smarty_internal_nocache_insert.php
│               ├── smarty_internal_parsetree.php
│               ├── smarty_internal_parsetree_code.php
│               ├── smarty_internal_parsetree_dq.php
│               ├── smarty_internal_parsetree_dqcontent.php
│               ├── smarty_internal_parsetree_tag.php
│               ├── smarty_internal_parsetree_template.php
│               ├── smarty_internal_parsetree_text.php
│               ├── smarty_internal_resource_eval.php
│               ├── smarty_internal_resource_extends.php
│               ├── smarty_internal_resource_file.php
│               ├── smarty_internal_resource_php.php
│               ├── smarty_internal_resource_registered.php
│               ├── smarty_internal_resource_stream.php
│               ├── smarty_internal_resource_string.php
│               ├── smarty_internal_runtime_cachemodify.php
│               ├── smarty_internal_runtime_cacheresourcefile.php
│               ├── smarty_internal_runtime_capture.php
│               ├── smarty_internal_runtime_codeframe.php
│               ├── smarty_internal_runtime_filterhandler.php
│               ├── smarty_internal_runtime_foreach.php
│               ├── smarty_internal_runtime_getincludepath.php
│               ├── smarty_internal_runtime_inheritance.php
│               ├── smarty_internal_runtime_make_nocache.php
│               ├── smarty_internal_runtime_tplfunction.php
│               ├── smarty_internal_runtime_updatecache.php
│               ├── smarty_internal_runtime_updatescope.php
│               ├── smarty_internal_runtime_writefile.php
│               ├── smarty_internal_smartytemplatecompiler.php
│               ├── smarty_internal_template.php
│               ├── smarty_internal_templatebase.php
│               ├── smarty_internal_templatecompilerbase.php
│               ├── smarty_internal_templatelexer.php
│               ├── smarty_internal_templateparser.php
│               ├── smarty_internal_testinstall.php
│               ├── smarty_internal_undefined.php
│               ├── smarty_resource.php
│               ├── smarty_resource_custom.php
│               ├── smarty_resource_recompiled.php
│               ├── smarty_resource_uncompiled.php
│               ├── smarty_security.php
│               ├── smarty_template_cached.php
│               ├── smarty_template_compiled.php
│               ├── smarty_template_config.php
│               ├── smarty_template_resource_base.php
│               ├── smarty_template_source.php
│               ├── smarty_undefined_variable.php
│               ├── smarty_variable.php
│               ├── smartycompilerexception.php
│               └── smartyexception.php
├── Framework/
│   ├── Config/
│   │   └── frame.cfg.php
│   ├── Library/
│   │   ├── Common/
│   │   │   └── helper.php
│   │   ├── Interfaces/
│   │   │   ├── CacheInterface.php
│   │   │   ├── ConfigInterface.php
│   │   │   ├── DbInterface.php
│   │   │   ├── LogInterface.php
│   │   │   ├── LogicExceptionsInterface.php
│   │   │   ├── RouterInterface.php
│   │   │   ├── SessionInterface.php
│   │   │   ├── ViewInterface.php
│   │   │   └── VisitInterface.php
│   │   └── Process/
│   │       ├── Cache.class.php
│   │       ├── Config.class.php
│   │       ├── Db.class.php
│   │       ├── Drive/
│   │       │   ├── Cache/
│   │       │   │   ├── File.php
│   │       │   │   ├── Memcache.php
│   │       │   │   └── Redis.php
│   │       │   └── Db/
│   │       │       ├── Mysqli.php
│   │       │       └── PDO.php
│   │       ├── Extend.class.php
│   │       ├── Log.class.php
│   │       ├── LogicExceptions.class.php
│   │       ├── ReturnHandle.class.php
│   │       ├── Router.class.php
│   │       ├── Running.class.php
│   │       ├── Session.class.php
│   │       ├── Structure.class.php
│   │       ├── Tool.class.php
│   │       ├── Tpl/
│   │       │   ├── error.tpl
│   │       │   ├── error_page.tpl
│   │       │   └── success_page.tpl
│   │       ├── View.class.php
│   │       └── Visit.class.php
│   └── frame.php
├── LICENSE.txt
├── Project/
│   ├── config/
│   │   └── App.cfg.php
│   ├── home/
│   │   └── Index.class.php
│   ├── model/
│   │   └── UserModel.class.php
│   └── view/
│       └── home/
│           └── index.html
├── README.md
├── Web/
│   ├── .htaccess
│   ├── Public/
│   │   └── system/
│   │       └── noted.txt
│   └── index.php
└── composer.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
.idea/


================================================
FILE: Extend/Class/UploadFile.class.php
================================================
<?php

/**
 * 文件上传 - PHP300扩展类
 * Class Upload
 */

class Upload
{
    /** @var array 允许的扩展名 */
    public $allowExts = array();

    /** @var array 允许的文件类型 */
    public $allowTypes = array();

    /** @var string 文件保存路径 */
    public $savePath = './Upload/';

    /** @var int|string 最大上传大小 默认最大上传 2M = 2097152 B */
    public $maxSize = 2097152;

    //最近一次的错误
    /** @var bool 自动检测文件 默认未开启 */
    public $autoCheck = true;
    /** @var bool 是否覆盖同名文件 默认不覆盖 */
    public $uploadReplace = false;
    private $error = '';
    /** @var array 文件上传信息 */
    private $uploadFileInfo;

    /**
     * 架构函数
     * Upload constructor.
     * @param string $allowExts
     * @param string $maxSize
     * @param string $allowTypes
     */
    public function __construct($allowExts = '', $maxSize = '', $allowTypes = '')
    {
        //设置文件的后缀
        if (!empty($allowExts)) {
            if (is_array($allowExts)) {
                $this->allowExts = array_map('strtolower', $allowExts);
            } else {
                $this->allowExts = explode(',', strtolower($allowExts));
            }
        }
        if (!empty($maxSize) && is_numeric($maxSize)) {
            $this->maxSize = $maxSize;
        }
        if (!empty($allowTypes)) {
            if (is_array($allowTypes)) {
                $this->allowTypes = array_map('strtolower', $allowTypes);
            } else {
                $this->allowTypes = explode(',', strtolower($allowTypes));
            }
        }

    }

    /**
     * 上传所有文件
     * @param string $savePath
     * @return bool
     */
    public function upload($savePath = '')
    {
        if (empty($savePath))
            $savePath = $this->savePath;
        $savePath = rtrim($savePath, '/') . '/';
        if (!is_dir($savePath)) {
            $this->createDir($savePath);
            if (!is_dir($savePath)) {
                $this->error = "目录{$savePath}不存在";
                return false;
            }
        } else {
            if (!is_writeable($savePath)) {
                $this->error = "目录{$savePath}不可写";
                return false;
            }
        }

        $fileInfo = array();
        $isUpload = false;
        $files = $this->dealFiles($_FILES);
        foreach ($files as $key => $file) {
            if (!empty($file['name'])) {
                $file['key'] = $key;
                $file['extension'] = $this->getExt($file['name']);
                $file['savepath'] = $savePath;
                $file['savename'] = $this->getSaveName($file);
                if ($this->autoCheck) {
                    if (!$this->check($file))
                        return false;
                }

                if (!$this->save($file)) return false;
                unset($file['tmp_name'], $file['error']);
                $fileInfo[] = $file;
                $isUpload = true;

            }
        }
        if ($isUpload) {
            $this->uploadFileInfo = $fileInfo;
            return true;
        } else {
            $this->error = '没有选择上传文件';
            return false;
        }
    }

    /**
     * 遍历创建文件夹
     * @param $path
     */
    private function createDir($path)
    {
        if (!file_exists($path)) {
            $this->createDir(dirname($path));
            mkdir($path, 0777);
        }
    }

    /**
     * 处理$_FILES信息  将多个file分离
     * @param $files
     * @return array
     */
    private function dealFiles($files)
    {
        $fileArray = array();
        $n = 0;
        foreach ($files as $file) {
            if (is_array($file['name'])) {
                //关联数组
                $keys = array_keys($file);
                $count = count($file['name']);
                for ($i = 0; $i < $count; $i++) {
                    foreach ($keys as $key) {
                        $fileArray[$n][$key] = $file[$key][$i];
                    }
                    $n++;
                }
            } else {
                $fileArray[$n] = $file;
                $n++;
            }
        }
        return $fileArray;
    }

    /**
     * 获取扩展名
     * @param $filename
     * @return mixed
     */
    private function getExt($filename)
    {
        $pathinfo = pathinfo($filename);
        return $pathinfo['extension'];
    }

    /**
     * 文件命名 规则
     * @param $file
     * @return string
     */
    private function getSaveName($file)
    {
        $saveName = md5(uniqid()) . '.' . $file['extension'];
        return $saveName;
    }

    /**
     * 检测文件大小,文件扩展名,文件Mime类型,是否非法上传
     * @param $file
     * @return bool
     */
    private function check($file)
    {
        if ($file['error'] !== 0) {
            $this->error($file['error']);
            return false;
        }
        if (!$this->checkSize($file['size'])) {
            $this->error = '上传文件大小不符!';
            return false;
        }
        if (!$this->checkExt($file['extension'])) {
            $this->error = '上传文件类型不允许!';
            return false;
        }
        if (!$this->checkType($file['type'])) {
            $this->error = '上传文件MIME类型不允许!';
            return false;
        }
        if (!$this->checkUpload($file['tmp_name'])) {
            $this->error = '非法上传文件!';
            return false;
        }
        return true;
    }

    /**
     * 捕获错误上传信息
     * @param $errorCode
     */
    private function error($errorCode)
    {
        switch ($errorCode) {
            case 1:
                $this->error = '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值';
                break;
            case 2:
                $this->error = '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值';
                break;
            case 3:
                $this->error = '文件只有部分被上传';
                break;
            case 4:
                $this->error = '没有文件被上传';
                break;
            case 6:
                $this->error = '找不到临时文件夹';
                break;
            case 7:
                $this->error = '文件写入失败';
                break;
            default:
                $this->error = '未知上传错误!';
        }
        return;
    }

    /**
     * 检测文件大小
     * @param $size
     * @return bool
     */
    private function checkSize($size)
    {
        return $size < $this->maxSize;
    }

    /**
     * 检测文件扩展名
     * @param $extension
     * @return bool
     */
    private function checkExt($extension)
    {
        if (!empty($this->allowExts))
            return in_array(strtolower($extension), $this->allowExts, true);
        return true;
    }

    /**
     * 检查文件Mime类型
     * @param $type
     * @return bool
     */
    private function checkType($type)
    {
        if (!empty($this->allowTypes))
            return in_array(strtolower($type), $this->allowTypes, true);
        return true;
    }

    /**
     * 检测是否非法上传
     * @param $filename
     * @return bool
     */
    private function checkUpload($filename)
    {
        return is_uploaded_file($filename);
    }

    /**
     * 保存一个文件
     * @param $file
     * @return bool
     */
    private function save($file)
    {
        $filename = $file['savepath'] . $file['savename'];
        if (!$this->uploadReplace && is_file($filename)) {
            $this->error = '文件已经存在!' . $filename;
            return false;
        }
        if (in_array(strtolower($file['extension']), array('gif', 'jpg', 'jpeg', 'bmp', 'png', 'swf')) && false === getimagesize($file['tmp_name'])) {
            $this->error = '非法图像文件';
            return false;
        }
        if (!move_uploaded_file($file['tmp_name'], $filename)) {
            $this->error = '文件上传保存错误!';
            return false;
        }
        return true;
    }

    /**
     * 通过指定文件的$_FILES['name']上传文件
     * @param $file
     * @param string $savePath
     * @return bool
     */
    public function uploadOne($file, $savePath = '')
    {
        if (empty($savePath))
            $savePath = $this->savePath;
        $savePath = rtrim($savePath, '/') . '/';
        if (!is_dir($savePath)) {
            $this->createDir($savePath);
            if (!is_dir($savePath)) {
                $this->error = "目录{$savePath}不存在";
                return false;
            }
        } else {
            if (!is_writeable($savePath)) {
                $this->error = '上传目录' . $savePath . '不可写';
                return false;
            }
        }
        if (!empty($file['name'])) {
            $fileArray = array();
            if (is_array($file['name'])) {
                $keys = array_keys($file);
                $count = count($file['name']);
                for ($i = 0; $i < $count; $i++) {
                    foreach ($keys as $key)
                        $fileArray[$i][$key] = $file[$key][$i];
                }
            } else {
                $fileArray[] = $file;
            }
            $fileInfo = array();
            foreach ($fileArray as $key => $file) {
                $file['extension'] = $this->getExt($file['name']);
                $file['savepath'] = $savePath;
                $file['savename'] = $this->getSaveName($file);
                if ($this->autoCheck) {
                    if (!$this->check($file))
                        return false;
                }
                if (!$this->save($file)) return false;
                unset($file['tmp_name'], $file['error']);
                $fileInfo[] = $file;
            }

            $this->uploadFileInfo = $fileInfo;
            return true;
        } else {
            $this->error = '没有选择上传文件';
            return false;
        }
    }

    /**
     * 获取文件上传成功之后的信息
     * @return array 文件上传信息
     */
    public function getUploadFileInfo()
    {
        return $this->uploadFileInfo;
    }

    /**
     * 获取最近一次的错误信息
     * @return string
     */
    public function getErrorMsg()
    {
        return $this->error;
    }
}

================================================
FILE: Extend/Package/smarty/Autoloader.php
================================================
<?php
/**
 * Smarty Autoloader
 *
 * @package    Smarty
 */

/**
 * Smarty Autoloader
 *
 * @package    Smarty
 * @author     Uwe Tews
 *             Usage:
 *                  require_once '...path/Autoloader.php';
 *                  Smarty_Autoloader::register();
 *             or
 *                  include '...path/bootstrap.php';
 *
 *                  $smarty = new Smarty();
 */
class Smarty_Autoloader
{
   /**
     * Filepath to Smarty root
     *
     * @var string
     */
    public static $SMARTY_DIR = null;

    /**
     * Filepath to Smarty internal plugins
     *
     * @var string
     */
    public static $SMARTY_SYSPLUGINS_DIR = null;

    /**
     * Array with Smarty core classes and their filename
     *
     * @var array
     */
    public static $rootClasses = array('smarty' => 'Smarty.class.php', 'smartybc' => 'SmartyBC.class.php',);

    /**
     * Registers Smarty_Autoloader backward compatible to older installations.
     *
     * @param bool $prepend Whether to prepend the autoloader or not.
     */
    public static function registerBC($prepend = false)
    {
        /**
         * register the class autoloader
         */
        if (!defined('SMARTY_SPL_AUTOLOAD')) {
            define('SMARTY_SPL_AUTOLOAD', 0);
        }
        if (SMARTY_SPL_AUTOLOAD &&
            set_include_path(get_include_path() . PATH_SEPARATOR . SMARTY_SYSPLUGINS_DIR) !== false
        ) {
            $registeredAutoLoadFunctions = spl_autoload_functions();
            if (!isset($registeredAutoLoadFunctions[ 'spl_autoload' ])) {
                spl_autoload_register();
            }
        } else {
            self::register($prepend);
        }
    }

    /**
     * Registers Smarty_Autoloader as an SPL autoloader.
     *
     * @param bool $prepend Whether to prepend the autoloader or not.
     */
    public static function register($prepend = false)
    {
        self::$SMARTY_DIR = defined('SMARTY_DIR') ? SMARTY_DIR : dirname(__FILE__) . DIRECTORY_SEPARATOR;
        self::$SMARTY_SYSPLUGINS_DIR = defined('SMARTY_SYSPLUGINS_DIR') ? SMARTY_SYSPLUGINS_DIR :
            self::$SMARTY_DIR . 'sysplugins' . DIRECTORY_SEPARATOR;
        if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
            spl_autoload_register(array(__CLASS__, 'autoload'), true, $prepend);
        } else {
            spl_autoload_register(array(__CLASS__, 'autoload'));
        }
    }

    /**
     * Handles auto loading of classes.
     *
     * @param string $class A class name.
     */
    public static function autoload($class)
    {
        if ($class[ 0 ] !== 'S' && strpos($class, 'Smarty') !== 0) {
            return;
        }
        $_class = strtolower($class);
        if (isset(self::$rootClasses[ $_class ])) {
            $file = self::$SMARTY_DIR . self::$rootClasses[ $_class ];
            if (is_file($file)) {
                include $file;
            }
        } else {
            $file = self::$SMARTY_SYSPLUGINS_DIR . $_class . '.php';
            if (is_file($file)) {
                include $file;
            }
        }
        return;
    }
}


================================================
FILE: Extend/Package/smarty/Smarty.class.php
================================================
<?php
/**
 * Project:     Smarty: the PHP compiling template engine
 * File:        Smarty.class.php
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 * For questions, help, comments, discussion, etc., please join the
 * Smarty mailing list. Send a blank e-mail to
 * smarty-discussion-subscribe@googlegroups.com
 *
 * @link      http://www.smarty.net/
 * @copyright 2017 New Digital Group, Inc.
 * @copyright 2017 Uwe Tews
 * @author    Monte Ohrt <monte at ohrt dot com>
 * @author    Uwe Tews
 * @author    Rodney Rehm
 * @package   Smarty
 * @version   3.1.32-dev
 */
/**
 * set SMARTY_DIR to absolute path to Smarty library files.
 * Sets SMARTY_DIR only if user application has not already defined it.
 */
if (!defined('SMARTY_DIR')) {
    /**
     *
     */
    define('SMARTY_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR);
}
/**
 * set SMARTY_SYSPLUGINS_DIR to absolute path to Smarty internal plugins.
 * Sets SMARTY_SYSPLUGINS_DIR only if user application has not already defined it.
 */
if (!defined('SMARTY_SYSPLUGINS_DIR')) {
    /**
     *
     */
    define('SMARTY_SYSPLUGINS_DIR', SMARTY_DIR . 'sysplugins' . DIRECTORY_SEPARATOR);
}
if (!defined('SMARTY_PLUGINS_DIR')) {
    /**
     *
     */
    define('SMARTY_PLUGINS_DIR', SMARTY_DIR . 'plugins' . DIRECTORY_SEPARATOR);
}
if (!defined('SMARTY_MBSTRING')) {
    /**
     *
     */
    define('SMARTY_MBSTRING', function_exists('mb_get_info'));
}
if (!defined('SMARTY_RESOURCE_CHAR_SET')) {
    // UTF-8 can only be done properly when mbstring is available!
    /**
     * @deprecated in favor of Smarty::$_CHARSET
     */
    define('SMARTY_RESOURCE_CHAR_SET', SMARTY_MBSTRING ? 'UTF-8' : 'ISO-8859-1');
}
if (!defined('SMARTY_RESOURCE_DATE_FORMAT')) {
    /**
     * @deprecated in favor of Smarty::$_DATE_FORMAT
     */
    define('SMARTY_RESOURCE_DATE_FORMAT', '%b %e, %Y');
}
/**
 * Load Smarty_Autoloader
 */
if (!class_exists('Smarty_Autoloader')) {
    include dirname(__FILE__) . '/bootstrap.php';
}
/**
 * Load always needed external class files
 */
require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_data.php';
require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_extension_handler.php';
require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_templatebase.php';
require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_template.php';
require_once SMARTY_SYSPLUGINS_DIR . 'smarty_resource.php';
require_once SMARTY_SYSPLUGINS_DIR . 'smarty_variable.php';
require_once SMARTY_SYSPLUGINS_DIR . 'smarty_template_source.php';
require_once SMARTY_SYSPLUGINS_DIR . 'smarty_template_resource_base.php';
require_once SMARTY_SYSPLUGINS_DIR . 'smarty_internal_resource_file.php';

/**
 * This is the main Smarty class
 *
 * @package Smarty
 *
 * The following methods will be dynamically loaded by the extension handler when they are called.
 * They are located in a corresponding Smarty_Internal_Method_xxxx class
 *
 * @method int clearAllCache(int $exp_time = null, string $type = null)
 * @method int clearCache(string $template_name, string $cache_id = null, string $compile_id = null, int $exp_time = null, string $type = null)
 * @method int compileAllTemplates(string $extension = '.tpl', bool $force_compile = false, int $time_limit = 0, $max_errors = null)
 * @method int compileAllConfig(string $extension = '.conf', bool $force_compile = false, int $time_limit = 0, $max_errors = null)
 * @method int clearCompiledTemplate($resource_name = null, $compile_id = null, $exp_time = null)
 */
class Smarty extends Smarty_Internal_TemplateBase
{
    /**
     * smarty version
     */
    const SMARTY_VERSION = '3.1.32-dev-38';
    /**
     * define variable scopes
     */
    const SCOPE_LOCAL    = 1;
    const SCOPE_PARENT   = 2;
    const SCOPE_TPL_ROOT = 4;
    const SCOPE_ROOT     = 8;
    const SCOPE_SMARTY   = 16;
    const SCOPE_GLOBAL   = 32;
    /**
     * define caching modes
     */
    const CACHING_OFF              = 0;
    const CACHING_LIFETIME_CURRENT = 1;
    const CACHING_LIFETIME_SAVED   = 2;
    /**
     * define constant for clearing cache files be saved expiration dates
     */
    const CLEAR_EXPIRED = -1;
    /**
     * define compile check modes
     */
    const COMPILECHECK_OFF       = 0;
    const COMPILECHECK_ON        = 1;
    const COMPILECHECK_CACHEMISS = 2;
    /**
     * define debug modes
     */
    const DEBUG_OFF        = 0;
    const DEBUG_ON         = 1;
    const DEBUG_INDIVIDUAL = 2;
    /**
     * modes for handling of "<?php ... ?>" tags in templates.
     */
    const PHP_PASSTHRU = 0; //-> print tags as plain text
    const PHP_QUOTE    = 1; //-> escape tags as entities
    const PHP_REMOVE   = 2; //-> escape tags as entities
    const PHP_ALLOW    = 3; //-> escape tags as entities
    /**
     * filter types
     */
    const FILTER_POST     = 'post';
    const FILTER_PRE      = 'pre';
    const FILTER_OUTPUT   = 'output';
    const FILTER_VARIABLE = 'variable';
    /**
     * plugin types
     */
    const PLUGIN_FUNCTION         = 'function';
    const PLUGIN_BLOCK            = 'block';
    const PLUGIN_COMPILER         = 'compiler';
    const PLUGIN_MODIFIER         = 'modifier';
    const PLUGIN_MODIFIERCOMPILER = 'modifiercompiler';
    /**
     * assigned global tpl vars
     */
    public static $global_tpl_vars = array();
    /**
     * Flag denoting if Multibyte String functions are available
     */
    public static $_MBSTRING = SMARTY_MBSTRING;
    /**
     * The character set to adhere to (e.g. "UTF-8")
     */
    public static $_CHARSET = SMARTY_RESOURCE_CHAR_SET;
    /**
     * The date format to be used internally
     * (accepts date() and strftime())
     */
    public static $_DATE_FORMAT = SMARTY_RESOURCE_DATE_FORMAT;
    /**
     * Flag denoting if PCRE should run in UTF-8 mode
     */
    public static $_UTF8_MODIFIER = 'u';
    /**
     * Flag denoting if operating system is windows
     */
    public static $_IS_WINDOWS = false;
    /**
     * auto literal on delimiters with whitespace
     *
     * @var boolean
     */
    public $auto_literal = true;
    /**
     * display error on not assigned variables
     *
     * @var boolean
     */
    public $error_unassigned = false;
    /**
     * look up relative file path in include_path
     *
     * @var boolean
     */
    public $use_include_path = false;
    /**
     * flag if template_dir is normalized
     *
     * @var bool
     */
    public $_templateDirNormalized = false;
    /**
     * joined template directory string used in cache keys
     *
     * @var string
     */
    public $_joined_template_dir = null;
    /**
     * flag if config_dir is normalized
     *
     * @var bool
     */
    public $_configDirNormalized = false;
    /**
     * joined config directory string used in cache keys
     *
     * @var string
     */
    public $_joined_config_dir = null;
    /**
     * default template handler
     *
     * @var callable
     */
    public $default_template_handler_func = null;
    /**
     * default config handler
     *
     * @var callable
     */
    public $default_config_handler_func = null;
    /**
     * default plugin handler
     *
     * @var callable
     */
    public $default_plugin_handler_func = null;
    /**
     * flag if template_dir is normalized
     *
     * @var bool
     */
    public $_compileDirNormalized = false;
    /**
     * flag if plugins_dir is normalized
     *
     * @var bool
     */
    public $_pluginsDirNormalized = false;
    /**
     * flag if template_dir is normalized
     *
     * @var bool
     */
    public $_cacheDirNormalized = false;
    /**
     * force template compiling?
     *
     * @var boolean
     */
    public $force_compile = false;
     /**
     * use sub dirs for compiled/cached files?
     *
     * @var boolean
     */
    public $use_sub_dirs = false;
    /**
     * allow ambiguous resources (that are made unique by the resource handler)
     *
     * @var boolean
     */
    public $allow_ambiguous_resources = false;
    /**
     * merge compiled includes
     *
     * @var boolean
     */
    public $merge_compiled_includes = false;
    /*
    * flag for behaviour when extends: resource  and {extends} tag are used simultaneous
    *   if false disable execution of {extends} in templates called by extends resource.
    *   (behaviour as versions < 3.1.28)
    *
    * @var boolean
    */
    public $extends_recursion = true;
    /**
     * force cache file creation
     *
     * @var boolean
     */
    public $force_cache = false;
    /**
     * template left-delimiter
     *
     * @var string
     */
    public $left_delimiter = "{";
    /**
     * template right-delimiter
     *
     * @var string
     */
    public $right_delimiter = "}";
    /**
     * array of strings which shall be treated as literal by compiler
     *
     * @var array string
     */
    public $literals = array();
    /**
     * class name
     * This should be instance of Smarty_Security.
     *
     * @var string
     * @see Smarty_Security
     */
    public $security_class = 'Smarty_Security';
    /**
     * implementation of security class
     *
     * @var Smarty_Security
     */
    public $security_policy = null;
    /**
     * controls handling of PHP-blocks
     *
     * @var integer
     */
    public $php_handling = self::PHP_PASSTHRU;
    /**
     * controls if the php template file resource is allowed
     *
     * @var bool
     */
    public $allow_php_templates = false;
    /**
     * debug mode
     * Setting this to true enables the debug-console.
     *
     * @var boolean
     */
    public $debugging = false;
    /**
     * This determines if debugging is enable-able from the browser.
     * <ul>
     *  <li>NONE => no debugging control allowed</li>
     *  <li>URL => enable debugging when SMARTY_DEBUG is found in the URL.</li>
     * </ul>
     *
     * @var string
     */
    public $debugging_ctrl = 'NONE';
    /**
     * Name of debugging URL-param.
     * Only used when $debugging_ctrl is set to 'URL'.
     * The name of the URL-parameter that activates debugging.
     *
     * @var string
     */
    public $smarty_debug_id = 'SMARTY_DEBUG';
    /**
     * Path of debug template.
     *
     * @var string
     */
    public $debug_tpl = null;
    /**
     * When set, smarty uses this value as error_reporting-level.
     *
     * @var int
     */
    public $error_reporting = null;
    /**
     * Controls whether variables with the same name overwrite each other.
     *
     * @var boolean
     */
    public $config_overwrite = true;
    /**
     * Controls whether config values of on/true/yes and off/false/no get converted to boolean.
     *
     * @var boolean
     */
    public $config_booleanize = true;
    /**
     * Controls whether hidden config sections/vars are read from the file.
     *
     * @var boolean
     */
    public $config_read_hidden = false;
    /**
     * locking concurrent compiles
     *
     * @var boolean
     */
    public $compile_locking = true;
    /**
     * Controls whether cache resources should use locking mechanism
     *
     * @var boolean
     */
    public $cache_locking = false;
    /**
     * seconds to wait for acquiring a lock before ignoring the write lock
     *
     * @var float
     */
    public $locking_timeout = 10;
    /**
     * resource type used if none given
     * Must be an valid key of $registered_resources.
     *
     * @var string
     */
    public $default_resource_type = 'file';
    /**
     * caching type
     * Must be an element of $cache_resource_types.
     *
     * @var string
     */
    public $caching_type = 'file';
    /**
     * config type
     *
     * @var string
     */
    public $default_config_type = 'file';
    /**
     * check If-Modified-Since headers
     *
     * @var boolean
     */
    public $cache_modified_check = false;
    /**
     * registered plugins
     *
     * @var array
     */
    public $registered_plugins = array();
    /**
     * registered objects
     *
     * @var array
     */
    public $registered_objects = array();
    /**
     * registered classes
     *
     * @var array
     */
    public $registered_classes = array();
    /**
     * registered filters
     *
     * @var array
     */
    public $registered_filters = array();
    /**
     * registered resources
     *
     * @var array
     */
    public $registered_resources = array();
    /**
     * registered cache resources
     *
     * @var array
     */
    public $registered_cache_resources = array();
    /**
     * autoload filter
     *
     * @var array
     */
    public $autoload_filters = array();
    /**
     * default modifier
     *
     * @var array
     */
    public $default_modifiers = array();
    /**
     * autoescape variable output
     *
     * @var boolean
     */
    public $escape_html = false;
    /**
     * start time for execution time calculation
     *
     * @var int
     */
    public $start_time = 0;
    /**
     * required by the compiler for BC
     *
     * @var string
     */
    public $_current_file = null;
    /**
     * internal flag to enable parser debugging
     *
     * @var bool
     */
    public $_parserdebug = false;
    /**
     * This object type (Smarty = 1, template = 2, data = 4)
     *
     * @var int
     */
    public $_objType = 1;
    /**
     * Debug object
     *
     * @var Smarty_Internal_Debug
     */
    public $_debug = null;
    /**
     * template directory
     *
     * @var array
     */
    protected $template_dir = array('./templates/');
    /**
     * flags for normalized template directory entries
     *
     * @var array
     */
    protected $_processedTemplateDir = array();
    /**
     * config directory
     *
     * @var array
     */
    protected $config_dir = array('./configs/');
    /**
     * flags for normalized template directory entries
     *
     * @var array
     */
    protected $_processedConfigDir = array();
    /**
     * compile directory
     *
     * @var string
     */
    protected $compile_dir = './templates_c/';
    /**
     * plugins directory
     *
     * @var array
     */
    protected $plugins_dir = array();
    /**
     * cache directory
     *
     * @var string
     */
    protected $cache_dir = './cache/';
    /**
     * removed properties
     *
     * @var string[]
     */
    protected $obsoleteProperties = array('resource_caching', 'template_resource_caching', 'direct_access_security',
                                          '_dir_perms', '_file_perms', 'plugin_search_order',
                                          'inheritance_merge_compiled_includes', 'resource_cache_mode',);
    /**
     * List of private properties which will call getter/setter on a direct access
     *
     * @var string[]
     */
    protected $accessMap = array('template_dir' => 'TemplateDir', 'config_dir' => 'ConfigDir',
                                 'plugins_dir'  => 'PluginsDir', 'compile_dir' => 'CompileDir',
                                 'cache_dir'    => 'CacheDir',);

    /**
     * Initialize new Smarty object
     */
    public function __construct()
    {
        $this->_clearTemplateCache();
        parent::__construct();
        if (is_callable('mb_internal_encoding')) {
            mb_internal_encoding(Smarty::$_CHARSET);
        }
        $this->start_time = microtime(true);
        if (isset($_SERVER[ 'SCRIPT_NAME' ])) {
            Smarty::$global_tpl_vars[ 'SCRIPT_NAME' ] = new Smarty_Variable($_SERVER[ 'SCRIPT_NAME' ]);
        }
        // Check if we're running on windows
        Smarty::$_IS_WINDOWS = strtoupper(substr(PHP_OS, 0, 3)) === 'WIN';
        // let PCRE (preg_*) treat strings as ISO-8859-1 if we're not dealing with UTF-8
        if (Smarty::$_CHARSET !== 'UTF-8') {
            Smarty::$_UTF8_MODIFIER = '';
        }
    }

    /**
     * Enable error handler to mute expected messages
     *
     * @return boolean
     * @deprecated
     */
    public static function muteExpectedErrors()
    {
        return Smarty_Internal_ErrorHandler::muteExpectedErrors();
    }

    /**
     * Disable error handler muting expected messages
     *
     * @deprecated
     */
    public static function unmuteExpectedErrors()
    {
        restore_error_handler();
    }

    /**
     * Check if a template resource exists
     *
     * @param  string $resource_name template name
     *
     * @return bool status
     * @throws \SmartyException
     */
    public function templateExists($resource_name)
    {
        // create source object
        $source = Smarty_Template_Source::load(null, $this, $resource_name);
        return $source->exists;
    }

    /**
     * Loads security class and enables security
     *
     * @param  string|Smarty_Security $security_class if a string is used, it must be class-name
     *
     * @return Smarty                 current Smarty instance for chaining
     * @throws SmartyException        when an invalid class name is provided
     */
    public function enableSecurity($security_class = null)
    {
        Smarty_Security::enableSecurity($this, $security_class);
        return $this;
    }

    /**
     * Disable security
     *
     * @return Smarty current Smarty instance for chaining
     */
    public function disableSecurity()
    {
        $this->security_policy = null;
        return $this;
    }

    /**
     * Add template directory(s)
     *
     * @param  string|array $template_dir directory(s) of template sources
     * @param  string       $key          of the array element to assign the template dir to
     * @param bool          $isConfig     true for config_dir
     *
     * @return Smarty          current Smarty instance for chaining
     */
    public function addTemplateDir($template_dir, $key = null, $isConfig = false)
    {
        if ($isConfig) {
            $processed = &$this->_processedConfigDir;
            $dir = &$this->config_dir;
            $this->_configDirNormalized = false;
        } else {
            $processed = &$this->_processedTemplateDir;
            $dir = &$this->template_dir;
            $this->_templateDirNormalized = false;
        }
        if (is_array($template_dir)) {
            foreach ($template_dir as $k => $v) {
                if (is_int($k)) {
                    // indexes are not merged but appended
                    $dir[] = $v;
                } else {
                    // string indexes are overridden
                    $dir[ $k ] = $v;
                    unset($processed[ $key ]);
                }
            }
        } else {
            if ($key !== null) {
                // override directory at specified index
                $dir[ $key ] = $template_dir;
                unset($processed[ $key ]);
            } else {
                // append new directory
                $dir[] = $template_dir;
            }
        }
        return $this;
    }

    /**
     * Get template directories
     *
     * @param mixed $index    index of directory to get, null to get all
     * @param bool  $isConfig true for config_dir
     *
     * @return array list of template directories, or directory of $index
     */
    public function getTemplateDir($index = null, $isConfig = false)
    {
        if ($isConfig) {
            $dir = &$this->config_dir;
        } else {
            $dir = &$this->template_dir;
        }
        if ($isConfig ? !$this->_configDirNormalized : !$this->_templateDirNormalized) {
            $this->_normalizeTemplateConfig($isConfig);
        }
        if ($index !== null) {
            return isset($dir[ $index ]) ? $dir[ $index ] : null;
        }
        return $dir;
    }

    /**
     * Set template directory
     *
     * @param  string|array $template_dir directory(s) of template sources
     * @param bool          $isConfig     true for config_dir
     *
     * @return \Smarty current Smarty instance for chaining
     */
    public function setTemplateDir($template_dir, $isConfig = false)
    {
        if ($isConfig) {
            $this->config_dir = array();
            $this->_processedConfigDir = array();
        } else {
            $this->template_dir = array();
            $this->_processedTemplateDir = array();
        }
        $this->addTemplateDir($template_dir, null, $isConfig);
        return $this;
    }

    /**
     * Add config directory(s)
     *
     * @param string|array $config_dir directory(s) of config sources
     * @param mixed        $key        key of the array element to assign the config dir to
     *
     * @return Smarty current Smarty instance for chaining
     */
    public function addConfigDir($config_dir, $key = null)
    {
        return $this->addTemplateDir($config_dir, $key, true);
    }

    /**
     * Get config directory
     *
     * @param mixed $index index of directory to get, null to get all
     *
     * @return array configuration directory
     */
    public function getConfigDir($index = null)
    {
        return $this->getTemplateDir($index, true);
    }

    /**
     * Set config directory
     *
     * @param $config_dir
     *
     * @return Smarty       current Smarty instance for chaining
     */
    public function setConfigDir($config_dir)
    {
        return $this->setTemplateDir($config_dir, true);
    }

    /**
     * Adds directory of plugin files
     *
     * @param null|array|string $plugins_dir
     *
     * @return Smarty current Smarty instance for chaining
     */
    public function addPluginsDir($plugins_dir)
    {
        if (empty($this->plugins_dir)) {
            $this->plugins_dir[] = SMARTY_PLUGINS_DIR;
        }
        $this->plugins_dir = array_merge($this->plugins_dir, (array)$plugins_dir);
        $this->_pluginsDirNormalized = false;
        return $this;
    }

    /**
     * Get plugin directories
     *
     * @return array list of plugin directories
     */
    public function getPluginsDir()
    {
        if (empty($this->plugins_dir)) {
            $this->plugins_dir[] = SMARTY_PLUGINS_DIR;
            $this->_pluginsDirNormalized = false;
        }
        if (!$this->_pluginsDirNormalized) {
            if (!is_array($this->plugins_dir)) {
                $this->plugins_dir = (array)$this->plugins_dir;
            }
            foreach ($this->plugins_dir as $k => $v) {
                $this->plugins_dir[ $k ] = $this->_realpath(rtrim($v, "/\\") . DIRECTORY_SEPARATOR, true);
            }
            $this->_cache[ 'plugin_files' ] = array();
            $this->_pluginsDirNormalized = true;
        }
        return $this->plugins_dir;
    }

    /**
     * Set plugins directory
     *
     * @param  string|array $plugins_dir directory(s) of plugins
     *
     * @return Smarty       current Smarty instance for chaining
     */
    public function setPluginsDir($plugins_dir)
    {
        $this->plugins_dir = (array)$plugins_dir;
        $this->_pluginsDirNormalized = false;
        return $this;
    }

    /**
     * Get compiled directory
     *
     * @return string path to compiled templates
     */
    public function getCompileDir()
    {
        if (!$this->_compileDirNormalized) {
            $this->_normalizeDir('compile_dir', $this->compile_dir);
            $this->_compileDirNormalized = true;
        }
        return $this->compile_dir;
    }

    /**
     *
     * @param  string $compile_dir directory to store compiled templates in
     *
     * @return Smarty current Smarty instance for chaining
     */
    public function setCompileDir($compile_dir)
    {
        $this->_normalizeDir('compile_dir', $compile_dir);
        $this->_compileDirNormalized = true;
        return $this;
    }

    /**
     * Get cache directory
     *
     * @return string path of cache directory
     */
    public function getCacheDir()
    {
        if (!$this->_cacheDirNormalized) {
            $this->_normalizeDir('cache_dir', $this->cache_dir);
            $this->_cacheDirNormalized = true;
        }
        return $this->cache_dir;
    }

    /**
     * Set cache directory
     *
     * @param  string $cache_dir directory to store cached templates in
     *
     * @return Smarty current Smarty instance for chaining
     */
    public function setCacheDir($cache_dir)
    {
        $this->_normalizeDir('cache_dir', $cache_dir);
        $this->_cacheDirNormalized = true;
        return $this;
    }

    /**
     * creates a template object
     *
     * @param  string  $template   the resource handle of the template file
     * @param  mixed   $cache_id   cache id to be used with this template
     * @param  mixed   $compile_id compile id to be used with this template
     * @param  object  $parent     next higher level of Smarty variables
     * @param  boolean $do_clone   flag is Smarty object shall be cloned
     *
     * @return \Smarty_Internal_Template template object
     * @throws \SmartyException
     */
    public function createTemplate($template, $cache_id = null, $compile_id = null, $parent = null, $do_clone = true)
    {
        if ($cache_id !== null && (is_object($cache_id) || is_array($cache_id))) {
            $parent = $cache_id;
            $cache_id = null;
        }
        if ($parent !== null && is_array($parent)) {
            $data = $parent;
            $parent = null;
        } else {
            $data = null;
        }
        if (!$this->_templateDirNormalized) {
            $this->_normalizeTemplateConfig(false);
        }
        $_templateId = $this->_getTemplateId($template, $cache_id, $compile_id);
        $tpl = null;
        if ($this->caching && isset(Smarty_Internal_Template::$isCacheTplObj[ $_templateId ])) {
            $tpl = $do_clone ? clone Smarty_Internal_Template::$isCacheTplObj[ $_templateId ] :
                Smarty_Internal_Template::$isCacheTplObj[ $_templateId ];
            $tpl->inheritance = null;
            $tpl->tpl_vars = $tpl->config_vars = array();
        } else if (!$do_clone && isset(Smarty_Internal_Template::$tplObjCache[ $_templateId ])) {
            $tpl = clone Smarty_Internal_Template::$tplObjCache[ $_templateId ];
            $tpl->inheritance = null;
            $tpl->tpl_vars = $tpl->config_vars = array();
        } else {
            /* @var Smarty_Internal_Template $tpl */
            $tpl = new $this->template_class($template, $this, null, $cache_id, $compile_id, null, null);
            $tpl->templateId = $_templateId;
        }
        if ($do_clone) {
            $tpl->smarty = clone $tpl->smarty;
        }
        $tpl->parent = $parent ? $parent : $this;
        // fill data if present
        if (!empty($data) && is_array($data)) {
            // set up variable values
            foreach ($data as $_key => $_val) {
                $tpl->tpl_vars[ $_key ] = new Smarty_Variable($_val);
            }
        }
        if ($this->debugging || $this->debugging_ctrl === 'URL') {
            $tpl->smarty->_debug = new Smarty_Internal_Debug();
            // check URL debugging control
            if (!$this->debugging && $this->debugging_ctrl === 'URL') {
                $tpl->smarty->_debug->debugUrl($tpl->smarty);
            }
        }
        return $tpl;
    }

    /**
     * Takes unknown classes and loads plugin files for them
     * class name format: Smarty_PluginType_PluginName
     * plugin filename format: plugintype.pluginname.php
     *
     * @param  string $plugin_name class plugin name to load
     * @param  bool   $check       check if already loaded
     *
     * @throws SmartyException
     * @return string |boolean filepath of loaded file or false
     */
    public function loadPlugin($plugin_name, $check = true)
    {
        return $this->ext->loadPlugin->loadPlugin($this, $plugin_name, $check);
    }

    /**
     * Get unique template id
     *
     * @param string                    $template_name
     * @param null|mixed                $cache_id
     * @param null|mixed                $compile_id
     * @param null                      $caching
     * @param \Smarty_Internal_Template $template
     *
     * @return string
     * @throws \SmartyException
     */
    public function _getTemplateId($template_name,
                                   $cache_id = null,
                                   $compile_id = null,
                                   $caching = null,
                                   Smarty_Internal_Template $template = null)
    {
        $template_name = (strpos($template_name, ':') === false) ? "{$this->default_resource_type}:{$template_name}" :
            $template_name;
        $cache_id = $cache_id === null ? $this->cache_id : $cache_id;
        $compile_id = $compile_id === null ? $this->compile_id : $compile_id;
        $caching = (int)($caching === null ? $this->caching : $caching);
        if ((isset($template) && strpos($template_name, ':.') !== false) || $this->allow_ambiguous_resources) {
            $_templateId =
                Smarty_Resource::getUniqueTemplateName((isset($template) ? $template : $this), $template_name) .
                "#{$cache_id}#{$compile_id}#{$caching}";
        } else {
            $_templateId = $this->_joined_template_dir . "#{$template_name}#{$cache_id}#{$compile_id}#{$caching}";
        }
        if (isset($_templateId[ 150 ])) {
            $_templateId = sha1($_templateId);
        }
        return $_templateId;
    }

    /**
     * Normalize path
     *  - remove /./ and /../
     *  - make it absolute if required
     *
     * @param string $path      file path
     * @param bool   $realpath  if true - convert to absolute
     *                          false - convert to relative
     *                          null - keep as it is but remove /./ /../
     *
     * @return string
     */
    public function _realpath($path, $realpath = null)
    {
        $nds = DIRECTORY_SEPARATOR === '/' ? '\\' : '/';
        // normalize DIRECTORY_SEPARATOR
        $path = str_replace($nds, DIRECTORY_SEPARATOR, $path);
        preg_match('%^(?<root>(?:[[:alpha:]]:[\\\\]|/|[\\\\]{2}[[:alpha:]]+|[[:print:]]{2,}:[/]{2}|[\\\\])?)(?<path>(.*))$%u',
                   $path,
                   $parts);
        $path = $parts[ 'path' ];
        if ($parts[ 'root' ] === '\\') {
            $parts[ 'root' ] = substr(getcwd(), 0, 2) . $parts[ 'root' ];
        } else {
            if ($realpath !== null && !$parts[ 'root' ]) {
                $path = getcwd() . DIRECTORY_SEPARATOR . $path;
            }
        }
        // remove noop 'DIRECTORY_SEPARATOR DIRECTORY_SEPARATOR' and 'DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR' patterns
        $path = preg_replace('#([\\\\/]([.]?[\\\\/])+)#u', DIRECTORY_SEPARATOR, $path);
        // resolve '..DIRECTORY_SEPARATOR' pattern, smallest first
        if (strpos($path, '..' . DIRECTORY_SEPARATOR) !== false &&
            preg_match_all('#(([.]?[\\\\/])*([.][.])[\\\\/]([.]?[\\\\/])*)+#u', $path, $match)
        ) {
            $counts = array();
            foreach ($match[ 0 ] as $m) {
                $counts[] = (int)((strlen($m) - 1) / 3);
            }
            sort($counts);
            foreach ($counts as $count) {
                $path = preg_replace('#(([\\\\/]([.]?[\\\\/])*[^\\\\/.]+){' . $count .
                                     '}[\\\\/]([.]?[\\\\/])*([.][.][\\\\/]([.]?[\\\\/])*){' . $count . '})(?=[^.])#u',
                                     DIRECTORY_SEPARATOR,
                                     $path);
            }
        }
        return $parts[ 'root' ] . $path;
    }

    /**
     * Empty template objects cache
     */
    public function _clearTemplateCache()
    {
        Smarty_Internal_Template::$isCacheTplObj = array();
        Smarty_Internal_Template::$tplObjCache = array();
    }

    /**
     * @param boolean $use_sub_dirs
     */
    public function setUseSubDirs($use_sub_dirs)
    {
        $this->use_sub_dirs = $use_sub_dirs;
    }

    /**
     * @param int $error_reporting
     */
    public function setErrorReporting($error_reporting)
    {
        $this->error_reporting = $error_reporting;
    }

    /**
     * @param boolean $escape_html
     */
    public function setEscapeHtml($escape_html)
    {
        $this->escape_html = $escape_html;
    }

    /**
     * Return auto_literal flag
     *
     * @return boolean
     */
    public function getAutoLiteral()
    {
        return $this->auto_literal;
    }

    /**
     * Set auto_literal flag
     *
     * @param boolean $auto_literal
     */
    public function setAutoLiteral($auto_literal = true)
    {
        $this->auto_literal = $auto_literal;
    }

    /**
     * @param boolean $force_compile
     */
    public function setForceCompile($force_compile)
    {
        $this->force_compile = $force_compile;
    }

    /**
     * @param boolean $merge_compiled_includes
     */
    public function setMergeCompiledIncludes($merge_compiled_includes)
    {
        $this->merge_compiled_includes = $merge_compiled_includes;
    }

    /**
     * Get left delimiter
     *
     * @return string
     */
    public function getLeftDelimiter()
    {
        return $this->left_delimiter;
    }

    /**
     * Set left delimiter
     *
     * @param string $left_delimiter
     */
    public function setLeftDelimiter($left_delimiter)
    {
        $this->left_delimiter = $left_delimiter;
    }

    /**
     * Get right delimiter
     *
     * @return string $right_delimiter
     */
    public function getRightDelimiter()
    {
        return $this->right_delimiter;
    }

    /**
     * Set right delimiter
     *
     * @param string
     */
    public function setRightDelimiter($right_delimiter)
    {
        $this->right_delimiter = $right_delimiter;
    }

    /**
     * @param boolean $debugging
     */
    public function setDebugging($debugging)
    {
        $this->debugging = $debugging;
    }

    /**
     * @param boolean $config_overwrite
     */
    public function setConfigOverwrite($config_overwrite)
    {
        $this->config_overwrite = $config_overwrite;
    }

    /**
     * @param boolean $config_booleanize
     */
    public function setConfigBooleanize($config_booleanize)
    {
        $this->config_booleanize = $config_booleanize;
    }

    /**
     * @param boolean $config_read_hidden
     */
    public function setConfigReadHidden($config_read_hidden)
    {
        $this->config_read_hidden = $config_read_hidden;
    }

    /**
     * @param boolean $compile_locking
     */
    public function setCompileLocking($compile_locking)
    {
        $this->compile_locking = $compile_locking;
    }

    /**
     * @param string $default_resource_type
     */
    public function setDefaultResourceType($default_resource_type)
    {
        $this->default_resource_type = $default_resource_type;
    }

    /**
     * @param string $caching_type
     */
    public function setCachingType($caching_type)
    {
        $this->caching_type = $caching_type;
    }

    /**
     * Test install
     *
     * @param null $errors
     */
    public function testInstall(&$errors = null)
    {
        Smarty_Internal_TestInstall::testInstall($this, $errors);
    }

    /**
     * Get Smarty object
     *
     * @return Smarty
     */
    public function _getSmartyObj()
    {
        return $this;
    }

    /**
     * <<magic>> Generic getter.
     * Calls the appropriate getter function.
     * Issues an E_USER_NOTICE if no valid getter is found.
     *
     * @param  string $name property name
     *
     * @return mixed
     */
    public function __get($name)
    {
        if (isset($this->accessMap[ $name ])) {
            $method = 'get' . $this->accessMap[ $name ];
            return $this->{$method}();
        } else if (isset($this->_cache[ $name ])) {
            return $this->_cache[ $name ];
        } else if (in_array($name, $this->obsoleteProperties)) {
            return null;
        } else {
            trigger_error('Undefined property: ' . get_class($this) . '::$' . $name, E_USER_NOTICE);
        }
        return null;
    }

    /**
     * <<magic>> Generic setter.
     * Calls the appropriate setter function.
     * Issues an E_USER_NOTICE if no valid setter is found.
     *
     * @param string $name  property name
     * @param mixed  $value parameter passed to setter
     */
    public function __set($name, $value)
    {
        if (isset($this->accessMap[ $name ])) {
            $method = 'set' . $this->accessMap[ $name ];
            $this->{$method}($value);
        } else if (in_array($name, $this->obsoleteProperties)) {
            return;
        } else {
            if (is_object($value) && method_exists($value, $name)) {
                $this->$name = $value;
            } else {
                trigger_error('Undefined property: ' . get_class($this) . '::$' . $name, E_USER_NOTICE);
            }
        }
    }

    /**
     * Normalize and set directory string
     *
     * @param string $dirName cache_dir or compile_dir
     * @param string $dir     filepath of folder
     */
    private function _normalizeDir($dirName, $dir)
    {
        $this->{$dirName} = $this->_realpath(rtrim($dir, "/\\") . DIRECTORY_SEPARATOR, true);
        if (class_exists('Smarty_Internal_ErrorHandler', false)) {
            if (!isset(Smarty_Internal_ErrorHandler::$mutedDirectories[ $this->{$dirName} ])) {
                Smarty_Internal_ErrorHandler::$mutedDirectories[ $this->{$dirName} ] = null;
            }
        }
    }

    /**
     * Normalize template_dir or config_dir
     *
     * @param bool $isConfig true for config_dir
     *
     */
    private function _normalizeTemplateConfig($isConfig)
    {
        if ($isConfig) {
            $processed = &$this->_processedConfigDir;
            $dir = &$this->config_dir;
        } else {
            $processed = &$this->_processedTemplateDir;
            $dir = &$this->template_dir;
        }
        if (!is_array($dir)) {
            $dir = (array)$dir;
        }
        foreach ($dir as $k => $v) {
            if (!isset($processed[ $k ])) {
                $dir[ $k ] = $v = $this->_realpath(rtrim($v, "/\\") . DIRECTORY_SEPARATOR, true);
                $processed[ $k ] = true;
            }
        }
        $isConfig ? $this->_configDirNormalized = true : $this->_templateDirNormalized = true;
        $isConfig ? $this->_joined_config_dir = join('#', $this->config_dir) :
            $this->_joined_template_dir = join('#', $this->template_dir);
    }
}


================================================
FILE: Extend/Package/smarty/SmartyBC.class.php
================================================
<?php
/**
 * Project:     Smarty: the PHP compiling template engine
 * File:        SmartyBC.class.php
 * SVN:         $Id: $
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 * For questions, help, comments, discussion, etc., please join the
 * Smarty mailing list. Send a blank e-mail to
 * smarty-discussion-subscribe@googlegroups.com
 *
 * @link      http://www.smarty.net/
 * @copyright 2008 New Digital Group, Inc.
 * @author    Monte Ohrt <monte at ohrt dot com>
 * @author    Uwe Tews
 * @author    Rodney Rehm
 * @package   Smarty
 */
/**
 * @ignore
 */
require_once(dirname(__FILE__) . '/Smarty.class.php');

/**
 * Smarty Backward Compatibility Wrapper Class
 *
 * @package Smarty
 */
class SmartyBC extends Smarty
{
    /**
     * Smarty 2 BC
     *
     * @var string
     */
    public $_version = self::SMARTY_VERSION;

    /**
     * This is an array of directories where trusted php scripts reside.
     *
     * @var array
     */
    public $trusted_dir = array();

    /**
     * Initialize new SmartyBC object
     *
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * wrapper for assign_by_ref
     *
     * @param string $tpl_var the template variable name
     * @param mixed  &$value  the referenced value to assign
     */
    public function assign_by_ref($tpl_var, &$value)
    {
        $this->assignByRef($tpl_var, $value);
    }

    /**
     * wrapper for append_by_ref
     *
     * @param string  $tpl_var the template variable name
     * @param mixed   &$value  the referenced value to append
     * @param boolean $merge   flag if array elements shall be merged
     */
    public function append_by_ref($tpl_var, &$value, $merge = false)
    {
        $this->appendByRef($tpl_var, $value, $merge);
    }

    /**
     * clear the given assigned template variable.
     *
     * @param string $tpl_var the template variable to clear
     */
    public function clear_assign($tpl_var)
    {
        $this->clearAssign($tpl_var);
    }

    /**
     * Registers custom function to be used in templates
     *
     * @param string $function      the name of the template function
     * @param string $function_impl the name of the PHP function to register
     * @param bool   $cacheable
     * @param mixed  $cache_attrs
     *
     * @throws \SmartyException
     */
    public function register_function($function, $function_impl, $cacheable = true, $cache_attrs = null)
    {
        $this->registerPlugin('function', $function, $function_impl, $cacheable, $cache_attrs);
    }

    /**
     * Unregister custom function
     *
     * @param string $function name of template function
     */
    public function unregister_function($function)
    {
        $this->unregisterPlugin('function', $function);
    }

    /**
     * Registers object to be used in templates
     *
     * @param string  $object        name of template object
     * @param object  $object_impl   the referenced PHP object to register
     * @param array   $allowed       list of allowed methods (empty = all)
     * @param boolean $smarty_args   smarty argument format, else traditional
     * @param array   $block_methods list of methods that are block format
     *
     * @throws SmartyException
     * @internal param array $block_functs list of methods that are block format
     */
    public function register_object($object, $object_impl, $allowed = array(), $smarty_args = true,
                                    $block_methods = array())
    {
        settype($allowed, 'array');
        settype($smarty_args, 'boolean');
        $this->registerObject($object, $object_impl, $allowed, $smarty_args, $block_methods);
    }

    /**
     * Unregister object
     *
     * @param string $object name of template object
     */
    public function unregister_object($object)
    {
        $this->unregisterObject($object);
    }

    /**
     * Registers block function to be used in templates
     *
     * @param string $block      name of template block
     * @param string $block_impl PHP function to register
     * @param bool   $cacheable
     * @param mixed  $cache_attrs
     *
     * @throws \SmartyException
     */
    public function register_block($block, $block_impl, $cacheable = true, $cache_attrs = null)
    {
        $this->registerPlugin('block', $block, $block_impl, $cacheable, $cache_attrs);
    }

    /**
     * Unregister block function
     *
     * @param string $block name of template function
     */
    public function unregister_block($block)
    {
        $this->unregisterPlugin('block', $block);
    }

    /**
     * Registers compiler function
     *
     * @param string $function      name of template function
     * @param string $function_impl name of PHP function to register
     * @param bool   $cacheable
     *
     * @throws \SmartyException
     */
    public function register_compiler_function($function, $function_impl, $cacheable = true)
    {
        $this->registerPlugin('compiler', $function, $function_impl, $cacheable);
    }

    /**
     * Unregister compiler function
     *
     * @param string $function name of template function
     */
    public function unregister_compiler_function($function)
    {
        $this->unregisterPlugin('compiler', $function);
    }

    /**
     * Registers modifier to be used in templates
     *
     * @param string $modifier      name of template modifier
     * @param string $modifier_impl name of PHP function to register
     *
     * @throws \SmartyException
     */
    public function register_modifier($modifier, $modifier_impl)
    {
        $this->registerPlugin('modifier', $modifier, $modifier_impl);
    }

    /**
     * Unregister modifier
     *
     * @param string $modifier name of template modifier
     */
    public function unregister_modifier($modifier)
    {
        $this->unregisterPlugin('modifier', $modifier);
    }

    /**
     * Registers a resource to fetch a template
     *
     * @param string $type      name of resource
     * @param array  $functions array of functions to handle resource
     */
    public function register_resource($type, $functions)
    {
        $this->registerResource($type, $functions);
    }

    /**
     * Unregister a resource
     *
     * @param string $type name of resource
     */
    public function unregister_resource($type)
    {
        $this->unregisterResource($type);
    }

    /**
     * Registers a prefilter function to apply
     * to a template before compiling
     *
     * @param callable $function
     *
     * @throws \SmartyException
     */
    public function register_prefilter($function)
    {
        $this->registerFilter('pre', $function);
    }

    /**
     * Unregister a prefilter function
     *
     * @param callable $function
     */
    public function unregister_prefilter($function)
    {
        $this->unregisterFilter('pre', $function);
    }

    /**
     * Registers a postfilter function to apply
     * to a compiled template after compilation
     *
     * @param callable $function
     *
     * @throws \SmartyException
     */
    public function register_postfilter($function)
    {
        $this->registerFilter('post', $function);
    }

    /**
     * Unregister a postfilter function
     *
     * @param callable $function
     */
    public function unregister_postfilter($function)
    {
        $this->unregisterFilter('post', $function);
    }

    /**
     * Registers an output filter function to apply
     * to a template output
     *
     * @param callable $function
     *
     * @throws \SmartyException
     */
    public function register_outputfilter($function)
    {
        $this->registerFilter('output', $function);
    }

    /**
     * Unregister an outputfilter function
     *
     * @param callable $function
     */
    public function unregister_outputfilter($function)
    {
        $this->unregisterFilter('output', $function);
    }

    /**
     * load a filter of specified type and name
     *
     * @param string $type filter type
     * @param string $name filter name
     *
     * @throws \SmartyException
     */
    public function load_filter($type, $name)
    {
        $this->loadFilter($type, $name);
    }

    /**
     * clear cached content for the given template and cache id
     *
     * @param  string $tpl_file   name of template file
     * @param  string $cache_id   name of cache_id
     * @param  string $compile_id name of compile_id
     * @param  string $exp_time   expiration time
     *
     * @return boolean
     */
    public function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null)
    {
        return $this->clearCache($tpl_file, $cache_id, $compile_id, $exp_time);
    }

    /**
     * clear the entire contents of cache (all templates)
     *
     * @param  string $exp_time expire time
     *
     * @return boolean
     */
    public function clear_all_cache($exp_time = null)
    {
        return $this->clearCache(null, null, null, $exp_time);
    }

    /**
     * test to see if valid cache exists for this template
     *
     * @param  string $tpl_file name of template file
     * @param  string $cache_id
     * @param  string $compile_id
     *
     * @return bool
     * @throws \Exception
     * @throws \SmartyException
     */
    public function is_cached($tpl_file, $cache_id = null, $compile_id = null)
    {
        return $this->isCached($tpl_file, $cache_id, $compile_id);
    }

    /**
     * clear all the assigned template variables.
     */
    public function clear_all_assign()
    {
        $this->clearAllAssign();
    }

    /**
     * clears compiled version of specified template resource,
     * or all compiled template files if one is not specified.
     * This function is for advanced use only, not normally needed.
     *
     * @param  string $tpl_file
     * @param  string $compile_id
     * @param  string $exp_time
     *
     * @return boolean results of {@link smarty_core_rm_auto()}
     */
    public function clear_compiled_tpl($tpl_file = null, $compile_id = null, $exp_time = null)
    {
        return $this->clearCompiledTemplate($tpl_file, $compile_id, $exp_time);
    }

    /**
     * Checks whether requested template exists.
     *
     * @param  string $tpl_file
     *
     * @return bool
     * @throws \SmartyException
     */
    public function template_exists($tpl_file)
    {
        return $this->templateExists($tpl_file);
    }

    /**
     * Returns an array containing template variables
     *
     * @param  string $name
     *
     * @return array
     */
    public function get_template_vars($name = null)
    {
        return $this->getTemplateVars($name);
    }

    /**
     * Returns an array containing config variables
     *
     * @param  string $name
     *
     * @return array
     */
    public function get_config_vars($name = null)
    {
        return $this->getConfigVars($name);
    }

    /**
     * load configuration values
     *
     * @param string $file
     * @param string $section
     * @param string $scope
     */
    public function config_load($file, $section = null, $scope = 'global')
    {
        $this->ConfigLoad($file, $section, $scope);
    }

    /**
     * return a reference to a registered object
     *
     * @param  string $name
     *
     * @return object
     */
    public function get_registered_object($name)
    {
        return $this->getRegisteredObject($name);
    }

    /**
     * clear configuration values
     *
     * @param string $var
     */
    public function clear_config($var = null)
    {
        $this->clearConfig($var);
    }

    /**
     * trigger Smarty error
     *
     * @param string  $error_msg
     * @param integer $error_type
     */
    public function trigger_error($error_msg, $error_type = E_USER_WARNING)
    {
        trigger_error("Smarty error: $error_msg", $error_type);
    }
}


================================================
FILE: Extend/Package/smarty/bootstrap.php
================================================
<?php
if (!class_exists('Smarty_Autoloader')) {
    require dirname(__FILE__) . '/Autoloader.php';
}
Smarty_Autoloader::register(true);


================================================
FILE: Extend/Package/smarty/noted.txt
================================================
smarty为框架视图依赖项,切勿删除该包

================================================
FILE: Extend/Package/smarty/plugins/block.textformat.php
================================================
<?php
/**
 * Smarty plugin to format text blocks
 *
 * @package    Smarty
 * @subpackage PluginsBlock
 */

/**
 * Smarty {textformat}{/textformat} block plugin
 * Type:     block function
 * Name:     textformat
 * Purpose:  format text a certain way with preset styles
 *           or custom wrap/indent settings
 * Params:
 *
 * - style         - string (email)
 * - indent        - integer (0)
 * - wrap          - integer (80)
 * - wrap_char     - string ("\n")
 * - indent_char   - string (" ")
 * - wrap_boundary - boolean (true)
 * 
 *
 * @link   http://www.smarty.net/manual/en/language.function.textformat.php {textformat}
 *         (Smarty online manual)
 *
 * @param array                    $params   parameters
 * @param string                   $content  contents of the block
 * @param Smarty_Internal_Template $template template object
 * @param boolean                  &$repeat  repeat flag
 *
 * @return string content re-formatted
 * @author Monte Ohrt <monte at ohrt dot com>
 */
function smarty_block_textformat($params, $content, $template, &$repeat)
{
    static $mb_wordwrap_loaded = false;
    if (is_null($content)) {
        return;
    }
    if (Smarty::$_MBSTRING && !$mb_wordwrap_loaded) {
        if (!is_callable('smarty_modifier_mb_wordwrap')) {
            require_once(SMARTY_PLUGINS_DIR . 'modifier.mb_wordwrap.php');
        }
        $mb_wordwrap_loaded = true;
    }

    $style = null;
    $indent = 0;
    $indent_first = 0;
    $indent_char = ' ';
    $wrap = 80;
    $wrap_char = "\n";
    $wrap_cut = false;
    $assign = null;

    foreach ($params as $_key => $_val) {
        switch ($_key) {
            case 'style':
            case 'indent_char':
            case 'wrap_char':
            case 'assign':
                $$_key = (string) $_val;
                break;

            case 'indent':
            case 'indent_first':
            case 'wrap':
                $$_key = (int) $_val;
                break;

            case 'wrap_cut':
                $$_key = (bool) $_val;
                break;

            default:
                trigger_error("textformat: unknown attribute '{$_key}'");
        }
    }

    if ($style === 'email') {
        $wrap = 72;
    }
    // split into paragraphs
    $_paragraphs = preg_split('![\r\n]{2}!', $content);

    foreach ($_paragraphs as &$_paragraph) {
        if (!$_paragraph) {
            continue;
        }
        // convert mult. spaces & special chars to single space
        $_paragraph =
            preg_replace(array('!\s+!' . Smarty::$_UTF8_MODIFIER,
                               '!(^\s+)|(\s+$)!' . Smarty::$_UTF8_MODIFIER),
                         array(' ',
                               ''), $_paragraph);
        // indent first line
        if ($indent_first > 0) {
            $_paragraph = str_repeat($indent_char, $indent_first) . $_paragraph;
        }
        // wordwrap sentences
        if (Smarty::$_MBSTRING) {
            $_paragraph = smarty_modifier_mb_wordwrap($_paragraph, $wrap - $indent, $wrap_char, $wrap_cut);
        } else {
            $_paragraph = wordwrap($_paragraph, $wrap - $indent, $wrap_char, $wrap_cut);
        }
        // indent lines
        if ($indent > 0) {
            $_paragraph = preg_replace('!^!m', str_repeat($indent_char, $indent), $_paragraph);
        }
    }
    $_output = implode($wrap_char . $wrap_char, $_paragraphs);

    if ($assign) {
        $template->assign($assign, $_output);
    } else {
        return $_output;
    }
}


================================================
FILE: Extend/Package/smarty/plugins/function.counter.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsFunction
 */

/**
 * Smarty {counter} function plugin
 * Type:     function
 * Name:     counter
 * Purpose:  print out a counter value
 *
 * @author Monte Ohrt <monte at ohrt dot com>
 * @link   http://www.smarty.net/manual/en/language.function.counter.php {counter}
 *         (Smarty online manual)
 *
 * @param array                    $params   parameters
 * @param Smarty_Internal_Template $template template object
 *
 * @return string|null
 */
function smarty_function_counter($params, $template)
{
    static $counters = array();

    $name = (isset($params[ 'name' ])) ? $params[ 'name' ] : 'default';
    if (!isset($counters[ $name ])) {
        $counters[ $name ] = array('start' => 1, 'skip' => 1, 'direction' => 'up', 'count' => 1);
    }
    $counter =& $counters[ $name ];

    if (isset($params[ 'start' ])) {
        $counter[ 'start' ] = $counter[ 'count' ] = (int) $params[ 'start' ];
    }

    if (!empty($params[ 'assign' ])) {
        $counter[ 'assign' ] = $params[ 'assign' ];
    }

    if (isset($counter[ 'assign' ])) {
        $template->assign($counter[ 'assign' ], $counter[ 'count' ]);
    }

    if (isset($params[ 'print' ])) {
        $print = (bool) $params[ 'print' ];
    } else {
        $print = empty($counter[ 'assign' ]);
    }

    if ($print) {
        $retval = $counter[ 'count' ];
    } else {
        $retval = null;
    }

    if (isset($params[ 'skip' ])) {
        $counter[ 'skip' ] = $params[ 'skip' ];
    }

    if (isset($params[ 'direction' ])) {
        $counter[ 'direction' ] = $params[ 'direction' ];
    }

    if ($counter[ 'direction' ] === 'down') {
        $counter[ 'count' ] -= $counter[ 'skip' ];
    } else {
        $counter[ 'count' ] += $counter[ 'skip' ];
    }

    return $retval;
}


================================================
FILE: Extend/Package/smarty/plugins/function.cycle.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsFunction
 */

/**
 * Smarty {cycle} function plugin
 * Type:     function
 * Name:     cycle
 * Date:     May 3, 2002
 * Purpose:  cycle through given values
 * Params:
 *
 * - name      - name of cycle (optional)
 * - values    - comma separated list of values to cycle, or an array of values to cycle
 *               (this can be left out for subsequent calls)
 * - reset     - boolean - resets given var to true
 * - print     - boolean - print var or not. default is true
 * - advance   - boolean - whether or not to advance the cycle
 * - delimiter - the value delimiter, default is ","
 * - assign    - boolean, assigns to template var instead of printed.
 *
 * Examples:
 *
 * {cycle values="#eeeeee,#d0d0d0d"}
 * {cycle name=row values="one,two,three" reset=true}
 * {cycle name=row}
 *
 *
 * @link     http://www.smarty.net/manual/en/language.function.cycle.php {cycle}
 *           (Smarty online manual)
 * @author   Monte Ohrt <monte at ohrt dot com>
 * @author   credit to Mark Priatel <mpriatel@rogers.com>
 * @author   credit to Gerard <gerard@interfold.com>
 * @author   credit to Jason Sweat <jsweat_php@yahoo.com>
 * @version  1.3
 *
 * @param array                    $params   parameters
 * @param Smarty_Internal_Template $template template object
 *
 * @return string|null
 */

function smarty_function_cycle($params, $template)
{
    static $cycle_vars;

    $name = (empty($params[ 'name' ])) ? 'default' : $params[ 'name' ];
    $print = (isset($params[ 'print' ])) ? (bool) $params[ 'print' ] : true;
    $advance = (isset($params[ 'advance' ])) ? (bool) $params[ 'advance' ] : true;
    $reset = (isset($params[ 'reset' ])) ? (bool) $params[ 'reset' ] : false;

    if (!isset($params[ 'values' ])) {
        if (!isset($cycle_vars[ $name ][ 'values' ])) {
            trigger_error('cycle: missing \'values\' parameter');

            return;
        }
    } else {
        if (isset($cycle_vars[ $name ][ 'values' ]) && $cycle_vars[ $name ][ 'values' ] !== $params[ 'values' ]) {
            $cycle_vars[ $name ][ 'index' ] = 0;
        }
        $cycle_vars[ $name ][ 'values' ] = $params[ 'values' ];
    }

    if (isset($params[ 'delimiter' ])) {
        $cycle_vars[ $name ][ 'delimiter' ] = $params[ 'delimiter' ];
    } elseif (!isset($cycle_vars[ $name ][ 'delimiter' ])) {
        $cycle_vars[ $name ][ 'delimiter' ] = ',';
    }

    if (is_array($cycle_vars[ $name ][ 'values' ])) {
        $cycle_array = $cycle_vars[ $name ][ 'values' ];
    } else {
        $cycle_array = explode($cycle_vars[ $name ][ 'delimiter' ], $cycle_vars[ $name ][ 'values' ]);
    }

    if (!isset($cycle_vars[ $name ][ 'index' ]) || $reset) {
        $cycle_vars[ $name ][ 'index' ] = 0;
    }

    if (isset($params[ 'assign' ])) {
        $print = false;
        $template->assign($params[ 'assign' ], $cycle_array[ $cycle_vars[ $name ][ 'index' ] ]);
    }

    if ($print) {
        $retval = $cycle_array[ $cycle_vars[ $name ][ 'index' ] ];
    } else {
        $retval = null;
    }

    if ($advance) {
        if ($cycle_vars[ $name ][ 'index' ] >= count($cycle_array) - 1) {
            $cycle_vars[ $name ][ 'index' ] = 0;
        } else {
            $cycle_vars[ $name ][ 'index' ] ++;
        }
    }

    return $retval;
}


================================================
FILE: Extend/Package/smarty/plugins/function.fetch.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsFunction
 */

/**
 * Smarty {fetch} plugin
 * Type:     function
 * Name:     fetch
 * Purpose:  fetch file, web or ftp data and display results
 *
 * @link   http://www.smarty.net/manual/en/language.function.fetch.php {fetch}
 *         (Smarty online manual)
 * @author Monte Ohrt <monte at ohrt dot com>
 *
 * @param array                    $params   parameters
 * @param Smarty_Internal_Template $template template object
 *
 * @throws SmartyException
 * @return string|null if the assign parameter is passed, Smarty assigns the result to a template variable
 */
function smarty_function_fetch($params, $template)
{
    if (empty($params[ 'file' ])) {
        trigger_error('[plugin] fetch parameter \'file\' cannot be empty', E_USER_NOTICE);

        return;
    }

    // strip file protocol
    if (stripos($params[ 'file' ], 'file://') === 0) {
        $params[ 'file' ] = substr($params[ 'file' ], 7);
    }

    $protocol = strpos($params[ 'file' ], '://');
    if ($protocol !== false) {
        $protocol = strtolower(substr($params[ 'file' ], 0, $protocol));
    }

    if (isset($template->smarty->security_policy)) {
        if ($protocol) {
            // remote resource (or php stream, …)
            if (!$template->smarty->security_policy->isTrustedUri($params[ 'file' ])) {
                return;
            }
        } else {
            // local file
            if (!$template->smarty->security_policy->isTrustedResourceDir($params[ 'file' ])) {
                return;
            }
        }
    }

    $content = '';
    if ($protocol === 'http') {
        // http fetch
        if ($uri_parts = parse_url($params[ 'file' ])) {
            // set defaults
            $host = $server_name = $uri_parts[ 'host' ];
            $timeout = 30;
            $accept = 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*';
            $agent = 'Smarty Template Engine ' . Smarty::SMARTY_VERSION;
            $referer = '';
            $uri = !empty($uri_parts[ 'path' ]) ? $uri_parts[ 'path' ] : '/';
            $uri .= !empty($uri_parts[ 'query' ]) ? '?' . $uri_parts[ 'query' ] : '';
            $_is_proxy = false;
            if (empty($uri_parts[ 'port' ])) {
                $port = 80;
            } else {
                $port = $uri_parts[ 'port' ];
            }
            if (!empty($uri_parts[ 'user' ])) {
                $user = $uri_parts[ 'user' ];
            }
            if (!empty($uri_parts[ 'pass' ])) {
                $pass = $uri_parts[ 'pass' ];
            }
            // loop through parameters, setup headers
            foreach ($params as $param_key => $param_value) {
                switch ($param_key) {
                    case 'file':
                    case 'assign':
                    case 'assign_headers':
                        break;
                    case 'user':
                        if (!empty($param_value)) {
                            $user = $param_value;
                        }
                        break;
                    case 'pass':
                        if (!empty($param_value)) {
                            $pass = $param_value;
                        }
                        break;
                    case 'accept':
                        if (!empty($param_value)) {
                            $accept = $param_value;
                        }
                        break;
                    case 'header':
                        if (!empty($param_value)) {
                            if (!preg_match('![\w\d-]+: .+!', $param_value)) {
                                trigger_error("[plugin] invalid header format '{$param_value}'", E_USER_NOTICE);

                                return;
                            } else {
                                $extra_headers[] = $param_value;
                            }
                        }
                        break;
                    case 'proxy_host':
                        if (!empty($param_value)) {
                            $proxy_host = $param_value;
                        }
                        break;
                    case 'proxy_port':
                        if (!preg_match('!\D!', $param_value)) {
                            $proxy_port = (int) $param_value;
                        } else {
                            trigger_error("[plugin] invalid value for attribute '{$param_key }'", E_USER_NOTICE);

                            return;
                        }
                        break;
                    case 'agent':
                        if (!empty($param_value)) {
                            $agent = $param_value;
                        }
                        break;
                    case 'referer':
                        if (!empty($param_value)) {
                            $referer = $param_value;
                        }
                        break;
                    case 'timeout':
                        if (!preg_match('!\D!', $param_value)) {
                            $timeout = (int) $param_value;
                        } else {
                            trigger_error("[plugin] invalid value for attribute '{$param_key}'", E_USER_NOTICE);

                            return;
                        }
                        break;
                    default:
                        trigger_error("[plugin] unrecognized attribute '{$param_key}'", E_USER_NOTICE);

                        return;
                }
            }
            if (!empty($proxy_host) && !empty($proxy_port)) {
                $_is_proxy = true;
                $fp = fsockopen($proxy_host, $proxy_port, $errno, $errstr, $timeout);
            } else {
                $fp = fsockopen($server_name, $port, $errno, $errstr, $timeout);
            }

            if (!$fp) {
                trigger_error("[plugin] unable to fetch: $errstr ($errno)", E_USER_NOTICE);

                return;
            } else {
                if ($_is_proxy) {
                    fputs($fp, 'GET ' . $params[ 'file' ] . " HTTP/1.0\r\n");
                } else {
                    fputs($fp, "GET $uri HTTP/1.0\r\n");
                }
                if (!empty($host)) {
                    fputs($fp, "Host: $host\r\n");
                }
                if (!empty($accept)) {
                    fputs($fp, "Accept: $accept\r\n");
                }
                if (!empty($agent)) {
                    fputs($fp, "User-Agent: $agent\r\n");
                }
                if (!empty($referer)) {
                    fputs($fp, "Referer: $referer\r\n");
                }
                if (isset($extra_headers) && is_array($extra_headers)) {
                    foreach ($extra_headers as $curr_header) {
                        fputs($fp, $curr_header . "\r\n");
                    }
                }
                if (!empty($user) && !empty($pass)) {
                    fputs($fp, 'Authorization: BASIC ' . base64_encode("$user:$pass") . "\r\n");
                }

                fputs($fp, "\r\n");
                while (!feof($fp)) {
                    $content .= fgets($fp, 4096);
                }
                fclose($fp);
                $csplit = preg_split("!\r\n\r\n!", $content, 2);

                $content = $csplit[ 1 ];

                if (!empty($params[ 'assign_headers' ])) {
                    $template->assign($params[ 'assign_headers' ], preg_split("!\r\n!", $csplit[ 0 ]));
                }
            }
        } else {
            trigger_error("[plugin fetch] unable to parse URL, check syntax", E_USER_NOTICE);

            return;
        }
    } else {
        $content = @file_get_contents($params[ 'file' ]);
        if ($content === false) {
            throw new SmartyException("{fetch} cannot read resource '" . $params[ 'file' ] . "'");
        }
    }

    if (!empty($params[ 'assign' ])) {
        $template->assign($params[ 'assign' ], $content);
    } else {
        return $content;
    }
}


================================================
FILE: Extend/Package/smarty/plugins/function.html_checkboxes.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsFunction
 */

/**
 * Smarty {html_checkboxes} function plugin
 * File:       function.html_checkboxes.php
 * Type:       function
 * Name:       html_checkboxes
 * Date:       24.Feb.2003
 * Purpose:    Prints out a list of checkbox input types
 * Examples:
 *
 * {html_checkboxes values=$ids output=$names}
 * {html_checkboxes values=$ids name='box' separator='<br>' output=$names}
 * {html_checkboxes values=$ids checked=$checked separator='<br>' output=$names}
 *
 * Params:
 *
 * - name       (optional) - string default "checkbox"
 * - values     (required) - array
 * - options    (optional) - associative array
 * - checked    (optional) - array default not set
 * - separator  (optional) - ie <br> or &nbsp;
 * - output     (optional) - the output next to each checkbox
 * - assign     (optional) - assign the output as an array to this variable
 * - escape     (optional) - escape the content (not value), defaults to true
 *
 *
 * @link       http://www.smarty.net/manual/en/language.function.html.checkboxes.php {html_checkboxes}
 *             (Smarty online manual)
 * @author     Christopher Kvarme <christopher.kvarme@flashjab.com>
 * @author     credits to Monte Ohrt <monte at ohrt dot com>
 * @version    1.0
 *
 * @param array  $params   parameters
 * @param object $template template object
 *
 * @return string
 * @uses       smarty_function_escape_special_chars()
 */
function smarty_function_html_checkboxes($params, $template)
{
    if (!isset($template->smarty->_cache[ '_required_sesc' ])) {
        require_once(SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php');
        $template->smarty->_cache[ '_required_sesc' ] = true;
    }

    $name = 'checkbox';
    $values = null;
    $options = null;
    $selected = array();
    $separator = '';
    $escape = true;
    $labels = true;
    $label_ids = false;
    $output = null;

    $extra = '';

    foreach ($params as $_key => $_val) {
        switch ($_key) {
            case 'name':
            case 'separator':
                $$_key = (string) $_val;
                break;

            case 'escape':
            case 'labels':
            case 'label_ids':
                $$_key = (bool) $_val;
                break;

            case 'options':
                $$_key = (array) $_val;
                break;

            case 'values':
            case 'output':
                $$_key = array_values((array) $_val);
                break;

            case 'checked':
            case 'selected':
                if (is_array($_val)) {
                    $selected = array();
                    foreach ($_val as $_sel) {
                        if (is_object($_sel)) {
                            if (method_exists($_sel, '__toString')) {
                                $_sel = smarty_function_escape_special_chars((string) $_sel->__toString());
                            } else {
                                trigger_error('html_checkboxes: selected attribute contains an object of class \'' .
                                              get_class($_sel) . '\' without __toString() method', E_USER_NOTICE);
                                continue;
                            }
                        } else {
                            $_sel = smarty_function_escape_special_chars((string) $_sel);
                        }
                        $selected[ $_sel ] = true;
                    }
                } elseif (is_object($_val)) {
                    if (method_exists($_val, '__toString')) {
                        $selected = smarty_function_escape_special_chars((string) $_val->__toString());
                    } else {
                        trigger_error('html_checkboxes: selected attribute is an object of class \'' . get_class($_val) .
                                      '\' without __toString() method', E_USER_NOTICE);
                    }
                } else {
                    $selected = smarty_function_escape_special_chars((string) $_val);
                }
                break;

            case 'checkboxes':
                trigger_error('html_checkboxes: the use of the "checkboxes" attribute is deprecated, use "options" instead',
                              E_USER_WARNING);
                $options = (array) $_val;
                break;

            case 'assign':
                break;

            case 'strict':
                break;

            case 'disabled':
            case 'readonly':
                if (!empty($params[ 'strict' ])) {
                    if (!is_scalar($_val)) {
                        trigger_error("html_options: {$_key} attribute must be a scalar, only boolean true or string '{$_key}' will actually add the attribute",
                                      E_USER_NOTICE);
                    }

                    if ($_val === true || $_val === $_key) {
                        $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_key) . '"';
                    }

                    break;
                }
            // omit break; to fall through!

            default:
                if (!is_array($_val)) {
                    $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"';
                } else {
                    trigger_error("html_checkboxes: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE);
                }
                break;
        }
    }

    if (!isset($options) && !isset($values)) {
        return '';
    } /* raise error here? */

    $_html_result = array();

    if (isset($options)) {
        foreach ($options as $_key => $_val) {
            $_html_result[] =
                smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels,
                                                       $label_ids, $escape);
        }
    } else {
        foreach ($values as $_i => $_key) {
            $_val = isset($output[ $_i ]) ? $output[ $_i ] : '';
            $_html_result[] =
                smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels,
                                                       $label_ids, $escape);
        }
    }

    if (!empty($params[ 'assign' ])) {
        $template->assign($params[ 'assign' ], $_html_result);
    } else {
        return implode("\n", $_html_result);
    }
}
/**
 * @param      $name
 * @param      $value
 * @param      $output
 * @param      $selected
 * @param      $extra
 * @param      $separator
 * @param      $labels
 * @param      $label_ids
 * @param bool $escape
 *
 * @return string
 */
function smarty_function_html_checkboxes_output($name, $value, $output, $selected, $extra, $separator, $labels,
                                                   $label_ids, $escape = true)
{
    $_output = '';

    if (is_object($value)) {
        if (method_exists($value, '__toString')) {
            $value = (string) $value->__toString();
        } else {
            trigger_error('html_options: value is an object of class \'' . get_class($value) .
                          '\' without __toString() method', E_USER_NOTICE);

            return '';
        }
    } else {
        $value = (string) $value;
    }

    if (is_object($output)) {
        if (method_exists($output, '__toString')) {
            $output = (string) $output->__toString();
        } else {
            trigger_error('html_options: output is an object of class \'' . get_class($output) .
                          '\' without __toString() method', E_USER_NOTICE);

            return '';
        }
    } else {
        $output = (string) $output;
    }

    if ($labels) {
        if ($label_ids) {
            $_id = smarty_function_escape_special_chars(preg_replace('![^\w\-\.]!' . Smarty::$_UTF8_MODIFIER, '_',
                                                                     $name . '_' . $value));
            $_output .= '<label for="' . $_id . '">';
        } else {
            $_output .= '<label>';
        }
    }

    $name = smarty_function_escape_special_chars($name);
    $value = smarty_function_escape_special_chars($value);
    if ($escape) {
        $output = smarty_function_escape_special_chars($output);
    }

    $_output .= '<input type="checkbox" name="' . $name . '[]" value="' . $value . '"';

    if ($labels && $label_ids) {
        $_output .= ' id="' . $_id . '"';
    }

    if (is_array($selected)) {
        if (isset($selected[ $value ])) {
            $_output .= ' checked="checked"';
        }
    } elseif ($value === $selected) {
        $_output .= ' checked="checked"';
    }

    $_output .= $extra . ' />' . $output;
    if ($labels) {
        $_output .= '</label>';
    }

    $_output .= $separator;

    return $_output;
}


================================================
FILE: Extend/Package/smarty/plugins/function.html_image.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsFunction
 */

/**
 * Smarty {html_image} function plugin
 * Type:     function
 * Name:     html_image
 * Date:     Feb 24, 2003
 * Purpose:  format HTML tags for the image
 * Examples: {html_image file="/images/masthead.gif"}
 * Output:   <img src="/images/masthead.gif" width=400 height=23>
 * Params:
 *
 * - file        - (required) - file (and path) of image
 * - height      - (optional) - image height (default actual height)
 * - width       - (optional) - image width (default actual width)
 * - basedir     - (optional) - base directory for absolute paths, default is environment variable DOCUMENT_ROOT
 * - path_prefix - prefix for path output (optional, default empty)
 *
 *
 * @link    http://www.smarty.net/manual/en/language.function.html.image.php {html_image}
 *          (Smarty online manual)
 * @author  Monte Ohrt <monte at ohrt dot com>
 * @author  credits to Duda <duda@big.hu>
 * @version 1.0
 *
 * @param array                    $params   parameters
 * @param Smarty_Internal_Template $template template object
 *
 * @throws SmartyException
 * @return string
 * @uses    smarty_function_escape_special_chars()
 */
function smarty_function_html_image($params, $template)
{
    if (!isset($template->smarty->_cache[ '_required_sesc' ])) {
        require_once(SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php');
        $template->smarty->_cache[ '_required_sesc' ] = true;
    }

    $alt = '';
    $file = '';
    $height = '';
    $width = '';
    $extra = '';
    $prefix = '';
    $suffix = '';
    $path_prefix = '';
    $basedir = isset($_SERVER[ 'DOCUMENT_ROOT' ]) ? $_SERVER[ 'DOCUMENT_ROOT' ] : '';
    foreach ($params as $_key => $_val) {
        switch ($_key) {
            case 'file':
            case 'height':
            case 'width':
            case 'dpi':
            case 'path_prefix':
            case 'basedir':
                $$_key = $_val;
                break;

            case 'alt':
                if (!is_array($_val)) {
                    $$_key = smarty_function_escape_special_chars($_val);
                } else {
                    throw new SmartyException ("html_image: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE);
                }
                break;

            case 'link':
            case 'href':
                $prefix = '<a href="' . $_val . '">';
                $suffix = '</a>';
                break;

            default:
                if (!is_array($_val)) {
                    $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"';
                } else {
                    throw new SmartyException ("html_image: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE);
                }
                break;
        }
    }

    if (empty($file)) {
        trigger_error('html_image: missing \'file\' parameter', E_USER_NOTICE);

        return;
    }

    if ($file[ 0 ] === '/') {
        $_image_path = $basedir . $file;
    } else {
        $_image_path = $file;
    }

    // strip file protocol
    if (stripos($params[ 'file' ], 'file://') === 0) {
        $params[ 'file' ] = substr($params[ 'file' ], 7);
    }

    $protocol = strpos($params[ 'file' ], '://');
    if ($protocol !== false) {
        $protocol = strtolower(substr($params[ 'file' ], 0, $protocol));
    }

    if (isset($template->smarty->security_policy)) {
        if ($protocol) {
            // remote resource (or php stream, …)
            if (!$template->smarty->security_policy->isTrustedUri($params[ 'file' ])) {
                return;
            }
        } else {
            // local file
            if (!$template->smarty->security_policy->isTrustedResourceDir($_image_path)) {
                return;
            }
        }
    }

    if (!isset($params[ 'width' ]) || !isset($params[ 'height' ])) {
        // FIXME: (rodneyrehm) getimagesize() loads the complete file off a remote resource, use custom [jpg,png,gif]header reader!
        if (!$_image_data = @getimagesize($_image_path)) {
            if (!file_exists($_image_path)) {
                trigger_error("html_image: unable to find '{$_image_path}'", E_USER_NOTICE);

                return;
            } elseif (!is_readable($_image_path)) {
                trigger_error("html_image: unable to read '{$_image_path}'", E_USER_NOTICE);

                return;
            } else {
                trigger_error("html_image: '{$_image_path}' is not a valid image file", E_USER_NOTICE);

                return;
            }
        }

        if (!isset($params[ 'width' ])) {
            $width = $_image_data[ 0 ];
        }
        if (!isset($params[ 'height' ])) {
            $height = $_image_data[ 1 ];
        }
    }

    if (isset($params[ 'dpi' ])) {
        if (strstr($_SERVER[ 'HTTP_USER_AGENT' ], 'Mac')) {
            // FIXME: (rodneyrehm) wrong dpi assumption
            // don't know who thought this up… even if it was true in 1998, it's definitely wrong in 2011.
            $dpi_default = 72;
        } else {
            $dpi_default = 96;
        }
        $_resize = $dpi_default / $params[ 'dpi' ];
        $width = round($width * $_resize);
        $height = round($height * $_resize);
    }

    return $prefix . '<img src="' . $path_prefix . $file . '" alt="' . $alt . '" width="' . $width . '" height="' .
           $height . '"' . $extra . ' />' . $suffix;
}


================================================
FILE: Extend/Package/smarty/plugins/function.html_options.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsFunction
 */

/**
 * Smarty {html_options} function plugin
 * Type:     function
 * Name:     html_options
 * Purpose:  Prints the list of <option> tags generated from
 *           the passed parameters
 * Params:
 *
 * - name       (optional) - string default "select"
 * - values     (required) - if no options supplied) - array
 * - options    (required) - if no values supplied) - associative array
 * - selected   (optional) - string default not set
 * - output     (required) - if not options supplied) - array
 * - id         (optional) - string default not set
 * - class      (optional) - string default not set
 *
 *
 * @link     http://www.smarty.net/manual/en/language.function.html.options.php {html_image}
 *           (Smarty online manual)
 * @author   Monte Ohrt <monte at ohrt dot com>
 * @author   Ralf Strehle (minor optimization) <ralf dot strehle at yahoo dot de>
 *
 * @param array                     $params parameters
 *
 * @param \Smarty_Internal_Template $template
 *
 * @return string
 * @uses     smarty_function_escape_special_chars()
 */
function smarty_function_html_options($params, Smarty_Internal_Template $template)
{
    if (!isset($template->smarty->_cache[ '_required_sesc' ])) {
        require_once(SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php');
        $template->smarty->_cache[ '_required_sesc' ] = true;
    }

    $name = null;
    $values = null;
    $options = null;
    $selected = null;
    $output = null;
    $id = null;
    $class = null;

    $extra = '';

    foreach ($params as $_key => $_val) {
        switch ($_key) {
            case 'name':
            case 'class':
            case 'id':
                $$_key = (string) $_val;
                break;

            case 'options':
                $options = (array) $_val;
                break;

            case 'values':
            case 'output':
                $$_key = array_values((array) $_val);
                break;

            case 'selected':
                if (is_array($_val)) {
                    $selected = array();
                    foreach ($_val as $_sel) {
                        if (is_object($_sel)) {
                            if (method_exists($_sel, '__toString')) {
                                $_sel = smarty_function_escape_special_chars((string) $_sel->__toString());
                            } else {
                                trigger_error('html_options: selected attribute contains an object of class \'' .
                                              get_class($_sel) . '\' without __toString() method', E_USER_NOTICE);
                                continue;
                            }
                        } else {
                            $_sel = smarty_function_escape_special_chars((string) $_sel);
                        }
                        $selected[ $_sel ] = true;
                    }
                } elseif (is_object($_val)) {
                    if (method_exists($_val, '__toString')) {
                        $selected = smarty_function_escape_special_chars((string) $_val->__toString());
                    } else {
                        trigger_error('html_options: selected attribute is an object of class \'' . get_class($_val) .
                                      '\' without __toString() method', E_USER_NOTICE);
                    }
                } else {
                    $selected = smarty_function_escape_special_chars((string) $_val);
                }
                break;

            case 'strict':
                break;

            case 'disabled':
            case 'readonly':
                if (!empty($params[ 'strict' ])) {
                    if (!is_scalar($_val)) {
                        trigger_error("html_options: {$_key} attribute must be a scalar, only boolean true or string '{$_key}' will actually add the attribute",
                                      E_USER_NOTICE);
                    }

                    if ($_val === true || $_val === $_key) {
                        $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_key) . '"';
                    }

                    break;
                }
            // omit break; to fall through!

            default:
                if (!is_array($_val)) {
                    $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"';
                } else {
                    trigger_error("html_options: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE);
                }
                break;
        }
    }

    if (!isset($options) && !isset($values)) {
        /* raise error here? */

        return '';
    }

    $_html_result = '';
    $_idx = 0;

    if (isset($options)) {
        foreach ($options as $_key => $_val) {
            $_html_result .= smarty_function_html_options_optoutput($_key, $_val, $selected, $id, $class, $_idx);
        }
    } else {
        foreach ($values as $_i => $_key) {
            $_val = isset($output[ $_i ]) ? $output[ $_i ] : '';
            $_html_result .= smarty_function_html_options_optoutput($_key, $_val, $selected, $id, $class, $_idx);
        }
    }

    if (!empty($name)) {
        $_html_class = !empty($class) ? ' class="' . $class . '"' : '';
        $_html_id = !empty($id) ? ' id="' . $id . '"' : '';
        $_html_result =
            '<select name="' . $name . '"' . $_html_class . $_html_id . $extra . '>' . "\n" . $_html_result .
            '</select>' . "\n";
    }

    return $_html_result;
}
/**
 * @param $key
 * @param $value
 * @param $selected
 * @param $id
 * @param $class
 * @param $idx
 *
 * @return string
 */
function smarty_function_html_options_optoutput($key, $value, $selected, $id, $class, &$idx)
{
    if (!is_array($value)) {
        $_key = smarty_function_escape_special_chars($key);
        $_html_result = '<option value="' . $_key . '"';
        if (is_array($selected)) {
            if (isset($selected[ $_key ])) {
                $_html_result .= ' selected="selected"';
            }
        } elseif ($_key === $selected) {
            $_html_result .= ' selected="selected"';
        }
        $_html_class = !empty($class) ? ' class="' . $class . ' option"' : '';
        $_html_id = !empty($id) ? ' id="' . $id . '-' . $idx . '"' : '';
        if (is_object($value)) {
            if (method_exists($value, '__toString')) {
                $value = smarty_function_escape_special_chars((string) $value->__toString());
            } else {
                trigger_error('html_options: value is an object of class \'' . get_class($value) .
                              '\' without __toString() method', E_USER_NOTICE);

                return '';
            }
        } else {
            $value = smarty_function_escape_special_chars((string) $value);
        }
        $_html_result .= $_html_class . $_html_id . '>' . $value . '</option>' . "\n";
        $idx ++;
    } else {
        $_idx = 0;
        $_html_result =
            smarty_function_html_options_optgroup($key, $value, $selected, !empty($id) ? ($id . '-' . $idx) : null,
                                                  $class, $_idx);
        $idx ++;
    }

    return $_html_result;
}
/**
 * @param $key
 * @param $values
 * @param $selected
 * @param $id
 * @param $class
 * @param $idx
 *
 * @return string
 */
function smarty_function_html_options_optgroup($key, $values, $selected, $id, $class, &$idx)
{
    $optgroup_html = '<optgroup label="' . smarty_function_escape_special_chars($key) . '">' . "\n";
    foreach ($values as $key => $value) {
        $optgroup_html .= smarty_function_html_options_optoutput($key, $value, $selected, $id, $class, $idx);
    }
    $optgroup_html .= "</optgroup>\n";

    return $optgroup_html;
}


================================================
FILE: Extend/Package/smarty/plugins/function.html_radios.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsFunction
 */

/**
 * Smarty {html_radios} function plugin
 * File:       function.html_radios.php
 * Type:       function
 * Name:       html_radios
 * Date:       24.Feb.2003
 * Purpose:    Prints out a list of radio input types
 * Params:
 *
 * - name       (optional) - string default "radio"
 * - values     (required) - array
 * - options    (required) - associative array
 * - checked    (optional) - array default not set
 * - separator  (optional) - ie <br> or &nbsp;
 * - output     (optional) - the output next to each radio button
 * - assign     (optional) - assign the output as an array to this variable
 * - escape     (optional) - escape the content (not value), defaults to true
 *
 * Examples:
 *
 * {html_radios values=$ids output=$names}
 * {html_radios values=$ids name='box' separator='<br>' output=$names}
 * {html_radios values=$ids checked=$checked separator='<br>' output=$names}
 *
 *
 * @link    http://smarty.php.net/manual/en/language.function.html.radios.php {html_radios}
 *          (Smarty online manual)
 * @author  Christopher Kvarme <christopher.kvarme@flashjab.com>
 * @author  credits to Monte Ohrt <monte at ohrt dot com>
 * @version 1.0
 *
 * @param array                    $params   parameters
 * @param Smarty_Internal_Template $template template object
 *
 * @return string
 * @uses    smarty_function_escape_special_chars()
 */
function smarty_function_html_radios($params, $template)
{
    if (!isset($template->smarty->_cache[ '_required_sesc' ])) {
        require_once(SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php');
        $template->smarty->_cache[ '_required_sesc' ] = true;
    }

    $name = 'radio';
    $values = null;
    $options = null;
    $selected = null;
    $separator = '';
    $escape = true;
    $labels = true;
    $label_ids = false;
    $output = null;
    $extra = '';

    foreach ($params as $_key => $_val) {
        switch ($_key) {
            case 'name':
            case 'separator':
                $$_key = (string) $_val;
                break;

            case 'checked':
            case 'selected':
                if (is_array($_val)) {
                    trigger_error('html_radios: the "' . $_key . '" attribute cannot be an array', E_USER_WARNING);
                } elseif (is_object($_val)) {
                    if (method_exists($_val, '__toString')) {
                        $selected = smarty_function_escape_special_chars((string) $_val->__toString());
                    } else {
                        trigger_error('html_radios: selected attribute is an object of class \'' . get_class($_val) .
                                      '\' without __toString() method', E_USER_NOTICE);
                    }
                } else {
                    $selected = (string) $_val;
                }
                break;

            case 'escape':
            case 'labels':
            case 'label_ids':
                $$_key = (bool) $_val;
                break;

            case 'options':
                $$_key = (array) $_val;
                break;

            case 'values':
            case 'output':
                $$_key = array_values((array) $_val);
                break;

            case 'radios':
                trigger_error('html_radios: the use of the "radios" attribute is deprecated, use "options" instead',
                              E_USER_WARNING);
                $options = (array) $_val;
                break;

            case 'assign':
                break;

            case 'strict':
                break;

            case 'disabled':
            case 'readonly':
                if (!empty($params[ 'strict' ])) {
                    if (!is_scalar($_val)) {
                        trigger_error("html_options: {$_key} attribute must be a scalar, only boolean true or string '$_key' will actually add the attribute",
                                      E_USER_NOTICE);
                    }

                    if ($_val === true || $_val === $_key) {
                        $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_key) . '"';
                    }

                    break;
                }
            // omit break; to fall through!

            default:
                if (!is_array($_val)) {
                    $extra .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_val) . '"';
                } else {
                    trigger_error("html_radios: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE);
                }
                break;
        }
    }

    if (!isset($options) && !isset($values)) {
        /* raise error here? */

        return '';
    }

    $_html_result = array();

    if (isset($options)) {
        foreach ($options as $_key => $_val) {
            $_html_result[] =
                smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels,
                                                   $label_ids, $escape);
        }
    } else {
        foreach ($values as $_i => $_key) {
            $_val = isset($output[ $_i ]) ? $output[ $_i ] : '';
            $_html_result[] =
                smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels,
                                                   $label_ids, $escape);
        }
    }

    if (!empty($params[ 'assign' ])) {
        $template->assign($params[ 'assign' ], $_html_result);
    } else {
        return implode("\n", $_html_result);
    }
}
/**
 * @param $name
 * @param $value
 * @param $output
 * @param $selected
 * @param $extra
 * @param $separator
 * @param $labels
 * @param $label_ids
 * @param $escape
 *
 * @return string
 */
function smarty_function_html_radios_output($name, $value, $output, $selected, $extra, $separator, $labels, $label_ids,
                                               $escape)
{
    $_output = '';

    if (is_object($value)) {
        if (method_exists($value, '__toString')) {
            $value = (string) $value->__toString();
        } else {
            trigger_error('html_options: value is an object of class \'' . get_class($value) .
                          '\' without __toString() method', E_USER_NOTICE);

            return '';
        }
    } else {
        $value = (string) $value;
    }

    if (is_object($output)) {
        if (method_exists($output, '__toString')) {
            $output = (string) $output->__toString();
        } else {
            trigger_error('html_options: output is an object of class \'' . get_class($output) .
                         '\' without __toString() method', E_USER_NOTICE);

            return '';
        }
    } else {
        $output = (string) $output;
    }

    if ($labels) {
        if ($label_ids) {
            $_id = smarty_function_escape_special_chars(preg_replace('![^\w\-\.]!' . Smarty::$_UTF8_MODIFIER, '_',
                                                                     $name . '_' . $value));
            $_output .= '<label for="' . $_id . '">';
        } else {
            $_output .= '<label>';
        }
    }

    $name = smarty_function_escape_special_chars($name);
    $value = smarty_function_escape_special_chars($value);
    if ($escape) {
        $output = smarty_function_escape_special_chars($output);
    }

    $_output .= '<input type="radio" name="' . $name . '" value="' . $value . '"';

    if ($labels && $label_ids) {
        $_output .= ' id="' . $_id . '"';
    }

    if ($value === $selected) {
        $_output .= ' checked="checked"';
    }

    $_output .= $extra . ' />' . $output;
    if ($labels) {
        $_output .= '</label>';
    }

    $_output .= $separator;

    return $_output;
}


================================================
FILE: Extend/Package/smarty/plugins/function.html_select_date.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsFunction
 */

/**
 * Smarty {html_select_date} plugin
 * Type:     function
 * Name:     html_select_date
 * Purpose:  Prints the dropdowns for date selection.
 * ChangeLog:
 *
 *            - 1.0 initial release
 *            - 1.1 added support for +/- N syntax for begin
 *              and end year values. (Monte)
 *            - 1.2 added support for yyyy-mm-dd syntax for
 *              time value. (Jan Rosier)
 *            - 1.3 added support for choosing format for
 *              month values (Gary Loescher)
 *            - 1.3.1 added support for choosing format for
 *              day values (Marcus Bointon)
 *            - 1.3.2 support negative timestamps, force year
 *              dropdown to include given date unless explicitly set (Monte)
 *            - 1.3.4 fix behaviour of 0000-00-00 00:00:00 dates to match that
 *              of 0000-00-00 dates (cybot, boots)
 *            - 2.0 complete rewrite for performance,
 *              added attributes month_names, *_id
 *
 *
 * @link     http://www.smarty.net/manual/en/language.function.html.select.date.php {html_select_date}
 *           (Smarty online manual)
 * @version  2.0
 * @author   Andrei Zmievski
 * @author   Monte Ohrt <monte at ohrt dot com>
 * @author   Rodney Rehm
 *
 * @param array                     $params parameters
 *
 * @param \Smarty_Internal_Template $template
 *
 * @return string
 */
function smarty_function_html_select_date($params, Smarty_Internal_Template $template)
{
    if (!isset($template->smarty->_cache[ '_required_sesc' ])) {
        require_once(SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php');
        $template->smarty->_cache[ '_required_sesc' ] = true;
    }
    if (!isset($template->smarty->_cache[ '_required_smt' ])) {
        require_once(SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php');
        $template->smarty->_cache[ '_required_smt' ] = true;
    }
    // generate timestamps used for month names only
    static $_month_timestamps = null;
    static $_current_year = null;
    if ($_month_timestamps === null) {
        $_current_year = date('Y');
        $_month_timestamps = array();
        for ($i = 1; $i <= 12; $i ++) {
            $_month_timestamps[ $i ] = mktime(0, 0, 0, $i, 1, 2000);
        }
    }

    /* Default values. */
    $prefix = 'Date_';
    $start_year = null;
    $end_year = null;
    $display_days = true;
    $display_months = true;
    $display_years = true;
    $month_format = '%B';
    /* Write months as numbers by default  GL */
    $month_value_format = '%m';
    $day_format = '%02d';
    /* Write day values using this format MB */
    $day_value_format = '%d';
    $year_as_text = false;
    /* Display years in reverse order? Ie. 2000,1999,.... */
    $reverse_years = false;
    /* Should the select boxes be part of an array when returned from PHP?
       e.g. setting it to "birthday", would create "birthday[Day]",
       "birthday[Month]" & "birthday[Year]". Can be combined with prefix */
    $field_array = null;
    /* <select size>'s of the different <select> tags.
       If not set, uses default dropdown. */
    $day_size = null;
    $month_size = null;
    $year_size = null;
    /* Unparsed attributes common to *ALL* the <select>/<input> tags.
       An example might be in the template: all_extra ='class ="foo"'. */
    $all_extra = null;
    /* Separate attributes for the tags. */
    $day_extra = null;
    $month_extra = null;
    $year_extra = null;
    /* Order in which to display the fields.
       "D" -> day, "M" -> month, "Y" -> year. */
    $field_order = 'MDY';
    /* String printed between the different fields. */
    $field_separator = "\n";
    $option_separator = "\n";
    $time = null;
    // $all_empty = null;
    // $day_empty = null;
    // $month_empty = null;
    // $year_empty = null;
    $extra_attrs = '';
    $all_id = null;
    $day_id = null;
    $month_id = null;
    $year_id = null;

    foreach ($params as $_key => $_value) {
        switch ($_key) {
            case 'time':
                if (!is_array($_value) && $_value !== null) {
                    $time = smarty_make_timestamp($_value);
                }
                break;

            case 'month_names':
                if (is_array($_value) && count($_value) === 12) {
                    $$_key = $_value;
                } else {
                    trigger_error('html_select_date: month_names must be an array of 12 strings', E_USER_NOTICE);
                }
                break;

            case 'prefix':
            case 'field_array':
            case 'start_year':
            case 'end_year':
            case 'day_format':
            case 'day_value_format':
            case 'month_format':
            case 'month_value_format':
            case 'day_size':
            case 'month_size':
            case 'year_size':
            case 'all_extra':
            case 'day_extra':
            case 'month_extra':
            case 'year_extra':
            case 'field_order':
            case 'field_separator':
            case 'option_separator':
            case 'all_empty':
            case 'month_empty':
            case 'day_empty':
            case 'year_empty':
            case 'all_id':
            case 'month_id':
            case 'day_id':
            case 'year_id':
                $$_key = (string) $_value;
                break;

            case 'display_days':
            case 'display_months':
            case 'display_years':
            case 'year_as_text':
            case 'reverse_years':
                $$_key = (bool) $_value;
                break;

            default:
                if (!is_array($_value)) {
                    $extra_attrs .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_value) . '"';
                } else {
                    trigger_error("html_select_date: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE);
                }
                break;
        }
    }

    // Note: date() is faster than strftime()
    // Note: explode(date()) is faster than date() date() date()
    if (isset($params[ 'time' ]) && is_array($params[ 'time' ])) {
        if (isset($params[ 'time' ][ $prefix . 'Year' ])) {
            // $_REQUEST[$field_array] given
            foreach (array('Y' => 'Year',
                           'm' => 'Month',
                           'd' => 'Day') as $_elementKey => $_elementName) {
                $_variableName = '_' . strtolower($_elementName);
                $$_variableName =
                    isset($params[ 'time' ][ $prefix . $_elementName ]) ? $params[ 'time' ][ $prefix . $_elementName ] :
                        date($_elementKey);
            }
        } elseif (isset($params[ 'time' ][ $field_array ][ $prefix . 'Year' ])) {
            // $_REQUEST given
            foreach (array('Y' => 'Year',
                           'm' => 'Month',
                           'd' => 'Day') as $_elementKey => $_elementName) {
                $_variableName = '_' . strtolower($_elementName);
                $$_variableName = isset($params[ 'time' ][ $field_array ][ $prefix . $_elementName ]) ?
                    $params[ 'time' ][ $field_array ][ $prefix . $_elementName ] : date($_elementKey);
            }
        } else {
            // no date found, use NOW
            list($_year, $_month, $_day) = $time = explode('-', date('Y-m-d'));
        }
    } elseif ($time === null) {
        if (array_key_exists('time', $params)) {
            $_year = $_month = $_day = $time = null;
        } else {
            list($_year, $_month, $_day) = $time = explode('-', date('Y-m-d'));
        }
    } else {
        list($_year, $_month, $_day) = $time = explode('-', date('Y-m-d', $time));
    }

    // make syntax "+N" or "-N" work with $start_year and $end_year
    // Note preg_match('!^(\+|\-)\s*(\d+)$!', $end_year, $match) is slower than trim+substr
    foreach (array('start',
                   'end') as $key) {
        $key .= '_year';
        $t = $$key;
        if ($t === null) {
            $$key = (int) $_current_year;
        } elseif ($t[ 0 ] === '+') {
            $$key = (int) ($_current_year + (int) trim(substr($t, 1)));
        } elseif ($t[ 0 ] === '-') {
            $$key = (int) ($_current_year - (int) trim(substr($t, 1)));
        } else {
            $$key = (int) $$key;
        }
    }

    // flip for ascending or descending
    if (($start_year > $end_year && !$reverse_years) || ($start_year < $end_year && $reverse_years)) {
        $t = $end_year;
        $end_year = $start_year;
        $start_year = $t;
    }

    // generate year <select> or <input>
    if ($display_years) {
        $_extra = '';
        $_name = $field_array ? ($field_array . '[' . $prefix . 'Year]') : ($prefix . 'Year');
        if ($all_extra) {
            $_extra .= ' ' . $all_extra;
        }
        if ($year_extra) {
            $_extra .= ' ' . $year_extra;
        }

        if ($year_as_text) {
            $_html_years =
                '<input type="text" name="' . $_name . '" value="' . $_year . '" size="4" maxlength="4"' . $_extra .
                $extra_attrs . ' />';
        } else {
            $_html_years = '<select name="' . $_name . '"';
            if ($year_id !== null || $all_id !== null) {
                $_html_years .= ' id="' . smarty_function_escape_special_chars($year_id !== null ?
                                                                                   ($year_id ? $year_id : $_name) :
                                                                                   ($all_id ? ($all_id . $_name) :
                                                                                       $_name)) . '"';
            }
            if ($year_size) {
                $_html_years .= ' size="' . $year_size . '"';
            }
            $_html_years .= $_extra . $extra_attrs . '>' . $option_separator;

            if (isset($year_empty) || isset($all_empty)) {
                $_html_years .= '<option value="">' . (isset($year_empty) ? $year_empty : $all_empty) . '</option>' .
                                $option_separator;
            }

            $op = $start_year > $end_year ? - 1 : 1;
            for ($i = $start_year; $op > 0 ? $i <= $end_year : $i >= $end_year; $i += $op) {
                $_html_years .= '<option value="' . $i . '"' . ($_year == $i ? ' selected="selected"' : '') . '>' . $i .
                                '</option>' . $option_separator;
            }

            $_html_years .= '</select>';
        }
    }

    // generate month <select> or <input>
    if ($display_months) {
        $_extra = '';
        $_name = $field_array ? ($field_array . '[' . $prefix . 'Month]') : ($prefix . 'Month');
        if ($all_extra) {
            $_extra .= ' ' . $all_extra;
        }
        if ($month_extra) {
            $_extra .= ' ' . $month_extra;
        }

        $_html_months = '<select name="' . $_name . '"';
        if ($month_id !== null || $all_id !== null) {
            $_html_months .= ' id="' . smarty_function_escape_special_chars($month_id !== null ?
                                                                                ($month_id ? $month_id : $_name) :
                                                                                ($all_id ? ($all_id . $_name) :
                                                                                    $_name)) . '"';
        }
        if ($month_size) {
            $_html_months .= ' size="' . $month_size . '"';
        }
        $_html_months .= $_extra . $extra_attrs . '>' . $option_separator;

        if (isset($month_empty) || isset($all_empty)) {
            $_html_months .= '<option value="">' . (isset($month_empty) ? $month_empty : $all_empty) . '</option>' .
                             $option_separator;
        }

        for ($i = 1; $i <= 12; $i ++) {
            $_val = sprintf('%02d', $i);
            $_text = isset($month_names) ? smarty_function_escape_special_chars($month_names[ $i ]) :
                ($month_format === '%m' ? $_val : strftime($month_format, $_month_timestamps[ $i ]));
            $_value = $month_value_format === '%m' ? $_val : strftime($month_value_format, $_month_timestamps[ $i ]);
            $_html_months .= '<option value="' . $_value . '"' . ($_val == $_month ? ' selected="selected"' : '') .
                             '>' . $_text . '</option>' . $option_separator;
        }

        $_html_months .= '</select>';
    }

    // generate day <select> or <input>
    if ($display_days) {
        $_extra = '';
        $_name = $field_array ? ($field_array . '[' . $prefix . 'Day]') : ($prefix . 'Day');
        if ($all_extra) {
            $_extra .= ' ' . $all_extra;
        }
        if ($day_extra) {
            $_extra .= ' ' . $day_extra;
        }

        $_html_days = '<select name="' . $_name . '"';
        if ($day_id !== null || $all_id !== null) {
            $_html_days .= ' id="' .
                           smarty_function_escape_special_chars($day_id !== null ? ($day_id ? $day_id : $_name) :
                                                                    ($all_id ? ($all_id . $_name) : $_name)) . '"';
        }
        if ($day_size) {
            $_html_days .= ' size="' . $day_size . '"';
        }
        $_html_days .= $_extra . $extra_attrs . '>' . $option_separator;

        if (isset($day_empty) || isset($all_empty)) {
            $_html_days .= '<option value="">' . (isset($day_empty) ? $day_empty : $all_empty) . '</option>' .
                           $option_separator;
        }

        for ($i = 1; $i <= 31; $i ++) {
            $_val = sprintf('%02d', $i);
            $_text = $day_format === '%02d' ? $_val : sprintf($day_format, $i);
            $_value = $day_value_format === '%02d' ? $_val : sprintf($day_value_format, $i);
            $_html_days .= '<option value="' . $_value . '"' . ($_val == $_day ? ' selected="selected"' : '') . '>' .
                           $_text . '</option>' . $option_separator;
        }

        $_html_days .= '</select>';
    }

    // order the fields for output
    $_html = '';
    for ($i = 0; $i <= 2; $i ++) {
        switch ($field_order[ $i ]) {
            case 'Y':
            case 'y':
                if (isset($_html_years)) {
                    if ($_html) {
                        $_html .= $field_separator;
                    }
                    $_html .= $_html_years;
                }
                break;

            case 'm':
            case 'M':
                if (isset($_html_months)) {
                    if ($_html) {
                        $_html .= $field_separator;
                    }
                    $_html .= $_html_months;
                }
                break;

            case 'd':
            case 'D':
                if (isset($_html_days)) {
                    if ($_html) {
                        $_html .= $field_separator;
                    }
                    $_html .= $_html_days;
                }
                break;
        }
    }

    return $_html;
}


================================================
FILE: Extend/Package/smarty/plugins/function.html_select_time.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsFunction
 */

/**
 * Smarty {html_select_time} function plugin
 * Type:     function
 * Name:     html_select_time
 * Purpose:  Prints the dropdowns for time selection
 *
 * @link     http://www.smarty.net/manual/en/language.function.html.select.time.php {html_select_time}
 *           (Smarty online manual)
 * @author   Roberto Berto <roberto@berto.net>
 * @author   Monte Ohrt <monte AT ohrt DOT com>
 *
 * @param array                     $params parameters
 *
 * @param \Smarty_Internal_Template $template
 *
 * @return string
 * @uses     smarty_make_timestamp()
 */
function smarty_function_html_select_time($params, Smarty_Internal_Template $template)
{
    if (!isset($template->smarty->_cache[ '_required_sesc' ])) {
        require_once(SMARTY_PLUGINS_DIR . 'shared.escape_special_chars.php');
        $template->smarty->_cache[ '_required_sesc' ] = true;
    }
    if (!isset($template->smarty->_cache[ '_required_smt' ])) {
        require_once(SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php');
        $template->smarty->_cache[ '_required_smt' ] = true;
    }
    $prefix = 'Time_';
    $field_array = null;
    $field_separator = "\n";
    $option_separator = "\n";
    $time = null;

    $display_hours = true;
    $display_minutes = true;
    $display_seconds = true;
    $display_meridian = true;

    $hour_format = '%02d';
    $hour_value_format = '%02d';
    $minute_format = '%02d';
    $minute_value_format = '%02d';
    $second_format = '%02d';
    $second_value_format = '%02d';

    $hour_size = null;
    $minute_size = null;
    $second_size = null;
    $meridian_size = null;

    $all_empty = null;
    $hour_empty = null;
    $minute_empty = null;
    $second_empty = null;
    $meridian_empty = null;

    $all_id = null;
    $hour_id = null;
    $minute_id = null;
    $second_id = null;
    $meridian_id = null;

    $use_24_hours = true;
    $minute_interval = 1;
    $second_interval = 1;

    $extra_attrs = '';
    $all_extra = null;
    $hour_extra = null;
    $minute_extra = null;
    $second_extra = null;
    $meridian_extra = null;

    foreach ($params as $_key => $_value) {
        switch ($_key) {
            case 'time':
                if (!is_array($_value) && $_value !== null) {
                    $time = smarty_make_timestamp($_value);
                }
                break;

            case 'prefix':
            case 'field_array':

            case 'field_separator':
            case 'option_separator':

            case 'all_extra':
            case 'hour_extra':
            case 'minute_extra':
            case 'second_extra':
            case 'meridian_extra':

            case 'all_empty':
            case 'hour_empty':
            case 'minute_empty':
            case 'second_empty':
            case 'meridian_empty':

            case 'all_id':
            case 'hour_id':
            case 'minute_id':
            case 'second_id':
            case 'meridian_id':

            case 'hour_format':
            case 'hour_value_format':
            case 'minute_format':
            case 'minute_value_format':
            case 'second_format':
            case 'second_value_format':
                $$_key = (string) $_value;
                break;

            case 'display_hours':
            case 'display_minutes':
            case 'display_seconds':
            case 'display_meridian':
            case 'use_24_hours':
                $$_key = (bool) $_value;
                break;

            case 'minute_interval':
            case 'second_interval':

            case 'hour_size':
            case 'minute_size':
            case 'second_size':
            case 'meridian_size':
                $$_key = (int) $_value;
                break;

            default:
                if (!is_array($_value)) {
                    $extra_attrs .= ' ' . $_key . '="' . smarty_function_escape_special_chars($_value) . '"';
                } else {
                    trigger_error("html_select_date: extra attribute '{$_key}' cannot be an array", E_USER_NOTICE);
                }
                break;
        }
    }

    if (isset($params[ 'time' ]) && is_array($params[ 'time' ])) {
        if (isset($params[ 'time' ][ $prefix . 'Hour' ])) {
            // $_REQUEST[$field_array] given
            foreach (array('H' => 'Hour',
                           'i' => 'Minute',
                           's' => 'Second') as $_elementKey => $_elementName) {
                $_variableName = '_' . strtolower($_elementName);
                $$_variableName =
                    isset($params[ 'time' ][ $prefix . $_elementName ]) ? $params[ 'time' ][ $prefix . $_elementName ] :
                        date($_elementKey);
            }
            $_meridian =
                isset($params[ 'time' ][ $prefix . 'Meridian' ]) ? (' ' . $params[ 'time' ][ $prefix . 'Meridian' ]) :
                    '';
            $time = strtotime($_hour . ':' . $_minute . ':' . $_second . $_meridian);
            list($_hour, $_minute, $_second) = $time = explode('-', date('H-i-s', $time));
        } elseif (isset($params[ 'time' ][ $field_array ][ $prefix . 'Hour' ])) {
            // $_REQUEST given
            foreach (array('H' => 'Hour',
                           'i' => 'Minute',
                           's' => 'Second') as $_elementKey => $_elementName) {
                $_variableName = '_' . strtolower($_elementName);
                $$_variableName = isset($params[ 'time' ][ $field_array ][ $prefix . $_elementName ]) ?
                    $params[ 'time' ][ $field_array ][ $prefix . $_elementName ] : date($_elementKey);
            }
            $_meridian = isset($params[ 'time' ][ $field_array ][ $prefix . 'Meridian' ]) ?
                (' ' . $params[ 'time' ][ $field_array ][ $prefix . 'Meridian' ]) : '';
            $time = strtotime($_hour . ':' . $_minute . ':' . $_second . $_meridian);
            list($_hour, $_minute, $_second) = $time = explode('-', date('H-i-s', $time));
        } else {
            // no date found, use NOW
            list($_year, $_month, $_day) = $time = explode('-', date('Y-m-d'));
        }
    } elseif ($time === null) {
        if (array_key_exists('time', $params)) {
            $_hour = $_minute = $_second = $time = null;
        } else {
            list($_hour, $_minute, $_second) = $time = explode('-', date('H-i-s'));
        }
    } else {
        list($_hour, $_minute, $_second) = $time = explode('-', date('H-i-s', $time));
    }

    // generate hour <select>
    if ($display_hours) {
        $_html_hours = '';
        $_extra = '';
        $_name = $field_array ? ($field_array . '[' . $prefix . 'Hour]') : ($prefix . 'Hour');
        if ($all_extra) {
            $_extra .= ' ' . $all_extra;
        }
        if ($hour_extra) {
            $_extra .= ' ' . $hour_extra;
        }

        $_html_hours = '<select name="' . $_name . '"';
        if ($hour_id !== null || $all_id !== null) {
            $_html_hours .= ' id="' .
                            smarty_function_escape_special_chars($hour_id !== null ? ($hour_id ? $hour_id : $_name) :
                                                                     ($all_id ? ($all_id . $_name) : $_name)) . '"';
        }
        if ($hour_size) {
            $_html_hours .= ' size="' . $hour_size . '"';
        }
        $_html_hours .= $_extra . $extra_attrs . '>' . $option_separator;

        if (isset($hour_empty) || isset($all_empty)) {
            $_html_hours .= '<option value="">' . (isset($hour_empty) ? $hour_empty : $all_empty) . '</option>' .
                            $option_separator;
        }

        $start = $use_24_hours ? 0 : 1;
        $end = $use_24_hours ? 23 : 12;
        for ($i = $start; $i <= $end; $i ++) {
            $_val = sprintf('%02d', $i);
            $_text = $hour_format === '%02d' ? $_val : sprintf($hour_format, $i);
            $_value = $hour_value_format === '%02d' ? $_val : sprintf($hour_value_format, $i);

            if (!$use_24_hours) {
                $_hour12 = $_hour == 0 ? 12 : ($_hour <= 12 ? $_hour : $_hour - 12);
            }

            $selected = $_hour !== null ? ($use_24_hours ? $_hour == $_val : $_hour12 == $_val) : null;
            $_html_hours .= '<option value="' . $_value . '"' . ($selected ? ' selected="selected"' : '') . '>' .
                            $_text . '</option>' . $option_separator;
        }

        $_html_hours .= '</select>';
    }

    // generate minute <select>
    if ($display_minutes) {
        $_html_minutes = '';
        $_extra = '';
        $_name = $field_array ? ($field_array . '[' . $prefix . 'Minute]') : ($prefix . 'Minute');
        if ($all_extra) {
            $_extra .= ' ' . $all_extra;
        }
        if ($minute_extra) {
            $_extra .= ' ' . $minute_extra;
        }

        $_html_minutes = '<select name="' . $_name . '"';
        if ($minute_id !== null || $all_id !== null) {
            $_html_minutes .= ' id="' . smarty_function_escape_special_chars($minute_id !== null ?
                                                                                 ($minute_id ? $minute_id : $_name) :
                                                                                 ($all_id ? ($all_id . $_name) :
                                                                                     $_name)) . '"';
        }
        if ($minute_size) {
            $_html_minutes .= ' size="' . $minute_size . '"';
        }
        $_html_minutes .= $_extra . $extra_attrs . '>' . $option_separator;

        if (isset($minute_empty) || isset($all_empty)) {
            $_html_minutes .= '<option value="">' . (isset($minute_empty) ? $minute_empty : $all_empty) . '</option>' .
                              $option_separator;
        }

        $selected = $_minute !== null ? ($_minute - $_minute % $minute_interval) : null;
        for ($i = 0; $i <= 59; $i += $minute_interval) {
            $_val = sprintf('%02d', $i);
            $_text = $minute_format === '%02d' ? $_val : sprintf($minute_format, $i);
            $_value = $minute_value_format === '%02d' ? $_val : sprintf($minute_value_format, $i);
            $_html_minutes .= '<option value="' . $_value . '"' . ($selected === $i ? ' selected="selected"' : '') .
                              '>' . $_text . '</option>' . $option_separator;
        }

        $_html_minutes .= '</select>';
    }

    // generate second <select>
    if ($display_seconds) {
        $_html_seconds = '';
        $_extra = '';
        $_name = $field_array ? ($field_array . '[' . $prefix . 'Second]') : ($prefix . 'Second');
        if ($all_extra) {
            $_extra .= ' ' . $all_extra;
        }
        if ($second_extra) {
            $_extra .= ' ' . $second_extra;
        }

        $_html_seconds = '<select name="' . $_name . '"';
        if ($second_id !== null || $all_id !== null) {
            $_html_seconds .= ' id="' . smarty_function_escape_special_chars($second_id !== null ?
                                                                                 ($second_id ? $second_id : $_name) :
                                                                                 ($all_id ? ($all_id . $_name) :
                                                                                     $_name)) . '"';
        }
        if ($second_size) {
            $_html_seconds .= ' size="' . $second_size . '"';
        }
        $_html_seconds .= $_extra . $extra_attrs . '>' . $option_separator;

        if (isset($second_empty) || isset($all_empty)) {
            $_html_seconds .= '<option value="">' . (isset($second_empty) ? $second_empty : $all_empty) . '</option>' .
                              $option_separator;
        }

        $selected = $_second !== null ? ($_second - $_second % $second_interval) : null;
        for ($i = 0; $i <= 59; $i += $second_interval) {
            $_val = sprintf('%02d', $i);
            $_text = $second_format === '%02d' ? $_val : sprintf($second_format, $i);
            $_value = $second_value_format === '%02d' ? $_val : sprintf($second_value_format, $i);
            $_html_seconds .= '<option value="' . $_value . '"' . ($selected === $i ? ' selected="selected"' : '') .
                              '>' . $_text . '</option>' . $option_separator;
        }

        $_html_seconds .= '</select>';
    }

    // generate meridian <select>
    if ($display_meridian && !$use_24_hours) {
        $_html_meridian = '';
        $_extra = '';
        $_name = $field_array ? ($field_array . '[' . $prefix . 'Meridian]') : ($prefix . 'Meridian');
        if ($all_extra) {
            $_extra .= ' ' . $all_extra;
        }
        if ($meridian_extra) {
            $_extra .= ' ' . $meridian_extra;
        }

        $_html_meridian = '<select name="' . $_name . '"';
        if ($meridian_id !== null || $all_id !== null) {
            $_html_meridian .= ' id="' . smarty_function_escape_special_chars($meridian_id !== null ?
                                                                                  ($meridian_id ? $meridian_id :
                                                                                      $_name) :
                                                                                  ($all_id ? ($all_id . $_name) :
                                                                                      $_name)) . '"';
        }
        if ($meridian_size) {
            $_html_meridian .= ' size="' . $meridian_size . '"';
        }
        $_html_meridian .= $_extra . $extra_attrs . '>' . $option_separator;

        if (isset($meridian_empty) || isset($all_empty)) {
            $_html_meridian .= '<option value="">' . (isset($meridian_empty) ? $meridian_empty : $all_empty) .
                               '</option>' . $option_separator;
        }

        $_html_meridian .= '<option value="am"' . ($_hour > 0 && $_hour < 12 ? ' selected="selected"' : '') .
                           '>AM</option>' . $option_separator . '<option value="pm"' .
                           ($_hour < 12 ? '' : ' selected="selected"') . '>PM</option>' . $option_separator .
                           '</select>';
    }

    $_html = '';
    foreach (array('_html_hours',
                   '_html_minutes',
                   '_html_seconds',
                   '_html_meridian') as $k) {
        if (isset($$k)) {
            if ($_html) {
                $_html .= $field_separator;
            }
            $_html .= $$k;
        }
    }

    return $_html;
}


================================================
FILE: Extend/Package/smarty/plugins/function.html_table.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsFunction
 */

/**
 * Smarty {html_table} function plugin
 * Type:     function
 * Name:     html_table
 * Date:     Feb 17, 2003
 * Purpose:  make an html table from an array of data
 * Params:
 *
 * - loop       - array to loop through
 * - cols       - number of columns, comma separated list of column names
 *                or array of column names
 * - rows       - number of rows
 * - table_attr - table attributes
 * - th_attr    - table heading attributes (arrays are cycled)
 * - tr_attr    - table row attributes (arrays are cycled)
 * - td_attr    - table cell attributes (arrays are cycled)
 * - trailpad   - value to pad trailing cells with
 * - caption    - text for caption element
 * - vdir       - vertical direction (default: "down", means top-to-bottom)
 * - hdir       - horizontal direction (default: "right", means left-to-right)
 * - inner      - inner loop (default "cols": print $loop line by line,
 *                $loop will be printed column by column otherwise)
 *
 * Examples:
 *
 * {table loop=$data}
 * {table loop=$data cols=4 tr_attr='"bgcolor=red"'}
 * {table loop=$data cols="first,second,third" tr_attr=$colors}
 *
 *
 * @author   Monte Ohrt <monte at ohrt dot com>
 * @author   credit to Messju Mohr <messju at lammfellpuschen dot de>
 * @author   credit to boots <boots dot smarty at yahoo dot com>
 * @version  1.1
 * @link     http://www.smarty.net/manual/en/language.function.html.table.php {html_table}
 *           (Smarty online manual)
 *
 * @param array $params parameters
 *
 * @return string
 */
function smarty_function_html_table($params)
{
    $table_attr = 'border="1"';
    $tr_attr = '';
    $th_attr = '';
    $td_attr = '';
    $cols = $cols_count = 3;
    $rows = 3;
    $trailpad = '&nbsp;';
    $vdir = 'down';
    $hdir = 'right';
    $inner = 'cols';
    $caption = '';
    $loop = null;

    if (!isset($params[ 'loop' ])) {
        trigger_error("html_table: missing 'loop' parameter", E_USER_WARNING);

        return;
    }

    foreach ($params as $_key => $_value) {
        switch ($_key) {
            case 'loop':
                $$_key = (array) $_value;
                break;

            case 'cols':
                if (is_array($_value) && !empty($_value)) {
                    $cols = $_value;
                    $cols_count = count($_value);
                } elseif (!is_numeric($_value) && is_string($_value) && !empty($_value)) {
                    $cols = explode(',', $_value);
                    $cols_count = count($cols);
                } elseif (!empty($_value)) {
                    $cols_count = (int) $_value;
                } else {
                    $cols_count = $cols;
                }
                break;

            case 'rows':
                $$_key = (int) $_value;
                break;

            case 'table_attr':
            case 'trailpad':
            case 'hdir':
            case 'vdir':
            case 'inner':
            case 'caption':
                $$_key = (string) $_value;
                break;

            case 'tr_attr':
            case 'td_attr':
            case 'th_attr':
                $$_key = $_value;
                break;
        }
    }

    $loop_count = count($loop);
    if (empty($params[ 'rows' ])) {
        /* no rows specified */
        $rows = ceil($loop_count / $cols_count);
    } elseif (empty($params[ 'cols' ])) {
        if (!empty($params[ 'rows' ])) {
            /* no cols specified, but rows */
            $cols_count = ceil($loop_count / $rows);
        }
    }

    $output = "<table $table_attr>\n";

    if (!empty($caption)) {
        $output .= '<caption>' . $caption . "</caption>\n";
    }

    if (is_array($cols)) {
        $cols = ($hdir === 'right') ? $cols : array_reverse($cols);
        $output .= "<thead><tr>\n";

        for ($r = 0; $r < $cols_count; $r ++) {
            $output .= '<th' . smarty_function_html_table_cycle('th', $th_attr, $r) . '>';
            $output .= $cols[ $r ];
            $output .= "</th>\n";
        }
        $output .= "</tr></thead>\n";
    }

    $output .= "<tbody>\n";
    for ($r = 0; $r < $rows; $r ++) {
        $output .= "<tr" . smarty_function_html_table_cycle('tr', $tr_attr, $r) . ">\n";
        $rx = ($vdir === 'down') ? $r * $cols_count : ($rows - 1 - $r) * $cols_count;

        for ($c = 0; $c < $cols_count; $c ++) {
            $x = ($hdir === 'right') ? $rx + $c : $rx + $cols_count - 1 - $c;
            if ($inner !== 'cols') {
                /* shuffle x to loop over rows*/
                $x = floor($x / $cols_count) + ($x % $cols_count) * $rows;
            }

            if ($x < $loop_count) {
                $output .= "<td" . smarty_function_html_table_cycle('td', $td_attr, $c) . ">" . $loop[ $x ] . "</td>\n";
            } else {
                $output .= "<td" . smarty_function_html_table_cycle('td', $td_attr, $c) . ">$trailpad</td>\n";
            }
        }
        $output .= "</tr>\n";
    }
    $output .= "</tbody>\n";
    $output .= "</table>\n";

    return $output;
}
/**
 * @param $name
 * @param $var
 * @param $no
 *
 * @return string
 */
function smarty_function_html_table_cycle($name, $var, $no)
{
    if (!is_array($var)) {
        $ret = $var;
    } else {
        $ret = $var[ $no % count($var) ];
    }

    return ($ret) ? ' ' . $ret : '';
}


================================================
FILE: Extend/Package/smarty/plugins/function.mailto.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsFunction
 */

/**
 * Smarty {mailto} function plugin
 * Type:     function
 * Name:     mailto
 * Date:     May 21, 2002
 * Purpose:  automate mailto address link creation, and optionally encode them.
 * Params:
 *
 * - address    - (required) - e-mail address
 * - text       - (optional) - text to display, default is address
 * - encode     - (optional) - can be one of:
 *                             * none : no encoding (default)
 *                             * javascript : encode with javascript
 *                             * javascript_charcode : encode with javascript charcode
 *                             * hex : encode with hexadecimal (no javascript)
 * - cc         - (optional) - address(es) to carbon copy
 * - bcc        - (optional) - address(es) to blind carbon copy
 * - subject    - (optional) - e-mail subject
 * - newsgroups - (optional) - newsgroup(s) to post to
 * - followupto - (optional) - address(es) to follow up to
 * - extra      - (optional) - extra tags for the href link
 *
 * Examples:
 *
 * {mailto address="me@domain.com"}
 * {mailto address="me@domain.com" encode="javascript"}
 * {mailto address="me@domain.com" encode="hex"}
 * {mailto address="me@domain.com" subject="Hello to you!"}
 * {mailto address="me@domain.com" cc="you@domain.com,they@domain.com"}
 * {mailto address="me@domain.com" extra='class="mailto"'}
 *
 *
 * @link     http://www.smarty.net/manual/en/language.function.mailto.php {mailto}
 *           (Smarty online manual)
 * @version  1.2
 * @author   Monte Ohrt <monte at ohrt dot com>
 * @author   credits to Jason Sweat (added cc, bcc and subject functionality)
 *
 * @param array $params parameters
 *
 * @return string
 */
function smarty_function_mailto($params)
{
    static $_allowed_encoding =
        array('javascript' => true, 'javascript_charcode' => true, 'hex' => true, 'none' => true);
    $extra = '';

    if (empty($params[ 'address' ])) {
        trigger_error("mailto: missing 'address' parameter", E_USER_WARNING);

        return;
    } else {
        $address = $params[ 'address' ];
    }

    $text = $address;
    // netscape and mozilla do not decode %40 (@) in BCC field (bug?)
    // so, don't encode it.
    $search = array('%40', '%2C');
    $replace = array('@', ',');
    $mail_parms = array();
    foreach ($params as $var => $value) {
        switch ($var) {
            case 'cc':
            case 'bcc':
            case 'followupto':
                if (!empty($value)) {
                    $mail_parms[] = $var . '=' . str_replace($search, $replace, rawurlencode($value));
                }
                break;

            case 'subject':
            case 'newsgroups':
                $mail_parms[] = $var . '=' . rawurlencode($value);
                break;

            case 'extra':
            case 'text':
                $$var = $value;

            default:
        }
    }

    if ($mail_parms) {
        $address .= '?' . join('&', $mail_parms);
    }

    $encode = (empty($params[ 'encode' ])) ? 'none' : $params[ 'encode' ];
    if (!isset($_allowed_encoding[ $encode ])) {
        trigger_error("mailto: 'encode' parameter must be none, javascript, javascript_charcode or hex",
                      E_USER_WARNING);

        return;
    }
    // FIXME: (rodneyrehm) document.write() excues me what? 1998 has passed!
    if ($encode === 'javascript') {
        $string = 'document.write(\'<a href="mailto:' . $address . '" ' . $extra . '>' . $text . '</a>\');';

        $js_encode = '';
        for ($x = 0, $_length = strlen($string); $x < $_length; $x ++) {
            $js_encode .= '%' . bin2hex($string[ $x ]);
        }

        return '<script type="text/javascript">eval(unescape(\'' . $js_encode . '\'))</script>';
    } elseif ($encode === 'javascript_charcode') {
        $string = '<a href="mailto:' . $address . '" ' . $extra . '>' . $text . '</a>';

        for ($x = 0, $y = strlen($string); $x < $y; $x ++) {
            $ord[] = ord($string[ $x ]);
        }

        $_ret = "<script type=\"text/javascript\" language=\"javascript\">\n" . "{document.write(String.fromCharCode(" .
                implode(',', $ord) . "))" . "}\n" . "</script>\n";

        return $_ret;
    } elseif ($encode === 'hex') {
        preg_match('!^(.*)(\?.*)$!', $address, $match);
        if (!empty($match[ 2 ])) {
            trigger_error("mailto: hex encoding does not work with extra attributes. Try javascript.", E_USER_WARNING);

            return;
        }
        $address_encode = '';
        for ($x = 0, $_length = strlen($address); $x < $_length; $x ++) {
            if (preg_match('!\w!' . Smarty::$_UTF8_MODIFIER, $address[ $x ])) {
                $address_encode .= '%' . bin2hex($address[ $x ]);
            } else {
                $address_encode .= $address[ $x ];
            }
        }
        $text_encode = '';
        for ($x = 0, $_length = strlen($text); $x < $_length; $x ++) {
            $text_encode .= '&#x' . bin2hex($text[ $x ]) . ';';
        }

        $mailto = "&#109;&#97;&#105;&#108;&#116;&#111;&#58;";

        return '<a href="' . $mailto . $address_encode . '" ' . $extra . '>' . $text_encode . '</a>';
    } else {
        // no encoding
        return '<a href="mailto:' . $address . '" ' . $extra . '>' . $text . '</a>';
    }
}


================================================
FILE: Extend/Package/smarty/plugins/function.math.php
================================================
<?php
/**
 * Smarty plugin
 * This plugin is only for Smarty2 BC
 *
 * @package    Smarty
 * @subpackage PluginsFunction
 */

/**
 * Smarty {math} function plugin
 * Type:     function
 * Name:     math
 * Purpose:  handle math computations in template
 *
 * @link     http://www.smarty.net/manual/en/language.function.math.php {math}
 *           (Smarty online manual)
 * @author   Monte Ohrt <monte at ohrt dot com>
 *
 * @param array                    $params   parameters
 * @param Smarty_Internal_Template $template template object
 *
 * @return string|null
 */
function smarty_function_math($params, $template)
{
    static $_allowed_funcs =
        array('int' => true, 'abs' => true, 'ceil' => true, 'cos' => true, 'exp' => true, 'floor' => true,
              'log' => true, 'log10' => true, 'max' => true, 'min' => true, 'pi' => true, 'pow' => true, 'rand' => true,
              'round' => true, 'sin' => true, 'sqrt' => true, 'srand' => true, 'tan' => true);
    // be sure equation parameter is present
    if (empty($params[ 'equation' ])) {
        trigger_error("math: missing equation parameter", E_USER_WARNING);

        return;
    }

    $equation = $params[ 'equation' ];

    // make sure parenthesis are balanced
    if (substr_count($equation, '(') !== substr_count($equation, ')')) {
        trigger_error("math: unbalanced parenthesis", E_USER_WARNING);

        return;
    }

    // disallow backticks
    if (strpos($equation, '`') !== false) {
        trigger_error("math: backtick character not allowed in equation", E_USER_WARNING);

        return;
    }

    // also disallow dollar signs
    if (strpos($equation, '$') !== false) {
        trigger_error("math: dollar signs not allowed in equation", E_USER_WARNING);

        return;
    }

    foreach ($params as $key => $val) {
        if ($key !== 'equation' && $key !== 'format' && $key !== 'assign') {
            // make sure value is not empty
            if (strlen($val) === 0) {
                trigger_error("math: parameter '{$key}' is empty", E_USER_WARNING);

                return;
            }
            if (!is_numeric($val)) {
                trigger_error("math: parameter '{$key}' is not numeric", E_USER_WARNING);

                return;
            }
        }
    }

    // match all vars in equation, make sure all are passed
    preg_match_all('!(?:0x[a-fA-F0-9]+)|([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)!', $equation, $match);

    foreach ($match[ 1 ] as $curr_var) {
        if ($curr_var && !isset($params[ $curr_var ]) && !isset($_allowed_funcs[ $curr_var ])) {
            trigger_error("math: function call '{$curr_var}' not allowed, or missing parameter '{$curr_var}'", E_USER_WARNING);

            return;
        }
    }

    foreach ($params as $key => $val) {
        if ($key !== 'equation' && $key !== 'format' && $key !== 'assign') {
            $equation = preg_replace("/\b$key\b/", " \$params['$key'] ", $equation);
        }
    }
    $smarty_math_result = null;
    eval("\$smarty_math_result = " . $equation . ";");

    if (empty($params[ 'format' ])) {
        if (empty($params[ 'assign' ])) {
            return $smarty_math_result;
        } else {
            $template->assign($params[ 'assign' ], $smarty_math_result);
        }
    } else {
        if (empty($params[ 'assign' ])) {
            printf($params[ 'format' ], $smarty_math_result);
        } else {
            $template->assign($params[ 'assign' ], sprintf($params[ 'format' ], $smarty_math_result));
        }
    }
}


================================================
FILE: Extend/Package/smarty/plugins/modifier.capitalize.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifier
 */

/**
 * Smarty capitalize modifier plugin
 * Type:     modifier
 * Name:     capitalize
 * Purpose:  capitalize words in the string
 * {@internal {$string|capitalize:true:true} is the fastest option for MBString enabled systems }}
 *
 * @param string  $string    string to capitalize
 * @param boolean $uc_digits also capitalize "x123" to "X123"
 * @param boolean $lc_rest   capitalize first letters, lowercase all following letters "aAa" to "Aaa"
 *
 * @return string capitalized string
 * @author Monte Ohrt <monte at ohrt dot com>
 * @author Rodney Rehm
 */
function smarty_modifier_capitalize($string, $uc_digits = false, $lc_rest = false)
{
    if (Smarty::$_MBSTRING) {
        if ($lc_rest) {
            // uppercase (including hyphenated words)
            $upper_string = mb_convert_case($string, MB_CASE_TITLE, Smarty::$_CHARSET);
        } else {
            // uppercase word breaks
            $upper_string = preg_replace_callback("!(^|[^\p{L}'])([\p{Ll}])!S" . Smarty::$_UTF8_MODIFIER,
                                                  'smarty_mod_cap_mbconvert_cb', $string);
        }
        // check uc_digits case
        if (!$uc_digits) {
            if (preg_match_all("!\b([\p{L}]*[\p{N}]+[\p{L}]*)\b!" . Smarty::$_UTF8_MODIFIER, $string, $matches,
                               PREG_OFFSET_CAPTURE)) {
                foreach ($matches[ 1 ] as $match) {
                    $upper_string =
                        substr_replace($upper_string, mb_strtolower($match[ 0 ], Smarty::$_CHARSET), $match[ 1 ],
                                       strlen($match[ 0 ]));
                }
            }
        }
        $upper_string =
            preg_replace_callback("!((^|\s)['\"])(\w)!" . Smarty::$_UTF8_MODIFIER, 'smarty_mod_cap_mbconvert2_cb',
                                  $upper_string);
        return $upper_string;
    }

    // lowercase first
    if ($lc_rest) {
        $string = strtolower($string);
    }
    // uppercase (including hyphenated words)
    $upper_string =
        preg_replace_callback("!(^|[^\p{L}'])([\p{Ll}])!S" . Smarty::$_UTF8_MODIFIER, 'smarty_mod_cap_ucfirst_cb',
                              $string);
    // check uc_digits case
    if (!$uc_digits) {
        if (preg_match_all("!\b([\p{L}]*[\p{N}]+[\p{L}]*)\b!" . Smarty::$_UTF8_MODIFIER, $string, $matches,
                           PREG_OFFSET_CAPTURE)) {
            foreach ($matches[ 1 ] as $match) {
                $upper_string =
                    substr_replace($upper_string, strtolower($match[ 0 ]), $match[ 1 ], strlen($match[ 0 ]));
            }
        }
    }
    $upper_string = preg_replace_callback("!((^|\s)['\"])(\w)!" . Smarty::$_UTF8_MODIFIER, 'smarty_mod_cap_ucfirst2_cb',
                                          $upper_string);
    return $upper_string;
}

/*
 *
 * Bug: create_function() use exhausts memory when used in long loops
 * Fix: use declared functions for callbacks instead of using create_function()
 * Note: This can be fixed using anonymous functions instead, but that requires PHP >= 5.3
 *
 * @author Kyle Renfrow
 */
/**
 * @param $matches
 *
 * @return string
 */
function smarty_mod_cap_mbconvert_cb($matches)
{
    return stripslashes($matches[ 1 ]) . mb_convert_case(stripslashes($matches[ 2 ]), MB_CASE_UPPER, Smarty::$_CHARSET);
}
/**
 * @param $matches
 *
 * @return string
 */
function smarty_mod_cap_mbconvert2_cb($matches)
{
    return stripslashes($matches[ 1 ]) . mb_convert_case(stripslashes($matches[ 3 ]), MB_CASE_UPPER, Smarty::$_CHARSET);
}
/**
 * @param $matches
 *
 * @return string
 */
function smarty_mod_cap_ucfirst_cb($matches)
{
    return stripslashes($matches[ 1 ]) . ucfirst(stripslashes($matches[ 2 ]));
}
/**
 * @param $matches
 *
 * @return string
 */
function smarty_mod_cap_ucfirst2_cb($matches)
{
    return stripslashes($matches[ 1 ]) . ucfirst(stripslashes($matches[ 3 ]));
}


================================================
FILE: Extend/Package/smarty/plugins/modifier.date_format.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifier
 */

/**
 * Smarty date_format modifier plugin
 * Type:     modifier
 * Name:     date_format
 * Purpose:  format datestamps via strftime
 * Input:
 *          - string: input date string
 *          - format: strftime format for output
 *          - default_date: default date if $string is empty
 *
 * @link   http://www.smarty.net/manual/en/language.modifier.date.format.php date_format (Smarty online manual)
 * @author Monte Ohrt <monte at ohrt dot com>
 *
 * @param string $string       input date string
 * @param string $format       strftime format for output
 * @param string $default_date default date if $string is empty
 * @param string $formatter    either 'strftime' or 'auto'
 *
 * @return string |void
 * @uses   smarty_make_timestamp()
 */
function smarty_modifier_date_format($string, $format = null, $default_date = '', $formatter = 'auto')
{
    if ($format === null) {
        $format = Smarty::$_DATE_FORMAT;
    }
    /**
     * require_once the {@link shared.make_timestamp.php} plugin
     */
    static $is_loaded = false;
    if (!$is_loaded) {
        if (!is_callable('smarty_make_timestamp')) {
            require_once(SMARTY_PLUGINS_DIR . 'shared.make_timestamp.php');
        }
        $is_loaded = true;
    }
    if ($string !== '' && $string !== '0000-00-00' && $string !== '0000-00-00 00:00:00') {
        $timestamp = smarty_make_timestamp($string);
    } elseif ($default_date !== '') {
        $timestamp = smarty_make_timestamp($default_date);
    } else {
        return;
    }
    if ($formatter === 'strftime' || ($formatter === 'auto' && strpos($format, '%') !== false)) {
        if (Smarty::$_IS_WINDOWS) {
            $_win_from = array('%D',
                               '%h',
                               '%n',
                               '%r',
                               '%R',
                               '%t',
                               '%T');
            $_win_to = array('%m/%d/%y',
                             '%b',
                             "\n",
                             '%I:%M:%S %p',
                             '%H:%M',
                             "\t",
                             '%H:%M:%S');
            if (strpos($format, '%e') !== false) {
                $_win_from[] = '%e';
                $_win_to[] = sprintf('%\' 2d', date('j', $timestamp));
            }
            if (strpos($format, '%l') !== false) {
                $_win_from[] = '%l';
                $_win_to[] = sprintf('%\' 2d', date('h', $timestamp));
            }
            $format = str_replace($_win_from, $_win_to, $format);
        }

        return strftime($format, $timestamp);
    } else {
        return date($format, $timestamp);
    }
}


================================================
FILE: Extend/Package/smarty/plugins/modifier.debug_print_var.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage Debug
 */

/**
 * Smarty debug_print_var modifier plugin
 * Type:     modifier
 * Name:     debug_print_var
 * Purpose:  formats variable contents for display in the console
 *
 * @author Monte Ohrt <monte at ohrt dot com>
 *
 * @param array|object $var     variable to be formatted
 * @param int          $max     maximum recursion depth if $var is an array or object
 * @param int          $length  maximum string length if $var is a string
 * @param int          $depth   actual recursion depth
 * @param array        $objects processed objects in actual depth to prevent recursive object processing
 *
 * @return string
 */
function smarty_modifier_debug_print_var($var, $max = 10, $length = 40, $depth = 0, $objects = array())
{
    $_replace = array("\n" => '\n', "\r" => '\r', "\t" => '\t');
    switch (gettype($var)) {
        case 'array' :
            $results = '<b>Array (' . count($var) . ')</b>';
            if ($depth === $max) {
                break;
            }
            foreach ($var as $curr_key => $curr_val) {
                $results .= '<br>' . str_repeat('&nbsp;', $depth * 2) . '<b>' . strtr($curr_key, $_replace) .
                            '</b> =&gt; ' .
                            smarty_modifier_debug_print_var($curr_val, $max, $length, ++ $depth, $objects);
                $depth --;
            }
            break;

        case 'object' :
            $object_vars = get_object_vars($var);
            $results = '<b>' . get_class($var) . ' Object (' . count($object_vars) . ')</b>';
            if (in_array($var, $objects)) {
                $results .= ' called recursive';
                break;
            }
            if ($depth === $max) {
                break;
            }
            $objects[] = $var;
            foreach ($object_vars as $curr_key => $curr_val) {
                $results .= '<br>' . str_repeat('&nbsp;', $depth * 2) . '<b> -&gt;' . strtr($curr_key, $_replace) .
                            '</b> = ' . smarty_modifier_debug_print_var($curr_val, $max, $length, ++ $depth, $objects);
                $depth --;
            }
            break;

        case 'boolean' :
        case 'NULL' :
        case 'resource' :
            if (true === $var) {
                $results = 'true';
            } elseif (false === $var) {
                $results = 'false';
            } elseif (null === $var) {
                $results = 'null';
            } else {
                $results = htmlspecialchars((string) $var);
            }
            $results = '<i>' . $results . '</i>';
            break;

        case 'integer' :
        case 'float' :
            $results = htmlspecialchars((string) $var);
            break;

        case 'string' :
            $results = strtr($var, $_replace);
            if (Smarty::$_MBSTRING) {
                if (mb_strlen($var, Smarty::$_CHARSET) > $length) {
                    $results = mb_substr($var, 0, $length - 3, Smarty::$_CHARSET) . '...';
                }
            } else {
                if (isset($var[ $length ])) {
                    $results = substr($var, 0, $length - 3) . '...';
                }
            }

            $results = htmlspecialchars('"' . $results . '"', ENT_QUOTES, Smarty::$_CHARSET);
            break;

        case 'unknown type' :
        default :
            $results = strtr((string) $var, $_replace);
            if (Smarty::$_MBSTRING) {
                if (mb_strlen($results, Smarty::$_CHARSET) > $length) {
                    $results = mb_substr($results, 0, $length - 3, Smarty::$_CHARSET) . '...';
                }
            } else {
                if (strlen($results) > $length) {
                    $results = substr($results, 0, $length - 3) . '...';
                }
            }

            $results = htmlspecialchars($results, ENT_QUOTES, Smarty::$_CHARSET);
    }

    return $results;
}


================================================
FILE: Extend/Package/smarty/plugins/modifier.escape.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifier
 */

/**
 * Smarty escape modifier plugin
 * Type:     modifier
 * Name:     escape
 * Purpose:  escape string for output
 *
 * @link   http://www.smarty.net/docs/en/language.modifier.escape
 * @author Monte Ohrt <monte at ohrt dot com>
 *
 * @param string  $string        input string
 * @param string  $esc_type      escape type
 * @param string  $char_set      character set, used for htmlspecialchars() or htmlentities()
 * @param boolean $double_encode encode already encoded entitites again, used for htmlspecialchars() or htmlentities()
 *
 * @return string escaped input string
 */
function smarty_modifier_escape($string, $esc_type = 'html', $char_set = null, $double_encode = true)
{
    static $_double_encode = null;
    static $is_loaded1 = false;
    if ($_double_encode === null) {
        $_double_encode = version_compare(PHP_VERSION, '5.2.3', '>=');
    }

    if (!$char_set) {
        $char_set = Smarty::$_CHARSET;
    }

    switch ($esc_type) {
        case 'html':
            if ($_double_encode) {
                // php >=5.3.2 - go native
                return htmlspecialchars($string, ENT_QUOTES, $char_set, $double_encode);
            } else {
                if ($double_encode) {
                    // php <5.2.3 - only handle double encoding
                    return htmlspecialchars($string, ENT_QUOTES, $char_set);
                } else {
                    // php <5.2.3 - prevent double encoding
                    $string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
                    $string = htmlspecialchars($string, ENT_QUOTES, $char_set);
                    $string = str_replace(array('%%%SMARTY_START%%%',
                                                '%%%SMARTY_END%%%'), array('&',
                                                                           ';'), $string);

                    return $string;
                }
            }

        case 'htmlall':
            if (Smarty::$_MBSTRING) {
                // mb_convert_encoding ignores htmlspecialchars()
                if ($_double_encode) {
                    // php >=5.3.2 - go native
                    $string = htmlspecialchars($string, ENT_QUOTES, $char_set, $double_encode);
                } else {
                    if ($double_encode) {
                        // php <5.2.3 - only handle double encoding
                        $string = htmlspecialchars($string, ENT_QUOTES, $char_set);
                    } else {
                        // php <5.2.3 - prevent double encoding
                        $string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
                        $string = htmlspecialchars($string, ENT_QUOTES, $char_set);
                        $string =
                            str_replace(array('%%%SMARTY_START%%%',
                                              '%%%SMARTY_END%%%'), array('&',
                                                                         ';'), $string);

                        return $string;
                    }
                }

                // htmlentities() won't convert everything, so use mb_convert_encoding
                return mb_convert_encoding($string, 'HTML-ENTITIES', $char_set);
            }

            // no MBString fallback
            if ($_double_encode) {
                return htmlentities($string, ENT_QUOTES, $char_set, $double_encode);
            } else {
                if ($double_encode) {
                    return htmlentities($string, ENT_QUOTES, $char_set);
                } else {
                    $string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
                    $string = htmlentities($string, ENT_QUOTES, $char_set);
                    $string = str_replace(array('%%%SMARTY_START%%%',
                                                '%%%SMARTY_END%%%'), array('&',
                                                                           ';'), $string);

                    return $string;
                }
            }

        case 'url':
            return rawurlencode($string);

        case 'urlpathinfo':
            return str_replace('%2F', '/', rawurlencode($string));

        case 'quotes':
            // escape unescaped single quotes
            return preg_replace("%(?<!\\\\)'%", "\\'", $string);

        case 'hex':
            // escape every byte into hex
            // Note that the UTF-8 encoded character ä will be represented as %c3%a4
            $return = '';
            $_length = strlen($string);
            for ($x = 0; $x < $_length; $x ++) {
                $return .= '%' . bin2hex($string[ $x ]);
            }

            return $return;

        case 'hexentity':
            $return = '';
            if (Smarty::$_MBSTRING) {
                if (!$is_loaded1) {
                    if (!is_callable('smarty_mb_to_unicode')) {
                        require_once(SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php');
                        $is_loaded1 = true;
                    }
                }
                $return = '';
                foreach (smarty_mb_to_unicode($string, Smarty::$_CHARSET) as $unicode) {
                    $return .= '&#x' . strtoupper(dechex($unicode)) . ';';
                }

                return $return;
            }
            // no MBString fallback
            $_length = strlen($string);
            for ($x = 0; $x < $_length; $x ++) {
                $return .= '&#x' . bin2hex($string[ $x ]) . ';';
            }

            return $return;

        case 'decentity':
            $return = '';
            if (Smarty::$_MBSTRING) {
                if (!$is_loaded1) {
                    if (!is_callable('smarty_mb_to_unicode')) {
                        require_once(SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php');
                    }
                    $is_loaded1 = true;
                }
                $return = '';
                foreach (smarty_mb_to_unicode($string, Smarty::$_CHARSET) as $unicode) {
                    $return .= '&#' . $unicode . ';';
                }

                return $return;
            }
            // no MBString fallback
            $_length = strlen($string);
            for ($x = 0; $x < $_length; $x ++) {
                $return .= '&#' . ord($string[ $x ]) . ';';
            }

            return $return;

        case 'javascript':
            // escape quotes and backslashes, newlines, etc.
            return strtr($string, array('\\' => '\\\\',
                                        "'" => "\\'",
                                        '"' => '\\"',
                                        "\r" => '\\r',
                                        "\n" => '\\n',
                                        '</' => '<\/'));

        case 'mail':
            if (Smarty::$_MBSTRING) {
                if (!is_callable('smarty_mb_str_replace')) {
                    require_once(SMARTY_PLUGINS_DIR . 'shared.mb_str_replace.php');
                }
                return smarty_mb_str_replace(array('@',
                                                   '.'), array(' [AT] ',
                                                               ' [DOT] '), $string);
            }
            // no MBString fallback
            return str_replace(array('@',
                                     '.'), array(' [AT] ',
                                                 ' [DOT] '), $string);

        case 'nonstd':
            // escape non-standard chars, such as ms document quotes
            $return = '';
            if (Smarty::$_MBSTRING) {
                if (!$is_loaded1) {
                    if (!is_callable('smarty_mb_to_unicode')) {
                        require_once(SMARTY_PLUGINS_DIR . 'shared.mb_unicode.php');
                    }
                    $is_loaded1 = true;
                }
                foreach (smarty_mb_to_unicode($string, Smarty::$_CHARSET) as $unicode) {
                    if ($unicode >= 126) {
                        $return .= '&#' . $unicode . ';';
                    } else {
                        $return .= chr($unicode);
                    }
                }

                return $return;
            }

            $_length = strlen($string);
            for ($_i = 0; $_i < $_length; $_i ++) {
                $_ord = ord(substr($string, $_i, 1));
                // non-standard char, escape it
                if ($_ord >= 126) {
                    $return .= '&#' . $_ord . ';';
                } else {
                    $return .= substr($string, $_i, 1);
                }
            }

            return $return;

        default:
            return $string;
    }
}


================================================
FILE: Extend/Package/smarty/plugins/modifier.mb_wordwrap.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifier
 */
/**
 * Smarty wordwrap modifier plugin
 * Type:     modifier
 * Name:     mb_wordwrap
 * Purpose:  Wrap a string to a given number of characters
 *

 * @link   http://php.net/manual/en/function.wordwrap.php for similarity
 *
 * @param  string  $str   the string to wrap
 * @param  int     $width the width of the output
 * @param  string  $break the character used to break the line
 * @param  boolean $cut   ignored parameter, just for the sake of
 *
 * @return string  wrapped string
 * @author Rodney Rehm
 */
function smarty_modifier_mb_wordwrap($str, $width = 75, $break = "\n", $cut = false)
{
    // break words into tokens using white space as a delimiter
    $tokens = preg_split('!(\s)!S' . Smarty::$_UTF8_MODIFIER, $str, -1, PREG_SPLIT_NO_EMPTY + PREG_SPLIT_DELIM_CAPTURE);
    $length = 0;
    $t = '';
    $_previous = false;
    $_space = false;

    foreach ($tokens as $_token) {
        $token_length = mb_strlen($_token, Smarty::$_CHARSET);
        $_tokens = array($_token);
        if ($token_length > $width) {
            if ($cut) {
                $_tokens = preg_split('!(.{' . $width . '})!S' . Smarty::$_UTF8_MODIFIER,
                                      $_token,
                                      -1,
                                      PREG_SPLIT_NO_EMPTY + PREG_SPLIT_DELIM_CAPTURE);
            }
        }

        foreach ($_tokens as $token) {
            $_space = !!preg_match('!^\s$!S' . Smarty::$_UTF8_MODIFIER, $token);
            $token_length = mb_strlen($token, Smarty::$_CHARSET);
            $length += $token_length;

            if ($length > $width) {
                // remove space before inserted break
                if ($_previous) {
                    $t = mb_substr($t, 0, -1, Smarty::$_CHARSET);
                }

                if (!$_space) {
                    // add the break before the token
                    if (!empty($t)) {
                        $t .= $break;
                    }
                    $length = $token_length;
                }
            } else if ($token === "\n") {
                // hard break must reset counters
                $length = 0;
            }
            $_previous = $_space;
            // add the token
            $t .= $token;
        }
    }

    return $t;
}


================================================
FILE: Extend/Package/smarty/plugins/modifier.regex_replace.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifier
 */

/**
 * Smarty regex_replace modifier plugin
 * Type:     modifier
 * Name:     regex_replace
 * Purpose:  regular expression search/replace
 *
 * @link    http://smarty.php.net/manual/en/language.modifier.regex.replace.php
 *          regex_replace (Smarty online manual)
 * @author  Monte Ohrt <monte at ohrt dot com>
 *
 * @param string       $string  input string
 * @param string|array $search  regular expression(s) to search for
 * @param string|array $replace string(s) that should be replaced
 * @param int          $limit   the maximum number of replacements
 *
 * @return string
 */
function smarty_modifier_regex_replace($string, $search, $replace, $limit = - 1)
{
    if (is_array($search)) {
        foreach ($search as $idx => $s) {
            $search[ $idx ] = _smarty_regex_replace_check($s);
        }
    } else {
        $search = _smarty_regex_replace_check($search);
    }

    return preg_replace($search, $replace, $string, $limit);
}

/**
 * @param  string $search string(s) that should be replaced
 *
 * @return string
 * @ignore
 */
function _smarty_regex_replace_check($search)
{
    // null-byte injection detection
    // anything behind the first null-byte is ignored
    if (($pos = strpos($search, "\0")) !== false) {
        $search = substr($search, 0, $pos);
    }
    // remove eval-modifier from $search
    if (preg_match('!([a-zA-Z\s]+)$!s', $search, $match) && (strpos($match[ 1 ], 'e') !== false)) {
        $search = substr($search, 0, - strlen($match[ 1 ])) . preg_replace('![e\s]+!', '', $match[ 1 ]);
    }

    return $search;
}


================================================
FILE: Extend/Package/smarty/plugins/modifier.replace.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifier
 */

/**
 * Smarty replace modifier plugin
 * Type:     modifier
 * Name:     replace
 * Purpose:  simple search/replace
 *
 * @link   http://smarty.php.net/manual/en/language.modifier.replace.php replace (Smarty online manual)
 * @author Monte Ohrt <monte at ohrt dot com>
 * @author Uwe Tews
 *
 * @param string $string  input string
 * @param string $search  text to search for
 * @param string $replace replacement text
 *
 * @return string
 */
function smarty_modifier_replace($string, $search, $replace)
{
    static $is_loaded = false;
    if (Smarty::$_MBSTRING) {
        if (!$is_loaded) {
            if (!is_callable('smarty_mb_str_replace')) {
                require_once(SMARTY_PLUGINS_DIR . 'shared.mb_str_replace.php');
            }
            $is_loaded = true;
        }
         return smarty_mb_str_replace($search, $replace, $string);
    }

    return str_replace($search, $replace, $string);
}


================================================
FILE: Extend/Package/smarty/plugins/modifier.spacify.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifier
 */

/**
 * Smarty spacify modifier plugin
 * Type:     modifier
 * Name:     spacify
 * Purpose:  add spaces between characters in a string
 *
 * @link   http://smarty.php.net/manual/en/language.modifier.spacify.php spacify (Smarty online manual)
 * @author Monte Ohrt <monte at ohrt dot com>
 *
 * @param string $string       input string
 * @param string $spacify_char string to insert between characters.
 *
 * @return string
 */
function smarty_modifier_spacify($string, $spacify_char = ' ')
{
    // well… what about charsets besides latin and UTF-8?
    return implode($spacify_char, preg_split('//' . Smarty::$_UTF8_MODIFIER, $string, - 1, PREG_SPLIT_NO_EMPTY));
}


================================================
FILE: Extend/Package/smarty/plugins/modifier.truncate.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifier
 */

/**
 * Smarty truncate modifier plugin
 * Type:     modifier
 * Name:     truncate
 * Purpose:  Truncate a string to a certain length if necessary,
 *               optionally splitting in the middle of a word, and
 *               appending the $etc string or inserting $etc into the middle.
 *
 * @link   http://smarty.php.net/manual/en/language.modifier.truncate.php truncate (Smarty online manual)
 * @author Monte Ohrt <monte at ohrt dot com>
 *
 * @param string  $string      input string
 * @param integer $length      length of truncated text
 * @param string  $etc         end string
 * @param boolean $break_words truncate at word boundary
 * @param boolean $middle      truncate in the middle of text
 *
 * @return string truncated string
 */
function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false, $middle = false)
{
    if ($length === 0) {
        return '';
    }

    if (Smarty::$_MBSTRING) {
        if (mb_strlen($string, Smarty::$_CHARSET) > $length) {
            $length -= min($length, mb_strlen($etc, Smarty::$_CHARSET));
            if (!$break_words && !$middle) {
                $string = preg_replace('/\s+?(\S+)?$/' . Smarty::$_UTF8_MODIFIER, '',
                                       mb_substr($string, 0, $length + 1, Smarty::$_CHARSET));
            }
            if (!$middle) {
                return mb_substr($string, 0, $length, Smarty::$_CHARSET) . $etc;
            }

            return mb_substr($string, 0, $length / 2, Smarty::$_CHARSET) . $etc .
                   mb_substr($string, - $length / 2, $length, Smarty::$_CHARSET);
        }

        return $string;
    }

    // no MBString fallback
    if (isset($string[ $length ])) {
        $length -= min($length, strlen($etc));
        if (!$break_words && !$middle) {
            $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length + 1));
        }
        if (!$middle) {
            return substr($string, 0, $length) . $etc;
        }

        return substr($string, 0, $length / 2) . $etc . substr($string, - $length / 2);
    }

    return $string;
}


================================================
FILE: Extend/Package/smarty/plugins/modifiercompiler.cat.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifierCompiler
 */

/**
 * Smarty cat modifier plugin
 * Type:     modifier
 * Name:     cat
 * Date:     Feb 24, 2003
 * Purpose:  catenate a value to a variable
 * Input:    string to catenate
 * Example:  {$var|cat:"foo"}
 *
 * @link     http://smarty.php.net/manual/en/language.modifier.cat.php cat
 *           (Smarty online manual)
 * @author   Uwe Tews
 *
 * @param array $params parameters
 *
 * @return string with compiled code
 */
function smarty_modifiercompiler_cat($params)
{
    return '(' . implode(').(', $params) . ')';
}


================================================
FILE: Extend/Package/smarty/plugins/modifiercompiler.count_characters.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifierCompiler
 */

/**
 * Smarty count_characters modifier plugin
 * Type:     modifier
 * Name:     count_characters
 * Purpose:  count the number of characters in a text
 *
 * @link   http://www.smarty.net/manual/en/language.modifier.count.characters.php count_characters (Smarty online manual)
 * @author Uwe Tews
 *
 * @param array $params parameters
 *
 * @return string with compiled code
 */
function smarty_modifiercompiler_count_characters($params)
{
    if (!isset($params[ 1 ]) || $params[ 1 ] !== 'true') {
        return 'preg_match_all(\'/[^\s]/' . Smarty::$_UTF8_MODIFIER . '\',' . $params[ 0 ] . ', $tmp)';
    }
    if (Smarty::$_MBSTRING) {
        return 'mb_strlen(' . $params[ 0 ] . ', \'' . addslashes(Smarty::$_CHARSET) . '\')';
    }
    // no MBString fallback
    return 'strlen(' . $params[ 0 ] . ')';
}


================================================
FILE: Extend/Package/smarty/plugins/modifiercompiler.count_paragraphs.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifierCompiler
 */

/**
 * Smarty count_paragraphs modifier plugin
 * Type:     modifier
 * Name:     count_paragraphs
 * Purpose:  count the number of paragraphs in a text
 *
 * @link    http://www.smarty.net/manual/en/language.modifier.count.paragraphs.php
 *          count_paragraphs (Smarty online manual)
 * @author  Uwe Tews
 *
 * @param array $params parameters
 *
 * @return string with compiled code
 */
function smarty_modifiercompiler_count_paragraphs($params)
{
    // count \r or \n characters
    return '(preg_match_all(\'#[\r\n]+#\', ' . $params[ 0 ] . ', $tmp)+1)';
}


================================================
FILE: Extend/Package/smarty/plugins/modifiercompiler.count_sentences.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifierCompiler
 */

/**
 * Smarty count_sentences modifier plugin
 * Type:     modifier
 * Name:     count_sentences
 * Purpose:  count the number of sentences in a text
 *
 * @link    http://www.smarty.net/manual/en/language.modifier.count.paragraphs.php
 *          count_sentences (Smarty online manual)
 * @author  Uwe Tews
 *
 * @param array $params parameters
 *
 * @return string with compiled code
 */
function smarty_modifiercompiler_count_sentences($params)
{
    // find periods, question marks, exclamation marks with a word before but not after.
    return 'preg_match_all("#\w[\.\?\!](\W|$)#S' . Smarty::$_UTF8_MODIFIER . '", ' . $params[ 0 ] . ', $tmp)';
}


================================================
FILE: Extend/Package/smarty/plugins/modifiercompiler.count_words.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifierCompiler
 */

/**
 * Smarty count_words modifier plugin
 * Type:     modifier
 * Name:     count_words
 * Purpose:  count the number of words in a text
 *
 * @link   http://www.smarty.net/manual/en/language.modifier.count.words.php count_words (Smarty online manual)
 * @author Uwe Tews
 *
 * @param array $params parameters
 *
 * @return string with compiled code
 */
function smarty_modifiercompiler_count_words($params)
{
    if (Smarty::$_MBSTRING) {
        // return 'preg_match_all(\'#[\w\pL]+#' . Smarty::$_UTF8_MODIFIER . '\', ' . $params[0] . ', $tmp)';
        // expression taken from http://de.php.net/manual/en/function.str-word-count.php#85592
        return 'preg_match_all(\'/\p{L}[\p{L}\p{Mn}\p{Pd}\\\'\x{2019}]*/' . Smarty::$_UTF8_MODIFIER . '\', ' .
               $params[ 0 ] . ', $tmp)';
    }
    // no MBString fallback
    return 'str_word_count(' . $params[ 0 ] . ')';
}


================================================
FILE: Extend/Package/smarty/plugins/modifiercompiler.default.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifierCompiler
 */

/**
 * Smarty default modifier plugin
 * Type:     modifier
 * Name:     default
 * Purpose:  designate default value for empty variables
 *
 * @link   http://www.smarty.net/manual/en/language.modifier.default.php default (Smarty online manual)
 * @author Uwe Tews
 *
 * @param array $params parameters
 *
 * @return string with compiled code
 */
function smarty_modifiercompiler_default($params)
{
    $output = $params[ 0 ];
    if (!isset($params[ 1 ])) {
        $params[ 1 ] = "''";
    }

    array_shift($params);
    foreach ($params as $param) {
        $output = '(($tmp = @' . $output . ')===null||$tmp===\'\' ? ' . $param . ' : $tmp)';
    }

    return $output;
}


================================================
FILE: Extend/Package/smarty/plugins/modifiercompiler.escape.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifierCompiler
 */

/**
 * Smarty escape modifier plugin
 * Type:     modifier
 * Name:     escape
 * Purpose:  escape string for output
 *
 * @link   http://www.smarty.net/docsv2/en/language.modifier.escape count_characters (Smarty online manual)
 * @author Rodney Rehm
 *
 * @param array $params parameters
 * @param       $compiler
 *
 * @return string with compiled code
 */
function smarty_modifiercompiler_escape($params, $compiler)
{
    static $_double_encode = null;
    static $is_loaded = false;
    if (!$is_loaded) {
        if (!is_callable('smarty_literal_compiler_param')) {
            require_once(SMARTY_PLUGINS_DIR . 'shared.literal_compiler_param.php');
        }
        $is_loaded = true;
    }
    if ($_double_encode === null) {
        $_double_encode = version_compare(PHP_VERSION, '5.2.3', '>=');
    }

    try {
        $esc_type = smarty_literal_compiler_param($params, 1, 'html');
        $char_set = smarty_literal_compiler_param($params, 2, Smarty::$_CHARSET);
        $double_encode = smarty_literal_compiler_param($params, 3, true);

        if (!$char_set) {
            $char_set = Smarty::$_CHARSET;
        }

        switch ($esc_type) {
            case 'html':
                if ($_double_encode) {
                    return 'htmlspecialchars(' . $params[ 0 ] . ', ENT_QUOTES, ' . var_export($char_set, true) . ', ' .
                           var_export($double_encode, true) . ')';
                } elseif ($double_encode) {
                    return 'htmlspecialchars(' . $params[ 0 ] . ', ENT_QUOTES, ' . var_export($char_set, true) . ')';
                } else {
                    // fall back to modifier.escape.php
                }

            case 'htmlall':
                if (Smarty::$_MBSTRING) {
                    if ($_double_encode) {
                        // php >=5.2.3 - go native
                        return 'mb_convert_encoding(htmlspecialchars(' . $params[ 0 ] . ', ENT_QUOTES, ' .
                               var_export($char_set, true) . ', ' . var_export($double_encode, true) .
                               '), "HTML-ENTITIES", ' . var_export($char_set, true) . ')';
                    } elseif ($double_encode) {
                        // php <5.2.3 - only handle double encoding
                        return 'mb_convert_encoding(htmlspecialchars(' . $params[ 0 ] . ', ENT_QUOTES, ' .
                               var_export($char_set, true) . '), "HTML-ENTITIES", ' . var_export($char_set, true) . ')';
                    } else {
                        // fall back to modifier.escape.php
                    }
                }

                // no MBString fallback
                if ($_double_encode) {
                    // php >=5.2.3 - go native
                    return 'htmlentities(' . $params[ 0 ] . ', ENT_QUOTES, ' . var_export($char_set, true) . ', ' .
                           var_export($double_encode, true) . ')';
                } elseif ($double_encode) {
                    // php <5.2.3 - only handle double encoding
                    return 'htmlentities(' . $params[ 0 ] . ', ENT_QUOTES, ' . var_export($char_set, true) . ')';
                } else {
                    // fall back to modifier.escape.php
                }

            case 'url':
                return 'rawurlencode(' . $params[ 0 ] . ')';

            case 'urlpathinfo':
                return 'str_replace("%2F", "/", rawurlencode(' . $params[ 0 ] . '))';

            case 'quotes':
                // escape unescaped single quotes
                return 'preg_replace("%(?<!\\\\\\\\)\'%", "\\\'",' . $params[ 0 ] . ')';

            case 'javascript':
                // escape quotes and backslashes, newlines, etc.
                return 'strtr(' . $params[ 0 ] .
                       ', array("\\\\" => "\\\\\\\\", "\'" => "\\\\\'", "\"" => "\\\\\"", "\\r" => "\\\\r", "\\n" => "\\\n", "</" => "<\/" ))';
        }
    }
    catch (SmartyException $e) {
        // pass through to regular plugin fallback
    }

    // could not optimize |escape call, so fallback to regular plugin
    if ($compiler->template->caching && ($compiler->tag_nocache | $compiler->nocache)) {
        $compiler->parent_compiler->template->compiled->required_plugins[ 'nocache' ][ 'escape' ][ 'modifier' ][ 'file' ] =
            SMARTY_PLUGINS_DIR . 'modifier.escape.php';
        $compiler->parent_compiler->template->compiled->required_plugins[ 'nocache' ][ 'escape' ][ 'modifier' ][ 'function' ] =
            'smarty_modifier_escape';
    } else {
        $compiler->parent_compiler->template->compiled->required_plugins[ 'compiled' ][ 'escape' ][ 'modifier' ][ 'file' ] =
            SMARTY_PLUGINS_DIR . 'modifier.escape.php';
        $compiler->parent_compiler->template->compiled->required_plugins[ 'compiled' ][ 'escape' ][ 'modifier' ][ 'function' ] =
            'smarty_modifier_escape';
    }

    return 'smarty_modifier_escape(' . join(', ', $params) . ')';
}


================================================
FILE: Extend/Package/smarty/plugins/modifiercompiler.from_charset.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifierCompiler
 */

/**
 * Smarty from_charset modifier plugin
 * Type:     modifier
 * Name:     from_charset
 * Purpose:  convert character encoding from $charset to internal encoding
 *
 * @author Rodney Rehm
 *
 * @param array $params parameters
 *
 * @return string with compiled code
 */
function smarty_modifiercompiler_from_charset($params)
{
    if (!Smarty::$_MBSTRING) {
        // FIXME: (rodneyrehm) shouldn't this throw an error?
        return $params[ 0 ];
    }

    if (!isset($params[ 1 ])) {
        $params[ 1 ] = '"ISO-8859-1"';
    }

    return 'mb_convert_encoding(' . $params[ 0 ] . ', "' . addslashes(Smarty::$_CHARSET) . '", ' . $params[ 1 ] . ')';
}


================================================
FILE: Extend/Package/smarty/plugins/modifiercompiler.indent.php
================================================
<?php
/**
 * Smarty plugin
 *
 * @package    Smarty
 * @subpackage PluginsModifierCompiler
 */

/**
 * Smarty
Download .txt
gitextract_9fpoihz6/

├── .gitignore
├── Extend/
│   ├── Class/
│   │   └── UploadFile.class.php
│   └── Package/
│       └── smarty/
│           ├── Autoloader.php
│           ├── Smarty.class.php
│           ├── SmartyBC.class.php
│           ├── bootstrap.php
│           ├── noted.txt
│           ├── plugins/
│           │   ├── block.textformat.php
│           │   ├── function.counter.php
│           │   ├── function.cycle.php
│           │   ├── function.fetch.php
│           │   ├── function.html_checkboxes.php
│           │   ├── function.html_image.php
│           │   ├── function.html_options.php
│           │   ├── function.html_radios.php
│           │   ├── function.html_select_date.php
│           │   ├── function.html_select_time.php
│           │   ├── function.html_table.php
│           │   ├── function.mailto.php
│           │   ├── function.math.php
│           │   ├── modifier.capitalize.php
│           │   ├── modifier.date_format.php
│           │   ├── modifier.debug_print_var.php
│           │   ├── modifier.escape.php
│           │   ├── modifier.mb_wordwrap.php
│           │   ├── modifier.regex_replace.php
│           │   ├── modifier.replace.php
│           │   ├── modifier.spacify.php
│           │   ├── modifier.truncate.php
│           │   ├── modifiercompiler.cat.php
│           │   ├── modifiercompiler.count_characters.php
│           │   ├── modifiercompiler.count_paragraphs.php
│           │   ├── modifiercompiler.count_sentences.php
│           │   ├── modifiercompiler.count_words.php
│           │   ├── modifiercompiler.default.php
│           │   ├── modifiercompiler.escape.php
│           │   ├── modifiercompiler.from_charset.php
│           │   ├── modifiercompiler.indent.php
│           │   ├── modifiercompiler.lower.php
│           │   ├── modifiercompiler.noprint.php
│           │   ├── modifiercompiler.string_format.php
│           │   ├── modifiercompiler.strip.php
│           │   ├── modifiercompiler.strip_tags.php
│           │   ├── modifiercompiler.to_charset.php
│           │   ├── modifiercompiler.unescape.php
│           │   ├── modifiercompiler.upper.php
│           │   ├── modifiercompiler.wordwrap.php
│           │   ├── outputfilter.trimwhitespace.php
│           │   ├── shared.escape_special_chars.php
│           │   ├── shared.literal_compiler_param.php
│           │   ├── shared.make_timestamp.php
│           │   ├── shared.mb_str_replace.php
│           │   ├── shared.mb_unicode.php
│           │   └── variablefilter.htmlspecialchars.php
│           └── sysplugins/
│               ├── smarty_cacheresource.php
│               ├── smarty_cacheresource_custom.php
│               ├── smarty_cacheresource_keyvaluestore.php
│               ├── smarty_data.php
│               ├── smarty_internal_block.php
│               ├── smarty_internal_cacheresource_file.php
│               ├── smarty_internal_compile_append.php
│               ├── smarty_internal_compile_assign.php
│               ├── smarty_internal_compile_block.php
│               ├── smarty_internal_compile_break.php
│               ├── smarty_internal_compile_call.php
│               ├── smarty_internal_compile_capture.php
│               ├── smarty_internal_compile_config_load.php
│               ├── smarty_internal_compile_continue.php
│               ├── smarty_internal_compile_debug.php
│               ├── smarty_internal_compile_eval.php
│               ├── smarty_internal_compile_extends.php
│               ├── smarty_internal_compile_for.php
│               ├── smarty_internal_compile_foreach.php
│               ├── smarty_internal_compile_function.php
│               ├── smarty_internal_compile_if.php
│               ├── smarty_internal_compile_include.php
│               ├── smarty_internal_compile_include_php.php
│               ├── smarty_internal_compile_insert.php
│               ├── smarty_internal_compile_ldelim.php
│               ├── smarty_internal_compile_make_nocache.php
│               ├── smarty_internal_compile_nocache.php
│               ├── smarty_internal_compile_private_block_plugin.php
│               ├── smarty_internal_compile_private_foreachsection.php
│               ├── smarty_internal_compile_private_function_plugin.php
│               ├── smarty_internal_compile_private_modifier.php
│               ├── smarty_internal_compile_private_object_block_function.php
│               ├── smarty_internal_compile_private_object_function.php
│               ├── smarty_internal_compile_private_php.php
│               ├── smarty_internal_compile_private_print_expression.php
│               ├── smarty_internal_compile_private_registered_block.php
│               ├── smarty_internal_compile_private_registered_function.php
│               ├── smarty_internal_compile_private_special_variable.php
│               ├── smarty_internal_compile_rdelim.php
│               ├── smarty_internal_compile_section.php
│               ├── smarty_internal_compile_setfilter.php
│               ├── smarty_internal_compile_shared_inheritance.php
│               ├── smarty_internal_compile_while.php
│               ├── smarty_internal_compilebase.php
│               ├── smarty_internal_config_file_compiler.php
│               ├── smarty_internal_configfilelexer.php
│               ├── smarty_internal_configfileparser.php
│               ├── smarty_internal_data.php
│               ├── smarty_internal_debug.php
│               ├── smarty_internal_errorhandler.php
│               ├── smarty_internal_extension_handler.php
│               ├── smarty_internal_method_addautoloadfilters.php
│               ├── smarty_internal_method_adddefaultmodifiers.php
│               ├── smarty_internal_method_append.php
│               ├── smarty_internal_method_appendbyref.php
│               ├── smarty_internal_method_assignbyref.php
│               ├── smarty_internal_method_assignglobal.php
│               ├── smarty_internal_method_clearallassign.php
│               ├── smarty_internal_method_clearallcache.php
│               ├── smarty_internal_method_clearassign.php
│               ├── smarty_internal_method_clearcache.php
│               ├── smarty_internal_method_clearcompiledtemplate.php
│               ├── smarty_internal_method_clearconfig.php
│               ├── smarty_internal_method_compileallconfig.php
│               ├── smarty_internal_method_compilealltemplates.php
│               ├── smarty_internal_method_configload.php
│               ├── smarty_internal_method_createdata.php
│               ├── smarty_internal_method_getautoloadfilters.php
│               ├── smarty_internal_method_getconfigvariable.php
│               ├── smarty_internal_method_getconfigvars.php
│               ├── smarty_internal_method_getdebugtemplate.php
│               ├── smarty_internal_method_getdefaultmodifiers.php
│               ├── smarty_internal_method_getglobal.php
│               ├── smarty_internal_method_getregisteredobject.php
│               ├── smarty_internal_method_getstreamvariable.php
│               ├── smarty_internal_method_gettags.php
│               ├── smarty_internal_method_gettemplatevars.php
│               ├── smarty_internal_method_literals.php
│               ├── smarty_internal_method_loadfilter.php
│               ├── smarty_internal_method_loadplugin.php
│               ├── smarty_internal_method_mustcompile.php
│               ├── smarty_internal_method_registercacheresource.php
│               ├── smarty_internal_method_registerclass.php
│               ├── smarty_internal_method_registerdefaultconfighandler.php
│               ├── smarty_internal_method_registerdefaultpluginhandler.php
│               ├── smarty_internal_method_registerdefaulttemplatehandler.php
│               ├── smarty_internal_method_registerfilter.php
│               ├── smarty_internal_method_registerobject.php
│               ├── smarty_internal_method_registerplugin.php
│               ├── smarty_internal_method_registerresource.php
│               ├── smarty_internal_method_setautoloadfilters.php
│               ├── smarty_internal_method_setdebugtemplate.php
│               ├── smarty_internal_method_setdefaultmodifiers.php
│               ├── smarty_internal_method_unloadfilter.php
│               ├── smarty_internal_method_unregistercacheresource.php
│               ├── smarty_internal_method_unregisterfilter.php
│               ├── smarty_internal_method_unregisterobject.php
│               ├── smarty_internal_method_unregisterplugin.php
│               ├── smarty_internal_method_unregisterresource.php
│               ├── smarty_internal_nocache_insert.php
│               ├── smarty_internal_parsetree.php
│               ├── smarty_internal_parsetree_code.php
│               ├── smarty_internal_parsetree_dq.php
│               ├── smarty_internal_parsetree_dqcontent.php
│               ├── smarty_internal_parsetree_tag.php
│               ├── smarty_internal_parsetree_template.php
│               ├── smarty_internal_parsetree_text.php
│               ├── smarty_internal_resource_eval.php
│               ├── smarty_internal_resource_extends.php
│               ├── smarty_internal_resource_file.php
│               ├── smarty_internal_resource_php.php
│               ├── smarty_internal_resource_registered.php
│               ├── smarty_internal_resource_stream.php
│               ├── smarty_internal_resource_string.php
│               ├── smarty_internal_runtime_cachemodify.php
│               ├── smarty_internal_runtime_cacheresourcefile.php
│               ├── smarty_internal_runtime_capture.php
│               ├── smarty_internal_runtime_codeframe.php
│               ├── smarty_internal_runtime_filterhandler.php
│               ├── smarty_internal_runtime_foreach.php
│               ├── smarty_internal_runtime_getincludepath.php
│               ├── smarty_internal_runtime_inheritance.php
│               ├── smarty_internal_runtime_make_nocache.php
│               ├── smarty_internal_runtime_tplfunction.php
│               ├── smarty_internal_runtime_updatecache.php
│               ├── smarty_internal_runtime_updatescope.php
│               ├── smarty_internal_runtime_writefile.php
│               ├── smarty_internal_smartytemplatecompiler.php
│               ├── smarty_internal_template.php
│               ├── smarty_internal_templatebase.php
│               ├── smarty_internal_templatecompilerbase.php
│               ├── smarty_internal_templatelexer.php
│               ├── smarty_internal_templateparser.php
│               ├── smarty_internal_testinstall.php
│               ├── smarty_internal_undefined.php
│               ├── smarty_resource.php
│               ├── smarty_resource_custom.php
│               ├── smarty_resource_recompiled.php
│               ├── smarty_resource_uncompiled.php
│               ├── smarty_security.php
│               ├── smarty_template_cached.php
│               ├── smarty_template_compiled.php
│               ├── smarty_template_config.php
│               ├── smarty_template_resource_base.php
│               ├── smarty_template_source.php
│               ├── smarty_undefined_variable.php
│               ├── smarty_variable.php
│               ├── smartycompilerexception.php
│               └── smartyexception.php
├── Framework/
│   ├── Config/
│   │   └── frame.cfg.php
│   ├── Library/
│   │   ├── Common/
│   │   │   └── helper.php
│   │   ├── Interfaces/
│   │   │   ├── CacheInterface.php
│   │   │   ├── ConfigInterface.php
│   │   │   ├── DbInterface.php
│   │   │   ├── LogInterface.php
│   │   │   ├── LogicExceptionsInterface.php
│   │   │   ├── RouterInterface.php
│   │   │   ├── SessionInterface.php
│   │   │   ├── ViewInterface.php
│   │   │   └── VisitInterface.php
│   │   └── Process/
│   │       ├── Cache.class.php
│   │       ├── Config.class.php
│   │       ├── Db.class.php
│   │       ├── Drive/
│   │       │   ├── Cache/
│   │       │   │   ├── File.php
│   │       │   │   ├── Memcache.php
│   │       │   │   └── Redis.php
│   │       │   └── Db/
│   │       │       ├── Mysqli.php
│   │       │       └── PDO.php
│   │       ├── Extend.class.php
│   │       ├── Log.class.php
│   │       ├── LogicExceptions.class.php
│   │       ├── ReturnHandle.class.php
│   │       ├── Router.class.php
│   │       ├── Running.class.php
│   │       ├── Session.class.php
│   │       ├── Structure.class.php
│   │       ├── Tool.class.php
│   │       ├── Tpl/
│   │       │   ├── error.tpl
│   │       │   ├── error_page.tpl
│   │       │   └── success_page.tpl
│   │       ├── View.class.php
│   │       └── Visit.class.php
│   └── frame.php
├── LICENSE.txt
├── Project/
│   ├── config/
│   │   └── App.cfg.php
│   ├── home/
│   │   └── Index.class.php
│   ├── model/
│   │   └── UserModel.class.php
│   └── view/
│       └── home/
│           └── index.html
├── README.md
├── Web/
│   ├── .htaccess
│   ├── Public/
│   │   └── system/
│   │       └── noted.txt
│   └── index.php
└── composer.json
Download .txt
SYMBOL INDEX (1398 symbols across 232 files)

FILE: Extend/Class/UploadFile.class.php
  class Upload (line 8) | class Upload
    method __construct (line 38) | public function __construct($allowExts = '', $maxSize = '', $allowType...
    method upload (line 66) | public function upload($savePath = '')
    method createDir (line 118) | private function createDir($path)
    method dealFiles (line 131) | private function dealFiles($files)
    method getExt (line 159) | private function getExt($filename)
    method getSaveName (line 170) | private function getSaveName($file)
    method check (line 181) | private function check($file)
    method error (line 210) | private function error($errorCode)
    method checkSize (line 242) | private function checkSize($size)
    method checkExt (line 252) | private function checkExt($extension)
    method checkType (line 264) | private function checkType($type)
    method checkUpload (line 276) | private function checkUpload($filename)
    method save (line 286) | private function save($file)
    method uploadOne (line 310) | public function uploadOne($file, $savePath = '')
    method getUploadFileInfo (line 365) | public function getUploadFileInfo()
    method getErrorMsg (line 374) | public function getErrorMsg()

FILE: Extend/Package/smarty/Autoloader.php
  class Smarty_Autoloader (line 21) | class Smarty_Autoloader
    method registerBC (line 49) | public static function registerBC($prepend = false)
    method register (line 74) | public static function register($prepend = false)
    method autoload (line 91) | public static function autoload($class)

FILE: Extend/Package/smarty/Smarty.class.php
  class Smarty (line 110) | class Smarty extends Smarty_Internal_TemplateBase
    method __construct (line 599) | public function __construct()
    method muteExpectedErrors (line 624) | public static function muteExpectedErrors()
    method unmuteExpectedErrors (line 634) | public static function unmuteExpectedErrors()
    method templateExists (line 647) | public function templateExists($resource_name)
    method enableSecurity (line 662) | public function enableSecurity($security_class = null)
    method disableSecurity (line 673) | public function disableSecurity()
    method addTemplateDir (line 688) | public function addTemplateDir($template_dir, $key = null, $isConfig =...
    method getTemplateDir (line 731) | public function getTemplateDir($index = null, $isConfig = false)
    method setTemplateDir (line 755) | public function setTemplateDir($template_dir, $isConfig = false)
    method addConfigDir (line 776) | public function addConfigDir($config_dir, $key = null)
    method getConfigDir (line 788) | public function getConfigDir($index = null)
    method setConfigDir (line 800) | public function setConfigDir($config_dir)
    method addPluginsDir (line 812) | public function addPluginsDir($plugins_dir)
    method getPluginsDir (line 827) | public function getPluginsDir()
    method setPluginsDir (line 853) | public function setPluginsDir($plugins_dir)
    method getCompileDir (line 865) | public function getCompileDir()
    method setCompileDir (line 880) | public function setCompileDir($compile_dir)
    method getCacheDir (line 892) | public function getCacheDir()
    method setCacheDir (line 908) | public function setCacheDir($cache_dir)
    method createTemplate (line 927) | public function createTemplate($template, $cache_id = null, $compile_i...
    method loadPlugin (line 990) | public function loadPlugin($plugin_name, $check = true)
    method _getTemplateId (line 1007) | public function _getTemplateId($template_name,
    method _realpath (line 1043) | public function _realpath($path, $realpath = null)
    method _clearTemplateCache (line 1083) | public function _clearTemplateCache()
    method setUseSubDirs (line 1092) | public function setUseSubDirs($use_sub_dirs)
    method setErrorReporting (line 1100) | public function setErrorReporting($error_reporting)
    method setEscapeHtml (line 1108) | public function setEscapeHtml($escape_html)
    method getAutoLiteral (line 1118) | public function getAutoLiteral()
    method setAutoLiteral (line 1128) | public function setAutoLiteral($auto_literal = true)
    method setForceCompile (line 1136) | public function setForceCompile($force_compile)
    method setMergeCompiledIncludes (line 1144) | public function setMergeCompiledIncludes($merge_compiled_includes)
    method getLeftDelimiter (line 1154) | public function getLeftDelimiter()
    method setLeftDelimiter (line 1164) | public function setLeftDelimiter($left_delimiter)
    method getRightDelimiter (line 1174) | public function getRightDelimiter()
    method setRightDelimiter (line 1184) | public function setRightDelimiter($right_delimiter)
    method setDebugging (line 1192) | public function setDebugging($debugging)
    method setConfigOverwrite (line 1200) | public function setConfigOverwrite($config_overwrite)
    method setConfigBooleanize (line 1208) | public function setConfigBooleanize($config_booleanize)
    method setConfigReadHidden (line 1216) | public function setConfigReadHidden($config_read_hidden)
    method setCompileLocking (line 1224) | public function setCompileLocking($compile_locking)
    method setDefaultResourceType (line 1232) | public function setDefaultResourceType($default_resource_type)
    method setCachingType (line 1240) | public function setCachingType($caching_type)
    method testInstall (line 1250) | public function testInstall(&$errors = null)
    method _getSmartyObj (line 1260) | public function _getSmartyObj()
    method __get (line 1274) | public function __get($name)
    method __set (line 1297) | public function __set($name, $value)
    method _normalizeDir (line 1319) | private function _normalizeDir($dirName, $dir)
    method _normalizeTemplateConfig (line 1335) | private function _normalizeTemplateConfig($isConfig)

FILE: Extend/Package/smarty/SmartyBC.class.php
  class SmartyBC (line 38) | class SmartyBC extends Smarty
    method __construct (line 58) | public function __construct()
    method assign_by_ref (line 69) | public function assign_by_ref($tpl_var, &$value)
    method append_by_ref (line 81) | public function append_by_ref($tpl_var, &$value, $merge = false)
    method clear_assign (line 91) | public function clear_assign($tpl_var)
    method register_function (line 106) | public function register_function($function, $function_impl, $cacheabl...
    method unregister_function (line 116) | public function unregister_function($function)
    method register_object (line 133) | public function register_object($object, $object_impl, $allowed = arra...
    method unregister_object (line 146) | public function unregister_object($object)
    method register_block (line 161) | public function register_block($block, $block_impl, $cacheable = true,...
    method unregister_block (line 171) | public function unregister_block($block)
    method register_compiler_function (line 185) | public function register_compiler_function($function, $function_impl, ...
    method unregister_compiler_function (line 195) | public function unregister_compiler_function($function)
    method register_modifier (line 208) | public function register_modifier($modifier, $modifier_impl)
    method unregister_modifier (line 218) | public function unregister_modifier($modifier)
    method register_resource (line 229) | public function register_resource($type, $functions)
    method unregister_resource (line 239) | public function unregister_resource($type)
    method register_prefilter (line 252) | public function register_prefilter($function)
    method unregister_prefilter (line 262) | public function unregister_prefilter($function)
    method register_postfilter (line 275) | public function register_postfilter($function)
    method unregister_postfilter (line 285) | public function unregister_postfilter($function)
    method register_outputfilter (line 298) | public function register_outputfilter($function)
    method unregister_outputfilter (line 308) | public function unregister_outputfilter($function)
    method load_filter (line 321) | public function load_filter($type, $name)
    method clear_cache (line 336) | public function clear_cache($tpl_file = null, $cache_id = null, $compi...
    method clear_all_cache (line 348) | public function clear_all_cache($exp_time = null)
    method is_cached (line 364) | public function is_cached($tpl_file, $cache_id = null, $compile_id = n...
    method clear_all_assign (line 372) | public function clear_all_assign()
    method clear_compiled_tpl (line 388) | public function clear_compiled_tpl($tpl_file = null, $compile_id = nul...
    method template_exists (line 401) | public function template_exists($tpl_file)
    method get_template_vars (line 413) | public function get_template_vars($name = null)
    method get_config_vars (line 425) | public function get_config_vars($name = null)
    method config_load (line 437) | public function config_load($file, $section = null, $scope = 'global')
    method get_registered_object (line 449) | public function get_registered_object($name)
    method clear_config (line 459) | public function clear_config($var = null)
    method trigger_error (line 470) | public function trigger_error($error_msg, $error_type = E_USER_WARNING)

FILE: Extend/Package/smarty/plugins/block.textformat.php
  function smarty_block_textformat (line 36) | function smarty_block_textformat($params, $content, $template, &$repeat)

FILE: Extend/Package/smarty/plugins/function.counter.php
  function smarty_function_counter (line 24) | function smarty_function_counter($params, $template)

FILE: Extend/Package/smarty/plugins/function.cycle.php
  function smarty_function_cycle (line 47) | function smarty_function_cycle($params, $template)

FILE: Extend/Package/smarty/plugins/function.fetch.php
  function smarty_function_fetch (line 25) | function smarty_function_fetch($params, $template)

FILE: Extend/Package/smarty/plugins/function.html_checkboxes.php
  function smarty_function_html_checkboxes (line 46) | function smarty_function_html_checkboxes($params, $template)
  function smarty_function_html_checkboxes_output (line 195) | function smarty_function_html_checkboxes_output($name, $value, $output, ...

FILE: Extend/Package/smarty/plugins/function.html_image.php
  function smarty_function_html_image (line 39) | function smarty_function_html_image($params, $template)

FILE: Extend/Package/smarty/plugins/function.html_options.php
  function smarty_function_html_options (line 38) | function smarty_function_html_options($params, Smarty_Internal_Template ...
  function smarty_function_html_options_optoutput (line 170) | function smarty_function_html_options_optoutput($key, $value, $selected,...
  function smarty_function_html_options_optgroup (line 218) | function smarty_function_html_options_optgroup($key, $values, $selected,...

FILE: Extend/Package/smarty/plugins/function.html_radios.php
  function smarty_function_html_radios (line 46) | function smarty_function_html_radios($params, $template)
  function smarty_function_html_radios_output (line 182) | function smarty_function_html_radios_output($name, $value, $output, $sel...

FILE: Extend/Package/smarty/plugins/function.html_select_date.php
  function smarty_function_html_select_date (line 46) | function smarty_function_html_select_date($params, Smarty_Internal_Templ...

FILE: Extend/Package/smarty/plugins/function.html_select_time.php
  function smarty_function_html_select_time (line 27) | function smarty_function_html_select_time($params, Smarty_Internal_Templ...

FILE: Extend/Package/smarty/plugins/function.html_table.php
  function smarty_function_html_table (line 50) | function smarty_function_html_table($params)
  function smarty_function_html_table_cycle (line 173) | function smarty_function_html_table_cycle($name, $var, $no)

FILE: Extend/Package/smarty/plugins/function.mailto.php
  function smarty_function_mailto (line 51) | function smarty_function_mailto($params)

FILE: Extend/Package/smarty/plugins/function.math.php
  function smarty_function_math (line 25) | function smarty_function_math($params, $template)

FILE: Extend/Package/smarty/plugins/modifier.capitalize.php
  function smarty_modifier_capitalize (line 24) | function smarty_modifier_capitalize($string, $uc_digits = false, $lc_res...
  function smarty_mod_cap_mbconvert_cb (line 88) | function smarty_mod_cap_mbconvert_cb($matches)
  function smarty_mod_cap_mbconvert2_cb (line 97) | function smarty_mod_cap_mbconvert2_cb($matches)
  function smarty_mod_cap_ucfirst_cb (line 106) | function smarty_mod_cap_ucfirst_cb($matches)
  function smarty_mod_cap_ucfirst2_cb (line 115) | function smarty_mod_cap_ucfirst2_cb($matches)

FILE: Extend/Package/smarty/plugins/modifier.date_format.php
  function smarty_modifier_date_format (line 30) | function smarty_modifier_date_format($string, $format = null, $default_d...

FILE: Extend/Package/smarty/plugins/modifier.debug_print_var.php
  function smarty_modifier_debug_print_var (line 25) | function smarty_modifier_debug_print_var($var, $max = 10, $length = 40, ...

FILE: Extend/Package/smarty/plugins/modifier.escape.php
  function smarty_modifier_escape (line 25) | function smarty_modifier_escape($string, $esc_type = 'html', $char_set =...

FILE: Extend/Package/smarty/plugins/modifier.mb_wordwrap.php
  function smarty_modifier_mb_wordwrap (line 25) | function smarty_modifier_mb_wordwrap($str, $width = 75, $break = "\n", $...

FILE: Extend/Package/smarty/plugins/modifier.regex_replace.php
  function smarty_modifier_regex_replace (line 26) | function smarty_modifier_regex_replace($string, $search, $replace, $limi...
  function _smarty_regex_replace_check (line 45) | function _smarty_regex_replace_check($search)

FILE: Extend/Package/smarty/plugins/modifier.replace.php
  function smarty_modifier_replace (line 25) | function smarty_modifier_replace($string, $search, $replace)

FILE: Extend/Package/smarty/plugins/modifier.spacify.php
  function smarty_modifier_spacify (line 23) | function smarty_modifier_spacify($string, $spacify_char = ' ')

FILE: Extend/Package/smarty/plugins/modifier.truncate.php
  function smarty_modifier_truncate (line 28) | function smarty_modifier_truncate($string, $length = 80, $etc = '...', $...

FILE: Extend/Package/smarty/plugins/modifiercompiler.cat.php
  function smarty_modifiercompiler_cat (line 26) | function smarty_modifiercompiler_cat($params)

FILE: Extend/Package/smarty/plugins/modifiercompiler.count_characters.php
  function smarty_modifiercompiler_count_characters (line 22) | function smarty_modifiercompiler_count_characters($params)

FILE: Extend/Package/smarty/plugins/modifiercompiler.count_paragraphs.php
  function smarty_modifiercompiler_count_paragraphs (line 23) | function smarty_modifiercompiler_count_paragraphs($params)

FILE: Extend/Package/smarty/plugins/modifiercompiler.count_sentences.php
  function smarty_modifiercompiler_count_sentences (line 23) | function smarty_modifiercompiler_count_sentences($params)

FILE: Extend/Package/smarty/plugins/modifiercompiler.count_words.php
  function smarty_modifiercompiler_count_words (line 22) | function smarty_modifiercompiler_count_words($params)

FILE: Extend/Package/smarty/plugins/modifiercompiler.default.php
  function smarty_modifiercompiler_default (line 22) | function smarty_modifiercompiler_default($params)

FILE: Extend/Package/smarty/plugins/modifiercompiler.escape.php
  function smarty_modifiercompiler_escape (line 23) | function smarty_modifiercompiler_escape($params, $compiler)

FILE: Extend/Package/smarty/plugins/modifiercompiler.from_charset.php
  function smarty_modifiercompiler_from_charset (line 21) | function smarty_modifiercompiler_from_charset($params)

FILE: Extend/Package/smarty/plugins/modifiercompiler.indent.php
  function smarty_modifiercompiler_indent (line 23) | function smarty_modifiercompiler_indent($params)

FILE: Extend/Package/smarty/plugins/modifiercompiler.lower.php
  function smarty_modifiercompiler_lower (line 24) | function smarty_modifiercompiler_lower($params)

FILE: Extend/Package/smarty/plugins/modifiercompiler.noprint.php
  function smarty_modifiercompiler_noprint (line 18) | function smarty_modifiercompiler_noprint()

FILE: Extend/Package/smarty/plugins/modifiercompiler.string_format.php
  function smarty_modifiercompiler_string_format (line 22) | function smarty_modifiercompiler_string_format($params)

FILE: Extend/Package/smarty/plugins/modifiercompiler.strip.php
  function smarty_modifiercompiler_strip (line 26) | function smarty_modifiercompiler_strip($params)

FILE: Extend/Package/smarty/plugins/modifiercompiler.strip_tags.php
  function smarty_modifiercompiler_strip_tags (line 22) | function smarty_modifiercompiler_strip_tags($params)

FILE: Extend/Package/smarty/plugins/modifiercompiler.to_charset.php
  function smarty_modifiercompiler_to_charset (line 21) | function smarty_modifiercompiler_to_charset($params)

FILE: Extend/Package/smarty/plugins/modifiercompiler.unescape.php
  function smarty_modifiercompiler_unescape (line 21) | function smarty_modifiercompiler_unescape($params)

FILE: Extend/Package/smarty/plugins/modifiercompiler.upper.php
  function smarty_modifiercompiler_upper (line 22) | function smarty_modifiercompiler_upper($params)

FILE: Extend/Package/smarty/plugins/modifiercompiler.wordwrap.php
  function smarty_modifiercompiler_wordwrap (line 23) | function smarty_modifiercompiler_wordwrap($params, Smarty_Internal_Templ...

FILE: Extend/Package/smarty/plugins/outputfilter.trimwhitespace.php
  function smarty_outputfilter_trimwhitespace (line 20) | function smarty_outputfilter_trimwhitespace($source)

FILE: Extend/Package/smarty/plugins/shared.escape_special_chars.php
  function smarty_function_escape_special_chars (line 21) | function smarty_function_escape_special_chars($string)

FILE: Extend/Package/smarty/plugins/shared.literal_compiler_param.php
  function smarty_literal_compiler_param (line 20) | function smarty_literal_compiler_param($params, $index, $default = null)

FILE: Extend/Package/smarty/plugins/shared.make_timestamp.php
  function smarty_make_timestamp (line 19) | function smarty_make_timestamp($string)

FILE: Extend/Package/smarty/plugins/shared.mb_str_replace.php
  function smarty_mb_str_replace (line 20) | function smarty_mb_str_replace($search, $replace, $subject, &$count = 0)

FILE: Extend/Package/smarty/plugins/shared.mb_unicode.php
  function smarty_mb_to_unicode (line 20) | function smarty_mb_to_unicode($string, $encoding = null)
  function smarty_mb_from_unicode (line 42) | function smarty_mb_from_unicode($unicode, $encoding = null)

FILE: Extend/Package/smarty/plugins/variablefilter.htmlspecialchars.php
  function smarty_variablefilter_htmlspecialchars (line 16) | function smarty_variablefilter_htmlspecialchars($source, Smarty_Internal...

FILE: Extend/Package/smarty/sysplugins/smarty_cacheresource.php
  class Smarty_CacheResource (line 16) | abstract class Smarty_CacheResource
    method populate (line 33) | abstract public function populate(Smarty_Template_Cached $cached, Smar...
    method populateTimestamp (line 42) | abstract public function populateTimestamp(Smarty_Template_Cached $cac...
    method process (line 53) | abstract public function process(Smarty_Internal_Template $_template, ...
    method writeCachedContent (line 64) | abstract public function writeCachedContent(Smarty_Internal_Template $...
    method readCachedContent (line 73) | abstract function readCachedContent(Smarty_Internal_Template $_template);
    method getCachedContent (line 82) | public function getCachedContent(Smarty_Internal_Template $_template)
    method clearAll (line 102) | abstract public function clearAll(Smarty $smarty, $exp_time = null);
    method clear (line 115) | abstract public function clear(Smarty $smarty, $resource_name, $cache_...
    method locked (line 123) | public function locked(Smarty $smarty, Smarty_Template_Cached $cached)
    method hasLock (line 148) | public function hasLock(Smarty $smarty, Smarty_Template_Cached $cached)
    method acquireLock (line 162) | public function acquireLock(Smarty $smarty, Smarty_Template_Cached $ca...
    method releaseLock (line 176) | public function releaseLock(Smarty $smarty, Smarty_Template_Cached $ca...
    method load (line 191) | public static function load(Smarty $smarty, $type = null)

FILE: Extend/Package/smarty/sysplugins/smarty_cacheresource_custom.php
  class Smarty_CacheResource_Custom (line 16) | abstract class Smarty_CacheResource_Custom extends Smarty_CacheResource
    method fetch (line 30) | abstract protected function fetch($id, $name, $cache_id, $compile_id, ...
    method fetchTimestamp (line 44) | protected function fetchTimestamp($id, $name, $cache_id, $compile_id)
    method save (line 61) | abstract protected function save($id, $name, $cache_id, $compile_id, $...
    method delete (line 73) | abstract protected function delete($name, $cache_id, $compile_id, $exp...
    method populate (line 83) | public function populate(Smarty_Template_Cached $cached, Smarty_Intern...
    method populateTimestamp (line 102) | public function populateTimestamp(Smarty_Template_Cached $cached)
    method process (line 128) | public function process(Smarty_Internal_Template $_smarty_tpl, Smarty_...
    method writeCachedContent (line 157) | public function writeCachedContent(Smarty_Internal_Template $_template...
    method readCachedContent (line 170) | public function readCachedContent(Smarty_Internal_Template $_template)
    method clearAll (line 193) | public function clearAll(Smarty $smarty, $exp_time = null)
    method clear (line 210) | public function clear(Smarty $smarty, $resource_name, $cache_id, $comp...
    method hasLock (line 234) | public function hasLock(Smarty $smarty, Smarty_Template_Cached $cached)
    method acquireLock (line 254) | public function acquireLock(Smarty $smarty, Smarty_Template_Cached $ca...
    method releaseLock (line 270) | public function releaseLock(Smarty $smarty, Smarty_Template_Cached $ca...

FILE: Extend/Package/smarty/sysplugins/smarty_cacheresource_keyvaluestore.php
  class Smarty_CacheResource_KeyValueStore (line 31) | abstract class Smarty_CacheResource_KeyValueStore extends Smarty_CacheRe...
    method populate (line 55) | public function populate(Smarty_Template_Cached $cached, Smarty_Intern...
    method populateTimestamp (line 70) | public function populateTimestamp(Smarty_Template_Cached $cached)
    method process (line 91) | public function process(Smarty_Internal_Template $_smarty_tpl, Smarty_...
    method writeCachedContent (line 123) | public function writeCachedContent(Smarty_Internal_Template $_template...
    method readCachedContent (line 137) | public function readCachedContent(Smarty_Internal_Template $_template)
    method clearAll (line 165) | public function clearAll(Smarty $smarty, $exp_time = null)
    method clear (line 189) | public function clear(Smarty $smarty, $resource_name, $cache_id, $comp...
    method getTemplateUid (line 209) | protected function getTemplateUid(Smarty $smarty, $resource_name)
    method sanitize (line 227) | protected function sanitize($string)
    method fetch (line 249) | protected function fetch($cid, $resource_name = null, $cache_id = null...
    method addMetaTimestamp (line 274) | protected function addMetaTimestamp(&$content)
    method getMetaTimestamp (line 288) | protected function getMetaTimestamp(&$content)
    method invalidate (line 309) | protected function invalidate($cid = null, $resource_name = null, $cac...
    method getLatestInvalidationTimestamp (line 350) | protected function getLatestInvalidationTimestamp($cid, $resource_name...
    method listInvalidationKeys (line 385) | protected function listInvalidationKeys($cid, $resource_name = null, $...
    method hasLock (line 433) | public function hasLock(Smarty $smarty, Smarty_Template_Cached $cached)
    method acquireLock (line 449) | public function acquireLock(Smarty $smarty, Smarty_Template_Cached $ca...
    method releaseLock (line 464) | public function releaseLock(Smarty $smarty, Smarty_Template_Cached $ca...
    method read (line 478) | abstract protected function read(array $keys);
    method write (line 488) | abstract protected function write(array $keys, $expire = null);
    method delete (line 497) | abstract protected function delete(array $keys);
    method purge (line 504) | protected function purge()

FILE: Extend/Package/smarty/sysplugins/smarty_data.php
  class Smarty_Data (line 18) | class Smarty_Data extends Smarty_Internal_Data
    method __construct (line 50) | public function __construct($_parent = null, $smarty = null, $name = n...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_block.php
  class Smarty_Internal_Block (line 10) | class Smarty_Internal_Block
    method __construct (line 76) | public function __construct($name, $tplIndex)
    method callBlock (line 87) | public function callBlock(Smarty_Internal_Template $tpl)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_cacheresource_file.php
  class Smarty_Internal_CacheResource_File (line 17) | class Smarty_Internal_CacheResource_File extends Smarty_CacheResource
    method populate (line 27) | public function populate(Smarty_Template_Cached $cached, Smarty_Intern...
    method populateTimestamp (line 73) | public function populateTimestamp(Smarty_Template_Cached $cached)
    method process (line 90) | public function process(Smarty_Internal_Template $_smarty_tpl,
    method writeCachedContent (line 112) | public function writeCachedContent(Smarty_Internal_Template $_template...
    method readCachedContent (line 142) | public function readCachedContent(Smarty_Internal_Template $_template)
    method clearAll (line 158) | public function clearAll(Smarty $smarty, $exp_time = null)
    method clear (line 174) | public function clear(Smarty $smarty, $resource_name, $cache_id, $comp...
    method hasLock (line 187) | public function hasLock(Smarty $smarty, Smarty_Template_Cached $cached)
    method acquireLock (line 210) | public function acquireLock(Smarty $smarty, Smarty_Template_Cached $ca...
    method releaseLock (line 224) | public function releaseLock(Smarty $smarty, Smarty_Template_Cached $ca...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_append.php
  class Smarty_Internal_Compile_Append (line 17) | class Smarty_Internal_Compile_Append extends Smarty_Internal_Compile_Assign
    method compile (line 29) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_assign.php
  class Smarty_Internal_Compile_Assign (line 17) | class Smarty_Internal_Compile_Assign extends Smarty_Internal_CompileBase
    method compile (line 46) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_block.php
  class Smarty_Internal_Compile_Block (line 16) | class Smarty_Internal_Compile_Block extends Smarty_Internal_Compile_Shar...
    method compile (line 65) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
    method compileSpecialVariable (line 114) | public function compileSpecialVariable($args, Smarty_Internal_Template...
  class Smarty_Internal_Compile_Blockclose (line 147) | class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_Compile...
    method compile (line 158) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_break.php
  class Smarty_Internal_Compile_Break (line 17) | class Smarty_Internal_Compile_Break extends Smarty_Internal_CompileBase
    method compile (line 51) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
    method checkLevels (line 76) | public function checkLevels($args, Smarty_Internal_TemplateCompilerBas...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_call.php
  class Smarty_Internal_Compile_Call (line 17) | class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase
    method compile (line 51) | public function compile($args, $compiler)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_capture.php
  class Smarty_Internal_Compile_Capture (line 17) | class Smarty_Internal_Compile_Capture extends Smarty_Internal_CompileBase
    method compileSpecialVariable (line 45) | public static function compileSpecialVariable($args, Smarty_Internal_T...
    method compile (line 64) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
  class Smarty_Internal_Compile_CaptureClose (line 88) | class Smarty_Internal_Compile_CaptureClose extends Smarty_Internal_Compi...
    method compile (line 99) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_config_load.php
  class Smarty_Internal_Compile_Config_Load (line 17) | class Smarty_Internal_Compile_Config_Load extends Smarty_Internal_Compil...
    method compile (line 69) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_continue.php
  class Smarty_Internal_Compile_Continue (line 17) | class Smarty_Internal_Compile_Continue extends Smarty_Internal_Compile_B...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_debug.php
  class Smarty_Internal_Compile_Debug (line 18) | class Smarty_Internal_Compile_Debug extends Smarty_Internal_CompileBase
    method compile (line 28) | public function compile($args, $compiler)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_eval.php
  class Smarty_Internal_Compile_Eval (line 17) | class Smarty_Internal_Compile_Eval extends Smarty_Internal_CompileBase
    method compile (line 51) | public function compile($args, $compiler)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_extends.php
  class Smarty_Internal_Compile_Extends (line 18) | class Smarty_Internal_Compile_Extends extends Smarty_Internal_Compile_Sh...
    method compile (line 54) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
    method compileEndChild (line 102) | private function compileEndChild(Smarty_Internal_TemplateCompilerBase ...
    method compileInclude (line 127) | private function compileInclude(Smarty_Internal_TemplateCompilerBase $...
    method extendsSourceArrayCode (line 142) | public static function extendsSourceArrayCode($components)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_for.php
  class Smarty_Internal_Compile_For (line 17) | class Smarty_Internal_Compile_For extends Smarty_Internal_CompileBase
    method compile (line 35) | public function compile($args, $compiler, $parameter)
  class Smarty_Internal_Compile_Forelse (line 111) | class Smarty_Internal_Compile_Forelse extends Smarty_Internal_CompileBase
    method compile (line 122) | public function compile($args, $compiler, $parameter)
  class Smarty_Internal_Compile_Forclose (line 140) | class Smarty_Internal_Compile_Forclose extends Smarty_Internal_CompileBase
    method compile (line 151) | public function compile($args, $compiler, $parameter)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_foreach.php
  class Smarty_Internal_Compile_Foreach (line 17) | class Smarty_Internal_Compile_Foreach extends Smarty_Internal_Compile_Pr...
    method compile (line 88) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
    method compileRestore (line 263) | public function compileRestore($levels)
  class Smarty_Internal_Compile_Foreachelse (line 275) | class Smarty_Internal_Compile_Foreachelse extends Smarty_Internal_Compil...
    method compile (line 285) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
  class Smarty_Internal_Compile_Foreachclose (line 307) | class Smarty_Internal_Compile_Foreachclose extends Smarty_Internal_Compi...
    method compile (line 318) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_function.php
  class Smarty_Internal_Compile_Function (line 17) | class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase
    method compile (line 53) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
  class Smarty_Internal_Compile_Functionclose (line 80) | class Smarty_Internal_Compile_Functionclose extends Smarty_Internal_Comp...
    method compile (line 98) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
    method removeNocache (line 206) | function removeNocache($match)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_if.php
  class Smarty_Internal_Compile_If (line 17) | class Smarty_Internal_Compile_If extends Smarty_Internal_CompileBase
    method compile (line 29) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
  class Smarty_Internal_Compile_Else (line 78) | class Smarty_Internal_Compile_Else extends Smarty_Internal_CompileBase
    method compile (line 88) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
  class Smarty_Internal_Compile_Elseif (line 103) | class Smarty_Internal_Compile_Elseif extends Smarty_Internal_CompileBase
    method compile (line 115) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
  class Smarty_Internal_Compile_Ifclose (line 185) | class Smarty_Internal_Compile_Ifclose extends Smarty_Internal_CompileBase
    method compile (line 195) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_include.php
  class Smarty_Internal_Compile_Include (line 16) | class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase
    method compile (line 70) | public function compile($args, Smarty_Internal_SmartyTemplateCompiler ...
    method compileInlineTemplate (line 278) | public function compileInlineTemplate(Smarty_Internal_SmartyTemplateCo...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_include_php.php
  class Smarty_Internal_Compile_Include_Php (line 16) | class Smarty_Internal_Compile_Include_Php extends Smarty_Internal_Compil...
    method compile (line 52) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_insert.php
  class Smarty_Internal_Compile_Insert (line 17) | class Smarty_Internal_Compile_Insert extends Smarty_Internal_CompileBase
    method compile (line 51) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_ldelim.php
  class Smarty_Internal_Compile_Ldelim (line 17) | class Smarty_Internal_Compile_Ldelim extends Smarty_Internal_CompileBase
    method compile (line 29) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_make_nocache.php
  class Smarty_Internal_Compile_Make_Nocache (line 17) | class Smarty_Internal_Compile_Make_Nocache extends Smarty_Internal_Compi...
    method compile (line 49) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_nocache.php
  class Smarty_Internal_Compile_Nocache (line 17) | class Smarty_Internal_Compile_Nocache extends Smarty_Internal_CompileBase
    method compile (line 35) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
  class Smarty_Internal_Compile_Nocacheclose (line 54) | class Smarty_Internal_Compile_Nocacheclose extends Smarty_Internal_Compi...
    method compile (line 65) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_private_block_plugin.php
  class Smarty_Internal_Compile_Private_Block_Plugin (line 17) | class Smarty_Internal_Compile_Private_Block_Plugin extends Smarty_Intern...
    method compile (line 47) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
    method setup (line 107) | public function setup(Smarty_Internal_TemplateCompilerBase $compiler, ...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_private_foreachsection.php
  class Smarty_Internal_Compile_Private_ForeachSection (line 17) | class Smarty_Internal_Compile_Private_ForeachSection extends Smarty_Inte...
    method scanForProperties (line 82) | public function scanForProperties($attributes, Smarty_Internal_Templat...
    method buildPropertyPreg (line 112) | public function buildPropertyPreg($named, $attributes)
    method matchProperty (line 140) | public function matchProperty($source)
    method matchTemplateSource (line 157) | public function matchTemplateSource(Smarty_Internal_TemplateCompilerBa...
    method matchParentTemplateSource (line 169) | public function matchParentTemplateSource(Smarty_Internal_TemplateComp...
    method matchBlockSource (line 197) | public function matchBlockSource(Smarty_Internal_TemplateCompilerBase ...
    method compileSpecialVariable (line 211) | public function compileSpecialVariable($args, Smarty_Internal_Template...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_private_function_plugin.php
  class Smarty_Internal_Compile_Private_Function_Plugin (line 17) | class Smarty_Internal_Compile_Private_Function_Plugin extends Smarty_Int...
    method compile (line 48) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_private_modifier.php
  class Smarty_Internal_Compile_Private_Modifier (line 18) | class Smarty_Internal_Compile_Private_Modifier extends Smarty_Internal_C...
    method compile (line 31) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_private_object_block_function.php
  class Smarty_Internal_Compile_Private_Object_Block_Function (line 17) | class Smarty_Internal_Compile_Private_Object_Block_Function extends Smar...
    method setup (line 29) | public function setup(Smarty_Internal_TemplateCompilerBase $compiler, ...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_private_object_function.php
  class Smarty_Internal_Compile_Private_Object_Function (line 17) | class Smarty_Internal_Compile_Private_Object_Function extends Smarty_Int...
    method compile (line 40) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_private_php.php
  class Smarty_Internal_Compile_Private_Php (line 17) | class Smarty_Internal_Compile_Private_Php extends Smarty_Internal_Compil...
    method compile (line 38) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
    method parsePhp (line 110) | public function parsePhp(Smarty_Internal_Templatelexer $lex)
    method quote (line 210) | private function quote($match)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_private_print_expression.php
  class Smarty_Internal_Compile_Private_Print_Expression (line 17) | class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_In...
    method compile (line 45) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
    method compile_variable_filter (line 137) | private function compile_variable_filter(Smarty_Internal_TemplateCompi...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_private_registered_block.php
  class Smarty_Internal_Compile_Private_Registered_Block (line 17) | class Smarty_Internal_Compile_Private_Registered_Block extends Smarty_In...
    method setup (line 29) | public function setup(Smarty_Internal_TemplateCompilerBase $compiler, ...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_private_registered_function.php
  class Smarty_Internal_Compile_Private_Registered_Function (line 17) | class Smarty_Internal_Compile_Private_Registered_Function extends Smarty...
    method compile (line 39) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_private_special_variable.php
  class Smarty_Internal_Compile_Private_Special_Variable (line 17) | class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_In...
    method compile (line 29) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_rdelim.php
  class Smarty_Internal_Compile_Rdelim (line 17) | class Smarty_Internal_Compile_Rdelim extends Smarty_Internal_Compile_Ldelim
    method compile (line 29) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_section.php
  class Smarty_Internal_Compile_Section (line 17) | class Smarty_Internal_Compile_Section extends Smarty_Internal_Compile_Pr...
    method compile (line 89) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
  class Smarty_Internal_Compile_Sectionelse (line 403) | class Smarty_Internal_Compile_Sectionelse extends Smarty_Internal_Compil...
    method compile (line 413) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
  class Smarty_Internal_Compile_Sectionclose (line 431) | class Smarty_Internal_Compile_Sectionclose extends Smarty_Internal_Compi...
    method compile (line 441) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_setfilter.php
  class Smarty_Internal_Compile_Setfilter (line 17) | class Smarty_Internal_Compile_Setfilter extends Smarty_Internal_CompileBase
    method compile (line 28) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
  class Smarty_Internal_Compile_Setfilterclose (line 45) | class Smarty_Internal_Compile_Setfilterclose extends Smarty_Internal_Com...
    method compile (line 56) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_shared_inheritance.php
  class Smarty_Internal_Compile_Shared_Inheritance (line 17) | class Smarty_Internal_Compile_Shared_Inheritance extends Smarty_Internal...
    method postCompile (line 25) | static function postCompile(Smarty_Internal_TemplateCompilerBase $comp...
    method registerInit (line 37) | public function registerInit(Smarty_Internal_TemplateCompilerBase $com...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compile_while.php
  class Smarty_Internal_Compile_While (line 17) | class Smarty_Internal_Compile_While extends Smarty_Internal_CompileBase
    method compile (line 29) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...
  class Smarty_Internal_Compile_Whileclose (line 80) | class Smarty_Internal_Compile_Whileclose extends Smarty_Internal_Compile...
    method compile (line 90) | public function compile($args, Smarty_Internal_TemplateCompilerBase $c...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_compilebase.php
  class Smarty_Internal_CompileBase (line 16) | abstract class Smarty_Internal_CompileBase
    method getAttributes (line 73) | public function getAttributes($compiler, $attributes)
    method openTag (line 156) | public function openTag($compiler, $openTag, $data = null)
    method closeTag (line 170) | public function closeTag($compiler, $expectedTag)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_config_file_compiler.php
  class Smarty_Internal_Config_File_Compiler (line 18) | class Smarty_Internal_Config_File_Compiler
    method __construct (line 83) | public function __construct($lexer_class, $parser_class, Smarty $smarty)
    method compileTemplate (line 102) | public function compileTemplate(Smarty_Internal_Template $template)
    method trigger_config_file_error (line 172) | public function trigger_config_file_error($args = null)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_configfilelexer.php
  class Smarty_Internal_Configfilelexer (line 22) | class Smarty_Internal_Configfilelexer
    method __construct (line 136) | function __construct($data, Smarty_Internal_Config_File_Compiler $comp...
    method replace (line 150) | public function replace($input)
    method PrintTrace (line 155) | public function PrintTrace()
    method yylex (line 161) | public function yylex()
    method yypushstate (line 166) | public function yypushstate($state)
    method yypopstate (line 186) | public function yypopstate()
    method yybegin (line 205) | public function yybegin($state)
    method yylex1 (line 217) | public function yylex1()
    method yy_r1_1 (line 272) | function yy_r1_1()
    method yy_r1_2 (line 278) | function yy_r1_2()
    method yy_r1_3 (line 284) | function yy_r1_3()
    method yy_r1_4 (line 289) | function yy_r1_4()
    method yy_r1_5 (line 295) | function yy_r1_5()
    method yy_r1_6 (line 300) | function yy_r1_6()
    method yy_r1_7 (line 305) | function yy_r1_7()
    method yy_r1_8 (line 310) | function yy_r1_8()
    method yylex2 (line 315) | public function yylex2()
    method yy_r2_1 (line 370) | function yy_r2_1()
    method yy_r2_2 (line 375) | function yy_r2_2()
    method yy_r2_3 (line 381) | function yy_r2_3()
    method yy_r2_4 (line 387) | function yy_r2_4()
    method yy_r2_5 (line 393) | function yy_r2_5()
    method yy_r2_6 (line 399) | function yy_r2_6()
    method yy_r2_7 (line 405) | function yy_r2_7()
    method yy_r2_8 (line 418) | function yy_r2_8()
    method yy_r2_9 (line 424) | function yy_r2_9()
    method yylex3 (line 431) | public function yylex3()
    method yy_r3_1 (line 485) | function yy_r3_1()
    method yylex4 (line 491) | public function yylex4()
    method yy_r4_1 (line 545) | function yy_r4_1()
    method yy_r4_2 (line 550) | function yy_r4_2()
    method yy_r4_3 (line 555) | function yy_r4_3()
    method yylex5 (line 561) | public function yylex5()
    method yy_r5_1 (line 615) | function yy_r5_1()
    method yy_r5_2 (line 620) | function yy_r5_2()
    method yylex6 (line 626) | public function yylex6()
    method yy_r6_1 (line 680) | function yy_r6_1()
    method yy_r6_2 (line 687) | function yy_r6_2()

FILE: Extend/Package/smarty/sysplugins/smarty_internal_configfileparser.php
  class TPC_yyStackEntry (line 3) | class TPC_yyStackEntry
  class Smarty_Internal_Configfileparser (line 24) | class Smarty_Internal_Configfileparser
    method __construct (line 278) | function __construct(Smarty_Internal_Configfilelexer $lex, Smarty_Inte...
    method yy_destructor (line 287) | public static function yy_destructor($yymajor, $yypminor)
    method parse_single_quoted_string (line 304) | private static function parse_single_quoted_string($qstr)
    method parse_double_quoted_string (line 326) | private static function parse_double_quoted_string($qstr)
    method parse_tripple_double_quoted_string (line 338) | private static function parse_tripple_double_quoted_string($qstr)
    method Trace (line 342) | public function Trace($TraceFILE, $zTracePrompt)
    method PrintTrace (line 353) | public function PrintTrace()
    method tokenName (line 359) | public function tokenName($tokenType)
    method yy_pop_parser_stack (line 371) | public function yy_pop_parser_stack()
    method __destruct (line 388) | public function __destruct()
    method yy_get_expected_tokens (line 398) | public function yy_get_expected_tokens($token)
    method yy_is_expected_token (line 482) | public function yy_is_expected_token($token)
    method yy_find_shift_action (line 571) | public function yy_find_shift_action($iLookAhead)
    method yy_find_reduce_action (line 605) | public function yy_find_reduce_action($stateno, $iLookAhead)
    method yy_shift (line 627) | public function yy_shift($yyNewState, $yyMajor, $yypMinor)
    method yy_r0 (line 663) | function yy_r0()
    method yy_r1 (line 668) | function yy_r1()
    method yy_r4 (line 674) | function yy_r4()
    method yy_r5 (line 681) | function yy_r5()
    method yy_r6 (line 691) | function yy_r6()
    method yy_r7 (line 697) | function yy_r7()
    method yy_r8 (line 704) | function yy_r8()
    method yy_r9 (line 710) | function yy_r9()
    method yy_r10 (line 717) | function yy_r10()
    method yy_r11 (line 723) | function yy_r11()
    method yy_r12 (line 729) | function yy_r12()
    method yy_r13 (line 735) | function yy_r13()
    method yy_r14 (line 741) | function yy_r14()
    method yy_r15 (line 747) | function yy_r15()
    method yy_r16 (line 753) | function yy_r16()
    method yy_r17 (line 759) | function yy_r17()
    method yy_reduce (line 765) | public function yy_reduce($yyruleno)
    method yy_parse_failed (line 807) | public function yy_parse_failed()
    method yy_syntax_error (line 818) | public function yy_syntax_error($yymajor, $TOKEN)
    method yy_accept (line 826) | public function yy_accept()
    method doParse (line 840) | public function doParse($yymajor, $yytokenvalue)
    method parse_bool (line 939) | private function parse_bool($str)
    method set_var (line 956) | private function set_var(array $var, array &$target_array)
    method add_global_vars (line 973) | private function add_global_vars(array $vars)
    method add_section_vars (line 989) | private function add_section_vars($section_name, array $vars)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_data.php
  class Smarty_Internal_Data (line 32) | abstract class Smarty_Internal_Data
    method __construct (line 81) | public function __construct()
    method assign (line 97) | public function assign($tpl_var, $value = null, $nocache = false)
    method append (line 130) | public function append($tpl_var, $value = null, $merge = false, $nocac...
    method assignGlobal (line 144) | public function assignGlobal($varName, $value = null, $nocache = false)
    method appendByRef (line 158) | public function appendByRef($tpl_var, &$value, $merge = false)
    method assignByRef (line 172) | public function assignByRef($tpl_var, &$value, $nocache = false)
    method getTemplateVars (line 189) | public function getTemplateVars($varName = null, Smarty_Internal_Data ...
    method getVariable (line 205) | public function getVariable($variable = null, Smarty_Internal_Data $_p...
    method _mergeVars (line 216) | public function _mergeVars(Smarty_Internal_Data $data = null)
    method _isDataObj (line 238) | public function _isDataObj()
    method _isTplObj (line 248) | public function _isTplObj()
    method _isSmartyObj (line 258) | public function _isSmartyObj()
    method _getSmartyObj (line 268) | public function _getSmartyObj()
    method __call (line 282) | public function __call($name, $args)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_debug.php
  class Smarty_Internal_Debug (line 17) | class Smarty_Internal_Debug extends Smarty_Internal_Data
    method start_template (line 53) | public function start_template(Smarty_Internal_Template $template, $mo...
    method end_template (line 69) | public function end_template(Smarty_Internal_Template $template)
    method start_compile (line 82) | public function start_compile(Smarty_Internal_Template $template)
    method end_compile (line 112) | public function end_compile(Smarty_Internal_Template $template)
    method start_render (line 132) | public function start_render(Smarty_Internal_Template $template)
    method end_render (line 143) | public function end_render(Smarty_Internal_Template $template)
    method start_cache (line 155) | public function start_cache(Smarty_Internal_Template $template)
    method end_cache (line 166) | public function end_cache(Smarty_Internal_Template $template)
    method register_template (line 178) | public function register_template(Smarty_Internal_Template $template)
    method register_data (line 187) | public static function register_data(Smarty_Data $data)
    method display_debug (line 200) | public function display_debug($obj, $full = false)
    method get_debug_vars (line 271) | public function get_debug_vars($obj)
    method get_key (line 358) | private function get_key(Smarty_Internal_Template $template)
    method ignore (line 389) | public function ignore(Smarty_Internal_Template $template)
    method debugUrl (line 403) | public function debugUrl(Smarty $smarty)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_errorhandler.php
  class Smarty_Internal_ErrorHandler (line 14) | class Smarty_Internal_ErrorHandler
    method muteExpectedErrors (line 30) | public static function muteExpectedErrors()
    method mutingErrorHandler (line 69) | public static function mutingErrorHandler($errno, $errstr, $errfile, $...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_extension_handler.php
  class Smarty_Internal_Extension_Handler (line 40) | class Smarty_Internal_Extension_Handler
    method _callExternalMethod (line 67) | public function _callExternalMethod(Smarty_Internal_Data $data, $name,...
    method upperCase (line 140) | public function upperCase($name)
    method __get (line 155) | public function __get($property_name)
    method __set (line 177) | public function __set($property_name, $value)
    method __call (line 191) | public function __call($name, $args)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_addautoloadfilters.php
  class Smarty_Internal_Method_AddAutoloadFilters (line 12) | class Smarty_Internal_Method_AddAutoloadFilters extends Smarty_Internal_...
    method addAutoloadFilters (line 29) | public function addAutoloadFilters(Smarty_Internal_TemplateBase $obj, ...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_adddefaultmodifiers.php
  class Smarty_Internal_Method_AddDefaultModifiers (line 12) | class Smarty_Internal_Method_AddDefaultModifiers
    method addDefaultModifiers (line 32) | public function addDefaultModifiers(Smarty_Internal_TemplateBase $obj,...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_append.php
  class Smarty_Internal_Method_Append (line 12) | class Smarty_Internal_Method_Append
    method append (line 36) | public function append(Smarty_Internal_Data $data, $tpl_var, $value = ...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_appendbyref.php
  class Smarty_Internal_Method_AppendByRef (line 12) | class Smarty_Internal_Method_AppendByRef
    method appendByRef (line 28) | public static function appendByRef(Smarty_Internal_Data $data, $tpl_va...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_assignbyref.php
  class Smarty_Internal_Method_AssignByRef (line 12) | class Smarty_Internal_Method_AssignByRef
    method assignByRef (line 25) | public function assignByRef(Smarty_Internal_Data $data, $tpl_var, &$va...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_assignglobal.php
  class Smarty_Internal_Method_AssignGlobal (line 12) | class Smarty_Internal_Method_AssignGlobal
    method assignGlobal (line 31) | public function assignGlobal(Smarty_Internal_Data $data, $varName, $va...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_clearallassign.php
  class Smarty_Internal_Method_ClearAllAssign (line 12) | class Smarty_Internal_Method_ClearAllAssign
    method clearAllAssign (line 31) | public function clearAllAssign(Smarty_Internal_Data $data)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_clearallcache.php
  class Smarty_Internal_Method_ClearAllCache (line 12) | class Smarty_Internal_Method_ClearAllCache
    method clearAllCache (line 34) | public function clearAllCache(Smarty $smarty, $exp_time = null, $type ...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_clearassign.php
  class Smarty_Internal_Method_ClearAssign (line 12) | class Smarty_Internal_Method_ClearAssign
    method clearAssign (line 32) | public function clearAssign(Smarty_Internal_Data $data, $tpl_var)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_clearcache.php
  class Smarty_Internal_Method_ClearCache (line 12) | class Smarty_Internal_Method_ClearCache
    method clearCache (line 37) | public function clearCache(Smarty $smarty, $template_name, $cache_id =...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_clearcompiledtemplate.php
  class Smarty_Internal_Method_ClearCompiledTemplate (line 12) | class Smarty_Internal_Method_ClearCompiledTemplate
    method clearCompiledTemplate (line 35) | public function clearCompiledTemplate(Smarty $smarty, $resource_name =...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_clearconfig.php
  class Smarty_Internal_Method_ClearConfig (line 12) | class Smarty_Internal_Method_ClearConfig
    method clearConfig (line 32) | public function clearConfig(Smarty_Internal_Data $data, $name = null)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_compileallconfig.php
  class Smarty_Internal_Method_CompileAllConfig (line 12) | class Smarty_Internal_Method_CompileAllConfig extends Smarty_Internal_Me...
    method compileAllConfig (line 28) | public function compileAllConfig(Smarty $smarty, $extension = '.conf',...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_compilealltemplates.php
  class Smarty_Internal_Method_CompileAllTemplates (line 11) | class Smarty_Internal_Method_CompileAllTemplates
    method compileAllTemplates (line 33) | public function compileAllTemplates(Smarty $smarty,
    method compileAll (line 54) | protected function compileAll(Smarty $smarty,

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_configload.php
  class Smarty_Internal_Method_ConfigLoad (line 12) | class Smarty_Internal_Method_ConfigLoad
    method configLoad (line 35) | public function configLoad(Smarty_Internal_Data $data, $config_file, $...
    method _loadConfigFile (line 57) | public function _loadConfigFile(Smarty_Internal_Data $data, $config_fi...
    method _loadConfigVars (line 81) | public function _loadConfigVars(Smarty_Internal_Template $tpl, $new_co...
    method _assignConfigVars (line 116) | public function _assignConfigVars(&$config_vars, Smarty_Internal_Templ...
    method _updateVarStack (line 149) | public function _updateVarStack(Smarty_Internal_Template $tpl, $config...
    method _getConfigVariable (line 167) | public function _getConfigVariable(Smarty_Internal_Data $data, $varNam...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_createdata.php
  class Smarty_Internal_Method_CreateData (line 12) | class Smarty_Internal_Method_CreateData
    method createData (line 34) | public function createData(Smarty_Internal_TemplateBase $obj, Smarty_I...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_getautoloadfilters.php
  class Smarty_Internal_Method_GetAutoloadFilters (line 12) | class Smarty_Internal_Method_GetAutoloadFilters extends Smarty_Internal_...
    method getAutoloadFilters (line 28) | public function getAutoloadFilters(Smarty_Internal_TemplateBase $obj, ...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_getconfigvariable.php
  class Smarty_Internal_Method_GetConfigVariable (line 12) | class Smarty_Internal_Method_GetConfigVariable
    method getConfigVariable (line 30) | public function getConfigVariable(Smarty_Internal_Data $data, $varName...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_getconfigvars.php
  class Smarty_Internal_Method_GetConfigVars (line 12) | class Smarty_Internal_Method_GetConfigVars
    method getConfigVars (line 33) | public function getConfigVars(Smarty_Internal_Data $data, $varname = n...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_getdebugtemplate.php
  class Smarty_Internal_Method_GetDebugTemplate (line 12) | class Smarty_Internal_Method_GetDebugTemplate
    method getDebugTemplate (line 30) | public function getDebugTemplate(Smarty_Internal_TemplateBase $obj)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_getdefaultmodifiers.php
  class Smarty_Internal_Method_GetDefaultModifiers (line 12) | class Smarty_Internal_Method_GetDefaultModifiers
    method getDefaultModifiers (line 30) | public function getDefaultModifiers(Smarty_Internal_TemplateBase $obj)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_getglobal.php
  class Smarty_Internal_Method_GetGlobal (line 12) | class Smarty_Internal_Method_GetGlobal
    method getGlobal (line 31) | public function getGlobal(Smarty_Internal_Data $data, $varName = null)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_getregisteredobject.php
  class Smarty_Internal_Method_GetRegisteredObject (line 12) | class Smarty_Internal_Method_GetRegisteredObject
    method getRegisteredObject (line 33) | public function getRegisteredObject(Smarty_Internal_TemplateBase $obj,...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_getstreamvariable.php
  class Smarty_Internal_Method_GetStreamVariable (line 12) | class Smarty_Internal_Method_GetStreamVariable
    method getStreamVariable (line 32) | public function getStreamVariable(Smarty_Internal_Data $data, $variable)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_gettags.php
  class Smarty_Internal_Method_GetTags (line 12) | class Smarty_Internal_Method_GetTags
    method getTags (line 34) | public function getTags(Smarty_Internal_TemplateBase $obj, $template =...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_gettemplatevars.php
  class Smarty_Internal_Method_GetTemplateVars (line 12) | class Smarty_Internal_Method_GetTemplateVars
    method getTemplateVars (line 34) | public function getTemplateVars(Smarty_Internal_Data $data, $varName =...
    method _getVariable (line 84) | public function _getVariable(Smarty_Internal_Data $data, $varName, Sma...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_literals.php
  class Smarty_Internal_Method_Literals (line 12) | class Smarty_Internal_Method_Literals
    method getLiterals (line 30) | public function getLiterals(Smarty_Internal_TemplateBase $obj)
    method addLiterals (line 48) | public function addLiterals(Smarty_Internal_TemplateBase $obj, $litera...
    method setLiterals (line 68) | public function setLiterals(Smarty_Internal_TemplateBase $obj, $litera...
    method set (line 87) | private function set(Smarty $smarty, $literals)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_loadfilter.php
  class Smarty_Internal_Method_LoadFilter (line 12) | class Smarty_Internal_Method_LoadFilter
    method loadFilter (line 42) | public function loadFilter(Smarty_Internal_TemplateBase $obj, $type, $...
    method _checkFilterType (line 71) | public function _checkFilterType($type)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_loadplugin.php
  class Smarty_Internal_Method_LoadPlugin (line 12) | class Smarty_Internal_Method_LoadPlugin
    method loadPlugin (line 33) | public function loadPlugin(Smarty $smarty, $plugin_name, $check)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_mustcompile.php
  class Smarty_Internal_Method_MustCompile (line 12) | class Smarty_Internal_Method_MustCompile
    method mustCompile (line 31) | public function mustCompile(Smarty_Internal_Template $_template)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_registercacheresource.php
  class Smarty_Internal_Method_RegisterCacheResource (line 12) | class Smarty_Internal_Method_RegisterCacheResource
    method registerCacheResource (line 33) | public function registerCacheResource(Smarty_Internal_TemplateBase $ob...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_registerclass.php
  class Smarty_Internal_Method_RegisterClass (line 12) | class Smarty_Internal_Method_RegisterClass
    method registerClass (line 35) | public function registerClass(Smarty_Internal_TemplateBase $obj, $clas...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_registerdefaultconfighandler.php
  class Smarty_Internal_Method_RegisterDefaultConfigHandler (line 12) | class Smarty_Internal_Method_RegisterDefaultConfigHandler
    method registerDefaultConfigHandler (line 32) | public function registerDefaultConfigHandler(Smarty_Internal_TemplateB...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_registerdefaultpluginhandler.php
  class Smarty_Internal_Method_RegisterDefaultPluginHandler (line 12) | class Smarty_Internal_Method_RegisterDefaultPluginHandler
    method registerDefaultPluginHandler (line 33) | public function registerDefaultPluginHandler(Smarty_Internal_TemplateB...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_registerdefaulttemplatehandler.php
  class Smarty_Internal_Method_RegisterDefaultTemplateHandler (line 12) | class Smarty_Internal_Method_RegisterDefaultTemplateHandler
    method registerDefaultTemplateHandler (line 32) | public function registerDefaultTemplateHandler(Smarty_Internal_Templat...
    method _getDefaultTemplate (line 50) | public static function _getDefaultTemplate(Smarty_Template_Source $sou...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_registerfilter.php
  class Smarty_Internal_Method_RegisterFilter (line 12) | class Smarty_Internal_Method_RegisterFilter
    method registerFilter (line 43) | public function registerFilter(Smarty_Internal_TemplateBase $obj, $typ...
    method _getFilterName (line 62) | public function _getFilterName($function_name)
    method _checkFilterType (line 82) | public function _checkFilterType($type)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_registerobject.php
  class Smarty_Internal_Method_RegisterObject (line 12) | class Smarty_Internal_Method_RegisterObject
    method registerObject (line 47) | public function registerObject(Smarty_Internal_TemplateBase $obj, $obj...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_registerplugin.php
  class Smarty_Internal_Method_RegisterPlugin (line 12) | class Smarty_Internal_Method_RegisterPlugin
    method registerPlugin (line 38) | public function registerPlugin(Smarty_Internal_TemplateBase $obj, $typ...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_registerresource.php
  class Smarty_Internal_Method_RegisterResource (line 12) | class Smarty_Internal_Method_RegisterResource
    method registerResource (line 37) | public function registerResource(Smarty_Internal_TemplateBase $obj, $n...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_setautoloadfilters.php
  class Smarty_Internal_Method_SetAutoloadFilters (line 12) | class Smarty_Internal_Method_SetAutoloadFilters
    method setAutoloadFilters (line 43) | public function setAutoloadFilters(Smarty_Internal_TemplateBase $obj, ...
    method _checkFilterType (line 65) | public function _checkFilterType($type)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_setdebugtemplate.php
  class Smarty_Internal_Method_SetDebugTemplate (line 12) | class Smarty_Internal_Method_SetDebugTemplate
    method setDebugTemplate (line 32) | public function setDebugTemplate(Smarty_Internal_TemplateBase $obj, $t...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_setdefaultmodifiers.php
  class Smarty_Internal_Method_SetDefaultModifiers (line 12) | class Smarty_Internal_Method_SetDefaultModifiers
    method setDefaultModifiers (line 32) | public function setDefaultModifiers(Smarty_Internal_TemplateBase $obj,...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_unloadfilter.php
  class Smarty_Internal_Method_UnloadFilter (line 12) | class Smarty_Internal_Method_UnloadFilter extends Smarty_Internal_Method...
    method unloadFilter (line 28) | public function unloadFilter(Smarty_Internal_TemplateBase $obj, $type,...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_unregistercacheresource.php
  class Smarty_Internal_Method_UnregisterCacheResource (line 12) | class Smarty_Internal_Method_UnregisterCacheResource
    method unregisterCacheResource (line 32) | public function unregisterCacheResource(Smarty_Internal_TemplateBase $...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_unregisterfilter.php
  class Smarty_Internal_Method_UnregisterFilter (line 12) | class Smarty_Internal_Method_UnregisterFilter extends Smarty_Internal_Me...
    method unregisterFilter (line 28) | public function unregisterFilter(Smarty_Internal_TemplateBase $obj, $t...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_unregisterobject.php
  class Smarty_Internal_Method_UnregisterObject (line 12) | class Smarty_Internal_Method_UnregisterObject
    method unregisterObject (line 32) | public function unregisterObject(Smarty_Internal_TemplateBase $obj, $o...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_unregisterplugin.php
  class Smarty_Internal_Method_UnregisterPlugin (line 12) | class Smarty_Internal_Method_UnregisterPlugin
    method unregisterPlugin (line 33) | public function unregisterPlugin(Smarty_Internal_TemplateBase $obj, $t...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_method_unregisterresource.php
  class Smarty_Internal_Method_UnregisterResource (line 12) | class Smarty_Internal_Method_UnregisterResource
    method unregisterResource (line 32) | public function unregisterResource(Smarty_Internal_TemplateBase $obj, ...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_nocache_insert.php
  class Smarty_Internal_Nocache_Insert (line 17) | class Smarty_Internal_Nocache_Insert
    method compile (line 30) | public static function compile($_function, $_attr, $_template, $_scrip...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_parsetree.php
  class Smarty_Internal_ParseTree (line 17) | abstract class Smarty_Internal_ParseTree
    method to_smarty_php (line 41) | abstract public function to_smarty_php(Smarty_Internal_Templateparser ...
    method __destruct (line 46) | public function __destruct()

FILE: Extend/Package/smarty/sysplugins/smarty_internal_parsetree_code.php
  class Smarty_Internal_ParseTree_Code (line 19) | class Smarty_Internal_ParseTree_Code extends Smarty_Internal_ParseTree
    method __construct (line 26) | public function __construct($data)
    method to_smarty_php (line 38) | public function to_smarty_php(Smarty_Internal_Templateparser $parser)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_parsetree_dq.php
  class Smarty_Internal_ParseTree_Dq (line 18) | class Smarty_Internal_ParseTree_Dq extends Smarty_Internal_ParseTree
    method __construct (line 26) | public function __construct($parser, Smarty_Internal_ParseTree $subtree)
    method append_subtree (line 40) | public function append_subtree(Smarty_Internal_Templateparser $parser,...
    method to_smarty_php (line 73) | public function to_smarty_php(Smarty_Internal_Templateparser $parser)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_parsetree_dqcontent.php
  class Smarty_Internal_ParseTree_DqContent (line 19) | class Smarty_Internal_ParseTree_DqContent extends Smarty_Internal_ParseTree
    method __construct (line 26) | public function __construct($data)
    method to_smarty_php (line 38) | public function to_smarty_php(Smarty_Internal_Templateparser $parser)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_parsetree_tag.php
  class Smarty_Internal_ParseTree_Tag (line 19) | class Smarty_Internal_ParseTree_Tag extends Smarty_Internal_ParseTree
    method __construct (line 35) | public function __construct(Smarty_Internal_Templateparser $parser, $d...
    method to_smarty_php (line 48) | public function to_smarty_php(Smarty_Internal_Templateparser $parser)
    method assign_to_var (line 60) | public function assign_to_var(Smarty_Internal_Templateparser $parser)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_parsetree_template.php
  class Smarty_Internal_ParseTree_Template (line 19) | class Smarty_Internal_ParseTree_Template extends Smarty_Internal_ParseTree
    method __construct (line 33) | public function __construct()
    method append_subtree (line 43) | public function append_subtree(Smarty_Internal_Templateparser $parser,...
    method append_array (line 60) | public function append_array(Smarty_Internal_Templateparser $parser, $...
    method prepend_array (line 73) | public function prepend_array(Smarty_Internal_Templateparser $parser, ...
    method to_smarty_php (line 87) | public function to_smarty_php(Smarty_Internal_Templateparser $parser)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_parsetree_text.php
  class Smarty_Internal_ParseTree_Text (line 17) | class Smarty_Internal_ParseTree_Text extends Smarty_Internal_ParseTree
    method __construct (line 24) | public function __construct($data)
    method to_smarty_php (line 36) | public function to_smarty_php(Smarty_Internal_Templateparser $parser)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_resource_eval.php
  class Smarty_Internal_Resource_Eval (line 19) | class Smarty_Internal_Resource_Eval extends Smarty_Resource_Recompiled
    method populate (line 29) | public function populate(Smarty_Template_Source $source, Smarty_Intern...
    method getContent (line 44) | public function getContent(Smarty_Template_Source $source)
    method decode (line 56) | protected function decode($string)
    method buildUniqueResourceName (line 79) | public function buildUniqueResourceName(Smarty $smarty, $resource_name...
    method getBasename (line 91) | public function getBasename(Smarty_Template_Source $source)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_resource_extends.php
  class Smarty_Internal_Resource_Extends (line 18) | class Smarty_Internal_Resource_Extends extends Smarty_Resource
    method populate (line 35) | public function populate(Smarty_Template_Source $source, Smarty_Intern...
    method populateTimestamp (line 68) | public function populateTimestamp(Smarty_Template_Source $source)
    method getContent (line 86) | public function getContent(Smarty_Template_Source $source)
    method getBasename (line 110) | public function getBasename(Smarty_Template_Source $source)
    method checkTimestamps (line 124) | public function checkTimestamps()

FILE: Extend/Package/smarty/sysplugins/smarty_internal_resource_file.php
  class Smarty_Internal_Resource_File (line 18) | class Smarty_Internal_Resource_File extends Smarty_Resource
    method buildFilepath (line 29) | protected function buildFilepath(Smarty_Template_Source $source, Smart...
    method populate (line 118) | public function populate(Smarty_Template_Source $source, Smarty_Intern...
    method populateTimestamp (line 140) | public function populateTimestamp(Smarty_Template_Source $source)
    method getContent (line 158) | public function getContent(Smarty_Template_Source $source)
    method getBasename (line 174) | public function getBasename(Smarty_Template_Source $source)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_resource_php.php
  class Smarty_Internal_Resource_Php (line 12) | class Smarty_Internal_Resource_Php extends Smarty_Internal_Resource_File
    method __construct (line 38) | public function __construct()
    method getContent (line 51) | public function getContent(Smarty_Template_Source $source)
    method populateCompiledFilepath (line 65) | public function populateCompiledFilepath(Smarty_Template_Compiled $com...
    method renderUncompiled (line 85) | public function renderUncompiled(Smarty_Template_Source $source, Smart...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_resource_registered.php
  class Smarty_Internal_Resource_Registered (line 19) | class Smarty_Internal_Resource_Registered extends Smarty_Resource
    method populate (line 29) | public function populate(Smarty_Template_Source $source, Smarty_Intern...
    method populateTimestamp (line 44) | public function populateTimestamp(Smarty_Template_Source $source)
    method getTemplateTimestamp (line 57) | public function getTemplateTimestamp(Smarty_Template_Source $source)
    method getContent (line 75) | public function getContent(Smarty_Template_Source $source)
    method getBasename (line 95) | public function getBasename(Smarty_Template_Source $source)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_resource_stream.php
  class Smarty_Internal_Resource_Stream (line 20) | class Smarty_Internal_Resource_Stream extends Smarty_Resource_Recompiled
    method populate (line 31) | public function populate(Smarty_Template_Source $source, Smarty_Intern...
    method getContent (line 51) | public function getContent(Smarty_Template_Source $source)
    method buildUniqueResourceName (line 77) | public function buildUniqueResourceName(Smarty $smarty, $resource_name...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_resource_string.php
  class Smarty_Internal_Resource_String (line 19) | class Smarty_Internal_Resource_String extends Smarty_Resource
    method populate (line 29) | public function populate(Smarty_Template_Source $source, Smarty_Intern...
    method getContent (line 44) | public function getContent(Smarty_Template_Source $source)
    method decode (line 56) | protected function decode($string)
    method buildUniqueResourceName (line 79) | public function buildUniqueResourceName(Smarty $smarty, $resource_name...
    method getBasename (line 92) | public function getBasename(Smarty_Template_Source $source)
    method checkTimestamps (line 105) | public function checkTimestamps()

FILE: Extend/Package/smarty/sysplugins/smarty_internal_runtime_cachemodify.php
  class Smarty_Internal_Runtime_CacheModify (line 11) | class Smarty_Internal_Runtime_CacheModify
    method cacheModifiedCheck (line 23) | public function cacheModifiedCheck(Smarty_Template_Cached $cached, Sma...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_runtime_cacheresourcefile.php
  class Smarty_Internal_Runtime_CacheResourceFile (line 15) | class Smarty_Internal_Runtime_CacheResourceFile
    method clear (line 28) | public function clear(Smarty $smarty, $resource_name, $cache_id, $comp...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_runtime_capture.php
  class Smarty_Internal_Runtime_Capture (line 10) | class Smarty_Internal_Runtime_Capture
    method open (line 62) | public function open(Smarty_Internal_Template $_template, $buffer, $as...
    method register (line 79) | private function register(Smarty_Internal_Template $_template)
    method startRender (line 94) | public function startRender(Smarty_Internal_Template $_template)
    method close (line 107) | public function close(Smarty_Internal_Template $_template)
    method error (line 131) | public function error(Smarty_Internal_Template $_template)
    method getBuffer (line 144) | public function getBuffer(Smarty_Internal_Template $_template, $name =...
    method endRender (line 160) | public function endRender(Smarty_Internal_Template $_template)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_runtime_codeframe.php
  class Smarty_Internal_Runtime_CodeFrame (line 15) | class Smarty_Internal_Runtime_CodeFrame
    method create (line 28) | public function create(Smarty_Internal_Template $_template, $content =...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_runtime_filterhandler.php
  class Smarty_Internal_Runtime_FilterHandler (line 17) | class Smarty_Internal_Runtime_FilterHandler
    method runFilter (line 33) | public function runFilter($type, $content, Smarty_Internal_Template $t...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_runtime_foreach.php
  class Smarty_Internal_Runtime_Foreach (line 11) | class Smarty_Internal_Runtime_Foreach
    method init (line 37) | public function init(Smarty_Internal_Template $tpl, $from, $item, $nee...
    method count (line 105) | public function count($value)
    method restore (line 131) | public function restore(Smarty_Internal_Template $tpl, $levels = 1)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_runtime_getincludepath.php
  class Smarty_Internal_Runtime_GetIncludePath (line 16) | class Smarty_Internal_Runtime_GetIncludePath
    method isNewIncludePath (line 74) | public function isNewIncludePath(Smarty $smarty)
    method getIncludePathDirs (line 98) | public function getIncludePathDirs(Smarty $smarty)
    method getIncludePath (line 114) | public function getIncludePath($dirs, $file, Smarty $smarty)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_runtime_inheritance.php
  class Smarty_Internal_Runtime_Inheritance (line 11) | class Smarty_Internal_Runtime_Inheritance
    method init (line 70) | public function init(Smarty_Internal_Template $tpl, $initChild, $block...
    method endChild (line 110) | public function endChild(Smarty_Internal_Template $tpl, $template = nu...
    method instanceBlock (line 144) | public function instanceBlock(Smarty_Internal_Template $tpl, $classNam...
    method process (line 170) | public function process(Smarty_Internal_Template $tpl,
    method callChild (line 214) | public function callChild(Smarty_Internal_Template $tpl, Smarty_Intern...
    method callParent (line 239) | public function callParent(Smarty_Internal_Template $tpl,
    method callBlock (line 273) | public function callBlock(Smarty_Internal_Block $block, Smarty_Interna...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_runtime_make_nocache.php
  class Smarty_Internal_Runtime_Make_Nocache (line 11) | class Smarty_Internal_Runtime_Make_Nocache
    method save (line 23) | public function save(Smarty_Internal_Template $tpl, $var)
    method store (line 44) | public function store(Smarty_Internal_Template $tpl, $var, $properties)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_runtime_tplfunction.php
  class Smarty_Internal_Runtime_TplFunction (line 11) | class Smarty_Internal_Runtime_TplFunction
    method callTemplateFunction (line 23) | public function callTemplateFunction(Smarty_Internal_Template $tpl, $n...
    method registerTplFunctions (line 61) | public function registerTplFunctions(Smarty_Internal_TemplateBase $obj...
    method getTplFunction (line 82) | public function getTplFunction(Smarty_Internal_Template $tpl, $name = ...
    method addTplFuncToCache (line 102) | public function addTplFuncToCache(Smarty_Internal_Template $tpl, $_nam...
    method saveTemplateVariables (line 151) | public function saveTemplateVariables(Smarty_Internal_Template $tpl, $...
    method restoreTemplateVariables (line 163) | public function restoreTemplateVariables(Smarty_Internal_Template $tpl...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_runtime_updatecache.php
  class Smarty_Internal_Runtime_UpdateCache (line 11) | class Smarty_Internal_Runtime_UpdateCache
    method cacheModifiedCheck (line 20) | public function cacheModifiedCheck(Smarty_Template_Cached $cached, Sma...
    method removeNoCacheHash (line 33) | public function removeNoCacheHash(Smarty_Template_Cached $cached, Smar...
    method updateCache (line 83) | public function updateCache(Smarty_Template_Cached $cached, Smarty_Int...
    method writeCachedContent (line 118) | public function writeCachedContent(Smarty_Template_Cached $cached, Sma...
    method write (line 138) | public function write(Smarty_Template_Cached $cached, Smarty_Internal_...

FILE: Extend/Package/smarty/sysplugins/smarty_internal_runtime_updatescope.php
  class Smarty_Internal_Runtime_UpdateScope (line 11) | class Smarty_Internal_Runtime_UpdateScope
    method _updateScope (line 22) | public function _updateScope(Smarty_Internal_Template $tpl, $varName, ...
    method _getAffectedScopes (line 51) | public function _getAffectedScopes(Smarty_Internal_Template $tpl, $mer...
    method _updateVariableInOtherScope (line 91) | public function _updateVariableInOtherScope(&$tpl_vars, Smarty_Interna...
    method _updateVarStack (line 107) | public function _updateVarStack(Smarty_Internal_Template $tpl, $varName)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_runtime_writefile.php
  class Smarty_Internal_Runtime_WriteFile (line 15) | class Smarty_Internal_Runtime_WriteFile
    method writeFile (line 27) | public function writeFile($_filepath, $_contents, Smarty $smarty)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_smartytemplatecompiler.php
  class Smarty_Internal_SmartyTemplateCompiler (line 17) | class Smarty_Internal_SmartyTemplateCompiler extends Smarty_Internal_Tem...
    method __construct (line 68) | public function __construct($lexer_class, $parser_class, Smarty $smarty)
    method doCompile (line 85) | protected function doCompile($_content, $isTemplateSource = false)
    method registerPostCompileCallback (line 153) | public function registerPostCompileCallback($callback, $parameter = ar...
    method unregisterPostCompileCallback (line 170) | public function unregisterPostCompileCallback($key)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_template.php
  class Smarty_Internal_Template (line 27) | class Smarty_Internal_Template extends Smarty_Internal_TemplateBase
    method __construct (line 146) | public function __construct($template_resource, Smarty $smarty, Smarty...
    method render (line 177) | public function render($no_output_filter = true, $display = null)
    method _subTemplateRender (line 275) | public function _subTemplateRender($template, $cache_id, $compile_id, ...
    method _subTemplateRegister (line 383) | public function _subTemplateRegister()
    method _isSubTpl (line 399) | public function _isSubTpl()
    method _assignInScope (line 413) | public function _assignInScope($varName, $value, $nocache = false, $sc...
    method _decodeProperties (line 443) | public function _decodeProperties(Smarty_Internal_Template $tpl, $prop...
    method compileTemplateSource (line 512) | public function compileTemplateSource()
    method writeCachedContent (line 524) | public function writeCachedContent($content)
    method _getTemplateId (line 535) | public function _getTemplateId()
    method capture_error (line 544) | public function capture_error()
    method loadCompiled (line 554) | public function loadCompiled($force = false)
    method loadCached (line 566) | public function loadCached($force = false)
    method _loadInheritance (line 577) | public function _loadInheritance()
    method _cleanUp (line 588) | public function _cleanUp()
    method loadCompiler (line 600) | public function loadCompiler()
    method __call (line 619) | public function __call($name, $args)
    method __set (line 637) | public function __set($property_name, $value)
    method __get (line 663) | public function __get($property_name)
    method __destruct (line 689) | public function __destruct()

FILE: Extend/Package/smarty/sysplugins/smarty_internal_templatebase.php
  class Smarty_Internal_TemplateBase (line 49) | abstract class Smarty_Internal_TemplateBase extends Smarty_Internal_Data
    method fetch (line 114) | public function fetch($template = null, $cache_id = null, $compile_id ...
    method display (line 131) | public function display($template = null, $cache_id = null, $compile_i...
    method isCached (line 152) | public function isCached($template = null, $cache_id = null, $compile_...
    method _execute (line 170) | private function _execute($template, $cache_id, $compile_id, $parent, ...
    method registerPlugin (line 276) | public function registerPlugin($type, $name, $callback, $cacheable = t...
    method loadFilter (line 293) | public function loadFilter($type, $name)
    method registerFilter (line 311) | public function registerFilter($type, $callback, $name = null)
    method registerObject (line 331) | public function registerObject($object_name, $object, $allowed_methods...
    method setCompileCheck (line 341) | public function setCompileCheck($compile_check)
    method setCaching (line 349) | public function setCaching($caching)
    method setCacheLifetime (line 357) | public function setCacheLifetime($cache_lifetime)
    method setCompileId (line 365) | public function setCompileId($compile_id)
    method setCacheId (line 373) | public function setCacheId($cache_id)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_templatecompilerbase.php
  class Smarty_Internal_TemplateCompilerBase (line 22) | abstract class Smarty_Internal_TemplateCompilerBase
    method __construct (line 304) | public function __construct(Smarty $smarty)
    method compileTemplate (line 323) | public function compileTemplate(Smarty_Internal_Template $template,
    method compileTemplateSource (line 349) | public function compileTemplateSource(Smarty_Internal_Template $template,
    method postFilter (line 431) | public function postFilter($code)
    method preFilter (line 451) | public function preFilter($_content)
    method compileTag (line 480) | public function compileTag($tag, $args, $parameter = array())
    method compileVariable (line 496) | public function compileVariable($variable)
    method compileConfigVariable (line 519) | public function compileConfigVariable($variable)
    method compilePHPFunctionCall (line 534) | public function compilePHPFunctionCall($name, $parameter)
    method processText (line 595) | public function processText($text)
    method callTagCompiler (line 664) | public function callTagCompiler($tag, $args, $param1 = null, $param2 =...
    method getTagCompiler (line 683) | public function getTagCompiler($tag)
    method getPlugin (line 711) | public function getPlugin($plugin_name, $plugin_type)
    method getPluginFromDefaultHandler (line 777) | public function getPluginFromDefaultHandler($tag, $plugin_type)
    method appendCode (line 829) | public function appendCode($left, $right)
    method processNocacheCode (line 851) | public function processNocacheCode($content, $is_code)
    method getId (line 889) | public function getId($input)
    method getVariableName (line 904) | public function getVariableName($input)
    method setNocacheInVariable (line 917) | public function setNocacheInVariable($varName)
    method convertScope (line 937) | public function convertScope($_attr, $validScopes)
    method makeNocacheCode (line 965) | public function makeNocacheCode($code)
    method trigger_template_error (line 984) | public function trigger_template_error($args = null, $line = null, $ta...
    method getVarExport (line 1054) | public function getVarExport($value)
    method enterDoubleQuote (line 1063) | public function enterDoubleQuote()
    method getTagStackCount (line 1073) | public function getTagStackCount()
    method replaceDelimiter (line 1083) | public function replaceDelimiter($lexerPreg)
    method initDelimiterPreg (line 1095) | public function initDelimiterPreg()
    method leaveDoubleQuote (line 1130) | public function leaveDoubleQuote()
    method getLdelPreg (line 1145) | public function getLdelPreg()
    method getRdelPreg (line 1155) | public function getRdelPreg()
    method getLdelLength (line 1165) | public function getLdelLength()
    method getRdelLength (line 1175) | public function getRdelLength()
    method getOpenBlockTag (line 1185) | public function getOpenBlockTag()
    method isVariable (line 1202) | public function isVariable($value)
    method getNewPrefixVariable (line 1226) | public function getNewPrefixVariable()
    method getPrefixVariable (line 1237) | public function getPrefixVariable()
    method appendPrefixCode (line 1247) | public function appendPrefixCode($code)
    method getPrefixCode (line 1257) | public function getPrefixCode()
    method doCompile (line 1277) | abstract protected function doCompile($_content, $isTemplateSource = f...
    method compileTag2 (line 1290) | private function compileTag2($tag, $args, $parameter)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_templatelexer.php
  class Smarty_Internal_Templatelexer (line 19) | class Smarty_Internal_Templatelexer
    method __construct (line 204) | function __construct($source, Smarty_Internal_TemplateCompilerBase $co...
    method PrintTrace (line 224) | public function PrintTrace()
    method replace (line 237) | public function replace($preg)
    method isAutoLiteral (line 247) | public function isAutoLiteral()
    method yylex (line 253) | public function yylex()
    method yypushstate (line 258) | public function yypushstate($state)
    method yypopstate (line 278) | public function yypopstate()
    method yybegin (line 297) | public function yybegin($state)
    method yylex1 (line 309) | public function yylex1()
    method yy_r1_1 (line 364) | function yy_r1_1()
    method yy_r1_2 (line 369) | function yy_r1_2()
    method yy_r1_4 (line 385) | function yy_r1_4()
    method yy_r1_8 (line 390) | function yy_r1_8()
    method yy_r1_10 (line 395) | function yy_r1_10()
    method yy_r1_12 (line 401) | function yy_r1_12()
    method yy_r1_14 (line 407) | function yy_r1_14()
    method yy_r1_16 (line 413) | function yy_r1_16()
    method yy_r1_19 (line 418) | function yy_r1_19()
    method yylex2 (line 423) | public function yylex2()
    method yy_r2_1 (line 478) | function yy_r2_1()
    method yy_r2_4 (line 485) | function yy_r2_4()
    method yy_r2_6 (line 492) | function yy_r2_6()
    method yy_r2_8 (line 499) | function yy_r2_8()
    method yy_r2_10 (line 506) | function yy_r2_10()
    method yy_r2_12 (line 513) | function yy_r2_12()
    method yy_r2_15 (line 520) | function yy_r2_15()
    method yy_r2_17 (line 527) | function yy_r2_17()
    method yy_r2_20 (line 541) | function yy_r2_20()
    method yy_r2_22 (line 548) | function yy_r2_22()
    method yylex3 (line 555) | public function yylex3()
    method yy_r3_1 (line 610) | function yy_r3_1()
    method yy_r3_2 (line 616) | function yy_r3_2()
    method yy_r3_4 (line 622) | function yy_r3_4()
    method yy_r3_5 (line 629) | function yy_r3_5()
    method yy_r3_6 (line 634) | function yy_r3_6()
    method yy_r3_7 (line 639) | function yy_r3_7()
    method yy_r3_8 (line 644) | function yy_r3_8()
    method yy_r3_9 (line 649) | function yy_r3_9()
    method yy_r3_10 (line 654) | function yy_r3_10()
    method yy_r3_11 (line 659) | function yy_r3_11()
    method yy_r3_12 (line 664) | function yy_r3_12()
    method yy_r3_13 (line 669) | function yy_r3_13()
    method yy_r3_15 (line 674) | function yy_r3_15()
    method yy_r3_17 (line 679) | function yy_r3_17()
    method yy_r3_20 (line 684) | function yy_r3_20()
    method yy_r3_23 (line 689) | function yy_r3_23()
    method yy_r3_24 (line 694) | function yy_r3_24()
    method yy_r3_28 (line 699) | function yy_r3_28()
    method yy_r3_29 (line 704) | function yy_r3_29()
    method yy_r3_30 (line 709) | function yy_r3_30()
    method yy_r3_31 (line 714) | function yy_r3_31()
    method yy_r3_32 (line 719) | function yy_r3_32()
    method yy_r3_33 (line 724) | function yy_r3_33()
    method yy_r3_34 (line 729) | function yy_r3_34()
    method yy_r3_35 (line 734) | function yy_r3_35()
    method yy_r3_37 (line 739) | function yy_r3_37()
    method yy_r3_39 (line 744) | function yy_r3_39()
    method yy_r3_41 (line 749) | function yy_r3_41()
    method yy_r3_42 (line 754) | function yy_r3_42()
    method yy_r3_43 (line 759) | function yy_r3_43()
    method yy_r3_44 (line 772) | function yy_r3_44()
    method yy_r3_47 (line 777) | function yy_r3_47()
    method yy_r3_48 (line 782) | function yy_r3_48()
    method yy_r3_49 (line 787) | function yy_r3_49()
    method yy_r3_50 (line 793) | function yy_r3_50()
    method yy_r3_51 (line 798) | function yy_r3_51()
    method yy_r3_52 (line 803) | function yy_r3_52()
    method yy_r3_53 (line 808) | function yy_r3_53()
    method yy_r3_54 (line 813) | function yy_r3_54()
    method yy_r3_55 (line 818) | function yy_r3_55()
    method yy_r3_56 (line 823) | function yy_r3_56()
    method yy_r3_57 (line 828) | function yy_r3_57()
    method yy_r3_58 (line 833) | function yy_r3_58()
    method yy_r3_59 (line 838) | function yy_r3_59()
    method yylex4 (line 843) | public function yylex4()
    method yy_r4_1 (line 898) | function yy_r4_1()
    method yy_r4_3 (line 904) | function yy_r4_3()
    method yy_r4_5 (line 915) | function yy_r4_5()
    method yylex5 (line 920) | public function yylex5()
    method yy_r5_1 (line 975) | function yy_r5_1()
    method yy_r5_3 (line 980) | function yy_r5_3()
    method yy_r5_5 (line 985) | function yy_r5_5()
    method yy_r5_7 (line 990) | function yy_r5_7()
    method yy_r5_9 (line 996) | function yy_r5_9()
    method yy_r5_11 (line 1002) | function yy_r5_11()
    method yy_r5_13 (line 1009) | function yy_r5_13()
    method yy_r5_14 (line 1015) | function yy_r5_14()
    method yy_r5_15 (line 1023) | function yy_r5_15()
    method yy_r5_16 (line 1028) | function yy_r5_16()
    method yy_r5_17 (line 1033) | function yy_r5_17()

FILE: Extend/Package/smarty/sysplugins/smarty_internal_templateparser.php
  class TP_yyStackEntry (line 3) | class TP_yyStackEntry
  class Smarty_Internal_Templateparser (line 22) | class Smarty_Internal_Templateparser
    method __construct (line 1604) | function __construct(Smarty_Internal_Templatelexer $lex, Smarty_Intern...
    method yy_destructor (line 1613) | public static function yy_destructor($yymajor, $yypminor)
    method insertPhpCode (line 1626) | public function insertPhpCode($code)
    method errorRunDown (line 1635) | public function errorRunDown()
    method mergePrefixCode (line 1652) | public function mergePrefixCode($code)
    method Trace (line 1663) | public function Trace($TraceFILE, $zTracePrompt)
    method PrintTrace (line 1674) | public function PrintTrace()
    method tokenName (line 1680) | public function tokenName($tokenType)
    method yy_pop_parser_stack (line 1692) | public function yy_pop_parser_stack()
    method __destruct (line 1709) | public function __destruct()
    method yy_get_expected_tokens (line 1719) | public function yy_get_expected_tokens($token)
    method yy_is_expected_token (line 1803) | public function yy_is_expected_token($token)
    method yy_find_shift_action (line 1892) | public function yy_find_shift_action($iLookAhead)
    method yy_find_reduce_action (line 1926) | public function yy_find_reduce_action($stateno, $iLookAhead)
    method yy_shift (line 1949) | public function yy_shift($yyNewState, $yyMajor, $yypMinor)
    method yy_r0 (line 1986) | function yy_r0()
    method yy_r1 (line 1994) | function yy_r1()
    method yy_r2 (line 2015) | function yy_r2()
    method yy_r3 (line 2022) | function yy_r3()
    method yy_r4 (line 2028) | function yy_r4()
    method yy_r5 (line 2034) | function yy_r5()
    method yy_r6 (line 2042) | function yy_r6()
    method yy_r7 (line 2048) | function yy_r7()
    method yy_r8 (line 2054) | function yy_r8()
    method yy_r9 (line 2060) | function yy_r9()
    method yy_r10 (line 2066) | function yy_r10()
    method yy_r12 (line 2077) | function yy_r12()
    method yy_r13 (line 2099) | function yy_r13()
    method yy_r14 (line 2125) | function yy_r14()
    method yy_r15 (line 2131) | function yy_r15()
    method yy_r16 (line 2137) | function yy_r16()
    method yy_r17 (line 2146) | function yy_r17()
    method yy_r18 (line 2159) | function yy_r18()
    method yy_r19 (line 2172) | function yy_r19()
    method yy_r20 (line 2178) | function yy_r20()
    method yy_r24 (line 2184) | function yy_r24()
    method yy_r25 (line 2201) | function yy_r25()
    method yy_r26 (line 2216) | function yy_r26()
    method yy_r27 (line 2237) | function yy_r27()
    method yy_r28 (line 2246) | function yy_r28()
    method yy_r29 (line 2257) | function yy_r29()
    method yy_r30 (line 2266) | function yy_r30()
    method yy_r31 (line 2276) | function yy_r31()
    method yy_r32 (line 2286) | function yy_r32()
    method yy_r34 (line 2296) | function yy_r34()
    method yy_r35 (line 2312) | function yy_r35()
    method yy_r37 (line 2318) | function yy_r37()
    method yy_r38 (line 2330) | function yy_r38()
    method yy_r39 (line 2344) | function yy_r39()
    method yy_r40 (line 2355) | function yy_r40()
    method yy_r41 (line 2368) | function yy_r41()
    method yy_r42 (line 2374) | function yy_r42()
    method yy_r43 (line 2385) | function yy_r43()
    method yy_r44 (line 2398) | function yy_r44()
    method yy_r45 (line 2413) | function yy_r45()
    method yy_r46 (line 2419) | function yy_r46()
    method yy_r47 (line 2428) | function yy_r47()
    method yy_r48 (line 2437) | function yy_r48()
    method yy_r49 (line 2448) | function yy_r49()
    method yy_r50 (line 2455) | function yy_r50()
    method yy_r51 (line 2461) | function yy_r51()
    method yy_r52 (line 2467) | function yy_r52()
    method yy_r53 (line 2483) | function yy_r53()
    method yy_r55 (line 2491) | function yy_r55()
    method yy_r58 (line 2497) | function yy_r58()
    method yy_r60 (line 2504) | function yy_r60()
    method yy_r61 (line 2511) | function yy_r61()
    method yy_r63 (line 2518) | function yy_r63()
    method yy_r64 (line 2525) | function yy_r64()
    method yy_r67 (line 2531) | function yy_r67()
    method yy_r68 (line 2539) | function yy_r68()
    method yy_r71 (line 2547) | function yy_r71()
    method yy_r72 (line 2558) | function yy_r72()
    method yy_r73 (line 2566) | function yy_r73()
    method yy_r74 (line 2573) | function yy_r74()
    method yy_r75 (line 2579) | function yy_r75()
    method yy_r76 (line 2587) | function yy_r76()
    method yy_r77 (line 2594) | function yy_r77()
    method yy_r78 (line 2605) | function yy_r78()
    method yy_r80 (line 2613) | function yy_r80()
    method yy_r81 (line 2619) | function yy_r81()
    method yy_r86 (line 2625) | function yy_r86()
    method yy_r87 (line 2631) | function yy_r87()
    method yy_r88 (line 2637) | function yy_r88()
    method yy_r89 (line 2643) | function yy_r89()
    method yy_r91 (line 2656) | function yy_r91()
    method yy_r92 (line 2662) | function yy_r92()
    method yy_r96 (line 2669) | function yy_r96()
    method yy_r97 (line 2691) | function yy_r97()
    method yy_r100 (line 2700) | function yy_r100()
    method yy_r102 (line 2722) | function yy_r102()
    method yy_r103 (line 2728) | function yy_r103()
    method yy_r104 (line 2735) | function yy_r104()
    method yy_r105 (line 2753) | function yy_r105()
    method yy_r107 (line 2760) | function yy_r107()
    method yy_r108 (line 2767) | function yy_r108()
    method yy_r109 (line 2776) | function yy_r109()
    method yy_r110 (line 2782) | function yy_r110()
    method yy_r111 (line 2790) | function yy_r111()
    method yy_r112 (line 2799) | function yy_r112()
    method yy_r114 (line 2806) | function yy_r114()
    method yy_r115 (line 2812) | function yy_r115()
    method yy_r116 (line 2820) | function yy_r116()
    method yy_r117 (line 2826) | function yy_r117()
    method yy_r118 (line 2833) | function yy_r118()
    method yy_r119 (line 2839) | function yy_r119()
    method yy_r120 (line 2845) | function yy_r120()
    method yy_r121 (line 2851) | function yy_r121()
    method yy_r122 (line 2861) | function yy_r122()
    method yy_r123 (line 2871) | function yy_r123()
    method yy_r125 (line 2877) | function yy_r125()
    method yy_r129 (line 2885) | function yy_r129()
    method yy_r130 (line 2891) | function yy_r130()
    method yy_r131 (line 2897) | function yy_r131()
    method yy_r132 (line 2903) | function yy_r132()
    method yy_r134 (line 2909) | function yy_r134()
    method yy_r135 (line 2919) | function yy_r135()
    method yy_r136 (line 2925) | function yy_r136()
    method yy_r137 (line 2941) | function yy_r137()
    method yy_r138 (line 2947) | function yy_r138()
    method yy_r139 (line 2953) | function yy_r139()
    method yy_r140 (line 2963) | function yy_r140()
    method yy_r141 (line 2973) | function yy_r141()
    method yy_r142 (line 2983) | function yy_r142()
    method yy_r143 (line 2994) | function yy_r143()
    method yy_r144 (line 3000) | function yy_r144()
    method yy_r145 (line 3007) | function yy_r145()
    method yy_r146 (line 3017) | function yy_r146()
    method yy_r147 (line 3032) | function yy_r147()
    method yy_r150 (line 3039) | function yy_r150()
    method yy_r151 (line 3047) | function yy_r151()
    method yy_r153 (line 3054) | function yy_r153()
    method yy_r154 (line 3060) | function yy_r154()
    method yy_r158 (line 3067) | function yy_r158()
    method yy_r159 (line 3073) | function yy_r159()
    method yy_r160 (line 3080) | function yy_r160()
    method yy_r161 (line 3086) | function yy_r161()
    method yy_r162 (line 3093) | function yy_r162()
    method yy_r163 (line 3101) | function yy_r163()
    method yy_r164 (line 3107) | function yy_r164()
    method yy_r165 (line 3129) | function yy_r165()
    method yy_r166 (line 3144) | function yy_r166()
    method yy_r167 (line 3157) | function yy_r167()
    method yy_r169 (line 3163) | function yy_r169()
    method yy_r171 (line 3169) | function yy_r171()
    method yy_r172 (line 3176) | function yy_r172()
    method yy_r175 (line 3183) | function yy_r175()
    method yy_r176 (line 3190) | function yy_r176()
    method yy_r177 (line 3197) | function yy_r177()
    method yy_r178 (line 3203) | function yy_r178()
    method yy_r179 (line 3209) | function yy_r179()
    method yy_r180 (line 3216) | function yy_r180()
    method yy_r183 (line 3224) | function yy_r183()
    method yy_r184 (line 3229) | function yy_r184()
    method yy_reduce (line 3234) | public function yy_reduce($yyruleno)
    method yy_parse_failed (line 3275) | public function yy_parse_failed()
    method yy_syntax_error (line 3285) | public function yy_syntax_error($yymajor, $TOKEN)
    method yy_accept (line 3293) | public function yy_accept()
    method doParse (line 3307) | public function doParse($yymajor, $yytokenvalue)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_testinstall.php
  class Smarty_Internal_TestInstall (line 17) | class Smarty_Internal_TestInstall
    method testInstall (line 28) | public static function testInstall(Smarty $smarty, &$errors = null)

FILE: Extend/Package/smarty/sysplugins/smarty_internal_undefined.php
  class Smarty_Internal_Undefined (line 12) | class Smarty_Internal_Undefined
    method __construct (line 27) | public function __construct($class = null)
    method decodeProperties (line 41) | public function decodeProperties(Smarty_Internal_Template $tpl, $prope...
    method __call (line 60) | public function __call($name, $args)

FILE: Extend/Package/smarty/sysplugins/smarty_resource.php
  class Smarty_Resource (line 21) | abstract class Smarty_Resource
    method load (line 62) | public static function load(Smarty $smarty, $type)
    method parseResourceName (line 115) | public static function parseResourceName($resource_name, $default_reso...
    method getUniqueTemplateName (line 138) | public static function getUniqueTemplateName($obj, $template_resource)
    method source (line 166) | public static function source(Smarty_Internal_Template $_template = null,
    method getContent (line 181) | abstract public function getContent(Smarty_Template_Source $source);
    method populate (line 189) | abstract public function populate(Smarty_Template_Source $source, Smar...
    method populateTimestamp (line 196) | public function populateTimestamp(Smarty_Template_Source $source)
    method buildUniqueResourceName (line 210) | public function buildUniqueResourceName(Smarty $smarty, $resource_name...
    method getBasename (line 239) | public function getBasename(Smarty_Template_Source $source)
    method checkTimestamps (line 247) | public function checkTimestamps()

FILE: Extend/Package/smarty/sysplugins/smarty_resource_custom.php
  class Smarty_Resource_Custom (line 17) | abstract class Smarty_Resource_Custom extends Smarty_Resource
    method fetch (line 26) | abstract protected function fetch($name, &$source, &$mtime);
    method fetchTimestamp (line 37) | protected function fetchTimestamp($name)
    method populate (line 48) | public function populate(Smarty_Template_Source $source, Smarty_Intern...
    method getContent (line 74) | public function getContent(Smarty_Template_Source $source)
    method getBasename (line 91) | public function getBasename(Smarty_Template_Source $source)

FILE: Extend/Package/smarty/sysplugins/smarty_resource_recompiled.php
  class Smarty_Resource_Recompiled (line 17) | abstract class Smarty_Resource_Recompiled extends Smarty_Resource
    method process (line 40) | public function process(Smarty_Internal_Template $_smarty_tpl)
    method populateCompiledFilepath (line 76) | public function populateCompiledFilepath(Smarty_Template_Compiled $com...
    method checkTimestamps (line 91) | public function checkTimestamps()

FILE: Extend/Package/smarty/sysplugins/smarty_resource_uncompiled.php
  class Smarty_Resource_Uncompiled (line 17) | abstract class Smarty_Resource_Uncompiled extends Smarty_Resource
    method populateCompiledFilepath (line 39) | public function populateCompiledFilepath(Smarty_Template_Compiled $com...

FILE: Extend/Package/smarty/sysplugins/smarty_security.php
  class Smarty_Security (line 22) | class Smarty_Security
    method __construct (line 258) | public function __construct($smarty)
    method isTrustedPhpFunction (line 274) | public function isTrustedPhpFunction($function_name, $compiler)
    method isTrustedStaticClass (line 296) | public function isTrustedStaticClass($class_name, $compiler)
    method isTrustedStaticClassAccess (line 319) | public function isTrustedStaticClassAccess($class_name, $params, $comp...
    method isTrustedPhpModifier (line 357) | public function isTrustedPhpModifier($modifier_name, $compiler)
    method isTrustedTag (line 379) | public function isTrustedTag($tag_name, $compiler)
    method isTrustedSpecialSmartyVar (line 414) | public function isTrustedSpecialSmartyVar($var_name, $compiler)
    method isTrustedModifier (line 435) | public function isTrustedModifier($modifier_name, $compiler)
    method isTrustedConstant (line 469) | public function isTrustedConstant($const, $compiler)
    method isTrustedStream (line 496) | public function isTrustedStream($stream_name)
    method isTrustedResourceDir (line 514) | public function isTrustedResourceDir($filepath, $isConfig = null)
    method isTrustedUri (line 586) | public function isTrustedUri($uri)
    method isTrustedPHPDir (line 609) | public function isTrustedPHPDir($filepath)
    method _checkDir (line 640) | private function _checkDir($filepath, $dirs)
    method enableSecurity (line 675) | public static function enableSecurity(Smarty $smarty, $security_class)
    method startTemplate (line 702) | public function startTemplate($template)
    method endTemplate (line 713) | public function endTemplate()
    method registerCallBacks (line 725) | public function registerCallBacks(Smarty_Internal_Template $template)

FILE: Extend/Package/smarty/sysplugins/smarty_template_cached.php
  class Smarty_Template_Cached (line 17) | class Smarty_Template_Cached extends Smarty_Template_Resource_Base
    method __construct (line 89) | public function __construct(Smarty_Internal_Template $_template)
    method load (line 105) | static function load(Smarty_Internal_Template $_template)
    method render (line 125) | public function render(Smarty_Internal_Template $_template, $no_output...
    method isCached (line 154) | public function isCached(Smarty_Internal_Template $_template)
    method process (line 231) | public function process(Smarty_Internal_Template $_template, $update =...
    method read (line 250) | public function read(Smarty_Internal_Template $_template)

FILE: Extend/Package/smarty/sysplugins/smarty_template_compiled.php
  class Smarty_Template_Compiled (line 12) | class Smarty_Template_Compiled extends Smarty_Template_Resource_Base
    method load (line 28) | static function load($_template)
    method populateCompiledFilepath (line 44) | public function populateCompiledFilepath(Smarty_Internal_Template $_te...
    method render (line 91) | public function render(Smarty_Internal_Template $_template)
    method process (line 131) | public function process(Smarty_Internal_Template $_smarty_tpl)
    method compileTemplateSource (line 169) | public function compileTemplateSource(Smarty_Internal_Template $_templ...
    method write (line 207) | public function write(Smarty_Internal_Template $_template, $code)
    method read (line 229) | public function read(Smarty_Internal_Template $_template)
    method loadCompiledTemplate (line 243) | private function loadCompiledTemplate(Smarty_Internal_Template $_smart...

FILE: Extend/Package/smarty/sysplugins/smarty_template_config.php
  class Smarty_Template_Config (line 19) | class Smarty_Template_Config extends Smarty_Template_Source
    method load (line 74) | public static function load(Smarty_Internal_Template $_template = null...

FILE: Extend/Package/smarty/sysplugins/smarty_template_resource_base.php
  class Smarty_Template_Resource_Base (line 10) | abstract class Smarty_Template_Resource_Base
    method process (line 103) | abstract public function process(Smarty_Internal_Template $_template);
    method getRenderedTemplateCode (line 113) | public function getRenderedTemplateCode(Smarty_Internal_Template $_tem...
    method getTimeStamp (line 153) | public function getTimeStamp()

FILE: Extend/Package/smarty/sysplugins/smarty_template_source.php
  class Smarty_Template_Source (line 12) | class Smarty_Template_Source
    method __construct (line 137) | public function __construct(Smarty $smarty, $resource, $type, $name)
    method load (line 159) | public static function load(Smarty_Internal_Template $_template = null...
    method getTimeStamp (line 194) | public function getTimeStamp()
    method getContent (line 208) | public function getContent()

FILE: Extend/Package/smarty/sysplugins/smarty_undefined_variable.php
  class Smarty_Undefined_Variable (line 10) | class Smarty_Undefined_Variable extends Smarty_Variable
    method __get (line 19) | public function __get($name)
    method __toString (line 29) | public function __toString()

FILE: Extend/Package/smarty/sysplugins/smarty_variable.php
  class Smarty_Variable (line 10) | class Smarty_Variable
    method __construct (line 32) | public function __construct($value = null, $nocache = false)
    method __toString (line 43) | public function __toString()

FILE: Extend/Package/smarty/sysplugins/smartycompilerexception.php
  class SmartyCompilerException (line 8) | class SmartyCompilerException extends SmartyException
    method __toString (line 13) | public function __toString()

FILE: Extend/Package/smarty/sysplugins/smartyexception.php
  class SmartyException (line 8) | class SmartyException extends Exception
    method __toString (line 15) | public function __toString()

FILE: Framework/Library/Common/helper.php
  function dump (line 10) | function dump($vars, $label = '', $return = false)
  function Db (line 35) | function Db($table = '', $config = null)
  function Config (line 68) | function Config($configName)
  function Cache (line 78) | function Cache()
  function View (line 90) | function View($fileName = '', $dir = '')
  function get (line 120) | function get($value, $null = '')
  function post (line 131) | function post($value, $null = '')
  function extend (line 142) | function extend($name, $type = 0)
  function getApp (line 165) | function getApp()
  function Success (line 177) | function Success($msg = '操作成功', $url = '', $seconds = 3, $title = '系统提示')
  function Error (line 195) | function Error($msg = '操作异常', $url = '', $seconds = 3, $title = '系统提示')
  function Session (line 210) | function Session()
  function Cookie (line 224) | function Cookie($name = '', $val = '', $expire = '0')
  function logs (line 252) | function logs($logs = '', $name = 'logs', $path = 'MyLog')

FILE: Framework/Library/Interfaces/CacheInterface.php
  type CacheInterface (line 10) | interface CacheInterface
    method connect (line 20) | public function connect($ip, $port, $auth = []);
    method get (line 27) | public function get($key);
    method set (line 37) | public function set($key, $value, $isZip = false, $expire = 3600);
    method delete (line 45) | public function delete($key, $timeout = 0);
    method replace (line 55) | public function replace($key, $value, $isZip = false, $expire = 3600);
    method exists (line 62) | public function exists($key);
    method flush (line 68) | public function flush();
    method decrement (line 76) | public function decrement($key, $number = 1);
    method increment (line 84) | public function increment($key, $number = 1);
    method getVersion (line 90) | public function getVersion();
    method getStats (line 96) | public function getStats();
    method close (line 102) | public function close();

FILE: Framework/Library/Interfaces/ConfigInterface.php
  type ConfigInterface (line 10) | interface ConfigInterface
    method get (line 18) | public function get($keys);
    method set (line 26) | public function set($key, $val);

FILE: Framework/Library/Interfaces/DbInterface.php
  type DbInterface (line 11) | interface DbInterface
    method getError (line 18) | public function getError();
    method connect (line 25) | public function connect($config = []);
    method query (line 33) | public function query($queryString, $select = false);
    method table (line 40) | public function table($tabName);
    method select (line 47) | public function select($qryArray = []);
    method insert (line 54) | public function insert($dataArray = []);
    method add (line 61) | public function add($dataArray = []);
    method update (line 69) | public function update($dataArray = [], $where = []);
    method save (line 77) | public function save($dataArray = [], $where = []);
    method delete (line 84) | public function delete($where = []);
    method del (line 91) | public function del($where = []);
    method debug (line 97) | public function debug();
    method find (line 103) | public function find();
    method get (line 109) | public function get();
    method total (line 115) | public function total();

FILE: Framework/Library/Interfaces/LogInterface.php
  type LogInterface (line 10) | interface  LogInterface
    method Record (line 19) | public function Record($LogPath, $fileName, $Log);

FILE: Framework/Library/Interfaces/LogicExceptionsInterface.php
  type LogicExceptionsInterface (line 10) | interface  LogicExceptionsInterface
    method Mount (line 15) | public function Mount();

FILE: Framework/Library/Interfaces/RouterInterface.php
  type RouterInterface (line 10) | interface  RouterInterface
    method Route (line 16) | public function Route();

FILE: Framework/Library/Interfaces/SessionInterface.php
  type SessionInterface (line 10) | interface SessionInterface
    method start (line 16) | public function start();
    method get (line 23) | public function get($name='');
    method set (line 31) | public function set($name='php300',$value='');
    method del (line 38) | public function del($name='');

FILE: Framework/Library/Interfaces/ViewInterface.php
  type ViewInterface (line 10) | interface ViewInterface
    method init (line 16) | public function init();
    method set (line 23) | public function set($fileName);
    method get (line 29) | public function get();
    method getView (line 35) | public function getView();
    method data (line 42) | public function data($data = null);

FILE: Framework/Library/Interfaces/VisitInterface.php
  type VisitInterface (line 11) | interface  VisitInterface
    method bind (line 18) | public function bind($param);

FILE: Framework/Library/Process/Cache.class.php
  class Cache (line 11) | class Cache
    method init (line 34) | public function init()
    method getObj (line 50) | public function getObj()

FILE: Framework/Library/Process/Config.class.php
  class Config (line 13) | class Config implements ConfigInterfaces
    method __construct (line 35) | public function __construct()
    method read (line 61) | private function read($configName = '', $filePath = '')
    method get (line 71) | public function get($keys = null)
    method set (line 85) | public function set($key, $val)
    method loadFrameconf (line 95) | private function loadFrameconf()

FILE: Framework/Library/Process/Db.class.php
  class Db (line 11) | class Db
    method __construct (line 38) | public function __construct()
    method init (line 47) | public function init($configArr = [])
    method addlink (line 61) | private function addlink($name, $config)
    method putlink (line 77) | private function putlink($name, $link)
    method getlink (line 86) | public function getlink()

FILE: Framework/Library/Process/Drive/Cache/File.php
  class File (line 11) | class File
    method __construct (line 24) | public function __construct(array $options = array())
    method get (line 40) | public function get($id)
    method getFileName (line 63) | protected function getFileName($id)
    method getDirectory (line 76) | protected function getDirectory($id)
    method getCacheDirectory (line 91) | protected function getCacheDirectory()
    method delete (line 101) | public function delete($id)
    method set (line 117) | public function set($id, $data, $lifetime = 3600)

FILE: Framework/Library/Process/Drive/Cache/Memcache.php
  class Memcache (line 11) | class Memcache implements CacheInterfaces
    method __construct (line 31) | public function __construct()
    method connect (line 43) | public function connect($ip, $port, $auth = [])
    method get (line 53) | public function get($key)
    method set (line 69) | public function set($key, $value, $iszip = false, $expire = 3600)
    method delete (line 80) | public function delete($key, $timeout = 0)
    method replace (line 96) | public function replace($key, $value, $iszip = false, $expire = 3600)
    method exists (line 106) | public function exists($key)
    method flush (line 115) | public function flush()
    method decrement (line 126) | public function decrement($key, $number = 1)
    method increment (line 137) | public function increment($key, $number = 1)
    method getVersion (line 146) | public function getVersion()
    method getStats (line 155) | public function getStats()
    method close (line 163) | public function close()

FILE: Framework/Library/Process/Drive/Cache/Redis.php
  class Redis (line 11) | class Redis implements CacheInterfaces
    method __construct (line 30) | public function __construct()
    method connect (line 42) | public function connect($ip, $port, $auth = [])
    method get (line 55) | public function get($key)
    method set (line 71) | public function set($key, $value, $iszip = false, $expire = 3600)
    method delete (line 82) | public function delete($key, $timeout = 0)
    method replace (line 98) | public function replace($key, $value, $iszip = false, $expire = 3600)
    method exists (line 108) | public function exists($key)
    method flush (line 116) | public function flush()
    method decrement (line 127) | public function decrement($key, $number = 1)
    method increment (line 138) | public function increment($key, $number = 1)
    method getVersion (line 147) | public function getVersion()
    method getStats (line 157) | public function getStats()
    method close (line 165) | public function close()

FILE: Framework/Library/Process/Drive/Db/Mysqli.php
  class Mysqli (line 14) | class Mysqli implements DbInterfaces
    method getError (line 77) | public function getError()
    method connect (line 90) | public function connect($config = [])
    method setlink (line 114) | public function setlink($link)
    method disconnect (line 123) | public function disconnect()
    method get (line 133) | public function get()
    method find (line 142) | public function find()
    method debug (line 155) | public function debug()
    method total (line 164) | public function total()
    method table (line 174) | public function table($tabName = '')
    method getTableInfo (line 193) | protected function getTableInfo()
    method select (line 222) | public function select($qryArray = [])
    method structureWhere (line 311) | private function structureWhere($whereData = [])
    method inlon (line 355) | private function inlon($key)
    method query (line 378) | public function query($queryString = '', $select = false)
    method startsWith (line 423) | protected function startsWith($haystack, $needle)
    method affectedRows (line 432) | public function affectedRows()
    method add (line 442) | public function add($dataArray = [])
    method insert (line 452) | public function insert($dataArray = [])
    method insert_id (line 480) | public function insert_id()
    method save (line 491) | public function save($dataArray = [], $where = '')
    method update (line 502) | public function update($dataArray = [], $where = '')
    method del (line 529) | public function del($where = [])
    method delete (line 539) | public function delete($where = [])
    method getkey (line 558) | public function getkey()
    method getField (line 567) | public function getField()
    method getTables (line 576) | public function getTables()

FILE: Framework/Library/Process/Drive/Db/PDO.php
  class Pdo (line 13) | class Pdo implements DbInterfaces
    method getError (line 80) | public function getError()
    method connect (line 90) | public function connect($config = [])
    method setlink (line 119) | public function setlink($link)
    method disconnect (line 130) | public function disconnect()
    method get (line 142) | public function get()
    method find (line 152) | public function find()
    method debug (line 166) | public function debug()
    method total (line 175) | public function total()
    method query (line 186) | public function query($queryString, $select = false)
    method startsWith (line 217) | protected function startsWith($haystack, $needle)
    method handleres (line 228) | private function handleres($sql, $iserror = false, $ex = [])
    method table (line 260) | public function table($tableName = '')
    method getTableInfo (line 279) | protected function getTableInfo()
    method select (line 315) | public function select($qryArray = [])
    method structureWhere (line 398) | private function structureWhere($whereData = [])
    method inlon (line 440) | private function inlon($key)
    method add (line 462) | public function add($dataArray = [])
    method insert (line 472) | public function insert($dataArray = [])
    method save (line 509) | public function save($dataArray = [], $where = '')
    method update (line 520) | public function update($dataArray = [], $where = [])
    method del (line 552) | public function del($where = [])
    method delete (line 562) | public function delete($where = [])
    method getkey (line 586) | public function getkey()
    method getField (line 595) | public function getField()
    method getTables (line 604) | public function getTables()

FILE: Framework/Library/Process/Extend.class.php
  class Extend (line 12) | class Extend
    method __construct (line 33) | public function __construct()
    method addPackage (line 47) | public function addPackage($PackageName = '')
    method get_extension (line 69) | public static function get_extension($file)
    method getPackageName (line 79) | private function getPackageName($Package)
    method releasePackage (line 96) | private function releasePackage($zipfile = '', $folder = '', $Packagezip)
    method iszipload (line 129) | private function iszipload($folder, $Packagezip)
    method getPackageInfo (line 146) | private function getPackageInfo($infoPath = '')
    method addClass (line 159) | public function addClass($ClassName = '')
    method getPackagebox (line 171) | public function getPackagebox()

FILE: Framework/Library/Process/Log.class.php
  class Log (line 12) | class Log implements LogInterfaces
    method Write (line 26) | private function Write($fileName, $Content, $count = 0)
    method Record (line 51) | public function Record($LogPath, $fileName, $Log)

FILE: Framework/Library/Process/LogicExceptions.class.php
  class LogicExceptions (line 13) | class LogicExceptions implements LogicExceptionsInterfaces
    method __construct (line 24) | public function __construct()
    method Mount (line 35) | public function Mount()
    method judgeLevel (line 88) | private function judgeLevel($errorlevel, $error)
    method getProjectName (line 106) | private function getProjectName($Path)
    method readErrorFile (line 125) | public function readErrorFile($error)
    method displayed (line 188) | public function displayed($page = 'success', $data = array())

FILE: Framework/Library/Process/ReturnHandle.class.php
  class ReturnHandle (line 10) | class ReturnHandle
    method Output (line 16) | public function Output($Obj = '')

FILE: Framework/Library/Process/Router.class.php
  class Router (line 13) | class Router implements RouterInterfaces
    method __construct (line 30) | public function __construct()
    method Route (line 45) | public function Route()
    method Matching (line 61) | private function Matching()
    method TraditionUrl (line 81) | private function TraditionUrl()

FILE: Framework/Library/Process/Running.class.php
  class Running (line 10) | class Running
    method __construct (line 47) | public function __construct()
    method setconstant (line 55) | static public function setconstant()
    method isDev (line 74) | public function isDev($status = true)
    method startRecord (line 82) | public function startRecord()
    method endRecord (line 91) | public function endRecord()
    method consumeRam (line 101) | private function consumeRam($size)
    method TotalInfo (line 111) | public function TotalInfo()

FILE: Framework/Library/Process/Session.class.php
  class Session (line 12) | class Session implements SessionInterfaces
    method start (line 28) | public function start()
    method get (line 43) | public function get($name = '')
    method set (line 57) | public function set($name = 'php300', $value = '')
    method del (line 68) | public function del($name = '')

FILE: Framework/Library/Process/Structure.class.php
  class Structure (line 12) | class Structure
    method __construct (line 34) | public function __construct()
    method getProjectList (line 44) | public function getProjectList()
    method getDir (line 63) | static public function getDir($path)
    method RunTimeInit (line 74) | private function RunTimeInit()
    method createDir (line 93) | static public function createDir($path)
    method __autoload (line 107) | public function __autoload($class)
    method getStaticTpl (line 137) | public function getStaticTpl()
    method checkPower (line 149) | private function checkPower($path)

FILE: Framework/Library/Process/Tool.class.php
  class Tool (line 10) | class Tool
    method httpcode (line 17) | static public function httpcode($code = '200')
    method getIP (line 68) | static public function getIP()
    method redirect (line 94) | static public function redirect($url)
    method Url (line 106) | static public function Url($name, $parm = '')
    method isSSL (line 131) | static public function isSSL()
    method Receive (line 151) | static public function Receive($name = '', $null = '', $isEncode = tru...
    method toUTF8 (line 213) | static public function toUTF8($string = '')
    method isGET (line 229) | static public function isGET()
    method isPOST (line 241) | static public function isPOST()
    method isAjax (line 253) | static public function isAjax()
    method isCli (line 268) | static public function isCli()
    method isWin (line 280) | static public function isWin()
    method RandStr (line 294) | static public function RandStr($len = 8, $lower = false)
    method impact (line 312) | static public function impact($pwd,$str='')
    method getPublic (line 321) | static public function getPublic()

FILE: Framework/Library/Process/View.class.php
  class View (line 12) | class View implements ViewInterfaces
    method init (line 48) | public function init()
    method set (line 72) | public function set($fileName)
    method get (line 81) | public function get()
    method __set (line 101) | public function __set($name, $value)
    method data (line 113) | public function data($data = null)
    method dirProcessing (line 127) | private function dirProcessing($dir)
    method ReturnView (line 140) | private function ReturnView()
    method ViewConfig (line 154) | private function ViewConfig($view)
    method getView (line 168) | public function getView()

FILE: Framework/Library/Process/Visit.class.php
  class Visit (line 13) | class Visit implements VisitInterfaces
    method __construct (line 30) | public function __construct()
    method mergeParam (line 52) | static public function mergeParam()
    method getfunction (line 62) | static public function getfunction()
    method setCliParam (line 77) | static function setCliParam()
    method bind (line 105) | public function bind($param)

FILE: Framework/frame.php
  class App (line 16) | class App
    method __construct (line 43) | public function __construct($Path = '')
    method inBatch (line 59) | public function inBatch($array)
    method get (line 73) | public function get($Name)
    method put (line 85) | public function put($Name, $Obj)
    method inProcess (line 95) | public function inProcess($Pointer)
    method __invoke (line 111) | public function __invoke()
    method run (line 120) | public function run()

FILE: Project/home/Index.class.php
  class Index (line 12) | class Index
    method index (line 18) | public function index()

FILE: Project/model/UserModel.class.php
  class UserModel (line 10) | class UserModel
    method registerUser (line 13) | public function registerUser()
Condensed preview — 247 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,361K chars).
[
  {
    "path": ".gitignore",
    "chars": 7,
    "preview": ".idea/\n"
  },
  {
    "path": "Extend/Class/UploadFile.class.php",
    "chars": 9768,
    "preview": "<?php\n\n/**\n * 文件上传 - PHP300扩展类\n * Class Upload\n */\n\nclass Upload\n{\n    /** @var array 允许的扩展名 */\n    public $allowExts = "
  },
  {
    "path": "Extend/Package/smarty/Autoloader.php",
    "chars": 3102,
    "preview": "<?php\n/**\n * Smarty Autoloader\n *\n * @package    Smarty\n */\n\n/**\n * Smarty Autoloader\n *\n * @package    Smarty\n * @autho"
  },
  {
    "path": "Extend/Package/smarty/Smarty.class.php",
    "chars": 39151,
    "preview": "<?php\n/**\n * Project:     Smarty: the PHP compiling template engine\n * File:        Smarty.class.php\n *\n * This library "
  },
  {
    "path": "Extend/Package/smarty/SmartyBC.class.php",
    "chars": 12649,
    "preview": "<?php\n/**\n * Project:     Smarty: the PHP compiling template engine\n * File:        SmartyBC.class.php\n * SVN:         $"
  },
  {
    "path": "Extend/Package/smarty/bootstrap.php",
    "chars": 136,
    "preview": "<?php\nif (!class_exists('Smarty_Autoloader')) {\n    require dirname(__FILE__) . '/Autoloader.php';\n}\nSmarty_Autoloader::"
  },
  {
    "path": "Extend/Package/smarty/noted.txt",
    "chars": 21,
    "preview": "smarty为框架视图依赖项,切勿删除该包"
  },
  {
    "path": "Extend/Package/smarty/plugins/block.textformat.php",
    "chars": 3514,
    "preview": "<?php\n/**\n * Smarty plugin to format text blocks\n *\n * @package    Smarty\n * @subpackage PluginsBlock\n */\n\n/**\n * Smarty"
  },
  {
    "path": "Extend/Package/smarty/plugins/function.counter.php",
    "chars": 1836,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsFunction\n */\n\n/**\n * Smarty {counter} function"
  },
  {
    "path": "Extend/Package/smarty/plugins/function.cycle.php",
    "chars": 3333,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsFunction\n */\n\n/**\n * Smarty {cycle} function p"
  },
  {
    "path": "Extend/Package/smarty/plugins/function.fetch.php",
    "chars": 8085,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsFunction\n */\n\n/**\n * Smarty {fetch} plugin\n * "
  },
  {
    "path": "Extend/Package/smarty/plugins/function.html_checkboxes.php",
    "chars": 8877,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsFunction\n */\n\n/**\n * Smarty {html_checkboxes} "
  },
  {
    "path": "Extend/Package/smarty/plugins/function.html_image.php",
    "chars": 5483,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsFunction\n */\n\n/**\n * Smarty {html_image} funct"
  },
  {
    "path": "Extend/Package/smarty/plugins/function.html_options.php",
    "chars": 7876,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsFunction\n */\n\n/**\n * Smarty {html_options} fun"
  },
  {
    "path": "Extend/Package/smarty/plugins/function.html_radios.php",
    "chars": 7821,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsFunction\n */\n\n/**\n * Smarty {html_radios} func"
  },
  {
    "path": "Extend/Package/smarty/plugins/function.html_select_date.php",
    "chars": 15215,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsFunction\n */\n\n/**\n * Smarty {html_select_date}"
  },
  {
    "path": "Extend/Package/smarty/plugins/function.html_select_time.php",
    "chars": 14643,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsFunction\n */\n\n/**\n * Smarty {html_select_time}"
  },
  {
    "path": "Extend/Package/smarty/plugins/function.html_table.php",
    "chars": 5407,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsFunction\n */\n\n/**\n * Smarty {html_table} funct"
  },
  {
    "path": "Extend/Package/smarty/plugins/function.mailto.php",
    "chars": 5379,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsFunction\n */\n\n/**\n * Smarty {mailto} function "
  },
  {
    "path": "Extend/Package/smarty/plugins/function.math.php",
    "chars": 3536,
    "preview": "<?php\n/**\n * Smarty plugin\n * This plugin is only for Smarty2 BC\n *\n * @package    Smarty\n * @subpackage PluginsFunction"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifier.capitalize.php",
    "chars": 3966,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifier\n */\n\n/**\n * Smarty capitalize modifie"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifier.date_format.php",
    "chars": 2800,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifier\n */\n\n/**\n * Smarty date_format modifi"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifier.debug_print_var.php",
    "chars": 3955,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage Debug\n */\n\n/**\n * Smarty debug_print_var modifier plu"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifier.escape.php",
    "chars": 8848,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifier\n */\n\n/**\n * Smarty escape modifier pl"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifier.mb_wordwrap.php",
    "chars": 2373,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifier\n */\n/**\n * Smarty wordwrap modifier p"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifier.regex_replace.php",
    "chars": 1664,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifier\n */\n\n/**\n * Smarty regex_replace modi"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifier.replace.php",
    "chars": 1003,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifier\n */\n\n/**\n * Smarty replace modifier p"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifier.spacify.php",
    "chars": 756,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifier\n */\n\n/**\n * Smarty spacify modifier p"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifier.truncate.php",
    "chars": 2201,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifier\n */\n\n/**\n * Smarty truncate modifier "
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.cat.php",
    "chars": 617,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n\n/**\n * Smarty cat modifi"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.count_characters.php",
    "chars": 908,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n\n/**\n * Smarty count_char"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.count_paragraphs.php",
    "chars": 662,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n\n/**\n * Smarty count_para"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.count_sentences.php",
    "chars": 748,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n\n/**\n * Smarty count_sent"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.count_words.php",
    "chars": 980,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n\n/**\n * Smarty count_word"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.default.php",
    "chars": 773,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n\n/**\n * Smarty default mo"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.escape.php",
    "chars": 5047,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n\n/**\n * Smarty escape mod"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.from_charset.php",
    "chars": 755,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n\n/**\n * Smarty from_chars"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.indent.php",
    "chars": 715,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n\n/**\n * Smarty indent mod"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.lower.php",
    "chars": 726,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n\n/**\n * Smarty lower modi"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.noprint.php",
    "chars": 343,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n\n/**\n * Smarty noprint mo"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.string_format.php",
    "chars": 575,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n\n/**\n * Smarty string_for"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.strip.php",
    "chars": 801,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n\n/**\n * Smarty strip modi"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.strip_tags.php",
    "chars": 721,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n\n/**\n * Smarty strip_tags"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.to_charset.php",
    "chars": 749,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n\n/**\n * Smarty to_charset"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.unescape.php",
    "chars": 1196,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n\n/**\n * Smarty unescape m"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.upper.php",
    "chars": 679,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n\n/**\n * Smarty upper modi"
  },
  {
    "path": "Extend/Package/smarty/plugins/modifiercompiler.wordwrap.php",
    "chars": 1111,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsModifierCompiler\n */\n/**\n * Smarty wordwrap mo"
  },
  {
    "path": "Extend/Package/smarty/plugins/outputfilter.trimwhitespace.php",
    "chars": 3567,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsFilter\n */\n\n/**\n * Smarty trimwhitespace outpu"
  },
  {
    "path": "Extend/Package/smarty/plugins/shared.escape_special_chars.php",
    "chars": 982,
    "preview": "<?php\n/**\n * Smarty shared plugin\n *\n * @package    Smarty\n * @subpackage PluginsShared\n */\n\n/**\n * escape_special_chars"
  },
  {
    "path": "Extend/Package/smarty/plugins/shared.literal_compiler_param.php",
    "chars": 1048,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsShared\n */\n\n/**\n * evaluate compiler parameter"
  },
  {
    "path": "Extend/Package/smarty/plugins/shared.make_timestamp.php",
    "chars": 1430,
    "preview": "<?php\n/**\n * Smarty shared plugin\n *\n * @package    Smarty\n * @subpackage PluginsShared\n */\n\n/**\n * Function: smarty_mak"
  },
  {
    "path": "Extend/Package/smarty/plugins/shared.mb_str_replace.php",
    "chars": 1795,
    "preview": "<?php\n/**\n * Smarty shared plugin\n *\n * @package    Smarty\n * @subpackage PluginsShared\n */\nif (!function_exists('smarty"
  },
  {
    "path": "Extend/Package/smarty/plugins/shared.mb_unicode.php",
    "chars": 1534,
    "preview": "<?php\n/**\n * Smarty shared plugin\n *\n * @package    Smarty\n * @subpackage PluginsShared\n */\n\n/**\n * convert characters t"
  },
  {
    "path": "Extend/Package/smarty/plugins/variablefilter.htmlspecialchars.php",
    "chars": 451,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage PluginsFilter\n */\n/**\n * Smarty htmlspecialchars vari"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_cacheresource.php",
    "chars": 6648,
    "preview": "<?php\n/**\n * Smarty Internal Plugin\n *\n * @package    Smarty\n * @subpackage Cacher\n */\n\n/**\n * Cache Handler API\n *\n * @"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_cacheresource_custom.php",
    "chars": 9667,
    "preview": "<?php\n/**\n * Smarty Internal Plugin\n *\n * @package    Smarty\n * @subpackage Cacher\n */\n\n/**\n * Cache Handler API\n *\n * @"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_cacheresource_keyvaluestore.php",
    "chars": 17417,
    "preview": "<?php\n/**\n * Smarty Internal Plugin\n *\n * @package    Smarty\n * @subpackage Cacher\n */\n\n/**\n * Smarty Cache Handler Base"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_data.php",
    "chars": 1690,
    "preview": "<?php\n/**\n * Smarty Plugin Data\n * This file contains the data object\n *\n * @package    Smarty\n * @subpackage Template\n "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_block.php",
    "chars": 1626,
    "preview": "<?php\n\n/**\n * Smarty {block} tag class\n *\n * @package    Smarty\n * @subpackage PluginsInternal\n * @author     Uwe Tews\n "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_cacheresource_file.php",
    "chars": 8097,
    "preview": "<?php\n/**\n * Smarty Internal Plugin CacheResource File\n *\n * @package    Smarty\n * @subpackage Cacher\n * @author     Uwe"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_append.php",
    "chars": 1791,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Append\n * Compiles the {append} tag\n *\n * @package    Smarty\n * @subpackage "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_assign.php",
    "chars": 3443,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Assign\n * Compiles the {assign} tag\n *\n * @package    Smarty\n * @subpackage "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_block.php",
    "chars": 10475,
    "preview": "<?php\n/*\n * This file is part of Smarty.\n *\n * (c) 2015 Uwe Tews\n *\n * For the full copyright and license information, p"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_break.php",
    "chars": 3856,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Break\n * Compiles the {break} tag\n *\n * @package    Smarty\n * @subpackage Co"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_call.php",
    "chars": 2872,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Function_Call\n * Compiles the calls of user defined tags defined by {functio"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_capture.php",
    "chars": 3862,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Capture\n * Compiles the {capture} tag\n *\n * @package    Smarty\n * @subpackag"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_config_load.php",
    "chars": 2767,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Config Load\n * Compiles the {config load} tag\n *\n * @package    Smarty\n * @s"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_continue.php",
    "chars": 433,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Continue\n * Compiles the {continue} tag\n *\n * @package    Smarty\n * @subpack"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_debug.php",
    "chars": 1087,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Debug\n * Compiles the {debug} tag.\n * It opens a window the the Smarty Debug"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_eval.php",
    "chars": 1883,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Eval\n * Compiles the {eval} tag.\n *\n * @package    Smarty\n * @subpackage Com"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_extends.php",
    "chars": 5705,
    "preview": "<?php\n\n/**\n * Smarty Internal Plugin Compile extend\n * Compiles the {extends} tag\n *\n * @package    Smarty\n * @subpackag"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_for.php",
    "chars": 6723,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile For\n * Compiles the {for} {forelse} {/for} tags\n *\n * @package    Smarty\n * "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_foreach.php",
    "chars": 11637,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Foreach\n * Compiles the {foreach} {foreachelse} {/foreach} tags\n *\n * @packa"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_function.php",
    "chars": 10187,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Function\n * Compiles the {function} {/function} tags\n *\n * @package    Smart"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_if.php",
    "chars": 8259,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile If\n * Compiles the {if} {else} {elseif} {/if} tags\n *\n * @package    Smarty\n"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_include.php",
    "chars": 15175,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Include\n * Compiles the {include} tag\n *\n * @package    Smarty\n * @subpackag"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_include_php.php",
    "chars": 3531,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Include PHP\n * Compiles the {include_php} tag\n *\n * @package    Smarty\n * @s"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_insert.php",
    "chars": 5994,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Insert\n * Compiles the {insert} tag\n *\n * @package    Smarty\n * @subpackage "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_ldelim.php",
    "chars": 1052,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Ldelim\n * Compiles the {ldelim} tag\n *\n * @package    Smarty\n * @subpackage "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_make_nocache.php",
    "chars": 1667,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Make_Nocache\n * Compiles the {make_nocache} tag\n *\n * @package    Smarty\n * "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_nocache.php",
    "chars": 2140,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Nocache\n * Compiles the {nocache} {/nocache} tags.\n *\n * @package    Smarty\n"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_private_block_plugin.php",
    "chars": 5015,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Block Plugin\n * Compiles code for the execution of block plugin\n *\n * @packa"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_private_foreachsection.php",
    "chars": 6980,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile ForeachSection\n * Shared methods for {foreach} {section} tags\n *\n * @package"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_private_function_plugin.php",
    "chars": 2495,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Function Plugin\n * Compiles code for the execution of function plugin\n *\n * "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_private_modifier.php",
    "chars": 7835,
    "preview": "<?php\n\n/**\n * Smarty Internal Plugin Compile Modifier\n * Compiles code for modifier execution\n *\n * @package    Smarty\n "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_private_object_block_function.php",
    "chars": 1356,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Object Block Function\n * Compiles code for registered objects as block funct"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_private_object_function.php",
    "chars": 3182,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Object Function\n * Compiles code for registered objects as function\n *\n * @p"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_private_php.php",
    "chars": 9628,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile PHP Expression\n * Compiles any tag which will output an expression or variab"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_private_print_expression.php",
    "chars": 6463,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Print Expression\n * Compiles any tag which will output an expression or vari"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_private_registered_block.php",
    "chars": 2981,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Registered Block\n * Compiles code for the execution of a registered block fu"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_private_registered_function.php",
    "chars": 3406,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Registered Function\n * Compiles code for the execution of a registered funct"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_private_special_variable.php",
    "chars": 5589,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Special Smarty Variable\n * Compiles the special $smarty variables\n *\n * @pac"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_rdelim.php",
    "chars": 901,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Rdelim\n * Compiles the {rdelim} tag\n *\n * @package    Smarty\n * @subpackage "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_section.php",
    "chars": 18367,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Section\n * Compiles the {section} {sectionelse} {/section} tags\n *\n * @packa"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_setfilter.php",
    "chars": 2184,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Setfilter\n * Compiles code for setfilter tag\n *\n * @package    Smarty\n * @su"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_shared_inheritance.php",
    "chars": 1861,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile Shared Inheritance\n * Shared methods for {extends} and {block} tags\n *\n * @p"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compile_while.php",
    "chars": 3802,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Compile While\n * Compiles the {while} tag\n *\n * @package    Smarty\n * @subpackage Co"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_compilebase.php",
    "chars": 6861,
    "preview": "<?php\n/**\n * Smarty Internal Plugin CompileBase\n *\n * @package    Smarty\n * @subpackage Compiler\n * @author     Uwe Tews"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_config_file_compiler.php",
    "chars": 6480,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Config File Compiler\n * This is the config file compiler class. It calls the lexer a"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_configfilelexer.php",
    "chars": 24590,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Configfilelexer\n *\n * This is the lexer to break the config file source into tokens\n"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_configfileparser.php",
    "chars": 34348,
    "preview": "<?php\n\nclass TPC_yyStackEntry\n{\n    public $stateno;       /* The state-number */\n    public $major;         /* The majo"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_data.php",
    "chars": 9155,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Data\n * This file contains the basic classes and methods for template and variable c"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_debug.php",
    "chars": 15359,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Debug\n * Class to collect data for the Smarty Debugging Console\n *\n * @package    Sm"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_errorhandler.php",
    "chars": 4406,
    "preview": "<?php\n\n/**\n * Smarty error handler\n *\n *\n * @package    Smarty\n * @subpackage PluginsInternal\n * @author     Uwe Tews\n *"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_extension_handler.php",
    "chars": 8418,
    "preview": "<?php\n\n/**\n * Smarty Extension handler\n *\n * Load extensions dynamically\n *\n *\n * @package    Smarty\n * @subpackage Plug"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_addautoloadfilters.php",
    "chars": 2137,
    "preview": "<?php\n\n/**\n * Smarty Method AddAutoloadFilters\n *\n * Smarty::addAutoloadFilters() method\n *\n * @package    Smarty\n * @su"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_adddefaultmodifiers.php",
    "chars": 1163,
    "preview": "<?php\n\n/**\n * Smarty Method AddDefaultModifiers\n *\n * Smarty::addDefaultModifiers() method\n *\n * @package    Smarty\n * @"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_append.php",
    "chars": 2866,
    "preview": "<?php\n\n/**\n * Smarty Method Append\n *\n * Smarty::append() method\n *\n * @package    Smarty\n * @subpackage PluginsInternal"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_appendbyref.php",
    "chars": 1801,
    "preview": "<?php\n\n/**\n * Smarty Method AppendByRef\n *\n * Smarty::appendByRef() method\n *\n * @package    Smarty\n * @subpackage Plugi"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_assignbyref.php",
    "chars": 1197,
    "preview": "<?php\n\n/**\n * Smarty Method AssignByRef\n *\n * Smarty::assignByRef() method\n *\n * @package    Smarty\n * @subpackage Plugi"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_assignglobal.php",
    "chars": 1328,
    "preview": "<?php\n\n/**\n * Smarty Method AssignGlobal\n *\n * Smarty::assignGlobal() method\n *\n * @package    Smarty\n * @subpackage Plu"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_clearallassign.php",
    "chars": 778,
    "preview": "<?php\n\n/**\n * Smarty Method ClearAllAssign\n *\n * Smarty::clearAllAssign() method\n *\n * @package    Smarty\n * @subpackage"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_clearallcache.php",
    "chars": 996,
    "preview": "<?php\n\n/**\n * Smarty Method ClearAllCache\n *\n * Smarty::clearAllCache() method\n *\n * @package    Smarty\n * @subpackage P"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_clearassign.php",
    "chars": 1073,
    "preview": "<?php\n\n/**\n * Smarty Method ClearAssign\n *\n * Smarty::clearAssign() method\n *\n * @package    Smarty\n * @subpackage Plugi"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_clearcache.php",
    "chars": 1271,
    "preview": "<?php\n\n/**\n * Smarty Method ClearCache\n *\n * Smarty::clearCache() method\n *\n * @package    Smarty\n * @subpackage Plugins"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_clearcompiledtemplate.php",
    "chars": 5433,
    "preview": "<?php\n\n/**\n * Smarty Method ClearCompiledTemplate\n *\n * Smarty::clearCompiledTemplate() method\n *\n * @package    Smarty\n"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_clearconfig.php",
    "chars": 976,
    "preview": "<?php\n\n/**\n * Smarty Method ClearConfig\n *\n * Smarty::clearConfig() method\n *\n * @package    Smarty\n * @subpackage Plugi"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_compileallconfig.php",
    "chars": 960,
    "preview": "<?php\n\n/**\n * Smarty Method CompileAllConfig\n *\n * Smarty::compileAllConfig() method\n *\n * @package    Smarty\n * @subpac"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_compilealltemplates.php",
    "chars": 4849,
    "preview": "<?php\n/**\n * Smarty Method CompileAllTemplates\n *\n * Smarty::compileAllTemplates() method\n *\n * @package    Smarty\n * @s"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_configload.php",
    "chars": 7381,
    "preview": "<?php\n\n/**\n * Smarty Method ConfigLoad\n *\n * Smarty::configLoad() method\n *\n * @package    Smarty\n * @subpackage Plugins"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_createdata.php",
    "chars": 1329,
    "preview": "<?php\n\n/**\n * Smarty Method CreateData\n *\n * Smarty::createData() method\n *\n * @package    Smarty\n * @subpackage Plugins"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_getautoloadfilters.php",
    "chars": 1348,
    "preview": "<?php\n\n/**\n * Smarty Method GetAutoloadFilters\n *\n * Smarty::getAutoloadFilters() method\n *\n * @package    Smarty\n * @su"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_getconfigvariable.php",
    "chars": 918,
    "preview": "<?php\n\n/**\n * Smarty Method GetConfigVariable\n *\n * Smarty::getConfigVariable() method\n *\n * @package    Smarty\n * @subp"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_getconfigvars.php",
    "chars": 1632,
    "preview": "<?php\n\n/**\n * Smarty Method GetConfigVars\n *\n * Smarty::getConfigVars() method\n *\n * @package    Smarty\n * @subpackage P"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_getdebugtemplate.php",
    "chars": 708,
    "preview": "<?php\n\n/**\n * Smarty Method GetDebugTemplate\n *\n * Smarty::getDebugTemplate() method\n *\n * @package    Smarty\n * @subpac"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_getdefaultmodifiers.php",
    "chars": 744,
    "preview": "<?php\n\n/**\n * Smarty Method GetDefaultModifiers\n *\n * Smarty::getDefaultModifiers() method\n *\n * @package    Smarty\n * @"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_getglobal.php",
    "chars": 1111,
    "preview": "<?php\n\n/**\n * Smarty Method GetGlobal\n *\n * Smarty::getGlobal() method\n *\n * @package    Smarty\n * @subpackage PluginsIn"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_getregisteredobject.php",
    "chars": 1343,
    "preview": "<?php\n\n/**\n * Smarty Method GetRegisteredObject\n *\n * Smarty::getRegisteredObject() method\n *\n * @package    Smarty\n * @"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_getstreamvariable.php",
    "chars": 1269,
    "preview": "<?php\n\n/**\n * Smarty Method GetStreamVariable\n *\n * Smarty::getStreamVariable() method\n *\n * @package    Smarty\n * @subp"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_gettags.php",
    "chars": 2071,
    "preview": "<?php\n\n/**\n * Smarty Method GetTags\n *\n * Smarty::getTags() method\n *\n * @package    Smarty\n * @subpackage PluginsIntern"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_gettemplatevars.php",
    "chars": 4051,
    "preview": "<?php\n\n/**\n * Smarty Method GetTemplateVars\n *\n * Smarty::getTemplateVars() method\n *\n * @package    Smarty\n * @subpacka"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_literals.php",
    "chars": 3032,
    "preview": "<?php\n\n/**\n * Smarty Method GetLiterals\n *\n * Smarty::getLiterals() method\n *\n * @package    Smarty\n * @subpackage Plugi"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_loadfilter.php",
    "chars": 2171,
    "preview": "<?php\n\n/**\n * Smarty Method LoadFilter\n *\n * Smarty::loadFilter() method\n *\n * @package    Smarty\n * @subpackage Plugins"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_loadplugin.php",
    "chars": 4248,
    "preview": "<?php\n\n/**\n * Smarty Extension Loadplugin\n *\n * $smarty->loadPlugin() method\n *\n * @package    Smarty\n * @subpackage Plu"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_mustcompile.php",
    "chars": 1769,
    "preview": "<?php\n\n/**\n * Smarty Method MustCompile\n *\n * Smarty_Internal_Template::mustCompile() method\n *\n * @package    Smarty\n *"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_registercacheresource.php",
    "chars": 1193,
    "preview": "<?php\n\n/**\n * Smarty Method RegisterCacheResource\n *\n * Smarty::registerCacheResource() method\n *\n * @package    Smarty\n"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_registerclass.php",
    "chars": 1426,
    "preview": "<?php\n\n/**\n * Smarty Method RegisterClass\n *\n * Smarty::registerClass() method\n *\n * @package    Smarty\n * @subpackage P"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_registerdefaultconfighandler.php",
    "chars": 1175,
    "preview": "<?php\n\n/**\n * Smarty Method RegisterDefaultConfigHandler\n *\n * Smarty::registerDefaultConfigHandler() method\n *\n * @pack"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_registerdefaultpluginhandler.php",
    "chars": 1273,
    "preview": "<?php\n\n/**\n * Smarty Method RegisterDefaultPluginHandler\n *\n * Smarty::registerDefaultPluginHandler() method\n *\n * @pack"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_registerdefaulttemplatehandler.php",
    "chars": 3019,
    "preview": "<?php\n\n/**\n * Smarty Method RegisterDefaultTemplateHandler\n *\n * Smarty::registerDefaultTemplateHandler() method\n *\n * @"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_registerfilter.php",
    "chars": 2498,
    "preview": "<?php\n\n/**\n * Smarty Method RegisterFilter\n *\n * Smarty::registerFilter() method\n *\n * @package    Smarty\n * @subpackage"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_registerobject.php",
    "chars": 3620,
    "preview": "<?php\n\n/**\n * Smarty Method RegisterObject\n *\n * Smarty::registerObject() method\n *\n * @package    Smarty\n * @subpackage"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_registerplugin.php",
    "chars": 2042,
    "preview": "<?php\n\n/**\n * Smarty Method RegisterPlugin\n *\n * Smarty::registerPlugin() method\n *\n * @package    Smarty\n * @subpackage"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_registerresource.php",
    "chars": 1669,
    "preview": "<?php\n\n/**\n * Smarty Method RegisterResource\n *\n * Smarty::registerResource() method\n *\n * @package    Smarty\n * @subpac"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_setautoloadfilters.php",
    "chars": 2191,
    "preview": "<?php\n\n/**\n * Smarty Method SetAutoloadFilters\n *\n * Smarty::setAutoloadFilters() method\n *\n * @package    Smarty\n * @su"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_setdebugtemplate.php",
    "chars": 1022,
    "preview": "<?php\n\n/**\n * Smarty Method SetDebugTemplate\n *\n * Smarty::setDebugTemplate() method\n *\n * @package    Smarty\n * @subpac"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_setdefaultmodifiers.php",
    "chars": 1008,
    "preview": "<?php\n\n/**\n * Smarty Method SetDefaultModifiers\n *\n * Smarty::setDefaultModifiers() method\n *\n * @package    Smarty\n * @"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_unloadfilter.php",
    "chars": 1440,
    "preview": "<?php\n\n/**\n * Smarty Method UnloadFilter\n *\n * Smarty::unloadFilter() method\n *\n * @package    Smarty\n * @subpackage Plu"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_unregistercacheresource.php",
    "chars": 1081,
    "preview": "<?php\n\n/**\n * Smarty Method UnregisterCacheResource\n *\n * Smarty::unregisterCacheResource() method\n *\n * @package    Sma"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_unregisterfilter.php",
    "chars": 1470,
    "preview": "<?php\n\n/**\n * Smarty Method UnregisterFilter\n *\n * Smarty::unregisterFilter() method\n *\n * @package    Smarty\n * @subpac"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_unregisterobject.php",
    "chars": 1058,
    "preview": "<?php\n\n/**\n * Smarty Method UnregisterObject\n *\n * Smarty::unregisterObject() method\n *\n * @package    Smarty\n * @subpac"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_unregisterplugin.php",
    "chars": 1157,
    "preview": "<?php\n\n/**\n * Smarty Method UnregisterPlugin\n *\n * Smarty::unregisterPlugin() method\n *\n * @package    Smarty\n * @subpac"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_method_unregisterresource.php",
    "chars": 1053,
    "preview": "<?php\n\n/**\n * Smarty Method UnregisterResource\n *\n * Smarty::unregisterResource() method\n *\n * @package    Smarty\n * @su"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_nocache_insert.php",
    "chars": 1737,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Nocache Insert\n * Compiles the {insert} tag into the cache file\n *\n * @package    Sm"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_parsetree.php",
    "chars": 911,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Templateparser Parsetree\n * These are classes to build parsetree in the template par"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_parsetree_code.php",
    "chars": 889,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Templateparser Parse Tree\n * These are classes to build parse trees in the template "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_parsetree_dq.php",
    "chars": 3279,
    "preview": "<?php\n\n/**\n * Double quoted string inside a tag.\n *\n * @package    Smarty\n * @subpackage Compiler\n * @ignore\n */\n\n/**\n *"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_parsetree_dqcontent.php",
    "chars": 930,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Templateparser Parse Tree\n * These are classes to build parse tree  in the template "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_parsetree_tag.php",
    "chars": 1778,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Templateparser Parse Tree\n * These are classes to build parse tree in the template p"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_parsetree_template.php",
    "chars": 4120,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Templateparser Parse Tree\n * These are classes to build parse tree in the template p"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_parsetree_text.php",
    "chars": 838,
    "preview": "<?php\n\n/**\n * Smarty Internal Plugin Templateparser Parse Tree\n * These are classes to build parse tree in the template "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_resource_eval.php",
    "chars": 2796,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Resource Eval\n *\n * @package    Smarty\n * @subpackage TemplateResources\n * @author  "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_resource_extends.php",
    "chars": 3730,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Resource Extends\n *\n * @package    Smarty\n * @subpackage TemplateResources\n * @autho"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_resource_file.php",
    "chars": 6756,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Resource File\n *\n * @package    Smarty\n * @subpackage TemplateResources\n * @author  "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_resource_php.php",
    "chars": 3541,
    "preview": "<?php\n\n/**\n * Smarty Internal Plugin Resource PHP\n * Implements the file system as resource for PHP templates\n *\n * @pac"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_resource_registered.php",
    "chars": 3203,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Resource Registered\n *\n * @package    Smarty\n * @subpackage TemplateResources\n * @au"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_resource_stream.php",
    "chars": 2489,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Resource Stream\n * Implements the streams as resource for Smarty template\n *\n * @pac"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_resource_string.php",
    "chars": 3083,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Resource String\n *\n * @package    Smarty\n * @subpackage TemplateResources\n * @author"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_runtime_cachemodify.php",
    "chars": 2601,
    "preview": "<?php\n\n/**\n * Inline Runtime Methods render, setSourceByUid, setupSubTemplate\n *\n * @package    Smarty\n * @subpackage Pl"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_runtime_cacheresourcefile.php",
    "chars": 5881,
    "preview": "<?php\n/**\n * Smarty cache resource file clear method\n *\n * @package    Smarty\n * @subpackage PluginsInternal\n * @author "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_runtime_capture.php",
    "chars": 4251,
    "preview": "<?php\n\n/**\n * Runtime Extension Capture\n *\n * @package    Smarty\n * @subpackage PluginsInternal\n * @author     Uwe Tews\n"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_runtime_codeframe.php",
    "chars": 5081,
    "preview": "<?php\n/**\n * Smarty Internal Extension\n * This file contains the Smarty template extension to create a code frame\n *\n * "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_runtime_filterhandler.php",
    "chars": 2981,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Filter Handler\n * Smarty filter handler class\n *\n * @package    Smarty\n * @subpackag"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_runtime_foreach.php",
    "chars": 5331,
    "preview": "<?php\n\n/**\n * Foreach Runtime Methods count(), init(), restore()\n *\n * @package    Smarty\n * @subpackage PluginsInternal"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_runtime_getincludepath.php",
    "chars": 5014,
    "preview": "<?php\n/**\n * Smarty read include path plugin\n *\n * @package    Smarty\n * @subpackage PluginsInternal\n * @author     Mont"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_runtime_inheritance.php",
    "chars": 9563,
    "preview": "<?php\n\n/**\n * Inheritance Runtime Methods processBlock, endChild, init\n *\n * @package    Smarty\n * @subpackage PluginsIn"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_runtime_make_nocache.php",
    "chars": 2074,
    "preview": "<?php\n\n/**\n * {make_nocache} Runtime Methods save(), store()\n *\n * @package    Smarty\n * @subpackage PluginsInternal\n * "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_runtime_tplfunction.php",
    "chars": 7372,
    "preview": "<?php\n\n/**\n * TplFunction Runtime Methods callTemplateFunction\n *\n * @package    Smarty\n * @subpackage PluginsInternal\n "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_runtime_updatecache.php",
    "chars": 6256,
    "preview": "<?php\n\n/**\n * Inline Runtime Methods render, setSourceByUid, setupSubTemplate\n *\n * @package    Smarty\n * @subpackage Pl"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_runtime_updatescope.php",
    "chars": 3912,
    "preview": "<?php\n\n/**\n * Runtime Extension updateScope\n *\n * @package    Smarty\n * @subpackage PluginsInternal\n * @author     Uwe T"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_runtime_writefile.php",
    "chars": 3470,
    "preview": "<?php\n/**\n * Smarty write file plugin\n *\n * @package    Smarty\n * @subpackage PluginsInternal\n * @author     Monte Ohrt\n"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_smartytemplatecompiler.php",
    "chars": 5466,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Smarty Template Compiler Base\n * This file contains the basic classes and methods fo"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_template.php",
    "chars": 24941,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Template\n * This file contains the Smarty template engine\n *\n * @package    Smarty\n "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_templatebase.php",
    "chars": 13956,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Smarty Template  Base\n * This file contains the basic shared methods for template ha"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_templatecompilerbase.php",
    "chars": 59925,
    "preview": "<?php\n/**\n * Smarty Internal Plugin Smarty Template Compiler Base\n * This file contains the basic classes and methods fo"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_templatelexer.php",
    "chars": 35038,
    "preview": "<?php\n/*\n * This file is part of Smarty.\n *\n * (c) 2015 Uwe Tews\n *\n * For the full copyright and license information, p"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_templateparser.php",
    "chars": 141526,
    "preview": "<?php\n\nclass TP_yyStackEntry\n{\n    public $stateno;       /* The state-number */\n    public $major;         /* The major"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_testinstall.php",
    "chars": 31718,
    "preview": "<?php\n/**\n * Smarty Internal TestInstall\n * Test Smarty installation\n *\n * @package    Smarty\n * @subpackage Utilities\n "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_internal_undefined.php",
    "chars": 1702,
    "preview": "<?php\n\n/**\n * Smarty Internal Undefined\n *\n * Class to handle undefined method calls or calls to obsolete runtime extens"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_resource.php",
    "chars": 9593,
    "preview": "<?php\n/**\n * Smarty Resource Plugin\n *\n * @package    Smarty\n * @subpackage TemplateResources\n * @author     Rodney Rehm"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_resource_custom.php",
    "chars": 3012,
    "preview": "<?php\n/**\n * Smarty Resource Plugin\n *\n * @package    Smarty\n * @subpackage TemplateResources\n * @author     Rodney Rehm"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_resource_recompiled.php",
    "chars": 2404,
    "preview": "<?php\n/**\n * Smarty Resource Plugin\n *\n * @package    Smarty\n * @subpackage TemplateResources\n * @author     Rodney Rehm"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_resource_uncompiled.php",
    "chars": 1420,
    "preview": "<?php\n/**\n * Smarty Resource Plugin\n *\n * @package    Smarty\n * @subpackage TemplateResources\n * @author     Rodney Rehm"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_security.php",
    "chars": 24189,
    "preview": "<?php\n/**\n * Smarty plugin\n *\n * @package    Smarty\n * @subpackage Security\n * @author     Uwe Tews\n */\n\n/*\n * FIXME: Sm"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_template_cached.php",
    "chars": 7761,
    "preview": "<?php\n/**\n * Created by PhpStorm.\n * User: Uwe Tews\n * Date: 04.12.2014\n * Time: 06:08\n */\n\n/**\n * Smarty Resource Data "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_template_compiled.php",
    "chars": 9465,
    "preview": "<?php\n\n/**\n * Smarty Resource Data Object\n * Meta Data Container for Template Files\n *\n * @package    Smarty\n * @subpack"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_template_config.php",
    "chars": 3077,
    "preview": "<?php\n/**\n * Smarty Config Source Plugin\n *\n * @package    Smarty\n * @subpackage TemplateResources\n * @author     Uwe Te"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_template_resource_base.php",
    "chars": 3605,
    "preview": "<?php\n\n/**\n * Smarty Template Resource Base Object\n *\n * @package    Smarty\n * @subpackage TemplateResources\n * @author "
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_template_source.php",
    "chars": 5337,
    "preview": "<?php\n\n/**\n * Smarty Resource Data Object\n * Meta Data Container for Template Files\n *\n * @package    Smarty\n * @subpack"
  },
  {
    "path": "Extend/Package/smarty/sysplugins/smarty_undefined_variable.php",
    "chars": 572,
    "preview": "<?php\n\n/**\n * class for undefined variable object\n * This class defines an object for undefined variable handling\n *\n * "
  }
]

// ... and 47 more files (download for full content)

About this extraction

This page contains the full source code of the xcg340122/PHP300Framework2.0 GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 247 files (1.2 MB), approximately 331.2k tokens, and a symbol index with 1398 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!