ktk_mediaserve/MusicServe.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;
}
}
}
?>