Blame view

application/_libs/Smarty-3.0.9/libs/sysplugins/smarty_internal_resource_file.php 3.76 KB
8d65d0ce   andryeyev   init
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
  <?php
  
  /**
   * Smarty Internal Plugin Resource File
   * 
   * Implements the file system as resource for Smarty templates
   * 
   * @package Smarty
   * @subpackage TemplateResources
   * @author Uwe Tews 
   */
  
  /** 
   * Smarty Internal Plugin Resource File
   */
  class Smarty_Internal_Resource_File {
      public function __construct($smarty)
      {
          $this->smarty = $smarty;
      } 
      // classes used for compiling Smarty templates from file resource
      public $compiler_class = 'Smarty_Internal_SmartyTemplateCompiler';
      public $template_lexer_class = 'Smarty_Internal_Templatelexer';
      public $template_parser_class = 'Smarty_Internal_Templateparser'; 
      // properties
      public $usesCompiler = true;
      public $isEvaluated = false;
  
      /**
       * Return flag if template source is existing
       * 
       * @return boolean true
       */
      public function isExisting($template)
      {
          if ($template->getTemplateFilepath() === false) {
              return false;
          } else {
              return true;
          } 
      } 
  
      /**
       * Get filepath to template source
       * 
       * @param object $_template template object
       * @return string filepath to template source file
       */
      public function getTemplateFilepath($_template)
      {
          $_filepath = $_template->buildTemplateFilepath ();
  
          if ($_filepath !== false) {
              if (is_object($_template->smarty->security_policy)) {
                  $_template->smarty->security_policy->isTrustedResourceDir($_filepath);
              } 
          } 
          $_template->templateUid = sha1($_filepath);
          return $_filepath;
      } 
  
      /**
       * Get timestamp to template source
       * 
       * @param object $_template template object
       * @return integer timestamp of template source file
       */
      public function getTemplateTimestamp($_template)
      {
          return filemtime($_template->getTemplateFilepath());
      } 
  
      /**
       * Read template source from file
       * 
       * @param object $_template template object
       * @return string content of template source file
       */
      public function getTemplateSource($_template)
      { 
          // read template file
          if (file_exists($_tfp = $_template->getTemplateFilepath())) {
              $_template->template_source = file_get_contents($_tfp);
              return true;
          } else {
              return false;
          } 
      } 
  
      /**
       * Get filepath to compiled template
       * 
       * @param object $_template template object
       * @return string return path to compiled template
       */
      public function getCompiledFilepath($_template)
      {
          $_compile_id = isset($_template->compile_id) ? preg_replace('![^\w\|]+!', '_', $_template->compile_id) : null;
          // calculate Uid if not already done
          if ($_template->templateUid == '') {
              $_template->getTemplateFilepath();
          } 
          $_filepath = $_template->templateUid; 
          // if use_sub_dirs, break file into directories
          if ($_template->smarty->use_sub_dirs) {
              $_filepath = substr($_filepath, 0, 2) . DS
               . substr($_filepath, 2, 2) . DS
               . substr($_filepath, 4, 2) . DS
               . $_filepath;
          } 
          $_compile_dir_sep = $_template->smarty->use_sub_dirs ? DS : '^';
          if (isset($_compile_id)) {
              $_filepath = $_compile_id . $_compile_dir_sep . $_filepath;
          } 
          if ($_template->caching) {
              $_cache = '.cache';
          } else {
              $_cache = '';
          } 
          $_compile_dir = $_template->smarty->compile_dir;
          if (strpos('/\\', substr($_compile_dir, -1)) === false) {
              $_compile_dir .= DS;
          } 
          return $_compile_dir . $_filepath . '.' . $_template->resource_type . '.' . basename($_template->resource_name) . $_cache . '.php';
      } 
  } 
  
  ?>