Beispiel #1
0
function smarty_function_fis_require($params, Smarty_Internal_Template $template)
{
    $static_path = array();
    if (isset($params['static'])) {
        $static_path = $params['static'];
    } else {
        trigger_error('This params have no static params!', E_USER_WARNING);
    }
    if (isset($params['module'])) {
        $require_module = $params['module'];
    } else {
        $static = implode(',', $static_path);
        trigger_error("This params have no module params,when use {$static}", E_USER_WARNING);
    }
    if (isset($params['framework'])) {
        $require_framework = $params['framework'];
    } else {
        $require_framework = null;
    }
    /**@var ResourceAPI $api*/
    $api = ResourceAPI::getInstance();
    //加载resource_map.php
    $config_dir = $template->smarty->getConfigDir();
    foreach ($config_dir as $dir) {
        if ($require_module != 'common') {
            if ($require_framework) {
                $common_php = $dir . 'common/common_' . $require_framework . '_resource_map.php';
                if (is_file($common_php)) {
                    $api->registerMapPath($common_php, 'common', $require_framework);
                }
            } else {
                $common_php = $dir . 'common/common_resource_map.php';
                if (is_file($common_php)) {
                    $api->registerMapPath($common_php, 'common');
                } else {
                    trigger_error("Please use pc2-1.3.4 or later to compare common module!", E_USER_WARNING);
                }
            }
        }
        if ($require_framework) {
            $require_php = $dir . $require_module . '/' . $require_module . '_' . $require_framework . '_resource_map.php';
            if (is_file($require_php)) {
                $api->registerMapPath($require_php, $require_module, $require_framework);
                break;
            }
        } else {
            $require_php = $dir . $require_module . '/' . $require_module . '_resource_map.php';
            if (is_file($require_php)) {
                $api->registerMapPath($require_php, $require_module);
                break;
            }
        }
    }
    $api->setSmarty($template);
    foreach ($static_path as $static) {
        if ($require_framework) {
            $api->addSymbol($static, $require_module, $require_framework);
        } else {
            $api->addSymbol($static, $require_module);
        }
    }
    $template->smarty->registerFilter('output', array($api, 'renderResponse'));
}