summaryrefslogtreecommitdiff
path: root/lib/smarty3/sysplugins/smarty_internal_resource_php.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/smarty3/sysplugins/smarty_internal_resource_php.php')
-rw-r--r--lib/smarty3/sysplugins/smarty_internal_resource_php.php81
1 files changed, 45 insertions, 36 deletions
diff --git a/lib/smarty3/sysplugins/smarty_internal_resource_php.php b/lib/smarty3/sysplugins/smarty_internal_resource_php.php
index 3cff781..9d98ae1 100644
--- a/lib/smarty3/sysplugins/smarty_internal_resource_php.php
+++ b/lib/smarty3/sysplugins/smarty_internal_resource_php.php
@@ -19,31 +19,31 @@ class Smarty_Internal_Resource_Php extends Smarty_Internal_Resource_File
public $uncompiled = true;
/**
- * container for short_open_tag directive's value before executing PHP templates
+ * Resource does implement populateCompiledFilepath() method
*
- * @var string
+ * @var bool
*/
- protected $short_open_tag;
+ public $hasCompiledHandler = true;
/**
- * Resource does implement populateCompiledFilepath() method
+ * container for short_open_tag directive's value before executing PHP templates
*
- * @var bool
+ * @var string
*/
- public $hasCompiledHandler = true;
+ protected $short_open_tag;
/**
* Create a new PHP Resource
*/
public function __construct()
{
- $this->short_open_tag = ini_get('short_open_tag');
+ $this->short_open_tag = function_exists('ini_get') ? ini_get('short_open_tag') : 1;
}
/**
* Load template's source from file into current template object
*
- * @param Smarty_Template_Source $source source object
+ * @param Smarty_Template_Source $source source object
*
* @return string template source
* @throws SmartyException if source cannot be loaded
@@ -57,10 +57,29 @@ class Smarty_Internal_Resource_Php extends Smarty_Internal_Resource_File
}
/**
+ * populate compiled object with compiled filepath
+ *
+ * @param Smarty_Template_Compiled $compiled compiled object
+ * @param Smarty_Internal_Template $_template template object (is ignored)
+ */
+ public function populateCompiledFilepath(Smarty_Template_Compiled $compiled, Smarty_Internal_Template $_template)
+ {
+ $compiled->filepath = $_template->source->filepath;
+ $compiled->timestamp = $_template->source->timestamp;
+ $compiled->exists = $_template->source->exists;
+ $compiled->file_dependency[ $_template->source->uid ] =
+ array(
+ $compiled->filepath,
+ $compiled->timestamp,
+ $_template->source->type,
+ );
+ }
+
+ /**
* Render and output the template (without using the compiler)
*
- * @param Smarty_Template_Source $source source object
- * @param Smarty_Internal_Template $_template template object
+ * @param Smarty_Template_Source $source source object
+ * @param Smarty_Internal_Template $_template template object
*
* @return void
* @throws SmartyException if template cannot be loaded or allow_php_templates is disabled
@@ -68,40 +87,30 @@ class Smarty_Internal_Resource_Php extends Smarty_Internal_Resource_File
public function renderUncompiled(Smarty_Template_Source $source, Smarty_Internal_Template $_template)
{
if (!$source->smarty->allow_php_templates) {
- throw new SmartyException("PHP templates are disabled");
+ throw new SmartyException('PHP templates are disabled');
}
if (!$source->exists) {
- $parentIsTpl = isset($this->parent) && $this->parent->_objType == 2;
- throw new SmartyException("Unable to load template {$source->type} '{$source->name}'" .
- ($parentIsTpl ? " in '{$this->parent->template_resource}'" : ''));
+ throw new SmartyException(
+ "Unable to load template '{$source->type}:{$source->name}'" .
+ ($_template->_isSubTpl() ? " in '{$_template->parent->template_resource}'" : '')
+ );
}
-
// prepare variables
extract($_template->getTemplateVars());
-
// include PHP template with short open tags enabled
- ini_set('short_open_tag', '1');
- /** @var Smarty_Internal_Template $_smarty_template
+ if (function_exists('ini_set')) {
+ ini_set('short_open_tag', '1');
+ }
+ /**
+ *
+ *
+ * @var Smarty_Internal_Template $_smarty_template
* used in included file
*/
$_smarty_template = $_template;
- include($source->filepath);
- ini_set('short_open_tag', $this->short_open_tag);
- }
-
- /**
- * populate compiled object with compiled filepath
- *
- * @param Smarty_Template_Compiled $compiled compiled object
- * @param Smarty_Internal_Template $_template template object (is ignored)
- */
- public function populateCompiledFilepath(Smarty_Template_Compiled $compiled, Smarty_Internal_Template $_template)
- {
- $compiled->filepath = $_template->source->filepath;
- $compiled->timestamp = $_template->source->timestamp;
- $compiled->exists = $_template->source->exists;
- $compiled->file_dependency[ $_template->source->uid ] =
- array($compiled->filepath, $compiled->timestamp,
- $_template->source->type,);
+ include $source->filepath;
+ if (function_exists('ini_set')) {
+ ini_set('short_open_tag', $this->short_open_tag);
+ }
}
}