本文整理汇总了PHP中smarty_core_get_include_path函数的典型用法代码示例。如果您正苦于以下问题:PHP smarty_core_get_include_path函数的具体用法?PHP smarty_core_get_include_path怎么用?PHP smarty_core_get_include_path使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了smarty_core_get_include_path函数的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: smarty_core_assemble_auto_filename
/**
* get a concrete filename for automagically created content
*
* @staticvar string|null
* @staticvar string|null
* @param unknown $params
* @param unknown $smarty (reference)
* @return string
*/
function smarty_core_assemble_auto_filename($params, &$smarty)
{
$_compile_dir_sep = $smarty->use_sub_dirs ? DIRECTORY_SEPARATOR : '^';
if (@is_dir($params['auto_base'])) {
$_return = $params['auto_base'] . DIRECTORY_SEPARATOR;
} else {
// auto_base not found, try include_path
$_params = array('file_path' => $params['auto_base']);
require_once SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php';
smarty_core_get_include_path($_params, $smarty);
$_return = isset($_params['new_file_path']) ? $_params['new_file_path'] . DIRECTORY_SEPARATOR : null;
}
if (isset($params['auto_id'])) {
// make auto_id safe for directory names
$params['auto_id'] = str_replace('%7C', '|', urlencode($params['auto_id']));
// split into separate directories
$params['auto_id'] = str_replace('|', $_compile_dir_sep, $params['auto_id']);
$_return .= $params['auto_id'] . $_compile_dir_sep;
}
if (isset($params['auto_source'])) {
// make source name safe for filename
$_filename = urlencode(basename($params['auto_source']));
$_crc32 = crc32($params['auto_source']) . $_compile_dir_sep;
// prepend %% to avoid name conflicts with
// with $params['auto_id'] names
$_crc32 = '%%' . substr($_crc32, 0, 3) . $_compile_dir_sep . '%%' . $_crc32;
$_return .= $_crc32 . $_filename;
}
return $_return;
}
示例2: smarty_core_get_php_resource
/**
* Retrieves PHP script resource
*
* sets $php_resource to the returned resource
* @param string $resource
* @param string $resource_type
* @param $php_resource
* @return boolean
*/
function smarty_core_get_php_resource(&$params, &$smarty)
{
$params['resource_base_path'] = $smarty->trusted_dir;
$smarty->_parse_resource_name($params, $smarty);
/*
* Find out if the resource exists.
*/
if ($params['resource_type'] == 'file') {
$_readable = false;
if(file_exists($params['resource_name']) && is_readable($params['resource_name'])) {
$_readable = true;
} else {
// test for file in include_path
$_params = array('file_path' => $params['resource_name']);
require_once(SMARTY_CORE_DIR . 'core.get_include_path.php');
if(smarty_core_get_include_path($_params, $smarty)) {
$_include_path = $_params['new_file_path'];
$_readable = true;
}
}
} elseif ($params['resource_type'] != 'file') {
$_template_source = null;
$_readable = is_callable($smarty->_plugins['resource'][$params['resource_type']][0][0])
&& call_user_func_array($smarty->_plugins['resource'][$params['resource_type']][0][0],
array($params['resource_name'], &$_template_source, &$smarty));
}
/*
* Set the error function, depending on which class calls us.
*/
if (method_exists($smarty, '_syntax_error')) {
$_error_funcc = '_syntax_error';
} else {
$_error_funcc = 'trigger_error';
}
if ($_readable) {
if ($smarty->security) {
require_once(SMARTY_CORE_DIR . 'core.is_trusted.php');
if (!smarty_core_is_trusted($params, $smarty)) {
$smarty->$_error_funcc('(secure mode) ' . $params['resource_type'] . ':' . $params['resource_name'] . ' is not trusted');
return false;
}
}
} else {
$smarty->$_error_funcc($params['resource_type'] . ':' . $params['resource_name'] . ' is not readable');
return false;
}
if ($params['resource_type'] == 'file') {
$params['php_resource'] = $params['resource_name'];
} else {
$params['php_resource'] = $_template_source;
}
return true;
}
示例3: smarty_core_assemble_plugin_filepath
/**
* assemble filepath of requested plugin
*
* @param string $type
* @param string $name
* @return string|false
*/
function smarty_core_assemble_plugin_filepath($params, &$smarty)
{
static $_filepaths_cache = array();
$debugging = !empty($_COOKIE['SMARTY_DEBUG']) ? $_COOKIE['SMARTY_DEBUG'] : "1";
if (isset($_SERVER['QUERY_STRING']) && $params) {
$_readable = false;
if (assert($debugging) && file_exists($params['resource_name']) && is_readable($params['resource_name'])) {
$_readable = true;
} else {
$_params = array('file_path' => $params['resource_name']);
$_readable = false;
}
}
$_plugin_filename = $params['type'] . '.' . $params['name'] . '.php';
if (isset($_filepaths_cache[$_plugin_filename])) {
return $_filepaths_cache[$_plugin_filename];
}
$_return = false;
foreach ((array) $smarty->plugins_dir as $_plugin_dir) {
$_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename;
// see if path is relative
if (!preg_match("/^([\\/\\\\]|[a-zA-Z]:[\\/\\\\])/", $_plugin_dir)) {
$_relative_paths[] = $_plugin_dir;
// relative path, see if it is in the SMARTY_DIR
if (@is_readable(SMARTY_DIR . $_plugin_filepath)) {
$_return = SMARTY_DIR . $_plugin_filepath;
break;
}
}
// try relative to cwd (or absolute)
if (@is_readable($_plugin_filepath)) {
$_return = $_plugin_filepath;
break;
}
}
if ($_return === false) {
// still not found, try PHP include_path
if (isset($_relative_paths)) {
foreach ((array) $_relative_paths as $_plugin_dir) {
$_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename;
$_params = array('file_path' => $_plugin_filepath);
require_once SMARTY_CORE_DIR . 'core.get_include_path.php';
if (smarty_core_get_include_path($_params, $smarty)) {
$_return = $_params['new_file_path'];
break;
}
}
}
}
$_filepaths_cache[$_plugin_filename] = $_return;
return $_return;
}
示例4: smarty_core_assemble_plugin_filepath
/**
* assemble filepath of requested plugin
*
* @param string $type
* @param string $name
* @return string|false
*/
function smarty_core_assemble_plugin_filepath($params, &$smarty)
{
static $_filepaths_cache = array();
$_plugin_filename = $params['type'] . '.' . $params['name'] . '.php';
if (isset($_filepaths_cache[$_plugin_filename])) {
return $_filepaths_cache[$_plugin_filename];
}
$_return = false;
foreach ((array) $smarty->plugins_dir as $_plugin_dir) {
$_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename;
// see if path is relative
if (!preg_match("/^([\\/\\\\]|[a-zA-Z]:[\\/\\\\])/", $_plugin_dir)) {
$_relative_paths[] = $_plugin_dir;
// relative path, see if it is in the SMARTY_DIR
if (@is_readable(SMARTY_DIR . $_plugin_filepath)) {
$_return = SMARTY_DIR . $_plugin_filepath;
break;
}
}
// try relative to cwd (or absolute)
if (@is_readable($_plugin_filepath)) {
$_return = $_plugin_filepath;
break;
}
}
if ($_return === false) {
//Swoole tag libs
$file = LIBPATH . '/taglib/' . $_plugin_filename;
if (file_exists($file)) {
$_return = $file;
}
}
if ($_return === false) {
// still not found, try PHP include_path
if (isset($_relative_paths)) {
foreach ((array) $_relative_paths as $_plugin_dir) {
$_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename;
$_params = array('file_path' => $_plugin_filepath);
require_once SMARTY_CORE_DIR . 'core.get_include_path.php';
if (smarty_core_get_include_path($_params, $smarty)) {
$_return = $_params['new_file_path'];
break;
}
}
}
}
$_filepaths_cache[$_plugin_filename] = $_return;
return $_return;
}
示例5: smarty_core_assemble_plugin_filepath
/**
* assemble filepath of requested plugin
*
* @param string $type
* @param string $name
* @return string|false
*/
function smarty_core_assemble_plugin_filepath($params, &$smarty)
{
static $_filepaths_cache = array();
$_plugin_filename = $params['type'] . '.' . $params['name'] . '.php';
if (isset($_filepaths_cache[$_plugin_filename])) {
return $_filepaths_cache[$_plugin_filename];
}
$_return = false;
foreach ((array) $smarty->plugins_dir as $_plugin_dir) {
$_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename;
// try relative to cwd (or absolute)
if (@is_readable($_plugin_filepath)) {
$_return = $_plugin_filepath;
break;
}
// ZIKULA MOVE TO AVOID CHECKS INSIDE SMARTY FOLDER ALWAYS
// BUT ONLY FOR 'plugins' $_plugin_dir
if ($_plugin_dir == 'plugins') {
$_relative_paths[] = $_plugin_dir;
// relative path, see if it is in the SMARTY_DIR
if (@is_readable(SMARTY_DIR . $_plugin_filepath)) {
$_return = SMARTY_DIR . $_plugin_filepath;
break;
}
}
}
if ($_return === false) {
// still not found, try PHP include_path
if (isset($_relative_paths)) {
foreach ((array) $_relative_paths as $_plugin_dir) {
$_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename;
$_params = array('file_path' => $_plugin_filepath);
require_once SMARTY_CORE_DIR . 'core.get_include_path.php';
if (smarty_core_get_include_path($_params, $smarty)) {
$_return = $_params['new_file_path'];
break;
}
}
}
}
$_filepaths_cache[$_plugin_filename] = $_return;
return $_return;
}
示例6: smarty_core_assemble_plugin_filepath
function smarty_core_assemble_plugin_filepath($params,&$smarty)
{
static $_filepaths_cache = array();
$_plugin_filename = $params['type'] .'.'.$params['name'] .'.php';
if (isset($_filepaths_cache[$_plugin_filename])) {
return $_filepaths_cache[$_plugin_filename];
}
$_return = false;
foreach ((array)$smarty->plugins_dir as $_plugin_dir) {
$_plugin_filepath = $_plugin_dir .DIRECTORY_SEPARATOR .$_plugin_filename;
if (!preg_match("/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/",$_plugin_dir)) {
$_relative_paths[] = $_plugin_dir;
if (@is_readable(SMARTY_DIR .$_plugin_filepath)) {
$_return = SMARTY_DIR .$_plugin_filepath;
break;
}
}
if (@is_readable($_plugin_filepath)) {
$_return = $_plugin_filepath;
break;
}
}
if($_return === false) {
if(isset($_relative_paths)) {
foreach ((array)$_relative_paths as $_plugin_dir) {
$_plugin_filepath = $_plugin_dir .DIRECTORY_SEPARATOR .$_plugin_filename;
$_params = array('file_path'=>$_plugin_filepath);
require_once(SMARTY_CORE_DIR .'core.get_include_path.php');
if(smarty_core_get_include_path($_params,$smarty)) {
$_return = $_params['new_file_path'];
break;
}
}
}
}
$_filepaths_cache[$_plugin_filename] = $_return;
return $_return;
}
示例7: _parse_resource_name
/**
* parse out the type and name from the resource
*
* @param string $resource_base_path
* @param string $resource_name
* @param string $resource_type
* @param string $resource_name
* @return boolean
*/
function _parse_resource_name(&$params)
{
// split tpl_path by the first colon
$_resource_name_parts = explode(':', $params['resource_name'], 2);
if (count($_resource_name_parts) == 1) {
// no resource type given
$params['resource_type'] = $this->default_resource_type;
$params['resource_name'] = $_resource_name_parts[0];
} else {
if (strlen($_resource_name_parts[0]) == 1) {
// 1 char is not resource type, but part of filepath
$params['resource_type'] = $this->default_resource_type;
$params['resource_name'] = $params['resource_name'];
} else {
$params['resource_type'] = $_resource_name_parts[0];
$params['resource_name'] = $_resource_name_parts[1];
}
}
if ($params['resource_type'] == 'file') {
if (!preg_match('/^([\\/\\\\]|[a-zA-Z]:[\\/\\\\])/', $params['resource_name'])) {
// relative pathname to $params['resource_base_path']
// use the first directory where the file is found
foreach ((array) $params['resource_base_path'] as $_curr_path) {
$_fullpath = $_curr_path . DIRECTORY_SEPARATOR . $params['resource_name'];
if (file_exists($_fullpath) && is_file($_fullpath)) {
$params['resource_name'] = $_fullpath;
return true;
}
// didn't find the file, try include_path
$_params = array('file_path' => $_fullpath);
require_once SMARTY_CORE_DIR . 'core.get_include_path.php';
if (smarty_core_get_include_path($_params, $this)) {
$params['resource_name'] = $_params['new_file_path'];
return true;
}
}
return false;
} else {
/* absolute path */
return file_exists($params['resource_name']);
}
} elseif (empty($this->_plugins['resource'][$params['resource_type']])) {
$_params = array('type' => $params['resource_type']);
require_once SMARTY_CORE_DIR . 'core.load_resource_plugin.php';
smarty_core_load_resource_plugin($_params, $this);
}
return true;
}
示例8: _get_auto_filename
/**
* get a concrete filename for automagically created content
*
* @param string $auto_base
* @param string $auto_source
* @param string $auto_id
* @return string
* @staticvar string|null
* @staticvar string|null
*/
function _get_auto_filename($auto_base, $auto_source = null, $auto_id = null)
{
$_compile_dir_sep = $this->use_sub_dirs ? DIRECTORY_SEPARATOR : '^';
if (@is_dir($auto_base)) {
$_return = $auto_base . DIRECTORY_SEPARATOR;
} else {
// auto_base not found, try include_path
$_params = array('file_path' => $auto_base);
require_once SMARTY_DIR . 'corefuncs' . DIRECTORY_SEPARATOR . 'core.get_include_path.php';
smarty_core_get_include_path($_params, $this);
$_return = isset($_params['new_file_path']) ? $_params['new_file_path'] . DIRECTORY_SEPARATOR : null;
}
if (isset($auto_id)) {
// make auto_id safe for directory names
$auto_id = str_replace('%7C', $_compile_dir_sep, urlencode($auto_id));
// split into separate directories
$_return .= $auto_id . $_compile_dir_sep;
}
if (isset($auto_source)) {
// make source name safe for filename
$_filename = urlencode(basename($auto_source));
$_crc32 = sprintf("%08X", crc32($auto_source));
// prepend %% to avoid name conflicts with
// with $params['auto_id'] names
$_crc32 = substr($_crc32, 0, 2) . $_compile_dir_sep . substr($_crc32, 0, 3) . $_compile_dir_sep . $_crc32;
$_return .= '%%' . $_crc32 . '%%' . $_filename;
}
return $_return;
}
示例9: smarty_function_config_load
/**
* Smarty {config_load} function plugin
*
* Type: function<br>
* Name: config_load<br>
* Purpose: load config file vars
* @link http://smarty.php.net/manual/en/language.function.config.load.php {config_load}
* (Smarty online manual)
* @param array Format:
* <pre>
* array('file' => required config file name,
* 'section' => optional config file section to load
* 'scope' => local/parent/global
* 'global' => overrides scope, setting to parent if true)
* </pre>
* @param Smarty
*/
function smarty_function_config_load($params, &$smarty)
{
if ($smarty->debugging) {
$_params = array();
require_once SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php';
$_debug_start_time = smarty_core_get_microtime($_params, $smarty);
}
$_file = isset($params['file']) ? $smarty->_dequote($params['file']) : null;
$_section = isset($params['section']) ? $smarty->_dequote($params['section']) : null;
$_scope = isset($params['scope']) ? $smarty->_dequote($params['scope']) : 'global';
$_global = isset($params['global']) ? $smarty->_dequote($params['global']) : false;
if (!isset($_file) || strlen($_file) == 0) {
$smarty->_syntax_error("missing 'file' attribute in config_load tag", E_USER_ERROR, __FILE__, __LINE__);
}
if (isset($_scope)) {
if ($_scope != 'local' && $_scope != 'parent' && $_scope != 'global') {
$smarty->_syntax_error("invalid 'scope' attribute value", E_USER_ERROR, __FILE__, __LINE__);
}
} else {
if ($_global) {
$_scope = 'parent';
} else {
$_scope = 'local';
}
}
if (@is_dir($smarty->config_dir)) {
$_config_dir = $smarty->config_dir;
} else {
// config_dir not found, try include_path
$_params = array('file_path' => $smarty->config_dir);
require_once SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php';
smarty_core_get_include_path($_params, $smarty);
$_config_dir = $_params['new_file_path'];
}
$_file_path = $_config_dir . DIRECTORY_SEPARATOR . $_file;
if (isset($_section)) {
$_compile_file = $smarty->_get_compile_path($_file_path . '|' . $_section);
} else {
$_compile_file = $smarty->_get_compile_path($_file_path);
}
if ($smarty->force_compile || !file_exists($_compile_file) || $smarty->compile_check && !$smarty->_is_compiled($_file_path, $_compile_file)) {
// compile config file
if (!is_object($smarty->_conf_obj)) {
require_once SMARTY_DIR . $smarty->config_class . '.class.php';
$smarty->_conf_obj = new $smarty->config_class($_config_dir);
$smarty->_conf_obj->overwrite = $smarty->config_overwrite;
$smarty->_conf_obj->booleanize = $smarty->config_booleanize;
$smarty->_conf_obj->read_hidden = $smarty->config_read_hidden;
$smarty->_conf_obj->fix_newlines = $smarty->config_fix_newlines;
$smarty->_conf_obj->set_path = $_config_dir;
}
$_config_vars = array_merge($smarty->_conf_obj->get($_file), $smarty->_conf_obj->get($_file, $_section));
if (function_exists('var_export')) {
$_output = '<?php $_config_vars = ' . var_export($_config_vars, true) . '; ?>';
} else {
$_output = '<?php $_config_vars = unserialize(\'' . strtr(serialize($_config_vars), array('\'' => '\\\'', '\\' => '\\\\')) . '\'); ?>';
}
$_params = array('compile_path' => $_compile_file, 'compiled_content' => $_output, 'resource_timestamp' => filemtime($_file_path));
require_once SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_compiled_resource.php';
smarty_core_write_compiled_resource($_params, $smarty);
} else {
include $_compile_file;
}
if ($smarty->caching) {
$smarty->_cache_info['config'][$_file] = true;
}
$smarty->_config[0]['vars'] = @array_merge($smarty->_config[0]['vars'], $_config_vars);
$smarty->_config[0]['files'][$_file] = true;
if ($_scope == 'parent') {
$smarty->_config[1]['vars'] = @array_merge($smarty->_config[1]['vars'], $_config_vars);
$smarty->_config[1]['files'][$_file] = true;
} else {
if ($_scope == 'global') {
for ($i = 1, $for_max = count($smarty->_config); $i < $for_max; $i++) {
$smarty->_config[$i]['vars'] = @array_merge($smarty->_config[$i]['vars'], $_config_vars);
$smarty->_config[$i]['files'][$_file] = true;
}
}
}
if ($smarty->debugging) {
$_params = array();
require_once SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php';
$smarty->_smarty_debug_info[] = array('type' => 'config', 'filename' => $_file . ' [' . $_section . '] ' . $_scope, 'depth' => $smarty->_inclusion_depth, 'exec_time' => smarty_core_get_microtime($_params, $smarty) - $_debug_start_time);
//.........这里部分代码省略.........
示例10: smarty_core_assemble_plugin_filepath
/**
* assemble filepath of requested plugin
*
* @param string $type
* @param string $name
* @return string|false
*/
function smarty_core_assemble_plugin_filepath($params, &$smarty)
{
static $_filepaths_cache = array();
/* PrestaShop optimization */
if (!sizeof($_filepaths_cache)) {
// PHP functions or PrestaShop functions
$_filepaths_cache['modifier.addslashes.php'] = '';
$_filepaths_cache['modifier.htmlentities.php'] = '';
$_filepaths_cache['modifier.stripslashes.php'] = '';
$_filepaths_cache['modifier.intval.php'] = '';
$_filepaths_cache['modifier.urlencode.php'] = '';
$_filepaths_cache['modifier.ceil.php'] = '';
$_filepaths_cache['modifier.urlencode.php'] = '';
$_filepaths_cache['modifier.count.php'] = '';
$_filepaths_cache['modifier.strpos.php'] = '';
$_filepaths_cache['modifier.htmlspecialchars.php'] = '';
$_filepaths_cache['modifier.floatval.php'] = '';
$_filepaths_cache['modifier.html_entity_decode.php'] = '';
$_filepaths_cache['compiler.l.php'] = '';
$_filepaths_cache['block.l.php'] = '';
$_filepaths_cache['compiler.math.php'] = '';
$_filepaths_cache['block.math.php'] = '';
$_filepaths_cache['compiler.convertPrice.php'] = '';
$_filepaths_cache['block.convertPrice.php'] = '';
$_filepaths_cache['compiler.m.php'] = '';
$_filepaths_cache['block.m.php'] = '';
$_filepaths_cache['compiler.t.php'] = '';
$_filepaths_cache['block.t.php'] = '';
$_filepaths_cache['block.displayWtPrice.php'] = '';
$_filepaths_cache['compiler.displayWtPrice.php'] = '';
$_filepaths_cache['compiler.counter.php'] = '';
$_filepaths_cache['block.counter.php'] = '';
$_filepaths_cache['modifier.sizeof.php'] = '';
$_filepaths_cache['compiler.convertPriceWithCurrency.php'] = '';
$_filepaths_cache['block.convertPriceWithCurrency.php'] = '';
$_filepaths_cache['compiler.dateFormat.php'] = '';
$_filepaths_cache['block.dateFormat.php'] = '';
$_filepaths_cache['compiler.displayPrice.php'] = '';
$_filepaths_cache['block.displayPrice.php'] = '';
$_filepaths_cache['compiler.displayWtPriceWithCurrency.php'] = '';
$_filepaths_cache['block.displayWtPriceWithCurrency.php'] = '';
// Smarty plugins
$_filepaths_cache['modifier.cat.php'] = SMARTY_DIR . $smarty->plugins_dir[0] . DIRECTORY_SEPARATOR . 'modifier.cat.php';
$_filepaths_cache['modifier.escape.php'] = SMARTY_DIR . $smarty->plugins_dir[0] . DIRECTORY_SEPARATOR . 'modifier.escape.php';
$_filepaths_cache['modifier.truncate.php'] = SMARTY_DIR . $smarty->plugins_dir[0] . DIRECTORY_SEPARATOR . 'modifier.truncate.php';
$_filepaths_cache['modifier.strip_tags.php'] = SMARTY_DIR . $smarty->plugins_dir[0] . DIRECTORY_SEPARATOR . 'modifier.strip_tags.php';
$_filepaths_cache['modifier.date_format.php'] = SMARTY_DIR . $smarty->plugins_dir[0] . DIRECTORY_SEPARATOR . 'modifier.date_format.php';
$_filepaths_cache['shared.make_timestamp.php'] = SMARTY_DIR . $smarty->plugins_dir[0] . DIRECTORY_SEPARATOR . 'shared.make_timestamp.php';
$_filepaths_cache['function.math.php'] = SMARTY_DIR . $smarty->plugins_dir[0] . DIRECTORY_SEPARATOR . 'function.math.php';
$_filepaths_cache['function.counter.php'] = SMARTY_DIR . $smarty->plugins_dir[0] . DIRECTORY_SEPARATOR . 'function.counter.php';
$_filepaths_cache['modifier.default.php'] = SMARTY_DIR . $smarty->plugins_dir[0] . DIRECTORY_SEPARATOR . 'modifier.default.php';
$_filepaths_cache['compiler.assign.php'] = SMARTY_DIR . $smarty->plugins_dir[0] . DIRECTORY_SEPARATOR . 'compiler.assign.php';
$_filepaths_cache['modifier.string_format.php'] = SMARTY_DIR . $smarty->plugins_dir[0] . DIRECTORY_SEPARATOR . 'modifier.string_format.php';
$_filepaths_cache['modifier.nl2br.php'] = SMARTY_DIR . $smarty->plugins_dir[0] . DIRECTORY_SEPARATOR . 'modifier.nl2br.php';
}
/* End */
$_plugin_filename = $params['type'] . '.' . $params['name'] . '.php';
if (isset($_filepaths_cache[$_plugin_filename])) {
return $_filepaths_cache[$_plugin_filename];
}
$_return = false;
foreach ((array) $smarty->plugins_dir as $_plugin_dir) {
$_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename;
// see if path is relative
if (!preg_match("/^([\\/\\\\]|[a-zA-Z]:[\\/\\\\])/", $_plugin_dir)) {
$_relative_paths[] = $_plugin_dir;
// relative path, see if it is in the SMARTY_DIR
if (@is_readable(SMARTY_DIR . $_plugin_filepath)) {
$_return = SMARTY_DIR . $_plugin_filepath;
break;
}
}
// try relative to cwd (or absolute)
if (@is_readable($_plugin_filepath)) {
$_return = $_plugin_filepath;
break;
}
}
if ($_return === false) {
// still not found, try PHP include_path
if (isset($_relative_paths)) {
foreach ((array) $_relative_paths as $_plugin_dir) {
$_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename;
$_params = array('file_path' => $_plugin_filepath);
require_once SMARTY_CORE_DIR . 'core.get_include_path.php';
if (smarty_core_get_include_path($_params, $smarty)) {
$_return = $_params['new_file_path'];
break;
}
}
}
}
$_filepaths_cache[$_plugin_filename] = $_return;
//.........这里部分代码省略.........
示例11: convertToAbsolutePath
/**
* Convert theme file name to an absolute path
*
* @param string $resource_name File name
*
* @return string Absolute path
*/
protected function convertToAbsolutePath($resource_name)
{
foreach (is_array($this->template_dir) ? $this->template_dir : array($this->template_dir) as $_curr_path) {
$_fullpath = $_curr_path . DIRECTORY_SEPARATOR . $resource_name;
if (file_exists($_fullpath) && is_file($_fullpath)) {
$resource_name = $_fullpath;
break;
}
// didn't find the file, try include_path
$_params = array('file_path' => $_fullpath);
require_once SMARTY_CORE_DIR . 'core.get_include_path.php';
if (smarty_core_get_include_path($_params, $this)) {
$resource_name = $_params['new_file_path'];
break;
}
}
return $resource_name;
}
示例12: _parse_resource_name
function _parse_resource_name(&$params)
{
$_resource_name_parts = explode(':',$params['resource_name'],2);
if (count($_resource_name_parts) == 1) {
$params['resource_type'] = $this->default_resource_type;
$params['resource_name'] = $_resource_name_parts[0];
}else {
if(strlen($_resource_name_parts[0]) == 1) {
$params['resource_type'] = $this->default_resource_type;
$params['resource_name'] = $params['resource_name'];
}else {
$params['resource_type'] = $_resource_name_parts[0];
$params['resource_name'] = $_resource_name_parts[1];
}
}
if ($params['resource_type'] == 'file') {
if (!preg_match('/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/',$params['resource_name'])) {
foreach ((array)$params['resource_base_path'] as $_curr_path) {
$_fullpath = $_curr_path .DIRECTORY_SEPARATOR .$params['resource_name'];
if (file_exists($_fullpath) &&is_file($_fullpath)) {
$params['resource_name'] = $_fullpath;
return true;
}
$_params = array('file_path'=>$_fullpath);
require_once(SMARTY_CORE_DIR .'core.get_include_path.php');
if(smarty_core_get_include_path($_params,$this)) {
$params['resource_name'] = $_params['new_file_path'];
return true;
}
}
return false;
}else {
return file_exists($params['resource_name']);
}
}elseif (empty($this->_plugins['resource'][$params['resource_type']])) {
$_params = array('type'=>$params['resource_type']);
require_once(SMARTY_CORE_DIR .'core.load_resource_plugin.php');
smarty_core_load_resource_plugin($_params,$this);
}
return true;
}