2011-01-17 05:33:55 +00:00
|
|
|
<?php defined('SYSPATH') or die('No direct access allowed.');
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This class is the base used for common static methods that are used
|
|
|
|
* for rendering.
|
|
|
|
*
|
|
|
|
* @package lnApp
|
|
|
|
* @subpackage Page
|
|
|
|
* @category Abstract/Helpers
|
|
|
|
* @author Deon George
|
|
|
|
* @copyright (c) 2010 Deon George
|
|
|
|
* @license http://dev.leenooks.net/license.html
|
|
|
|
*/
|
|
|
|
abstract class lnApp_HTMLRender {
|
|
|
|
protected static $_media_path = 'default/media';
|
|
|
|
protected static $_required_keys = array();
|
|
|
|
protected static $_unique_vals = array();
|
|
|
|
|
|
|
|
public function __construct() {
|
|
|
|
if (! isset(static::$_data))
|
|
|
|
throw new Kohana_Exception(':class is missing important static variables',array(':class'=>get_called_class()));
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Add an item to be rendered
|
|
|
|
*
|
|
|
|
* @param array Item to be added
|
|
|
|
*/
|
|
|
|
public static function add($item,$prepend=FALSE) {
|
|
|
|
foreach (static::$_required_keys as $key)
|
|
|
|
if (! isset($item[$key]))
|
|
|
|
throw new Kohana_Exception('Missing key :key for image',array(':key'=>$key));
|
|
|
|
|
|
|
|
// Check for unique keys
|
|
|
|
if (static::$_unique_vals)
|
|
|
|
foreach (static::$_unique_vals as $v=>$u)
|
|
|
|
foreach (static::$_data as $d)
|
|
|
|
if (isset($d[$u]) && $d['data'] == $item['data'])
|
|
|
|
return;
|
|
|
|
|
|
|
|
if ($prepend)
|
|
|
|
array_unshift(static::$_data,$item);
|
|
|
|
else
|
|
|
|
array_push(static::$_data,$item);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the space used between rendering output
|
|
|
|
*/
|
|
|
|
public static function setSpacer($spacer) {
|
|
|
|
static::$_spacer = $spacer;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the Kohana Media Path, used to determine where to find additional
|
|
|
|
* HTML content required for rendering.
|
|
|
|
*/
|
|
|
|
public static function setMediaPath($path) {
|
|
|
|
static::$_media_path = $path;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Factory instance method must be declared by the child class
|
|
|
|
*/
|
|
|
|
public static function factory() {
|
|
|
|
throw new Kohana_Exception(':class is calling :method, when it should have its own method',
|
|
|
|
array(':class'=>get_called_class(),':method'=>__METHOD__));
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Return the HTML to render the header images
|
|
|
|
*/
|
|
|
|
public function __toString() {
|
|
|
|
try {
|
|
|
|
return static::render();
|
|
|
|
}
|
|
|
|
|
|
|
|
// Display the exception message
|
|
|
|
catch (Exception $e) {
|
2012-11-26 05:57:18 +00:00
|
|
|
Kohana_Exception::handler($e);
|
2011-01-17 05:33:55 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Rendering must be declared by the child class
|
|
|
|
*/
|
|
|
|
protected function render() {
|
|
|
|
throw new Kohana_Exception(':class is calling :method, when it should have its own method',
|
|
|
|
array(':class'=>get_called_class(),':method'=>__METHOD__));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
?>
|