'.PHP_EOL; foreach(self::$modules as $module) { if (file_exists('modules/'.$module.'.css')) { echo ' '.PHP_EOL; } } } static function renderProgram() { foreach(self::$modules as $module) { if (method_exists('ktk\\MusicServe\\'.$module, 'onRender')) { call_user_func('ktk\\MusicServe\\'.$module.'::onRender'); } } } static function closeProgram() { foreach(self::$modules as $module) { if (method_exists('ktk\\MusicServe\\'.$module, 'onClose')) { call_user_func('ktk\\MusicServe\\'.$module.'::onClose'); } } } static function reportError($context, $subcontext, $error) { if(!self::$errors[$context."::".$subcontext]) self::$errors[$context."::".$subcontext] = array(); array_push(self::$errors[$context."::".$subcontext], $error); } static function reportWarning($context, $subcontext, $warning) { if(!self::$warnings[$context."::".$subcontext]) self::$warnings[$context."::".$subcontext] = array(); array_push(self::$warnings[$context."::".$subcontext], $warning); } static function loadConf($file) { if (file_exists('conf/'.$file.'.ini')) { return parse_ini_file('conf/'.$file.'.ini'); } else { self::reportWarning(__CLASS__, __FUNCTION__, "Could not load ".'conf/'.$file.'.ini'); } return array(); } static function saveConf($data) { if ($fp = fopen($data, 'w')) { self::writeData_r($fp, $data); fclose($fp); } else { MusicServe::reportError(__CLASS__, __FUNCTION__, "Could not write to \"".$data."\", please check your permissions!"); return NULL; } } static function writeData_r($handle, $value) { foreach ($data as $key=>$value) { if (is_array($value)) { fwrite($handle, '['.$key.']'.PHP_EOL); self::writeData_r($handle, $value); } else { fwrite($handle, $key.'='.$value.PHP_EOL); } } } static function storeData($var, $data) { $_SESSION[$var] = $data; } static function &getData($data) { if (isset($_SESSION[$data])) { return $_SESSION[$data]; } else { return NULL; } } } ?>