• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • Examples
  • File List

E:/E/GEAMP/www/openbiz/openbiz/others/Smarty/libs/internals/core.get_php_resource.php

00001 <?php
00018 function smarty_core_get_php_resource(&$params, &$smarty)
00019 {
00020 
00021     $params['resource_base_path'] = $smarty->trusted_dir;
00022     $smarty->_parse_resource_name($params, $smarty);
00023 
00024     /*
00025      * Find out if the resource exists.
00026      */
00027 
00028     if ($params['resource_type'] == 'file') {
00029         $_readable = false;
00030         if(file_exists($params['resource_name']) && is_readable($params['resource_name'])) {
00031             $_readable = true;
00032         } else {
00033             // test for file in include_path
00034             $_params = array('file_path' => $params['resource_name']);
00035             require_once(SMARTY_CORE_DIR . 'core.get_include_path.php');
00036             if(smarty_core_get_include_path($_params, $smarty)) {
00037                 $_include_path = $_params['new_file_path'];
00038                 $_readable = true;
00039             }
00040         }
00041     } else if ($params['resource_type'] != 'file') {
00042         $_template_source = null;
00043         $_readable = is_callable($smarty->_plugins['resource'][$params['resource_type']][0][0])
00044             && call_user_func_array($smarty->_plugins['resource'][$params['resource_type']][0][0],
00045                                     array($params['resource_name'], &$_template_source, &$smarty));
00046     }
00047 
00048     /*
00049      * Set the error function, depending on which class calls us.
00050      */
00051     if (method_exists($smarty, '_syntax_error')) {
00052         $_error_funcc = '_syntax_error';
00053     } else {
00054         $_error_funcc = 'trigger_error';
00055     }
00056 
00057     if ($_readable) {
00058         if ($smarty->security) {
00059             require_once(SMARTY_CORE_DIR . 'core.is_trusted.php');
00060             if (!smarty_core_is_trusted($params, $smarty)) {
00061                 $smarty->$_error_funcc('(secure mode) ' . $params['resource_type'] . ':' . $params['resource_name'] . ' is not trusted');
00062                 return false;
00063             }
00064         }
00065     } else {
00066         $smarty->$_error_funcc($params['resource_type'] . ':' . $params['resource_name'] . ' is not readable');
00067         return false;
00068     }
00069 
00070     if ($params['resource_type'] == 'file') {
00071         $params['php_resource'] = $params['resource_name'];
00072     } else {
00073         $params['php_resource'] = $_template_source;
00074     }
00075     return true;
00076 }
00077 
00078 /* vim: set expandtab: */
00079 
00080 ?>

Generated on Thu Apr 19 2012 17:01:16 for openbiz by  doxygen 1.7.2