diff options
Diffstat (limited to 'libs/sysplugins/smarty_internal_method_loadplugin.php')
| -rw-r--r-- | libs/sysplugins/smarty_internal_method_loadplugin.php | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/libs/sysplugins/smarty_internal_method_loadplugin.php b/libs/sysplugins/smarty_internal_method_loadplugin.php deleted file mode 100644 index 6ddcaec9..00000000 --- a/libs/sysplugins/smarty_internal_method_loadplugin.php +++ /dev/null @@ -1,111 +0,0 @@ -<?php - -/** - * Smarty Extension Loadplugin - * - * $smarty->loadPlugin() method - * - * @package Smarty - * @subpackage PluginsInternal - * @author Uwe Tews - */ -class Smarty_Internal_Method_LoadPlugin -{ - /** - * Cache of searched plugin files - * - * @var array - */ - public $plugin_files = array(); - - /** - * Takes unknown classes and loads plugin files for them - * class name format: Smarty_PluginType_PluginName - * plugin filename format: plugintype.pluginname.php - * - * @param \Smarty $smarty - * @param string $plugin_name class plugin name to load - * @param bool $check check if already loaded - * - * @return bool|string - * @throws \SmartyException - */ - public function loadPlugin(Smarty $smarty, $plugin_name, $check) - { - // if function or class exists, exit silently (already loaded) - if ($check && (is_callable($plugin_name) || class_exists($plugin_name, false))) { - return true; - } - if (!preg_match('#^smarty_((internal)|([^_]+))_(.+)$#i', $plugin_name, $match)) { - throw new SmartyException("plugin {$plugin_name} is not a valid name format"); - } - if (!empty($match[ 2 ])) { - $file = SMARTY_SYSPLUGINS_DIR . smarty_strtolower_ascii($plugin_name) . '.php'; - if (isset($this->plugin_files[ $file ])) { - if ($this->plugin_files[ $file ] !== false) { - return $this->plugin_files[ $file ]; - } else { - return false; - } - } else { - if (is_file($file)) { - $this->plugin_files[ $file ] = $file; - include_once $file; - return $file; - } else { - $this->plugin_files[ $file ] = false; - return false; - } - } - } - // plugin filename is expected to be: [type].[name].php - $_plugin_filename = "{$match[1]}.{$match[4]}.php"; - $_lower_filename = smarty_strtolower_ascii($_plugin_filename); - if (isset($this->plugin_files)) { - if (isset($this->plugin_files[ 'plugins_dir' ][ $_lower_filename ])) { - if (!$smarty->use_include_path || $this->plugin_files[ 'plugins_dir' ][ $_lower_filename ] !== false) { - return $this->plugin_files[ 'plugins_dir' ][ $_lower_filename ]; - } - } - if (!$smarty->use_include_path || $smarty->ext->_getIncludePath->isNewIncludePath($smarty)) { - unset($this->plugin_files[ 'include_path' ]); - } else { - if (isset($this->plugin_files[ 'include_path' ][ $_lower_filename ])) { - return $this->plugin_files[ 'include_path' ][ $_lower_filename ]; - } - } - } - $_file_names = array($_plugin_filename); - if ($_lower_filename !== $_plugin_filename) { - $_file_names[] = $_lower_filename; - } - $_p_dirs = $smarty->getPluginsDir(); - if (!isset($this->plugin_files[ 'plugins_dir' ][ $_lower_filename ])) { - // loop through plugin dirs and find the plugin - foreach ($_p_dirs as $_plugin_dir) { - foreach ($_file_names as $name) { - $file = $_plugin_dir . $name; - if (is_file($file)) { - $this->plugin_files[ 'plugins_dir' ][ $_lower_filename ] = $file; - include_once $file; - return $file; - } - $this->plugin_files[ 'plugins_dir' ][ $_lower_filename ] = false; - } - } - } - if ($smarty->use_include_path) { - foreach ($_file_names as $_file_name) { - // try PHP include_path - $file = $smarty->ext->_getIncludePath->getIncludePath($_p_dirs, $_file_name, $smarty); - $this->plugin_files[ 'include_path' ][ $_lower_filename ] = $file; - if ($file !== false) { - include_once $file; - return $file; - } - } - } - // no plugin loaded - return false; - } -} |
