summaryrefslogtreecommitdiff
path: root/lib/smarty3/sysplugins/smarty_internal_resource_eval.php
diff options
context:
space:
mode:
authoremkael <emkael@tlen.pl>2016-12-27 14:47:01 +0100
committeremkael <emkael@tlen.pl>2016-12-27 14:47:01 +0100
commit7085a0c2f7104a56a7e946c43ba0b5736be5f4e7 (patch)
tree5518c72e3486f41c559be30e514be1917bf5724f /lib/smarty3/sysplugins/smarty_internal_resource_eval.php
parent1a3d783d8957a6adbe49b1765b326805477e7856 (diff)
* smarty bundled
Diffstat (limited to 'lib/smarty3/sysplugins/smarty_internal_resource_eval.php')
-rw-r--r--lib/smarty3/sysplugins/smarty_internal_resource_eval.php95
1 files changed, 95 insertions, 0 deletions
diff --git a/lib/smarty3/sysplugins/smarty_internal_resource_eval.php b/lib/smarty3/sysplugins/smarty_internal_resource_eval.php
new file mode 100644
index 0000000..d3088bd
--- /dev/null
+++ b/lib/smarty3/sysplugins/smarty_internal_resource_eval.php
@@ -0,0 +1,95 @@
+<?php
+/**
+ * Smarty Internal Plugin Resource Eval
+ *
+ * @package Smarty
+ * @subpackage TemplateResources
+ * @author Uwe Tews
+ * @author Rodney Rehm
+ */
+
+/**
+ * Smarty Internal Plugin Resource Eval
+ * Implements the strings as resource for Smarty template
+ * {@internal unlike string-resources the compiled state of eval-resources is NOT saved for subsequent access}}
+ *
+ * @package Smarty
+ * @subpackage TemplateResources
+ */
+class Smarty_Internal_Resource_Eval extends Smarty_Resource_Recompiled
+{
+ /**
+ * populate Source Object with meta data from Resource
+ *
+ * @param Smarty_Template_Source $source source object
+ * @param Smarty_Internal_Template $_template template object
+ *
+ * @return void
+ */
+ public function populate(Smarty_Template_Source $source, Smarty_Internal_Template $_template = null)
+ {
+ $source->uid = $source->filepath = sha1($source->name);
+ $source->timestamp = $source->exists = true;
+ }
+
+ /**
+ * Load template's source from $resource_name into current template object
+ *
+ * @uses decode() to decode base64 and urlencoded template_resources
+ *
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return string template source
+ */
+ public function getContent(Smarty_Template_Source $source)
+ {
+ return $this->decode($source->name);
+ }
+
+ /**
+ * decode base64 and urlencode
+ *
+ * @param string $string template_resource to decode
+ *
+ * @return string decoded template_resource
+ */
+ protected function decode($string)
+ {
+ // decode if specified
+ if (($pos = strpos($string, ':')) !== false) {
+ if (!strncmp($string, 'base64', 6)) {
+ return base64_decode(substr($string, 7));
+ } elseif (!strncmp($string, 'urlencode', 9)) {
+ return urldecode(substr($string, 10));
+ }
+ }
+
+ return $string;
+ }
+
+ /**
+ * modify resource_name according to resource handlers specifications
+ *
+ * @param Smarty $smarty Smarty instance
+ * @param string $resource_name resource_name to make unique
+ * @param boolean $isConfig flag for config resource
+ *
+ * @return string unique resource name
+ */
+ public function buildUniqueResourceName(Smarty $smarty, $resource_name, $isConfig = false)
+ {
+ return get_class($this) . '#' . $this->decode($resource_name);
+ }
+
+ /**
+ * Determine basename for compiled filename
+ *
+ * @param Smarty_Template_Source $source source object
+ *
+ * @return string resource's basename
+ */
+ public function getBasename(Smarty_Template_Source $source)
+ {
+ return '';
+ }
+}