phpDocumentor Smarty
plugins
[ class tree: Smarty ] [ index: Smarty ] [ all elements ]

Source for file core.get_php_resource.php

Documentation is available at core.get_php_resource.php

  1. <?php
  2. /**
  3.  * Smarty plugin
  4.  * @package Smarty
  5.  * @subpackage plugins
  6.  */
  7.  
  8. /**
  9.  * Retrieves PHP script resource
  10.  *
  11.  * sets $php_resource to the returned resource
  12.  * @param string $resource 
  13.  * @param string $resource_type 
  14.  * @param  $php_resource 
  15.  * @return boolean 
  16.  */
  17.  
  18. function smarty_core_get_php_resource(&$params&$smarty)
  19. {
  20.  
  21.     $params['resource_base_path'$smarty->trusted_dir;
  22.     $smarty->_parse_resource_name($params$smarty);
  23.  
  24.     /*
  25.      * Find out if the resource exists.
  26.      */
  27.  
  28.     if ($params['resource_type'== 'file'{
  29.         $_readable false;
  30.         if(file_exists($params['resource_name']&& is_readable($params['resource_name'])) {
  31.             $_readable true;
  32.         else {
  33.             // test for file in include_path
  34.             $_params array('file_path' => $params['resource_name']);
  35.             require_once(SMARTY_DIR 'core' DIRECTORY_SEPARATOR 'core.get_include_path.php');
  36.             if(smarty_core_get_include_path($_params$smarty)) {
  37.                 $_include_path $_params['new_file_path'];
  38.                 $_readable true;
  39.             }
  40.         }
  41.     else if ($params['resource_type'!= 'file'{
  42.         $_template_source null;
  43.         $_readable is_callable($smarty->_plugins['resource'][$params['resource_type']][0][0])
  44.             && call_user_func_array($smarty->_plugins['resource'][$params['resource_type']][0][0],
  45.                                     array($params['resource_name']&$_template_source&$smarty));
  46.     }
  47.  
  48.     /*
  49.      * Set the error function, depending on which class calls us.
  50.      */
  51.     if (method_exists($smarty'_syntax_error')) {
  52.         $_error_funcc '_syntax_error';
  53.     else {
  54.         $_error_funcc 'trigger_error';
  55.     }
  56.  
  57.     if ($_readable{
  58.         if ($smarty->security{
  59.             require_once(SMARTY_DIR 'core' DIRECTORY_SEPARATOR 'core.is_trusted.php');
  60.             if (!smarty_core_is_trusted($params$smarty)) {
  61.                 $smarty->$_error_funcc('(secure mode) ' $params['resource_type'':' $params['resource_name'' is not trusted');
  62.                 return false;
  63.             }
  64.         }
  65.     else {
  66.         $smarty->$_error_funcc($params['resource_type'':' $params['resource_name'' is not readable');
  67.         return false;
  68.     }
  69.  
  70.     if ($params['resource_type'== 'file'{
  71.         $params['php_resource'$params['resource_name'];
  72.     else {
  73.         $params['php_resource'$_template_source;
  74.     }
  75.     return true;
  76. }
  77.  
  78. /* vim: set expandtab: */
  79.  
  80. ?>

Documentation generated on Tue, 24 Oct 2006 09:21:54 -0500 by phpDocumentor 1.3.1