logMeIn($sToken, $sAction); //if connected if($bUserOk && $sAction!=Databap::EXT_ACCESS) { //if expected page, relocate //$oDatabap->redirectExpectedPage(); //loading data if($sAction!='') { //Public actions switch($sAction) { case 'log_me_out': $oDatabap->logMeOut(); break; case 'add_code': $sResult = $oDatabap->addCode(array('description'=>$sDescription, 'content'=>$sContent, 'link'=>$sLink)); break; case 'edit_code': $sResult = $oDatabap->editCode($oItemId, $sContent); break; case 'read_code': if($oItemId!==false) $sResult = $oDatabap->getColoredCode($oItemId); break; case 'nude_code': if($oItemId!==false) $sResult = $oDatabap->getNudeCode($oItemId); break; case 'raw_code': if($oItemId!==false) $sResult = $oDatabap->getRawCode($oItemId); break; case 'dl_code': if($oItemId!==false) $sResult = $oDatabap->getSavedCode($oItemId); break; case 'dl_file': $sResult = $oDatabap->getFile($oItemId); break; case 'print_code': if($oItemId!==false) $sResult = $oDatabap->getRawCode($oItemId, true); break; case 'add_procedure': $sResult = $oDatabap->addProcedure($_POST); break; case 'get_procedure': $sResult = $oDatabap->getProcedure($oItemId); break; case 'add_doc': $sResult = $oDatabap->addDoc($_POST); break; case 'get_doc': $sResult = $oDatabap->getDoc($oItemId); break; case 'add_table': $sResult = $oDatabap->addTable($sSystem, $sTitle, $sDescription, $sKeyWords, $oItemId, $bSimul); break; case 'get_table': $sResult = $oDatabap->getTable($oItemId); break; case 'get_article': $sResult = $oDatabap->getArticle($oItemId); break; case 'art_redirect': $sResult = $oDatabap->redirectArticle($oItemId); break; case 'upload_image': $sResult = $oDatabap->uploadImage(); break; case 'upload_file': $sResult = $oDatabap->uploadDoc(); break; case 'url': $sResult = $oDatabap->checkValue(Databap::URL_TABLE, array('phrase'=>$sLink)); break; case 'user_info': $sResult = $oDatabap->getUserInfo($oDatabap->getUserId(), true); break; case 'profile': $sResult = $oDatabap->getProfile($oItemId); break; case 'search': $sResult = $oDatabap->getResults($sKeyWords); break; case 'code_block': $sResult = $oDatabap->getCodeBlock(); break; case 'join_chan': $sResult = $oDatabap->joinChan($sChan, $bFirstConn, $asAttendees); break; case 'quit_chan': $sResult = $oDatabap->quitChan($sChan); break; case 'disconnect_chat': $sResult = $oDatabap->disconnectChat(); break; case 'add_message': $sResult = $oDatabap->addChatMessage($sMessage, $sChan); break; case 'messages': $sResult = $oDatabap->getMessages($iMessageId); break; case 'news': $sResult = $oDatabap->getNews(); break; case 'connected_users': $sResult = $oDatabap->getConnectedUsers(true); break; case 'get_options': $sResult = $oDatabap->getOptions(); break; case 'set_options': $sResult = $oDatabap->setOptions($_POST, false); break; case 'set_pass': $sResult = $oDatabap->checkSetPass($sOldToken, $sNewToken); break; case 'list': $sResult = $oDatabap->getItemList(); break; case 'note': $sResult = $oDatabap->getNote($oItemId); break; case 'css': $sResult = $oDatabap->getStyleSheet(); break; default: //Admin actions if($oDatabap->checkUserClearance(Databap::CLEARANCE_ADMIN)) { switch($sAction) { case 'add_user': $asInfo = explode('-', strtolower($oUser)); $sResult = 'User added. Id='.$oDatabap->addUser($asInfo[0], $asInfo[1], $asInfo[2], array_key_exists(3, $asInfo)?$asInfo[3]:''); break; case 'reset_pass': $sResult = $oDatabap->resetPass($oUser); break; case 'build_index': $oDatabap->buildCompleteIndex(); $sResult = 'Index ok'; break; case 'install_queries': $oMySqlInstall = new MySqlManager(Settings::DB_SERVER, Settings::DB_LOGIN, Settings::DB_PASS, Settings::DB_NAME, Databap::getSqlOptions(), Settings::DB_ENC); $sResult = $oMySqlInstall->getFullInstallQuery(); break; case 'reset_chan_safe_names': $sResult = $oDatabap->resetChanSafeNames(); break; } } break; } } //Loading a page else { $sResult = $oDatabap->getPage($sPage, $oItemId, $_GET); } } //External Access with token elseif($bUserOk && $sAction==Databap::EXT_ACCESS) { //Public actions switch($sPage) { case 'rss': //RSS Feed $sResult = $oDatabap->getRss($sCategory); break; default: //Restricted actions if($oDatabap->checkUserClearance(Databap::CLEARANCE_ADMIN)) { switch($sPage) { case 'blogs': //Syncing Blogs with database & spreading the news on chat $sResult = $oDatabap->syncSapBlog(); break; } } elseif($sResult=='') $sResult = 'No Clearance'; break; } } elseif($sAction!='') { $sResult = Databap::DISCONNECTED; } //loading logon else { //$oDatabap->setExpectedPage($_SERVER['REQUEST_URI']); $sResult = $oDatabap->getLogonPage($sToken==''); //TODO delete in v1.0.0 if($_SERVER['QUERY_STRING']!='') header('Location:'.$_GET['serv_name']); } //clean unwanted error log //TODO unify file name with PhpObject Class $sDebug = ob_get_clean(); if(Settings::DEBUG && $sDebug!='') file_put_contents('log.html', print_r($sDebug, true)."\n\n", FILE_APPEND); echo $sResult; //echo json_encode($sDebug); ?>