~titan-phpdevshell/phpdevshell/main

« back to all changes in this revision

Viewing changes to includes/legacy/smarty/internals/core.load_resource_plugin.php

  • Committer: Jason Schoeman
  • Date: 2011-12-06 14:03:32 UTC
  • Revision ID: titan@phpdevshell.org-20111206140332-4ej6qy4b36d3q96s
Crud Added
ORM Added
Control Panel optimized

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?php
2
 
/**
3
 
 * Smarty plugin
4
 
 * @package Smarty
5
 
 * @subpackage plugins
6
 
 */
7
 
 
8
 
/**
9
 
 * load a resource plugin
10
 
 *
11
 
 * @param string $type
12
 
 */
13
 
 
14
 
// $type
15
 
 
16
 
function smarty_core_load_resource_plugin($params, &$smarty)
17
 
{
18
 
    /*
19
 
     * Resource plugins are not quite like the other ones, so they are
20
 
     * handled differently. The first element of plugin info is the array of
21
 
     * functions provided by the plugin, the second one indicates whether
22
 
     * all of them exist or not.
23
 
     */
24
 
 
25
 
    $_plugin = &$smarty->_plugins['resource'][$params['type']];
26
 
    if (isset($_plugin)) {
27
 
        if (!$_plugin[1] && count($_plugin[0])) {
28
 
            $_plugin[1] = true;
29
 
            foreach ($_plugin[0] as $_plugin_func) {
30
 
                if (!is_callable($_plugin_func)) {
31
 
                    $_plugin[1] = false;
32
 
                    break;
33
 
                }
34
 
            }
35
 
        }
36
 
 
37
 
        if (!$_plugin[1]) {
38
 
            $smarty->_trigger_fatal_error("[plugin] resource '" . $params['type'] . "' is not implemented", null, null, __FILE__, __LINE__);
39
 
        }
40
 
 
41
 
        return;
42
 
    }
43
 
 
44
 
    $_plugin_file = $smarty->_get_plugin_filepath('resource', $params['type']);
45
 
    $_found = ($_plugin_file != false);
46
 
 
47
 
    if ($_found) {            /*
48
 
         * If the plugin file is found, it -must- provide the properly named
49
 
         * plugin functions.
50
 
         */
51
 
        include_once($_plugin_file);
52
 
 
53
 
        /*
54
 
         * Locate functions that we require the plugin to provide.
55
 
         */
56
 
        $_resource_ops = array('source', 'timestamp', 'secure', 'trusted');
57
 
        $_resource_funcs = array();
58
 
        foreach ($_resource_ops as $_op) {
59
 
            $_plugin_func = 'smarty_resource_' . $params['type'] . '_' . $_op;
60
 
            if (!function_exists($_plugin_func)) {
61
 
                $smarty->_trigger_fatal_error("[plugin] function $_plugin_func() not found in $_plugin_file", null, null, __FILE__, __LINE__);
62
 
                return;
63
 
            } else {
64
 
                $_resource_funcs[] = $_plugin_func;
65
 
            }
66
 
        }
67
 
 
68
 
        $smarty->_plugins['resource'][$params['type']] = array($_resource_funcs, true);
69
 
    }
70
 
}
71
 
 
72
 
/* vim: set expandtab: */
73
 
 
74
 
?>