Initial Kohana install
[speedfreak] / Server / system / controllers / template.php
diff --git a/Server/system/controllers/template.php b/Server/system/controllers/template.php
new file mode 100644 (file)
index 0000000..34d1a22
--- /dev/null
@@ -0,0 +1,54 @@
+<?php defined('SYSPATH') OR die('No direct access allowed.');
+/**
+ * Allows a template to be automatically loaded and displayed. Display can be
+ * dynamically turned off in the controller methods, and the template file
+ * can be overloaded.
+ *
+ * To use it, declare your controller to extend this class:
+ * `class Your_Controller extends Template_Controller`
+ *
+ * $Id: template.php 3769 2008-12-15 00:48:56Z zombor $
+ *
+ * @package    Core
+ * @author     Kohana Team
+ * @copyright  (c) 2007-2008 Kohana Team
+ * @license    http://kohanaphp.com/license.html
+ */
+abstract class Template_Controller extends Controller {
+
+       // Template view name
+       public $template = 'template';
+
+       // Default to do auto-rendering
+       public $auto_render = TRUE;
+
+       /**
+        * Template loading and setup routine.
+        */
+       public function __construct()
+       {
+               parent::__construct();
+
+               // Load the template
+               $this->template = new View($this->template);
+
+               if ($this->auto_render == TRUE)
+               {
+                       // Render the template immediately after the controller method
+                       Event::add('system.post_controller', array($this, '_render'));
+               }
+       }
+
+       /**
+        * Render the loaded template.
+        */
+       public function _render()
+       {
+               if ($this->auto_render == TRUE)
+               {
+                       // Render the template when the class is destroyed
+                       $this->template->render(TRUE);
+               }
+       }
+
+} // End Template_Controller
\ No newline at end of file