133 lines
3.9 KiB
PHP
133 lines
3.9 KiB
PHP
<?php
|
|
namespace ktk\MusicServe;
|
|
session_start();
|
|
|
|
class MusicServe {
|
|
static public $modules = array();
|
|
static public $errors = array();
|
|
static public $warnings = array();
|
|
static private $storage = array();
|
|
|
|
static function loadModule($name) {
|
|
if (file_exists('modules/'.$name.'.php')) {
|
|
include_once 'modules/'.$name.'.php';
|
|
array_push(self::$modules, $name);
|
|
} else {
|
|
self::reportError(__CLASS__, __FUNCTION__, "Module ".$name." does not exist!");
|
|
}
|
|
}
|
|
static function checkModule($name) {
|
|
return array_search($name, self::$modules);
|
|
}
|
|
|
|
static function initProgram() {
|
|
foreach(self::$modules as $module) {
|
|
if (method_exists('ktk\\MusicServe\\'.$module, 'onInit')) {
|
|
call_user_func('ktk\\MusicServe\\'.$module.'::onInit');
|
|
}
|
|
}
|
|
}
|
|
|
|
static function processProgram() {
|
|
// check for module commands and call them if so
|
|
if (isset($_POST['m'])) {
|
|
if (isset($_POST['c'])) {
|
|
if (method_exists('ktk\\MusicServe\\'.$_POST['m'], $_POST['c'])) {
|
|
call_user_func('ktk\\MusicServe\\'.$_POST['m'].'::'.$_POST['c'], $_POST['p1']);
|
|
}
|
|
}
|
|
} else if (isset($_GET['m'])) {
|
|
if (isset($_GET['c'])) {
|
|
if (method_exists('ktk\\MusicServe\\'.$_GET['m'], $_GET['c'])) {
|
|
call_user_func('ktk\\MusicServe\\'.$_GET['m'].'::'.$_GET['c'], $_GET['p1']);
|
|
}
|
|
}
|
|
}
|
|
foreach(self::$modules as $module) {
|
|
if (method_exists('ktk\\MusicServe\\'.$module, 'onProcess')) {
|
|
call_user_func('ktk\\MusicServe\\'.$module.'::onProcess');
|
|
}
|
|
}
|
|
}
|
|
|
|
static function renderCss() {
|
|
echo ' <link rel="stylesheet" href="main.css" type="text/css" media="screen" charset="utf-8">'.PHP_EOL;
|
|
foreach(self::$modules as $module) {
|
|
if (file_exists('modules/'.$module.'.css')) {
|
|
echo ' <link rel="stylesheet" href="modules/'.$module.'.css" type="text/css" media="screen" charset="utf-8">'.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;
|
|
}
|
|
}
|
|
}
|
|
?>
|