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

Source for file core.load_resource_plugin.php

Documentation is available at core.load_resource_plugin.php

  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[1true;
  29.             foreach ($_plugin[0as $_plugin_func{
  30.                 if (!is_callable($_plugin_func)) {
  31.                     $_plugin[1false;
  32.                     break;
  33.                 }
  34.             }
  35.         }
  36.  
  37.         if (!$_plugin[1]{
  38.             $smarty->_trigger_fatal_error("[plugin] resource '" $params['type'"' is not implemented"nullnull__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"nullnull__FILE____LINE__);
  62.                 return;
  63.             else {
  64.                 $_resource_funcs[$_plugin_func;
  65.             }
  66.         }
  67.  
  68.         $smarty->_plugins['resource'][$params['type']] array($_resource_funcstrue);
  69.     }
  70. }
  71.  
  72. /* vim: set expandtab: */
  73.  
  74. ?>

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