[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/libraries/Smarty/libs/sysplugins/ -> smarty_internal_resource_file.php (source)

   1  <?php
   2  /**
   3   * Smarty Internal Plugin Resource File
   4   *
   5   * @package Smarty
   6   * @subpackage TemplateResources
   7   * @author Uwe Tews
   8   * @author Rodney Rehm
   9   */
  10  
  11  /**
  12   * Smarty Internal Plugin Resource File
  13   *
  14   * Implements the file system as resource for Smarty templates
  15   *
  16   * @package Smarty
  17   * @subpackage TemplateResources
  18   */
  19  class Smarty_Internal_Resource_File extends Smarty_Resource {
  20  
  21      /**
  22       * populate Source Object with meta data from Resource
  23       *
  24       * @param Smarty_Template_Source   $source    source object
  25       * @param Smarty_Internal_Template $_template template object
  26       */
  27      public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null)
  28      {
  29          $source->filepath = $this->buildFilepath($source, $_template);
  30  
  31          if ($source->filepath !== false) {
  32              if (is_object($source->smarty->security_policy)) {
  33                  $source->smarty->security_policy->isTrustedResourceDir($source->filepath);
  34              }
  35  
  36              $source->uid = sha1($source->filepath);
  37              if ($source->smarty->compile_check && !isset($source->timestamp)) {
  38                  $source->timestamp = @filemtime($source->filepath);
  39                  $source->exists = !!$source->timestamp;
  40              }
  41          }
  42      }
  43  
  44      /**
  45       * populate Source Object with timestamp and exists from Resource
  46       *
  47       * @param Smarty_Template_Source $source source object
  48       */
  49      public function populateTimestamp(Smarty_Template_Source $source)
  50      {
  51          $source->timestamp = @filemtime($source->filepath);
  52          $source->exists = !!$source->timestamp;
  53      }
  54  
  55      /**
  56       * Load template's source from file into current template object
  57       *
  58       * @param Smarty_Template_Source $source source object
  59       * @return string template source
  60       * @throws SmartyException if source cannot be loaded
  61       */
  62      public function getContent(Smarty_Template_Source $source)
  63      {
  64          if ($source->timestamp) {
  65              return file_get_contents($source->filepath);
  66          }
  67          if ($source instanceof Smarty_Config_Source) {
  68              throw new SmartyException("Unable to read config {$source->type} '{$source->name}'");
  69          }
  70          throw new SmartyException("Unable to read template {$source->type} '{$source->name}'");
  71      }
  72  
  73      /**
  74       * Determine basename for compiled filename
  75       *
  76       * @param Smarty_Template_Source $source source object
  77       * @return string resource's basename
  78       */
  79      public function getBasename(Smarty_Template_Source $source)
  80      {
  81          $_file = $source->name;
  82          if (($_pos = strpos($_file, ']')) !== false) {
  83              $_file = substr($_file, $_pos + 1);
  84          }
  85          return basename($_file);
  86      }
  87  
  88  }
  89  
  90  ?>


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1