From 52b077a48c743ba4d08ac00520a0bf1ef6deef5f Mon Sep 17 00:00:00 2001 From: Thomas Lange Date: Fri, 24 Feb 2017 21:27:59 +0100 Subject: Initial commit. --- core/namespace/Template/Exception.php | 5 +++ core/namespace/Template/Factory.php | 18 +++++++++ core/namespace/Template/Template.php | 72 +++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 core/namespace/Template/Exception.php create mode 100644 core/namespace/Template/Factory.php create mode 100644 core/namespace/Template/Template.php (limited to 'core/namespace/Template') diff --git a/core/namespace/Template/Exception.php b/core/namespace/Template/Exception.php new file mode 100644 index 0000000..52c522e --- /dev/null +++ b/core/namespace/Template/Exception.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/core/namespace/Template/Factory.php b/core/namespace/Template/Factory.php new file mode 100644 index 0000000..a90c61e --- /dev/null +++ b/core/namespace/Template/Factory.php @@ -0,0 +1,18 @@ +set('Language', \Application::getLanguage()); + $Template->set('BLOGMETA', [ + 'NAME' => \Application::get('BLOGMETA.NAME'), + 'DESC' => \Application::get('BLOGMETA.DESC'), + 'MAIL' => \Application::get('BLOGMETA.MAIL'), + 'LANG' => \Application::get('BLOGMETA.LANG'), + ]); + + return $Template; + } +} +?> \ No newline at end of file diff --git a/core/namespace/Template/Template.php b/core/namespace/Template/Template.php new file mode 100644 index 0000000..0c68f92 --- /dev/null +++ b/core/namespace/Template/Template.php @@ -0,0 +1,72 @@ +filename = $filename; + + if(!file_exists($filename)) { + throw new Exception("Template {$filename} does not exists."); + } + } + + #=============================================================================== + # Set value to array path + #=============================================================================== + public function set($name, $value) { + if(!is_array($name)) { + return $this->parameters[$name] = $value; + } + + $current = &$this->parameters; + + foreach($name as $path) { + if(!isset($current[$path])) { + $current[$path] = []; + } + $current = &$current[$path]; + } + + return $current = $value; + } + + #=============================================================================== + # Add value as item to array path + #=============================================================================== + public function add($paths, $value) { + if(!is_array($paths)) { + return $this->parameters[$paths][] = $value; + } + + $current = &$this->parameters; + + foreach($paths as $path) { + if(!isset($current[$path])) { + $current[$path] = []; + } + $current = &$current[$path]; + } + + return $current[] = $value; + } + + #=============================================================================== + # Return parsed template content + #=============================================================================== + public function __toString() { + foreach($this->parameters as $name => $value) { + ${$name} = $value; + } + + ob_start(); + require $this->filename; + return ob_get_clean(); + } +} +?> \ No newline at end of file -- cgit v1.2.3