summaryrefslogtreecommitdiff
path: root/lib/template.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/template.php')
-rw-r--r--lib/template.php38
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/template.php b/lib/template.php
new file mode 100644
index 00000000..09f9aa29
--- /dev/null
+++ b/lib/template.php
@@ -0,0 +1,38 @@
+<?php
+
+class Template
+{
+ const PATH = 'templates/';
+
+ // Template\load('template_name', ['bla' => 'value']);
+ public function load()
+ {
+ if (func_num_args() < 1 || func_num_args() > 2) {
+ die('Invalid template arguments');
+ }
+
+ if (! file_exists(self::PATH.func_get_arg(0).'.php')) {
+ die('Unable to load the template: "'.func_get_arg(0).'"');
+ }
+
+ if (func_num_args() === 2) {
+
+ if (! is_array(func_get_arg(1))) {
+ die('Template variables must be an array');
+ }
+
+ extract(func_get_arg(1));
+ }
+
+ ob_start();
+
+ include self::PATH.func_get_arg(0).'.php';
+
+ return ob_get_clean();
+ }
+
+ public function layout($template_name, array $template_args = array(), $layout_name = 'layout')
+ {
+ return $this->load($layout_name, $template_args + array('content_for_layout' => $this->load($template_name, $template_args)));
+ }
+}