| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | <?php/** * Smarty plugin * @package Smarty * @subpackage plugins *//** * load a resource plugin * * @param string $type */// $typefunction smarty_core_load_resource_plugin($params, &$smarty){    /*     * Resource plugins are not quite like the other ones, so they are     * handled differently. The first element of plugin info is the array of     * functions provided by the plugin, the second one indicates whether     * all of them exist or not.     */    $_plugin = &$smarty->_plugins['resource'][$params['type']];    if (isset($_plugin)) {        if (!$_plugin[1] && count($_plugin[0])) {            $_plugin[1] = true;            foreach ($_plugin[0] as $_plugin_func) {                if (!is_callable($_plugin_func)) {                    $_plugin[1] = false;                    break;                }            }        }        if (!$_plugin[1]) {            $smarty->_trigger_fatal_error("[plugin] resource '" . $params['type'] . "' is not implemented", null, null, __FILE__, __LINE__);        }        return;    }    $_plugin_file = $smarty->_get_plugin_filepath('resource', $params['type']);    $_found = ($_plugin_file != false);    if ($_found) {            /*         * If the plugin file is found, it -must- provide the properly named         * plugin functions.         */        include_once($_plugin_file);        /*         * Locate functions that we require the plugin to provide.         */        $_resource_ops = array('source', 'timestamp', 'secure', 'trusted');        $_resource_funcs = array();        foreach ($_resource_ops as $_op) {            $_plugin_func = 'smarty_resource_' . $params['type'] . '_' . $_op;            if (!function_exists($_plugin_func)) {                $smarty->_trigger_fatal_error("[plugin] function $_plugin_func() not found in $_plugin_file", null, null, __FILE__, __LINE__);                return;            } else {                $_resource_funcs[] = $_plugin_func;            }        }        $smarty->_plugins['resource'][$params['type']] = array($_resource_funcs, true);    }}/* vim: set expandtab: */?>
 |