new saimod structure including an automatic api for every module, minor fixes

This commit is contained in:
Ulf Gebhardt 2013-09-23 04:28:12 +02:00
parent 59f157ab12
commit 5911867aa5
19 changed files with 89 additions and 132 deletions

View File

@ -11,7 +11,7 @@ class api {
//API Class //API Class
if(!class_exists($apiclassname)){ 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 //check parameters
if( !isset($params) || !is_array($params) || count($params) <= 0){ if( !isset($params) || !is_array($params) || count($params) <= 0){

View File

@ -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','SYSTEM\SAI');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/page/default_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','SYSTEM\SAI');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_sai','SYSTEM\SAI'); SYSTEM\autoload::registerFolder(dirname(__FILE__).'/modules/saimod_sys_sai','SYSTEM\SAI');

View File

@ -1,12 +1,12 @@
<?php <?php
\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_sai'); \SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_sai');
\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_login'); \SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_login');
\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_log'); \SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_log');
\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_security'); \SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_security');
\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_mod'); \SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_mod');
\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_config'); \SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_config');
\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_calls'); \SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_calls');
\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_locale'); \SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_locale');
\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_cache'); \SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_cache');
//\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_docu'); //\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_docu');

View File

@ -2,7 +2,7 @@
namespace SYSTEM\SAI; namespace SYSTEM\SAI;
class saimod_sys_cache extends \SYSTEM\SAI\SaiModule { 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()); $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo());
if(\SYSTEM\system::isSystemDbInfoPG()){ if(\SYSTEM\system::isSystemDbInfoPG()){
$res = $con->query('SELECT COUNT(*)as "count" FROM system.cache'); $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_public(){return false;}
public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} 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 sai_mod__SYSTEM_SAI_saimod_sys_cache_flag_css(){}
public static function src_js(){} public static function sai_mod__SYSTEM_SAI_saimod_sys_cache_flag_js(){}
} }

View File

@ -2,14 +2,14 @@
namespace SYSTEM\SAI; namespace SYSTEM\SAI;
class saimod_sys_calls extends \SYSTEM\SAI\SaiModule { 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; $last_group = -1;
$con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo()); $con = new \SYSTEM\DB\Connection(\SYSTEM\system::getSystemDBInfo());
if(\SYSTEM\system::isSystemDbInfoPG()){ if(\SYSTEM\system::isSystemDbInfoPG()){
$res = $con->query('SELECT * FROM system.api ORDER BY "group", "ID" ASC;'); $res = $con->query('SELECT * FROM system.api ORDER BY "group", "ID" ASC;');
} else { } 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 = ""; $result = "";
@ -40,6 +40,6 @@ class saimod_sys_calls extends \SYSTEM\SAI\SaiModule {
public static function right_public(){return false;} 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 right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);}
public static function src_css(){} public static function sai_mod__SYSTEM_SAI_saimod_sys_calls_flag_css(){}
public static function src_js(){} public static function sai_mod__SYSTEM_SAI_saimod_sys_calls_flag_js(){}
} }

View File

@ -2,7 +2,7 @@
namespace SYSTEM\SAI; namespace SYSTEM\SAI;
class saimod_sys_config extends \SYSTEM\SAI\SaiModule { class saimod_sys_config extends \SYSTEM\SAI\SaiModule {
public static function html_content(){ public static function sai_mod__SYSTEM_SAI_saimod_sys_config(){
$result = '<h3>Sys Config</h3>'. $result = '<h3>Sys Config</h3>'.
'<table class="table table-hover table-condensed" style="overflow: auto;">'. '<table class="table table-hover table-condensed" style="overflow: auto;">'.
'<tr>'.'<th>'.'Config ID'.'</th>'.'<th>'.'Config Name'.'</th>'.'<th>'.'Value'.'</th>'.'</tr>'; '<tr>'.'<th>'.'Config ID'.'</th>'.'<th>'.'Config Name'.'</th>'.'<th>'.'Value'.'</th>'.'</tr>';
@ -32,6 +32,6 @@ class saimod_sys_config extends \SYSTEM\SAI\SaiModule {
public static function right_public(){return false;} 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 right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);}
public static function src_css(){} public static function sai_mod__SYSTEM_SAI_saimod_sys_config_flag_css(){}
public static function src_js(){} public static function sai_mod__SYSTEM_SAI_saimod_sys_config_flag_js(){}
} }

View File

@ -9,7 +9,7 @@ class saimod_sys_locale extends \SYSTEM\SAI\SaiModule {
return \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_LANGS); 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); $entries = array_merge($_POST,$_GET);
if(isset($entries[self::INPUT_VAR])){ if(isset($entries[self::INPUT_VAR])){
return self::html_content_entry_edit($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_public(){return false;}
public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} 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 sai_mod__SYSTEM_SAI_saimod_sys_locale_flag_css(){}
public static function src_js(){return \SYSTEM\LOG\JsonResult::toString( public static function sai_mod__SYSTEM_SAI_saimod_sys_locale_flag_js(){
array( return \SYSTEM\LOG\JsonResult::toString(
\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_locale/saimod_sys_locale_submit.js') array( \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_locale/saimod_sys_locale_submit.js')));}
));}
} }

View File

@ -1,5 +1,4 @@
function init__SYSTEM_SAI_saimod_sys_log() { function init__SYSTEM_SAI_saimod_sys_log() {
$('#truncate_table').click(function(){ $('#truncate_table').click(function(){
$.ajax({ $.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')); $('#table-wrapper').load('./?action=developer&sai_mod=.SYSTEM.SAI.saimod_sys_log&filter_error='+$(this).attr('id'));
})); }));
} };

View File

@ -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'])){ 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_public(){return false;}
public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} 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 sai_mod__SYSTEM_SAI_saimod_sys_log_flag_css(){}
public static function src_js(){return \SYSTEM\LOG\JsonResult::toString( public static function sai_mod__SYSTEM_SAI_saimod_sys_log_flag_js(){
array( \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_log/sai_sys_log.js')));} return \SYSTEM\LOG\JsonResult::toString(
array(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_log/saimod_sys_log.js')));}
} }

View File

@ -3,8 +3,7 @@
namespace SYSTEM\SAI; namespace SYSTEM\SAI;
class saimod_sys_login extends \SYSTEM\SAI\SaiModule { class saimod_sys_login extends \SYSTEM\SAI\SaiModule {
public static function html_content(){ public static function sai_mod__SYSTEM_SAI_saimod_sys_login(){
/* /*
if( isset($_POST['username']) && isset($_POST['password']) && if( isset($_POST['username']) && isset($_POST['password']) &&
\SYSTEM\SECURITY\Security::login(\SYSTEM\system::getSystemDBInfo(), $_POST['username'], sha1($_POST['password']), md5($_POST['password']))){ \SYSTEM\SECURITY\Security::login(\SYSTEM\system::getSystemDBInfo(), $_POST['username'], sha1($_POST['password']), md5($_POST['password']))){
@ -28,8 +27,9 @@ class saimod_sys_login extends \SYSTEM\SAI\SaiModule {
public static function right_public(){return true;} public static function right_public(){return true;}
public static function right_right(){return true;} public static function right_right(){return true;}
public static function src_css(){} public static function sai_mod__SYSTEM_SAI_saimod_sys_login_flag_css(){}
public static function src_js(){return \SYSTEM\LOG\JsonResult::toString( 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'), 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(),'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.md5.js'),

View File

@ -7,7 +7,7 @@ class saimod_sys_mod extends \SYSTEM\SAI\SaiModule {
'<table class="table table-hover table-condensed" style="overflow: auto;">'. '<table class="table table-hover table-condensed" style="overflow: auto;">'.
'<tr>'.'<th>'.'Classname'.'</th>'.'<th>'.'Public'.'</th>'.'<th>'.'You can Access?'.'</th>'.'</tr>'; '<tr>'.'<th>'.'Classname'.'</th>'.'<th>'.'Public'.'</th>'.'<th>'.'You can Access?'.'</th>'.'</tr>';
$sys_mods = \SYSTEM\SAI\sai::getInstance()->getSysModules(); $sys_mods = \SYSTEM\SAI\sai::getSysModules();
foreach($sys_mods as $mod){ foreach($sys_mods as $mod){
$result .= '<tr>'.'<td>'.$mod.'</td>'.'<td>'.(\call_user_func(array($mod, 'right_public')) ? 'true' : 'false').'</td>'.'<td>'.(\call_user_func(array($mod, 'right_right')) ? 'true' : 'false').'</td>'.'</tr>';} $result .= '<tr>'.'<td>'.$mod.'</td>'.'<td>'.(\call_user_func(array($mod, 'right_public')) ? 'true' : 'false').'</td>'.'<td>'.(\call_user_func(array($mod, 'right_right')) ? 'true' : 'false').'</td>'.'</tr>';}
$result .= '</table>'; $result .= '</table>';
@ -20,14 +20,14 @@ class saimod_sys_mod extends \SYSTEM\SAI\SaiModule {
'<table class="table table-hover table-condensed" style="overflow: auto;">'. '<table class="table table-hover table-condensed" style="overflow: auto;">'.
'<tr>'.'<th>'.'Classname'.'</th>'.'<th>'.'Public'.'</th>'.'<th>'.'You can Access?'.'</th>'.'</tr>'; '<tr>'.'<th>'.'Classname'.'</th>'.'<th>'.'Public'.'</th>'.'<th>'.'You can Access?'.'</th>'.'</tr>';
$mods = \SYSTEM\SAI\sai::getInstance()->getModules(); $mods = \SYSTEM\SAI\sai::getModules();
foreach($mods as $mod){ foreach($mods as $mod){
$result .= '<tr>'.'<td>'.$mod.'</td>'.'<td>'.(\call_user_func(array($mod, 'right_public')) ? 'true' : 'false').'</td>'.'<td>'.(\call_user_func(array($mod, 'right_right')) ? 'true' : 'false').'</td>'.'</tr>';} $result .= '<tr>'.'<td>'.$mod.'</td>'.'<td>'.(\call_user_func(array($mod, 'right_public')) ? 'true' : 'false').'</td>'.'<td>'.(\call_user_func(array($mod, 'right_right')) ? 'true' : 'false').'</td>'.'</tr>';}
$result .= '</table>'; $result .= '</table>';
return $result; return $result;
} }
public static function html_content(){ public static function sai_mod__SYSTEM_SAI_saimod_sys_mod(){
$vars=array(); $vars=array();
$vars['content_sys'] = self::html_content_sys(); $vars['content_sys'] = self::html_content_sys();
$vars['content_project'] = self::html_content_project(); $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_public(){return false;}
public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} 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 sai_mod__SYSTEM_SAI_saimod_sys_mod_flag_css(){}
public static function src_js(){ return \SYSTEM\LOG\JsonResult::toString( 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')));} array(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_mod/saimod_sys_mod.js')));}
} }

View File

@ -3,11 +3,11 @@
namespace SYSTEM\SAI; namespace SYSTEM\SAI;
class saimod_sys_sai extends \SYSTEM\SAI\SaiModule { 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 '<li class="active"><a href="#" id=".SYSTEM.SAI.saimod_sys_sai">SYSTEM Admin Interface</a></li>';} public static function html_li_menu(){return '<li class="active"><a href="#" id=".SYSTEM.SAI.saimod_sys_sai">SYSTEM Admin Interface</a></li>';}
public static function right_public(){return true;} public static function right_public(){return true;}
public static function right_right(){return true;} public static function right_right(){return true;}
public static function src_css(){} public static function sai_mod__SYSTEM_SAI_saimod_sys_sai_flag_css(){}
public static function src_js(){} public static function sai_mod__SYSTEM_SAI_saimod_sys_sai_flag_js(){}
} }

View File

@ -44,7 +44,7 @@ class saimod_sys_security extends \SYSTEM\SAI\SaiModule {
return $result; return $result;
} }
public static function html_content(){ public static function sai_mod__SYSTEM_SAI_saimod_sys_security(){
$vars = array(); $vars = array();
$vars['content_users'] = self::html_content_users(); $vars['content_users'] = self::html_content_users();
$vars['content_rights'] = self::html_content_rights(); $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_public(){return false;}
public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} 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')));} 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')));} array(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_security/saimod_sys_security.js')));}
} }

View File

@ -1,35 +0,0 @@
<?php
namespace SYSTEM\SAI;
class default_module extends \SYSTEM\PAGE\Page {
private $module = null;
private $post_get = null;
private $css = null;
private $js = null;
public function __construct($module,$post_get){
$this->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";
}
}

View File

@ -7,7 +7,7 @@ class default_page extends \SYSTEM\PAGE\Page {
private function menu_sys(){ private function menu_sys(){
$result = ''; $result = '';
$mods = \SYSTEM\SAI\sai::getInstance()->getSysModules(); $mods = \SYSTEM\SAI\sai::getSysModules();
foreach($mods as $mod){ foreach($mods as $mod){
if(\call_user_func(array($mod, 'right_public')) || if(\call_user_func(array($mod, 'right_public')) ||
\call_user_func(array($mod, 'right_right'))){ \call_user_func(array($mod, 'right_right'))){
@ -19,7 +19,7 @@ class default_page extends \SYSTEM\PAGE\Page {
private function menu_proj(){ private function menu_proj(){
$result = ''; $result = '';
$mods = \SYSTEM\SAI\sai::getInstance()->getModules(); $mods = \SYSTEM\SAI\sai::getModules();
foreach($mods as $mod){ foreach($mods as $mod){
if(\call_user_func(array($mod, 'right_public')) || if(\call_user_func(array($mod, 'right_public')) ||
\call_user_func(array($mod, 'right_right'))){ \call_user_func(array($mod, 'right_right'))){

View File

@ -2,9 +2,11 @@
namespace SYSTEM\SAI; namespace SYSTEM\SAI;
abstract class SaiModule { abstract class SaiModule extends \SYSTEM\API\api_login{
public static function html_content(){ public static function default_page(){
throw new \RuntimeException("Unimplemented!");} $sai = new \SYSTEM\SAI\default_page();
return $sai->html();}
public static function html_li_menu(){ public static function html_li_menu(){
throw new \RuntimeException("Unimplemented!");} throw new \RuntimeException("Unimplemented!");}
//true or false -> if true no call to right_right() //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 //check your rights here -> returns true or false
public static function right_right(){ public static function right_right(){
throw new \RuntimeException("Unimplemented!");} 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!");}
} }

View File

@ -3,37 +3,26 @@
namespace SYSTEM\SAI; namespace SYSTEM\SAI;
class sai { class sai {
private static $modules = array(); //only strings!
private static $modules_sys = array(); //only strings!
private $modules = array(); //only strings! public static function register($module){
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){
if( !\class_exists($module) || if( !\class_exists($module) ||
!\is_array($parents = \class_parents($module)) || !\is_array($parents = \class_parents($module)) ||
!\array_search('SYSTEM\SAI\SaiModule', $parents)){ !\array_search('SYSTEM\SAI\SaiModule', $parents)){
throw new \Exception('Problem with your Sysmodule class: '.$module);} throw new \Exception('Problem with your Sysmodule class: '.$module);}
$this->modules[] = $module;} array_push(self::$modules,$module);}
public function register_sys($module){ public static function register_sys($module){
if( !\class_exists($module) || if( !\class_exists($module) ||
!\is_array($parents = \class_parents($module)) || !\is_array($parents = \class_parents($module)) ||
!\array_search('SYSTEM\SAI\SaiModule', $parents)){ !\array_search('SYSTEM\SAI\SaiModule', $parents)){
throw new \Exception('Problem with your Sysmodule class: '.$module);} throw new \Exception('Problem with your Sysmodule class: '.$module);}
$this->modules_sys[] = $module;} array_push(self::$modules_sys,$module);}
public function getModules(){ public static function getModules(){
return $this->modules;} return self::$modules;}
public function getSysModules(){ public static function getSysModules(){
return $this->modules_sys;} return self::$modules_sys;}
public function getAllModules(){ public static function getAllModules(){
return array_merge($this->modules_sys,$this->modules);} return array_merge(self::$modules_sys,self::$modules);}
} }

View File

@ -8,10 +8,18 @@ class saigui extends \SYSTEM\PAGE\Page {
public function html(){ public function html(){
$pg = array_merge($_POST,$_GET); $pg = array_merge($_POST,$_GET);
if(isset($pg[SAI_MOD_POSTFIELD])){ if(isset($pg[SAI_MOD_POSTFIELD])){
$mod = new \SYSTEM\SAI\default_module(\str_replace('.', '\\', $pg[SAI_MOD_POSTFIELD]),$pg); $classname = \str_replace('.', '\\', $pg[SAI_MOD_POSTFIELD]);
return $mod->html();} $pg[SAI_MOD_POSTFIELD] = \str_replace('.', '_', $pg[SAI_MOD_POSTFIELD]);
$sai = new \SYSTEM\SAI\default_page(); $mods = \SYSTEM\SAI\sai::getAllModules();
return $sai->html(); 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);}
} }
} }