[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 * Smarty Internal Plugin Resource PHP 5 * 6 * Implements the file system as resource for PHP templates 7 * 8 * @package Smarty 9 * @subpackage TemplateResources 10 * @author Uwe Tews 11 * @author Rodney Rehm 12 */ 13 class Smarty_Internal_Resource_PHP extends Smarty_Resource_Uncompiled { 14 /** 15 * container for short_open_tag directive's value before executing PHP templates 16 * @var string 17 */ 18 protected $short_open_tag; 19 20 /** 21 * Create a new PHP Resource 22 * 23 */ 24 public function __construct() 25 { 26 $this->short_open_tag = ini_get( 'short_open_tag' ); 27 } 28 29 /** 30 * populate Source Object with meta data from Resource 31 * 32 * @param Smarty_Template_Source $source source object 33 * @param Smarty_Internal_Template $_template template object 34 * @return void 35 */ 36 public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template=null) 37 { 38 $source->filepath = $this->buildFilepath($source, $_template); 39 40 if ($source->filepath !== false) { 41 if (is_object($source->smarty->security_policy)) { 42 $source->smarty->security_policy->isTrustedResourceDir($source->filepath); 43 } 44 45 $source->uid = sha1($source->filepath); 46 if ($source->smarty->compile_check) { 47 $source->timestamp = @filemtime($source->filepath); 48 $source->exists = !!$source->timestamp; 49 } 50 } 51 } 52 53 /** 54 * populate Source Object with timestamp and exists from Resource 55 * 56 * @param Smarty_Template_Source $source source object 57 * @return void 58 */ 59 public function populateTimestamp(Smarty_Template_Source $source) 60 { 61 $source->timestamp = @filemtime($source->filepath); 62 $source->exists = !!$source->timestamp; 63 } 64 65 /** 66 * Load template's source from file into current template object 67 * 68 * @param Smarty_Template_Source $source source object 69 * @return string template source 70 * @throws SmartyException if source cannot be loaded 71 */ 72 public function getContent(Smarty_Template_Source $source) 73 { 74 if ($source->timestamp) { 75 return ''; 76 } 77 throw new SmartyException("Unable to read template {$source->type} '{$source->name}'"); 78 } 79 80 /** 81 * Render and output the template (without using the compiler) 82 * 83 * @param Smarty_Template_Source $source source object 84 * @param Smarty_Internal_Template $_template template object 85 * @return void 86 * @throws SmartyException if template cannot be loaded or allow_php_templates is disabled 87 */ 88 public function renderUncompiled(Smarty_Template_Source $source, Smarty_Internal_Template $_template) 89 { 90 $_smarty_template = $_template; 91 92 if (!$source->smarty->allow_php_templates) { 93 throw new SmartyException("PHP templates are disabled"); 94 } 95 if (!$source->exists) { 96 if ($_template->parent instanceof Smarty_Internal_Template) { 97 $parent_resource = " in '{$_template->parent->template_resource}'"; 98 } else { 99 $parent_resource = ''; 100 } 101 throw new SmartyException("Unable to load template {$source->type} '{$source->name}'{$parent_resource}"); 102 } 103 104 // prepare variables 105 extract($_template->getTemplateVars()); 106 107 // include PHP template with short open tags enabled 108 ini_set( 'short_open_tag', '1' ); 109 include($source->filepath); 110 ini_set( 'short_open_tag', $this->short_open_tag ); 111 } 112 } 113 114 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |