85 lines
2.0 KiB
PHP
85 lines
2.0 KiB
PHP
|
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||
|
|
||
|
/**
|
||
|
* This class is for rendering HTML body blocks (left, center, right).
|
||
|
*
|
||
|
* It will provide a header, body and footer.
|
||
|
*
|
||
|
* @package lnApp
|
||
|
* @category lnApp/Helpers
|
||
|
* @author Deon George
|
||
|
* @copyright (c) 2009-2013 Deon George
|
||
|
* @license http://dev.leenooks.net/license.html
|
||
|
* @uses Style
|
||
|
*/
|
||
|
abstract class lnApp_Block extends HTMLRender {
|
||
|
protected static $_data = array();
|
||
|
protected static $_spacer = '<table><tr class="spacer"><td> </td></tr></table>';
|
||
|
protected static $_required_keys = array('body');
|
||
|
|
||
|
/**
|
||
|
* Add a block to be rendered
|
||
|
*
|
||
|
* @param array Block attributes
|
||
|
*/
|
||
|
public static function add($block,$prepend=FALSE) {
|
||
|
// Any body objects should be converted to a string, so that any calls to Style/Script are processed
|
||
|
if (isset($block['body']))
|
||
|
$block['body'] = (string)$block['body'];
|
||
|
|
||
|
parent::add($block);
|
||
|
|
||
|
// Detect any style sheets.
|
||
|
if (! empty($block['style']) && is_array($block['style']))
|
||
|
foreach ($block['style'] as $data=>$media)
|
||
|
Style::add(array(
|
||
|
'type'=>'file',
|
||
|
'data'=>$data,
|
||
|
'media'=>$media,
|
||
|
));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Return an instance of this class
|
||
|
*
|
||
|
* @return Block
|
||
|
*/
|
||
|
public static function factory() {
|
||
|
return new Block;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Render this block
|
||
|
*
|
||
|
* @see HTMLRender::render()
|
||
|
*/
|
||
|
protected function render() {
|
||
|
$output = '';
|
||
|
$styles = array();
|
||
|
|
||
|
$i = 0;
|
||
|
foreach (static::$_data as $value) {
|
||
|
if ($i++)
|
||
|
$output .= static::$_spacer;
|
||
|
|
||
|
$output .= '<table class="block" border="0">';
|
||
|
|
||
|
if (! empty($value['title']))
|
||
|
$output .= sprintf('<tr class="title"><td>%s</td></tr>',$value['title']);
|
||
|
|
||
|
if (! empty($value['subtitle']))
|
||
|
$output .= sprintf('<tr class="subtitle"><td>%s</td></tr>',$value['subtitle']);
|
||
|
|
||
|
$output .= sprintf('<tr class="body"><td>%s</td></tr>',$value['body']);
|
||
|
|
||
|
if (! empty($value['footer']))
|
||
|
$output .= sprintf('<tr class="footer"><td>%s</td></tr>',$value['footer']);
|
||
|
|
||
|
$output .= '</table>';
|
||
|
}
|
||
|
|
||
|
return $output;
|
||
|
}
|
||
|
}
|
||
|
?>
|