<?php defined('SYSPATH') or die('No direct access allowed.'); /** * This class is for rendering HTML script tags * * @package lnApp * @subpackage Page * @category Helpers * @author Deon George * @copyright (c) 2010 Deon George * @license http://dev.leenooks.net/license.html */ class lnApp_Script extends HTMLRender { protected static $_data = array(); protected static $_spacer = "\n"; protected static $_required_keys = array('type','data'); protected static $_unique_vals = array('file'=>'type'); /** * Return an instance of this class * * @return Script */ public static function factory() { return new Script; } /** * Render the script tag * * @see HTMLRender::render() */ protected function render() { $foutput = $soutput = ''; $mediapath = Route::get(static::$_media_path); $i = $j = 0; foreach (static::$_data as $value) { switch ($value['type']) { case 'file': $foutput .= HTML::script($mediapath->uri(array('file'=>$value['data']))); if ($i++) $foutput .= static::$_spacer; break; case 'stdin': $soutput .= sprintf("<script type=\"text/javascript\">//<![CDATA[\n%s\n//]]></script>",$value['data']); if ($j++) $soutput .= static::$_spacer; break; default: throw new Kohana_Exception('Unknown style type :type',array(':type'=>$value['type'])); } } return $foutput.static::$_spacer.$soutput; } } ?>