From 5911867aa51e3847599625f2b41bee7f53351711 Mon Sep 17 00:00:00 2001 From: rylon Date: Mon, 23 Sep 2013 04:28:12 +0200 Subject: [PATCH] new saimod structure including an automatic api for every module, minor fixes --- api/api.php | 2 +- sai/autoload.inc.php | 1 - sai/modules/register_modules.php | 20 +++++------ .../saimod_sys_cache/saimod_sys_cache.php | 6 ++-- .../saimod_sys_calls/saimod_sys_calls.php | 8 ++--- .../saimod_sys_config/saimod_sys_config.php | 6 ++-- .../saimod_sys_locale/saimod_sys_locale.php | 11 +++--- .../{sai_sys_log.js => saimod_sys_log.js} | 5 ++- sai/modules/saimod_sys_log/saimod_sys_log.php | 9 ++--- .../saimod_sys_login/saimod_sys_login.php | 20 +++++------ sai/modules/saimod_sys_mod/saimod_sys_mod.php | 13 +++---- sai/modules/saimod_sys_sai/saimod_sys_sai.php | 6 ++-- .../saimod_sys_security.php | 6 ++-- sai/page/default_module/default_module.php | 35 ------------------- sai/page/default_page/default_page.php | 4 +-- sai/page/default_page/js/index.js | 2 +- sai/sai/SaiModule.php | 14 +++----- sai/sai/sai.php | 35 +++++++------------ sai/sai/saigui.php | 18 +++++++--- 19 files changed, 89 insertions(+), 132 deletions(-) rename sai/modules/saimod_sys_log/{sai_sys_log.js => saimod_sys_log.js} (96%) delete mode 100644 sai/page/default_module/default_module.php diff --git a/api/api.php b/api/api.php index fc2d9b5..3aa2691 100644 --- a/api/api.php +++ b/api/api.php @@ -11,7 +11,7 @@ class api { //API Class if(!class_exists($apiclassname)){ - throw new \SYSTEM\LOG\ERROR("API Class given to the api does not exist.");} + throw new \SYSTEM\LOG\ERROR("API Class given to the api does not exist: '".$apiclassname."'");} //check parameters if( !isset($params) || !is_array($params) || count($params) <= 0){ diff --git a/sai/autoload.inc.php b/sai/autoload.inc.php index 15929c5..3b50c5e 100644 --- a/sai/autoload.inc.php +++ b/sai/autoload.inc.php @@ -3,7 +3,6 @@ SYSTEM\autoload::registerFolder(dirname(__FILE__).'/sai','SYSTEM\SAI'); SYSTEM\autoload::registerFolder(dirname(__FILE__).'/page','SYSTEM\SAI'); SYSTEM\autoload::registerFolder(dirname(__FILE__).'/page/default_page','SYSTEM\SAI'); -SYSTEM\autoload::registerFolder(dirname(__FILE__).'/page/default_module','SYSTEM\SAI'); SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules','SYSTEM\SAI'); SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_sai','SYSTEM\SAI'); diff --git a/sai/modules/register_modules.php b/sai/modules/register_modules.php index 39edb19..9dbff1e 100644 --- a/sai/modules/register_modules.php +++ b/sai/modules/register_modules.php @@ -1,12 +1,12 @@ register_sys('\SYSTEM\SAI\saimod_sys_sai'); -\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_login'); -\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_log'); -\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_security'); -\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_mod'); -\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_config'); -\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_calls'); -\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_locale'); -\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_cache'); -//\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_docu'); \ No newline at end of file +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_sai'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_login'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_log'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_security'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_mod'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_config'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_calls'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_locale'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_cache'); +//\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_docu'); \ No newline at end of file diff --git a/sai/modules/saimod_sys_cache/saimod_sys_cache.php b/sai/modules/saimod_sys_cache/saimod_sys_cache.php index 47daf39..8662832 100644 --- a/sai/modules/saimod_sys_cache/saimod_sys_cache.php +++ b/sai/modules/saimod_sys_cache/saimod_sys_cache.php @@ -2,7 +2,7 @@ namespace SYSTEM\SAI; class saimod_sys_cache extends \SYSTEM\SAI\SaiModule { - public static function html_content(){ + public static function sai_mod__SYSTEM_SAI_saimod_sys_cache(){ $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo()); if(\SYSTEM\system::isSystemDbInfoPG()){ $res = $con->query('SELECT COUNT(*)as "count" FROM system.cache'); @@ -43,6 +43,6 @@ class saimod_sys_cache extends \SYSTEM\SAI\SaiModule { public static function right_public(){return false;} public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} - public static function src_css(){} - public static function src_js(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_cache_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_cache_flag_js(){} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_calls/saimod_sys_calls.php b/sai/modules/saimod_sys_calls/saimod_sys_calls.php index 91e27d1..f468600 100644 --- a/sai/modules/saimod_sys_calls/saimod_sys_calls.php +++ b/sai/modules/saimod_sys_calls/saimod_sys_calls.php @@ -2,14 +2,14 @@ namespace SYSTEM\SAI; class saimod_sys_calls extends \SYSTEM\SAI\SaiModule { - public static function html_content(){ + public static function sai_mod__SYSTEM_SAI_saimod_sys_calls(){ $last_group = -1; $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo()); if(\SYSTEM\system::isSystemDbInfoPG()){ $res = $con->query('SELECT * FROM system.api ORDER BY "group", "ID" ASC;'); } else { - $res = $con->query('SELECT * FROM system_api ORDER BY group, ID ASC;'); + $res = $con->query('SELECT * FROM system_api ORDER BY "group", "ID" ASC;'); } $result = ""; @@ -40,6 +40,6 @@ class saimod_sys_calls extends \SYSTEM\SAI\SaiModule { public static function right_public(){return false;} public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} - public static function src_css(){} - public static function src_js(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_calls_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_calls_flag_js(){} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_config/saimod_sys_config.php b/sai/modules/saimod_sys_config/saimod_sys_config.php index 81f8383..c017a9c 100644 --- a/sai/modules/saimod_sys_config/saimod_sys_config.php +++ b/sai/modules/saimod_sys_config/saimod_sys_config.php @@ -2,7 +2,7 @@ namespace SYSTEM\SAI; class saimod_sys_config extends \SYSTEM\SAI\SaiModule { - public static function html_content(){ + public static function sai_mod__SYSTEM_SAI_saimod_sys_config(){ $result = '

Sys Config

'. ''. ''.''.''.''.''; @@ -32,6 +32,6 @@ class saimod_sys_config extends \SYSTEM\SAI\SaiModule { public static function right_public(){return false;} public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} - public static function src_css(){} - public static function src_js(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_config_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_config_flag_js(){} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_locale/saimod_sys_locale.php b/sai/modules/saimod_sys_locale/saimod_sys_locale.php index 334635f..1183de4 100644 --- a/sai/modules/saimod_sys_locale/saimod_sys_locale.php +++ b/sai/modules/saimod_sys_locale/saimod_sys_locale.php @@ -9,7 +9,7 @@ class saimod_sys_locale extends \SYSTEM\SAI\SaiModule { return \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_LANGS); } - public static function html_content(){ + public static function sai_mod__SYSTEM_SAI_saimod_sys_locale(){ $entries = array_merge($_POST,$_GET); if(isset($entries[self::INPUT_VAR])){ return self::html_content_entry_edit($entries[self::INPUT_VAR]); @@ -90,9 +90,8 @@ class saimod_sys_locale extends \SYSTEM\SAI\SaiModule { public static function right_public(){return false;} public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} - public static function src_css(){} - public static function src_js(){return \SYSTEM\LOG\JsonResult::toString( - array( - \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_locale/saimod_sys_locale_submit.js') - ));} + public static function sai_mod__SYSTEM_SAI_saimod_sys_locale_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_locale_flag_js(){ + return \SYSTEM\LOG\JsonResult::toString( + array( \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_locale/saimod_sys_locale_submit.js')));} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_log/sai_sys_log.js b/sai/modules/saimod_sys_log/saimod_sys_log.js similarity index 96% rename from sai/modules/saimod_sys_log/sai_sys_log.js rename to sai/modules/saimod_sys_log/saimod_sys_log.js index 4f4f5f5..2963367 100644 --- a/sai/modules/saimod_sys_log/sai_sys_log.js +++ b/sai/modules/saimod_sys_log/saimod_sys_log.js @@ -1,5 +1,4 @@ -function init__SYSTEM_SAI_saimod_sys_log() { - +function init__SYSTEM_SAI_saimod_sys_log() { $('#truncate_table').click(function(){ $.ajax({ @@ -40,4 +39,4 @@ function init__SYSTEM_SAI_saimod_sys_log() { $('#table-wrapper').load('./?action=developer&sai_mod=.SYSTEM.SAI.saimod_sys_log&filter_error='+$(this).attr('id')); })); -} \ No newline at end of file +}; \ No newline at end of file diff --git a/sai/modules/saimod_sys_log/saimod_sys_log.php b/sai/modules/saimod_sys_log/saimod_sys_log.php index 68edc3a..c0f3d17 100644 --- a/sai/modules/saimod_sys_log/saimod_sys_log.php +++ b/sai/modules/saimod_sys_log/saimod_sys_log.php @@ -57,7 +57,7 @@ class saimod_sys_log extends \SYSTEM\SAI\SaiModule { } - public static function html_content(){ + public static function sai_mod__SYSTEM_SAI_saimod_sys_log(){ if( isset($_GET['truncate'])){ @@ -126,7 +126,8 @@ class saimod_sys_log extends \SYSTEM\SAI\SaiModule { public static function right_public(){return false;} public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} - public static function src_css(){} - public static function src_js(){return \SYSTEM\LOG\JsonResult::toString( - array( \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_log/sai_sys_log.js')));} + public static function sai_mod__SYSTEM_SAI_saimod_sys_log_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_log_flag_js(){ + return \SYSTEM\LOG\JsonResult::toString( + array(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_log/saimod_sys_log.js')));} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_login/saimod_sys_login.php b/sai/modules/saimod_sys_login/saimod_sys_login.php index f3294d1..b9d5c93 100644 --- a/sai/modules/saimod_sys_login/saimod_sys_login.php +++ b/sai/modules/saimod_sys_login/saimod_sys_login.php @@ -2,9 +2,8 @@ namespace SYSTEM\SAI; -class saimod_sys_login extends \SYSTEM\SAI\SaiModule { - public static function html_content(){ - +class saimod_sys_login extends \SYSTEM\SAI\SaiModule { + public static function sai_mod__SYSTEM_SAI_saimod_sys_login(){ /* if( isset($_POST['username']) && isset($_POST['password']) && \SYSTEM\SECURITY\Security::login(\SYSTEM\system::getSystemDBInfo(), $_POST['username'], sha1($_POST['password']), md5($_POST['password']))){ @@ -28,11 +27,12 @@ class saimod_sys_login extends \SYSTEM\SAI\SaiModule { public static function right_public(){return true;} public static function right_right(){return true;} - public static function src_css(){} - public static function src_js(){return \SYSTEM\LOG\JsonResult::toString( - array( \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'js/jqBootstrapValidation.js'), - \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_login/sai_sys_login_submit.js'), - \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'js/crypto/jquery.md5.js'), - \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'js/crypto/jquery.sha1.js') - ));} + public static function sai_mod__SYSTEM_SAI_saimod_sys_login_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_login_flag_js(){ + return \SYSTEM\LOG\JsonResult::toString( + array( \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'js/jqBootstrapValidation.js'), + \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_login/sai_sys_login_submit.js'), + \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'js/crypto/jquery.md5.js'), + \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'js/crypto/jquery.sha1.js') + ));} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_mod/saimod_sys_mod.php b/sai/modules/saimod_sys_mod/saimod_sys_mod.php index 4166485..e73be88 100644 --- a/sai/modules/saimod_sys_mod/saimod_sys_mod.php +++ b/sai/modules/saimod_sys_mod/saimod_sys_mod.php @@ -7,7 +7,7 @@ class saimod_sys_mod extends \SYSTEM\SAI\SaiModule { '
'.'Config ID'.''.'Config Name'.''.'Value'.'
'. ''.''.''.''.''; - $sys_mods = \SYSTEM\SAI\sai::getInstance()->getSysModules(); + $sys_mods = \SYSTEM\SAI\sai::getSysModules(); foreach($sys_mods as $mod){ $result .= ''.''.''.''.'';} $result .= '
'.'Classname'.''.'Public'.''.'You can Access?'.'
'.$mod.''.(\call_user_func(array($mod, 'right_public')) ? 'true' : 'false').''.(\call_user_func(array($mod, 'right_right')) ? 'true' : 'false').'
'; @@ -20,14 +20,14 @@ class saimod_sys_mod extends \SYSTEM\SAI\SaiModule { ''. ''.''.''.''.''; - $mods = \SYSTEM\SAI\sai::getInstance()->getModules(); + $mods = \SYSTEM\SAI\sai::getModules(); foreach($mods as $mod){ $result .= ''.''.''.''.'';} $result .= '
'.'Classname'.''.'Public'.''.'You can Access?'.'
'.$mod.''.(\call_user_func(array($mod, 'right_public')) ? 'true' : 'false').''.(\call_user_func(array($mod, 'right_right')) ? 'true' : 'false').'
'; return $result; } - public static function html_content(){ + public static function sai_mod__SYSTEM_SAI_saimod_sys_mod(){ $vars=array(); $vars['content_sys'] = self::html_content_sys(); $vars['content_project'] = self::html_content_project(); @@ -39,7 +39,8 @@ class saimod_sys_mod extends \SYSTEM\SAI\SaiModule { public static function right_public(){return false;} public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} - public static function src_css(){} - public static function src_js(){ return \SYSTEM\LOG\JsonResult::toString( - array(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_mod/saimod_sys_mod.js')));} + public static function sai_mod__SYSTEM_SAI_saimod_sys_mod_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_mod_flag_js(){ + return \SYSTEM\LOG\JsonResult::toString( + array(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_mod/saimod_sys_mod.js')));} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_sai/saimod_sys_sai.php b/sai/modules/saimod_sys_sai/saimod_sys_sai.php index d2860f6..2fac8fe 100644 --- a/sai/modules/saimod_sys_sai/saimod_sys_sai.php +++ b/sai/modules/saimod_sys_sai/saimod_sys_sai.php @@ -3,11 +3,11 @@ namespace SYSTEM\SAI; class saimod_sys_sai extends \SYSTEM\SAI\SaiModule { - public static function html_content(){return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_sai/carousel.tpl'), array());} + public static function sai_mod__SYSTEM_SAI_saimod_sys_sai(){return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_sai/carousel.tpl'), array());} public static function html_li_menu(){return '
  • SYSTEM Admin Interface
  • ';} public static function right_public(){return true;} public static function right_right(){return true;} - public static function src_css(){} - public static function src_js(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_sai_flag_css(){} + public static function sai_mod__SYSTEM_SAI_saimod_sys_sai_flag_js(){} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_security/saimod_sys_security.php b/sai/modules/saimod_sys_security/saimod_sys_security.php index 026f81f..0a1f9d8 100644 --- a/sai/modules/saimod_sys_security/saimod_sys_security.php +++ b/sai/modules/saimod_sys_security/saimod_sys_security.php @@ -44,7 +44,7 @@ class saimod_sys_security extends \SYSTEM\SAI\SaiModule { return $result; } - public static function html_content(){ + public static function sai_mod__SYSTEM_SAI_saimod_sys_security(){ $vars = array(); $vars['content_users'] = self::html_content_users(); $vars['content_rights'] = self::html_content_rights(); @@ -69,8 +69,8 @@ class saimod_sys_security extends \SYSTEM\SAI\SaiModule { public static function right_public(){return false;} public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} - public static function src_css(){return \SYSTEM\LOG\JsonResult::toString( + public static function sai_mod__SYSTEM_SAI_saimod_sys_security_flag_css(){return \SYSTEM\LOG\JsonResult::toString( array(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/saimod_sys_security.css')));} - public static function src_js(){ return \SYSTEM\LOG\JsonResult::toString( + public static function sai_mod__SYSTEM_SAI_saimod_sys_security_flag_js(){ return \SYSTEM\LOG\JsonResult::toString( array(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/saimod_sys_security.js')));} } \ No newline at end of file diff --git a/sai/page/default_module/default_module.php b/sai/page/default_module/default_module.php deleted file mode 100644 index b20b25d..0000000 --- a/sai/page/default_module/default_module.php +++ /dev/null @@ -1,35 +0,0 @@ -module = $module; - $this->post_get = $post_get; - $this->css = isset($post_get['css']) ? $post_get['css'] : null; - $this->js = isset($post_get['js']) ? $post_get['js'] : null; - } - - public function html(){ - if($this->module != null){ - $mods = \SYSTEM\SAI\sai::getInstance()->getAllModules(); - if( $this->module && - \array_search($this->module, $mods) !== false && - ( \call_user_func(array($this->module, 'right_public')) || - \call_user_func(array($this->module, 'right_right')))){ - if($this->css != null){ - return \call_user_func(array($this->module, 'src_css'));} - if($this->js != null){ - return \call_user_func(array($this->module, 'src_js'));} - return \call_user_func(array($this->module, 'html_content'),array($this->post_get));} - } - - return "Could not find Module"; - } -} \ No newline at end of file diff --git a/sai/page/default_page/default_page.php b/sai/page/default_page/default_page.php index 824995d..085d16f 100644 --- a/sai/page/default_page/default_page.php +++ b/sai/page/default_page/default_page.php @@ -7,7 +7,7 @@ class default_page extends \SYSTEM\PAGE\Page { private function menu_sys(){ $result = ''; - $mods = \SYSTEM\SAI\sai::getInstance()->getSysModules(); + $mods = \SYSTEM\SAI\sai::getSysModules(); foreach($mods as $mod){ if(\call_user_func(array($mod, 'right_public')) || \call_user_func(array($mod, 'right_right'))){ @@ -19,7 +19,7 @@ class default_page extends \SYSTEM\PAGE\Page { private function menu_proj(){ $result = ''; - $mods = \SYSTEM\SAI\sai::getInstance()->getModules(); + $mods = \SYSTEM\SAI\sai::getModules(); foreach($mods as $mod){ if(\call_user_func(array($mod, 'right_public')) || \call_user_func(array($mod, 'right_right'))){ diff --git a/sai/page/default_page/js/index.js b/sai/page/default_page/js/index.js index 018e751..83f9dc8 100644 --- a/sai/page/default_page/js/index.js +++ b/sai/page/default_page/js/index.js @@ -38,7 +38,7 @@ function loadModuleContent(id){ } }); - $.getJSON('./?action=developer&sai_mod='+id+'&js=1', function (data) { + $.getJSON('./?action=developer&sai_mod='+id+'&js=1', function (data) { if(data){ scripts_req = data['result'].length; for(var i=0; i < data['result'].length; i++){ diff --git a/sai/sai/SaiModule.php b/sai/sai/SaiModule.php index 1766dea..ac00f25 100644 --- a/sai/sai/SaiModule.php +++ b/sai/sai/SaiModule.php @@ -2,9 +2,11 @@ namespace SYSTEM\SAI; -abstract class SaiModule { - public static function html_content(){ - throw new \RuntimeException("Unimplemented!");} +abstract class SaiModule extends \SYSTEM\API\api_login{ + public static function default_page(){ + $sai = new \SYSTEM\SAI\default_page(); + return $sai->html();} + public static function html_li_menu(){ throw new \RuntimeException("Unimplemented!");} //true or false -> if true no call to right_right() @@ -13,11 +15,5 @@ abstract class SaiModule { //check your rights here -> returns true or false public static function right_right(){ throw new \RuntimeException("Unimplemented!");} - //array with paths as json - public static function src_js(){ - throw new \RuntimeException("Unimplemented!");} - //array with paths as json - public static function src_css(){ - throw new \RuntimeException("Unimplemented!");} } \ No newline at end of file diff --git a/sai/sai/sai.php b/sai/sai/sai.php index a768938..83ed4b8 100644 --- a/sai/sai/sai.php +++ b/sai/sai/sai.php @@ -3,37 +3,26 @@ namespace SYSTEM\SAI; class sai { + private static $modules = array(); //only strings! + private static $modules_sys = array(); //only strings! - private $modules = array(); //only strings! - private $modules_sys = array(); //only strings! - - //SINGLETON! - static private $instance = null; - static public function getInstance(){ - if (null === self::$instance) { - self::$instance = new self;} - return self::$instance; - } - private function __construct(){} - private function __clone(){} - - public function register($module){ + public static function register($module){ if( !\class_exists($module) || !\is_array($parents = \class_parents($module)) || !\array_search('SYSTEM\SAI\SaiModule', $parents)){ throw new \Exception('Problem with your Sysmodule class: '.$module);} - $this->modules[] = $module;} - public function register_sys($module){ + array_push(self::$modules,$module);} + public static function register_sys($module){ if( !\class_exists($module) || !\is_array($parents = \class_parents($module)) || !\array_search('SYSTEM\SAI\SaiModule', $parents)){ throw new \Exception('Problem with your Sysmodule class: '.$module);} - $this->modules_sys[] = $module;} + array_push(self::$modules_sys,$module);} - public function getModules(){ - return $this->modules;} - public function getSysModules(){ - return $this->modules_sys;} - public function getAllModules(){ - return array_merge($this->modules_sys,$this->modules);} + public static function getModules(){ + return self::$modules;} + public static function getSysModules(){ + return self::$modules_sys;} + public static function getAllModules(){ + return array_merge(self::$modules_sys,self::$modules);} } \ No newline at end of file diff --git a/sai/sai/saigui.php b/sai/sai/saigui.php index b9902b2..e3ea5ee 100644 --- a/sai/sai/saigui.php +++ b/sai/sai/saigui.php @@ -8,10 +8,18 @@ class saigui extends \SYSTEM\PAGE\Page { public function html(){ $pg = array_merge($_POST,$_GET); if(isset($pg[SAI_MOD_POSTFIELD])){ - $mod = new \SYSTEM\SAI\default_module(\str_replace('.', '\\', $pg[SAI_MOD_POSTFIELD]),$pg); - return $mod->html();} - - $sai = new \SYSTEM\SAI\default_page(); - return $sai->html(); + $classname = \str_replace('.', '\\', $pg[SAI_MOD_POSTFIELD]); + $pg[SAI_MOD_POSTFIELD] = \str_replace('.', '_', $pg[SAI_MOD_POSTFIELD]); + + $mods = \SYSTEM\SAI\sai::getAllModules(); + if( $classname && + \array_search($classname, $mods) !== false && + ( \call_user_func(array($classname, 'right_public')) || + \call_user_func(array($classname, 'right_right')))){ + return \SYSTEM\API\api::run('\SYSTEM\API\verify', $classname , $pg, 42, false, false); + } else { + return "Could not find Module";} + } else { + return \SYSTEM\API\api::run('\SYSTEM\API\verify', '\SYSTEM\SAI\SaiModule', array(), 42, false, true);} } } \ No newline at end of file