summaryrefslogtreecommitdiff
path: root/core/template.php
diff options
context:
space:
mode:
authorFrédéric Guillot <fguillot@users.noreply.github.com>2014-03-09 23:21:23 -0400
committerFrédéric Guillot <fguillot@users.noreply.github.com>2014-03-09 23:21:23 -0400
commit7749b8ed569f6d27b0bb2ed4c2040e8b61ed4422 (patch)
treeee101992e87d740bdf0362e35ea040c866986f5a /core/template.php
parent7bd4697dfca41a21f5857f83d6b29108fafb9a1e (diff)
Automatic actions
Diffstat (limited to 'core/template.php')
-rw-r--r--core/template.php40
1 files changed, 40 insertions, 0 deletions
diff --git a/core/template.php b/core/template.php
new file mode 100644
index 00000000..ad31ffb7
--- /dev/null
+++ b/core/template.php
@@ -0,0 +1,40 @@
+<?php
+
+namespace Core;
+
+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)));
+ }
+}