* @version 0.2
* @since 0.1
* @copyright GNU Lesser General Public License (LGPL) version 3
*/
/**
* HtmlAsset Helper
*
* HTML Asset, links to CSS, Javascripts, etc...
*/
class HtmlAssetHelper extends Collectable {
protected $css, $cssCode, $js, $jsCode, $jsEditor, $jsCalendar, $jsOnLoad, $rss;
public function __construct() {
parent::__construct();
}
protected function _init($key,$reset=false) {
if (!is_array($this->$key) || $reset) {
$this->$key = array();
if (!$reset && !empty($GLOBALS['config']['header'][$key])) {
$this->$key = StringHelper::mixedToArray($GLOBALS['config']['header'][$key]);
}
}
}
public function headerStuff() {
if (count($this->jsCalendar)) {
$this->add('css',APP_WWW_URI.'asset/css/calendar.css');
$this->add('js', APP_WWW_URI.'asset/js/calendar.js');
foreach($this->jsCalendar as $it) {
if (is_string($it)) {
$it=trim($it);
$this->add('jsOnLoad',"new Calendar({ '$it': 'd/m/y' })");
}
}
}
if (count($this->jsEditor)) {
$this->add('js',APP_WWW_URI.'asset/ckeditor/ckeditor.js');
$str = '';
foreach ($this->jsEditor as $kit => $mode) {
$str .= "CKEDITOR.replace('$kit',{toolbar:'$mode'";
if (strpos($mode, 'Upl')) {
$base = APP_WWW_URI.'asset/fmanager/';
$str .= ", filebrowserBrowseUrl : '${base}browser.php', "
."filebrowserImageBrowseUrl : '${base}browser.php?Type=images', "
."filebrowserFlashBrowseUrl : '${base}browser.php?Type=flash'"; //,
/*
."filebrowserUploadUrl : '${base}uploader.php?command=QuickUpload&type=docs', "
."filebrowserImageUploadUrl : '${base}uploader.php?command=QuickUpload&type=images', "
."filebrowserFlashUploadUrl : '${base}uploader.php?command=QuickUpload&type=flash'";
*/
}
$str .= "});\n";
}
$this->add('jsOnLoad',$str);
}
// css
if (count($this->css)) {
foreach($this->css as $it) {
if (preg_match('/(^\/|http:\/\/)/', $it)) {
echo ''."\n";
} else {
foreach ($GLOBALS['config']['path']['css'] as $p) {
if (file_exists(APP_WWW_PATH.$p.$it)) {
echo ''."\n";
break;
}
}
}
}
}
// css code (ie tests)
if (count($this->cssCode)) {
echo implode("\n",$this->cssCode)."\n";
}
// javascrpt direct code
if (count($this->jsCode)) {
echo '\n";
}
// javascript on load function
if (count($this->jsOnLoad)) {
echo '\n";
}
// xml/rss
if (count($this->rss)) {
foreach($this->rss as $it) {
echo ''."\n";
}
}
}
public function footerStuff() {
// javascript (include)
if (count($this->js)) {
foreach($this->js as $it) {
$it = trim($it);
if (preg_match('/^(\/|http:\/\/)/', $it)) {
echo ''."\n";
} else {
foreach ($GLOBALS['config']['path']['js'] as $p) {
if (file_exists(APP_WWW_PATH.$p.$it)) {
echo ''."\n";
break;
}
}
}
}
}
}
}