OSDN Git Service

Smartyを3にバージョンアップ
[epgrec/epgrec.git] / Smarty / sysplugins / smarty_internal_nocache_insert.php
diff --git a/Smarty/sysplugins/smarty_internal_nocache_insert.php b/Smarty/sysplugins/smarty_internal_nocache_insert.php
new file mode 100644 (file)
index 0000000..faae49a
--- /dev/null
@@ -0,0 +1,53 @@
+<?php\r
+/**\r
+ * Smarty Internal Plugin Nocache Insert\r
+ *\r
+ * Compiles the {insert} tag into the cache file\r
+ *\r
+ * @package Smarty\r
+ * @subpackage Compiler\r
+ * @author Uwe Tews\r
+ */\r
+\r
+/**\r
+ * Smarty Internal Plugin Compile Insert Class\r
+ *\r
+ * @package Smarty\r
+ * @subpackage Compiler\r
+ */\r
+class Smarty_Internal_Nocache_Insert {\r
+\r
+    /**\r
+     * Compiles code for the {insert} tag into cache file\r
+     *\r
+     * @param string                   $_function insert function name\r
+     * @param array                    $_attr     array with parameter\r
+     * @param Smarty_Internal_Template $_template template object\r
+     * @param string                   $_script   script name to load or 'null'\r
+     * @param string                   $_assign   optional variable name\r
+     * @return string compiled code\r
+     */\r
+    public static function compile($_function, $_attr, $_template, $_script, $_assign = null)\r
+    {\r
+        $_output = '<?php ';\r
+        if ($_script != 'null') {\r
+            // script which must be included\r
+            // code for script file loading\r
+            $_output .= "require_once '{$_script}';";\r
+        }\r
+        // call insert\r
+        if (isset($_assign)) {\r
+            $_output .= "\$_smarty_tpl->assign('{$_assign}' , {$_function} (" . var_export($_attr, true) . ",\$_smarty_tpl), true);?>";\r
+        } else {\r
+            $_output .= "echo {$_function}(" . var_export($_attr, true) . ",\$_smarty_tpl);?>";\r
+        }\r
+        $_tpl = $_template;\r
+        while ($_tpl->parent instanceof Smarty_Internal_Template) {\r
+            $_tpl = $_tpl->parent;\r
+        }\r
+        return "/*%%SmartyNocache:{$_tpl->properties['nocache_hash']}%%*/" . $_output . "/*/%%SmartyNocache:{$_tpl->properties['nocache_hash']}%%*/";\r
+    }\r
+\r
+}\r
+\r
+?>\r