]> git.mxchange.org Git - friendica.git/blobdiff - vendor/smarty/smarty/demo/plugins/resource.extendsall.php
Add Smarty to Composer
[friendica.git] / vendor / smarty / smarty / demo / plugins / resource.extendsall.php
diff --git a/vendor/smarty/smarty/demo/plugins/resource.extendsall.php b/vendor/smarty/smarty/demo/plugins/resource.extendsall.php
new file mode 100644 (file)
index 0000000..a5ee432
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+
+/**
+ * Extends All Resource
+ * Resource Implementation modifying the extends-Resource to walk
+ * through the template_dirs and inherit all templates of the same name
+ *
+ * @package Resource-examples
+ * @author  Rodney Rehm
+ */
+class Smarty_Resource_Extendsall extends Smarty_Internal_Resource_Extends
+{
+    /**
+     * 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)
+    {
+        $uid = '';
+        $sources = array();
+        $timestamp = 0;
+        foreach ($source->smarty->getTemplateDir() as $key => $directory) {
+            try {
+                $s = Smarty_Resource::source(null, $source->smarty, 'file:' . '[' . $key . ']' . $source->name);
+                if (!$s->exists) {
+                    continue;
+                }
+                $sources[ $s->uid ] = $s;
+                $uid .= $s->filepath;
+                $timestamp = $s->timestamp > $timestamp ? $s->timestamp : $timestamp;
+            }
+            catch (SmartyException $e) {
+            }
+        }
+        if (!$sources) {
+            $source->exists = false;
+            return;
+        }
+
+        $sources = array_reverse($sources, true);
+        reset($sources);
+        $s = current($sources);
+        $source->components = $sources;
+        $source->filepath = $s->filepath;
+        $source->uid = sha1($uid . $source->smarty->_joined_template_dir);
+        $source->exists = true;
+        $source->timestamp = $timestamp;
+    }
+
+    /*
+     * Disable timestamp checks for extendsall resource.
+     * The individual source components will be checked.
+     *
+     * @return bool
+     */
+    public function checkTimestamps()
+    {
+        return false;
+    }
+
+}