summaryrefslogtreecommitdiff
path: root/lib/smarty-3.1.33/sysplugins/smarty_internal_resource_php.php
diff options
context:
space:
mode:
authorNathan Kinkade <kinkade@measurementlab.net>2019-08-27 13:05:48 -0600
committerNathan Kinkade <kinkade@measurementlab.net>2019-08-27 13:05:48 -0600
commita6c179d56973e382205c8583568d635c37f814c8 (patch)
treed144141439adac21f0c1bc2fc2caa85fd8135039 /lib/smarty-3.1.33/sysplugins/smarty_internal_resource_php.php
parent34972193073432105b8659407af5a914b3686f81 (diff)
Updates smarty to v3.1.33.
Diffstat (limited to 'lib/smarty-3.1.33/sysplugins/smarty_internal_resource_php.php')
-rw-r--r--lib/smarty-3.1.33/sysplugins/smarty_internal_resource_php.php116
1 files changed, 116 insertions, 0 deletions
diff --git a/lib/smarty-3.1.33/sysplugins/smarty_internal_resource_php.php b/lib/smarty-3.1.33/sysplugins/smarty_internal_resource_php.php
new file mode 100644
index 0000000..9d98ae1
--- /dev/null
+++ b/lib/smarty-3.1.33/sysplugins/smarty_internal_resource_php.php
@@ -0,0 +1,116 @@
+<?php
+
+/**
+ * Smarty Internal Plugin Resource PHP
+ * Implements the file system as resource for PHP templates
+ *
+ * @package Smarty
+ * @subpackage TemplateResources
+ * @author Uwe Tews
+ * @author Rodney Rehm
+ */
+class Smarty_Internal_Resource_Php extends Smarty_Internal_Resource_File
+{
+ /**
+ * Flag that it's an uncompiled resource
+ *
+ * @var bool
+ */
+ public $uncompiled = true;
+
+ /**
+ * Resource does implement populateCompiledFilepath() method
+ *
+ * @var bool
+ */
+ public $hasCompiledHandler = true;
+
+ /**
+ * container for short_open_tag directive's value before executing PHP templates
+ *
+ * @var string
+ */
+ protected $short_open_tag;
+
+ /**
+ * Create a new PHP Resource
+ */
+ public function __construct()
+ {
+ $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
+ *
+ * @return string template source
+ * @throws SmartyException if source cannot be loaded
+ */
+ public function getContent(Smarty_Template_Source $source)
+ {
+ if ($source->exists) {
+ return '';
+ }
+ throw new SmartyException("Unable to read template {$source->type} '{$source->name}'");
+ }
+
+ /**
+ * 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
+ *
+ * @return void
+ * @throws SmartyException if template cannot be loaded or allow_php_templates is disabled
+ */
+ public function renderUncompiled(Smarty_Template_Source $source, Smarty_Internal_Template $_template)
+ {
+ if (!$source->smarty->allow_php_templates) {
+ throw new SmartyException('PHP templates are disabled');
+ }
+ if (!$source->exists) {
+ 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
+ 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;
+ if (function_exists('ini_set')) {
+ ini_set('short_open_tag', $this->short_open_tag);
+ }
+ }
+}