summaryrefslogtreecommitdiff
path: root/lib/smarty/sysplugins/smarty_internal_undefined.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/smarty/sysplugins/smarty_internal_undefined.php')
-rw-r--r--lib/smarty/sysplugins/smarty_internal_undefined.php67
1 files changed, 67 insertions, 0 deletions
diff --git a/lib/smarty/sysplugins/smarty_internal_undefined.php b/lib/smarty/sysplugins/smarty_internal_undefined.php
new file mode 100644
index 0000000..7df0acc
--- /dev/null
+++ b/lib/smarty/sysplugins/smarty_internal_undefined.php
@@ -0,0 +1,67 @@
+<?php
+
+/**
+ * Smarty Internal Undefined
+ *
+ * Class to handle undefined method calls or calls to obsolete runtime extensions
+ *
+ * @package Smarty
+ * @subpackage PluginsInternal
+ * @author Uwe Tews
+ */
+class Smarty_Internal_Undefined
+{
+ /**
+ * Name of undefined extension class
+ *
+ * @var string|null
+ */
+ public $class = null;
+
+ /**
+ * Smarty_Internal_Undefined constructor.
+ *
+ * @param null|string $class name of undefined extension class
+ */
+ public function __construct($class = null)
+ {
+ $this->class = $class;
+ }
+
+ /**
+ * Wrapper for obsolete class Smarty_Internal_Runtime_ValidateCompiled
+ *
+ * @param \Smarty_Internal_Template $tpl
+ * @param array $properties special template properties
+ * @param bool $cache flag if called from cache file
+ *
+ * @return bool false
+ */
+ public function decodeProperties(Smarty_Internal_Template $tpl, $properties, $cache = false)
+ {
+ if ($cache) {
+ $tpl->cached->valid = false;
+ } else {
+ $tpl->mustCompile = true;
+ }
+ return false;
+ }
+
+ /**
+ * Call error handler for undefined method
+ *
+ * @param string $name unknown method-name
+ * @param array $args argument array
+ *
+ * @return mixed
+ * @throws SmartyException
+ */
+ public function __call($name, $args)
+ {
+ if (isset($this->class)) {
+ throw new SmartyException("undefined extension class '{$this->class}'");
+ } else {
+ throw new SmartyException(get_class($args[ 0 ]) . "->{$name}() undefined method");
+ }
+ }
+}