<?php require_once('plugins.class.php'); /** * WIP * base class for all plugin types to read available plugins * and its metadata * * @example * $CI_plugins=new ciplugins(); * print_r($CI_plugins->getPluginTypes()); * * // $CI_plugins->setType('build'); * // print_r($CI_plugins->getPlugins()); * print_r($CI_plugins->getPlugins('build')); * * $CI_plugins->setPlugin('tgz', 'build'); // plugin name + type * * * @author axel */ class plugin_renderer extends ciplugins { // --------------------------------------------------------------- // // BELOW ARE METHODS FOR A SET SPECIFIC PLUGIN AND TYPE // // --------------------------------------------------------------- // --------------------------------------------------------------- // LANGUAGE TEXTS (needed in ui only) // --------------------------------------------------------------- /** * get a translated text from lang_XX.json in plugin dir; * If the key is missed it returns "[KEY :: LANG]" * * @see setLang() * @param string $sKey key to find in lang file * @return string */ protected function _t($sKey){ return (isset($this->_aLang[$sKey]) && $this->_aLang[$sKey]) ? $this->_aLang[$sKey] : "[ $sKey :: $this->_sLang ]" ; } /** * set language for output of formdata and other texts. * This method loads the language file into a hash. The output of * translated texts can be done with $this->_t("your_key") * * @see _t() * @param string $sLang language code, i.e. "de" * @return boolean */ public function setLang($sLang=false){ $this->_sLang=$sLang ? $sLang : $this->_sLang; $oReflection=new ReflectionClass($this); $sFile=dirname($oReflection->getFileName()) . '/lang_'.$this->_sLang.'.json'; $this->_aLang=(file_exists($sFile)) ? json_decode(file_get_contents($sFile), 1) : $this->_aLang; return true; } // --------------------------------------------------------------- // SETTER // --------------------------------------------------------------- // --------------------------------------------------------------- // prepare html code // --------------------------------------------------------------- /** * for shellcmd plugins: get html code to load javascript file * The file must exist in the plugin directory * @params string $sFile (basename of) filename, eg. render.js */ public function getHtmlLoadScript($sFile){ return (file_exists($this->_sSelfdir.'/'.$sFile)) ? '<script src="'.$this->_sSelfurl.'/'.$sFile.'"></script>'."\n" : '' ; } /** * get id for an output div * @return string */ public function getHtmlOutId(){ return $this->_sPluginname ? 'divPlugin'.$this->_sType.''.$this->_sPluginname : false; } /** * get id for the wrapper div of an output div * @return string */ public function getHtmlOutIdWrapper(){ return $this->getHtmlOutId().'Wrapper'; } public function getHtmlOutwindow(){ $aConfig=$this->getPluginConfig(); return '<div id="'.$this->getHtmlOutIdWrapper().'" class="cmdoutbox">' .'<div id="'.$this->getHtmlOutId().'" ' .'class="out' .(isset($aConfig['window-cols']) && $aConfig['window-cols'] ? ' cmd-cols-'.$aConfig['window-cols'] : '' ) .(isset($aConfig['window-lines']) && $aConfig['window-lines'] ? ' cmd-lines-'.$aConfig['window-lines'] : '' ) .'"></div>' .'</div>'; } // --------------------------------------------------------------- // access plugin php class // --------------------------------------------------------------- }