public function __construct($REQUEST, $model, $view) { $UI = \CORE\UI::init(); switch ($REQUEST->get('act')) { case 'add': $model->create(); break; case 'get': $model->get(); break; case 'update': $model->update(); break; case 'del': $model->delete(); break; default: $UI->pos['main'] .= $view->main($model); break; } if (\CORE::init()->is_ajax()) { \DB::init()->close(); exit; } }
public function get_list_of_modules() { $modules['all'] = '-- ' . \CORE::t('all', 'все') . ' --'; $type = array(' (core)', ' (app)'); foreach (\CORE::init()->get_modules() as $key => $value) { $modules[$key] = $key . $type[(int) $value]; } return $modules; }
public function km1($model) { $result = ''; $path = DIR_APP . '/forms/km1_' . \CORE::init()->lng() . '.php'; if (is_readable($path)) { $result = file_get_contents($path); } return $result; }
public function __construct($REQUEST, $model, $view) { $UI = \CORE\UI::init(); switch ($REQUEST->get('act')) { case 'km1': $UI->pos['main'] .= $view->km1($model); break; default: $UI->pos['main'] .= $view->main($model); break; } if (\CORE::init()->is_ajax()) { \DB::init()->close(); exit; } }
public function __construct($REQUEST, $model, $view) { switch ($REQUEST->get('act')) { case 'login': $model->login(); break; case 'logout': $model->logout(); break; case 'profile': $view->profile($model); break; case 'change_password': $UI = \CORE\BC\UI::init(); $UI->pos['main'] .= $view->change_pwd(); break; case 'passwd': $model->passwd(); break; case 'manage': if (isset($_GET['do'])) { switch ($_GET['do']) { case 'add': $model->add(); break; case 'edit': $model->edit(); break; case 'update': $model->update(); break; case 'del': $model->del(); break; } } else { $UI = \CORE\BC\UI::init(); $UI->pos['main'] .= $view->manage($model); } break; } if (\CORE::init()->is_ajax()) { \DB::init()->close(); exit; } }
public function main($model) { $result = ''; $groups = $model->get_groups(); $counter = count($groups); $UI = \CORE\UI::init(); $result .= '<div> <h4>Groups: <span class="badge">' . $counter . '</span> ' . $UI::bootstrap_modal_btn('ShowNewGroup', 'NewGroup', 'New group') . ' </h4> </div> '; $modal_body_new = '<div class="form-group"> <label for="new_group">Group name</label> <input type="text" class="form-control" id="new_group" placeholder=""> </div> '; $result .= $UI::bootstrap_modal('NewGroup', 'New group', ' id="frm_NewGroup"', $modal_body_new, 'addGroup', 'Add'); $modal_body_edit = '<div class="form-group"> <input type="hidden" id="gid" value="0"> <label for="edit_group">Group name</label> <input type="text" class="form-control" id="edit_group" placeholder=""> </div> '; $result .= $UI::bootstrap_modal('EditGroup', 'Edit group', ' id="frm_EditGroup"', $modal_body_edit, 'updateGroup', 'Update'); if ($counter > 0) { $result .= ' <table class="table table-bordered table-hover" style="width:auto;"> <thead> <tr> <th>#</th> <th>Group</th> <th>gid</th> <th class="text-center">ACTION</th> </tr> </thead> <tbody> '; $cnt = 0; foreach ($groups as $gid => $group) { $cnt++; $result .= ' <tr> <td>' . $cnt . '</td> <td>' . $group . '</td> <td>' . $gid . '</td> <td> <div id="' . $gid . '" class="btn-group btn-group-xs"> <button type="button" class="btn btn-default group_edit" data-toggle="modal" data-target="#EditGroup">edit</button> <button type="button" class="btn btn-default group_del">delete</button> </div> </td> </tr> '; } $result .= '</tbody></table>'; } else { $result .= '<div class="well">' . \CORE::init()->lang('norecdb', 'No records found in the database.') . '</div>'; } $UI->pos['js'] .= ' <script type="text/javascript"> $(document).ready(function(){ // ADD function IsJsonString(str) { try { JSON.parse(str); } catch(e) { return false; } return true; } $("#NewGroup").on("shown.bs.modal", function() { $("#new_group").focus(); }); $("#frm_NewGroup").submit(function(e){ e.preventDefault(); }); $("#addGroup").click(function(){ var new_group = $("#new_group").val(); $.post("./?c=group&act=add&ajax=add", {newgroup:new_group}, function(data){ if(data=="Group successfully added."){ location.reload(); } else { alert("Error. Check JS console log."); console.log(data); } }); }); // EDIT $("#EditGroup").on("shown.bs.modal", function() { $("#edit_group").focus(); }); $("#frm_EditGroup").submit(function(e){ e.preventDefault(); }); $("button.group_edit").click(function(){ var xgid = $(this).parent("div").attr("id"); $.post("./?c=group&act=edit&ajax", {gid:xgid}, function(data){ if(IsJsonString(data)){ var obj = JSON.parse(data); $("#gid").val(xgid); $("#edit_group").val(obj.group); } else { alert("Error. Check JS console log."); console.log(data); } }); }); // UPDATE $("#updateGroup").click(function(){ var edit_gid = $("#gid").val(); var edit_group = $("#edit_group").val(); $.post("./?c=group&act=update&ajax", {gid:edit_gid,group:edit_group}, function(data){ if(data=="Group successfully updated."){ location.reload(); } else { alert("The operation failed. Check JS console log."); console.log(data); } }); }); // DEL $("button.group_del").click(function(){ var del_gid = $(this).parent("div").attr("id"); if(confirm("Delete this group?")){ $.post("./?c=group&act=del&ajax", {gid:del_gid}, function(data){ if(data=="Group successfully deleted."){ location.reload(); } else { alert("Error. Check JS console log."); console.log(data); } }); } }); }); </script> '; return $result; }
function __construct() { $this->modules = \CORE::init()->get_modules(); }
public static function SWITCHER($user = false) { $lang = \CORE::init()->lang; $result = ''; if ($user) { if ($lang == 'ru') { $result = '<ul class="nav navbar-nav"> <li class="dropdown"> <a href="#" title="Русский" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <small><i class="langflag langflag-ru"></i></small> RU <span class="caret"></span></a> <ul class="dropdown-menu"> <li> <a href="./?lang=tj" class="change_language" rel="tj"> <small><i class="langflag langflag-tj"></i></small> TJ </a> </li> </ul> </li> </ul> '; } else { $result = '<ul class="nav navbar-nav"> <li class="dropdown"> <a href="#" title="Тоҷикӣ" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <small><i class="langflag langflag-tj"></i></small> TJ <span class="caret"></span></a> <ul class="dropdown-menu"> <li> <a href="./?lang=ru" class="change_language" rel="ru"> <small><i class="langflag langflag-ru"></i></small> RU </a> </li> </ul> </li> </ul> '; } } else { if ($lang == 'ru') { $result = '<div class="form-group"> <div class="dropdown"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-expanded="true"> <i class="langflag langflag-ru"></i> <small>RU</small> <span class="caret"></span> </button> <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu2"> <li role="usermenu"> <a role="menuitem" tabindex="-1" href="./?lang=tj" class="change_language" rel="tj"> <i class="langflag langflag-tj"></i> <small>TJ</small> </a> </li> </ul> </div> </div> '; } else { $result = '<div class="form-group"> <div class="dropdown"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-expanded="true"> <i class="langflag langflag-tj"></i> <small>TJ</small> <span class="caret"></span> </button> <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu2"> <li role="usermenu"> <a role="menuitem" tabindex="-1" href="./?lang=ru" class="change_language" rel="ru"> <i class="langflag langflag-ru"></i> <small>RU</small> </a> </li> </ul> </div> </div> '; } } return $result; }
public function static_page($alias = '') { if (isset($this->pages[$alias])) { if (\CORE::init()->lang != '') { $lang = '_' . \CORE::init()->lang; } else { $lang = ''; } $path = DIR_APP . '/pages/' . $this->pages[$alias] . $lang . '.php'; if (is_readable($path)) { include $path; // \CORE::msg('debug','include page: '.$this->pages[$alias]); } else { \CORE::msg('error', 'Page is not found'); } } else { \CORE::msg('error', 'Page is not available'); } }
public static function init() { if (empty(self::$inst)) { self::$inst = new self(); \CORE::msg('debug', 'app initialization'); if (is_readable(DIR_APP . '/appmain.php')) { include DIR_APP . '/appmain.php'; } else { \CORE::init()->msg('debug', 'application main script not found'); } $modules = \CORE::init()->get_modules(); $REQUEST = new REQUEST(); ROUTER::init($REQUEST, $modules); // check modules } return self::$inst; }
public function stop() { \CORE::init()->unload(); }
<?php if (!defined('DIR_BASE')) { echo '[+_+]'; exit; } if (is_readable(DIR_CORE . '/classes/core.php')) { require DIR_CORE . '/classes/core.php'; } else { echo 'class CORE not found'; exit; } $CORE = CORE::init(); $USER = USER::init(); $UI = \CORE\UI::init(); $APP = \CORE\APP::init(); $APP->run(); $APP->stop(); $UI->render();
public function update($uid = 0, $gid = 0, $user = '', $chpwd = 0, $pwd = '', $status = 1, $pid = 0) { $valid = true; $errors = ''; if ($uid == 0 && isset($_POST['uid'])) { $uid = (int) $_POST['uid']; } // user data initialization if ($user == '' && isset($_POST['user'])) { $user = trim($_POST['user']); } if ($pwd == '' && isset($_POST['password'])) { $pwd = trim($_POST['password']); } if ($uid == 0 && isset($_POST['uid'])) { $uid = (int) $_POST['uid']; } if ($gid == 0 && isset($_POST['gid'])) { $gid = (int) $_POST['gid']; } if ($chpwd == 0 && isset($_POST['chpwd'])) { $chpwd = (int) $_POST['chpwd']; } if ($status == 1 && isset($_POST['status'])) { $status = (int) $_POST['status']; } if ($pid == 0 && isset($_POST['pid'])) { $pid = (int) $_POST['pid']; } // validation if ($user == '' || !$this->check_login($user)) { $valid = false; } if ($chpwd != 0) { if ($pwd == '' || !$this->check_password($pwd)) { $valid = false; } } if ($uid == 0) { $valid = false; } if ($gid == 0) { $valid = false; } if ($status < 0 || $status > 1) { $valid = false; } if ($pid == 0) { $pid = NULL; } // if valid for with db if ($valid) { $DB = \DB::init(); if ($DB->connect()) { $sql = "SELECT * FROM `n-users` WHERE LOWER(`usr-login`)=LOWER(:user) AND `usr-uid`=:uid;"; $sth = $DB->dbh->prepare($sql); $sth->execute(array('user' => $user, 'uid' => $uid)); $DB->query_count(); if ($sth->rowCount() == 1) { $pwd_array = $this->generate_pwd($pwd); $usr = array('hash' => $pwd_array['hash'], 'salt' => $pwd_array['salt'], 'hint' => $pwd_array['hint'], 'gid' => $gid, 'pid' => $pid, 'status' => $status, 'uid' => $uid); if (!$this->hint()) { $usr['hint'] = NULL; } // choose: insert lowercase login or not if ($chpwd > 0) { $sql = "UPDATE `n-users` SET \n\t\t\t\t\t`usr-pwd`=:hash, \n\t\t\t\t\t`usr-salt`=:salt, \n\t\t\t\t\t`usr-hint`=:hint, \n\t\t\t\t\t`usr-gid`=:gid, \n\t\t\t\t\t`usr-pid`=:pid, \n\t\t\t\t\t`usr-status`=:status\n\t\t\t\t\tWHERE `usr-uid`=:uid;"; } else { $usr = array('gid' => $gid, 'pid' => $pid, 'status' => $status, 'uid' => $uid); $sql = "UPDATE `n-users` SET \n\t\t\t\t\t`usr-gid`=:gid, \n\t\t\t\t\t`usr-pid`=:pid, \n\t\t\t\t\t`usr-status`=:status\n\t\t\t\t\tWHERE `usr-uid`=:uid;"; } $sth = $DB->dbh->prepare($sql); $sth->execute($usr); $DB->query_count(); \CORE::init()->msg('info', 'User data successfully updated.'); } else { // check is exists $sql = "SELECT * FROM `n-users` WHERE LOWER(`usr-login`)=LOWER(:user);"; $sth = $DB->dbh->prepare($sql); $sth->execute(array('user' => $user)); if ($sth->rowCount() > 0) { $valid = false; // \CORE::init()->msg('error','Such user exists in the database.'); $errors .= 'Such user exists in the database.'; } else { $pwd_array = $this->generate_pwd($pwd); $usr = array('login' => $user, 'hash' => $pwd_array['hash'], 'salt' => $pwd_array['salt'], 'hint' => $pwd_array['hint'], 'gid' => $gid, 'pid' => $pid, 'status' => $status, 'uid' => $uid); if (!$this->hint()) { $usr['hint'] = NULL; } // choose: insert lowercase login or not if ($chpwd > 0) { $sql = "UPDATE `n-users` SET \n\t\t\t\t\t\t`usr-login`=LOWER(:login), \n\t\t\t\t\t\t`usr-pwd`=:hash, \n\t\t\t\t\t\t`usr-salt`=:salt, \n\t\t\t\t\t\t`usr-hint`=:hint, \n\t\t\t\t\t\t`usr-gid`=:gid, \n\t\t\t\t\t\t`usr-pid`=:pid, \n\t\t\t\t\t\t`usr-status`=:status\n\t\t\t\t\t\tWHERE `usr-uid`=:uid;"; } else { $usr = array('login' => $user, 'gid' => $gid, 'pid' => $pid, 'status' => $status, 'uid' => $uid); $sql = "UPDATE `n-users` SET \n\t\t\t\t\t\t`usr-login`=LOWER(:login), \n\t\t\t\t\t\t`usr-gid`=:gid, \n\t\t\t\t\t\t`usr-pid`=:pid, \n\t\t\t\t\t\t`usr-status`=:status\n\t\t\t\t\t\tWHERE `usr-uid`=:uid;"; } $sth = $DB->dbh->prepare($sql); $sth->execute($usr); $DB->query_count(); \CORE::init()->msg('info', 'User data successfully updated.'); } } } } else { // \CORE::init()->msg('error','User data is incorrect.'); $errors .= 'User data is incorrect.'; } if ($errors != '') { echo json_encode(array('errors' => $errors)); } }
<?php $pages = array('home' => 'home', 'user' => 'user', 'admin' => 'admin', 'about' => 'about', 'about_opendata' => 'about_opendata', 'team' => 'team'); \CORE\UI::init()->set_pages($pages); \CORE::init()->set_modules(array('mt' => 1, 'frm' => 1, 'stat' => 1, 'map' => 1, 'vs' => 1, 'od' => 1, 'apps' => 1, 'translation' => 1)); $USER = \USER::init(); if ($USER->auth()) { // for authorized users (!) because of $DB->connect() // load translations from DB $new_lng = array(); $c_lang = \CORE::lng(); $DB = \DB::init(); if ($DB->connect()) { if (\CORE::get_c() != '') { $sql = "SELECT * FROM `mt-translation` WHERE `t-module`=:module OR `t-module`='all';"; $sth = $DB->dbh->prepare($sql); $sth->execute(array('module' => \CORE::get_c())); } else { $sql = "SELECT * FROM `mt-translation` WHERE `t-module`='all';"; $sth = $DB->dbh->prepare($sql); $sth->execute(); } $DB->query_count(); if ($sth->rowCount() > 0) { while ($r = $sth->fetch()) { $new_lng[$r['t-alias']] = $r['t-' . $c_lang]; } } } \CORE::msg('debug', 'load translations from DB'); \CORE::set_lng($new_lng);
public function close() { if ($this->dbh != null && $this->connected) { $this->dbh = null; $this->connected = false; CORE::init()->dbcon = false; CORE::msg('debug', 'Closing db connection (queries: ' . $this->queries . ')'); } }
public function manage($model) { $result = ''; $UI = \CORE\BC\UI::init(); $groups = $model->get_groups(); $users = $model->get_users(); $counter = count($users); $result .= ' <div> <h4>Users: <span class="badge">' . $counter . '</span> ' . $UI::bootstrap_modal_btn('show_NewUser', 'NewUser', 'New user') . ' </h4> </div> '; $modal_body_new = ' <div class="form-group"> <label for="new_group">Group</label> ' . $UI::html_list($groups, '', ' id="new_group" class="form-control"', 2) . ' </div> <div class="form-group"> <label for="new_user">Username</label> <input type="text" class="form-control" id="new_user" placeholder="username"> </div> <div class="form-group"> <label for="new_pwd">Password</label> <input type="password" class="form-control" id="new_pwd" placeholder="password"> </div> <div class="form-group"> <input type="button" class="btn btn-default" id="new_pwd_gen" value="Generate password"> <span id="new_pwd_gen_val" style="margin-left:10px;"></span> </div> <div> <div class="checkbox"> <label for="new_status"> <input type="checkbox" id="new_status" value="1" checked> User enabled </label> </div> </div> '; $result .= $UI::bootstrap_modal('NewUser', 'New user', ' id="frm_NewUser"', $modal_body_new, 'addUser', 'Add'); $modal_body_edit = ' <div class="form-group"> <label for="edit_group">Group</label> ' . $UI::html_list($groups, '', ' id="edit_group" class="form-control"', 2) . ' </div> <div class="form-group"> <input type="hidden" id="edit_uid" value="0"> <label for="edit_user">Username</label> <input type="text" class="form-control" id="edit_user" placeholder="username"> </div> <div> <div class="checkbox"> <label for="edit_pwd_change"> <input type="checkbox" id="edit_pwd_change" value="1"> Change password </label> </div> </div> <div id="pwd_box" class="hidden"> <div class="form-group"> <label for="edit_pwd">New password</label> <input type="password" class="form-control" id="edit_pwd" placeholder="new password"> </div> <div class="form-group"> <input type="button" class="btn btn-default" id="edit_pwd_gen" value="Generate password"> <span id="edit_pwd_gen_val" style="margin-left:10px;"></span> </div> </div> <div> <div class="checkbox"> <label for="edit_status"> <input type="checkbox" id="edit_status" value="1" checked> User enabled </label> </div> </div> '; $result .= $UI::bootstrap_modal('EditUser', 'Edit user', ' id="frm_EditUser"', $modal_body_edit, 'updateUser', 'Update'); if ($counter > 0) { $result .= ' <table class="table table-bordered table-hover" style="width:auto;"> <thead> <tr> <th>#</th> <th>USER</th> <th>GROUP</th> <th>STATUS</th> <th>LOGIN TIME</th> <th class="text-center">ACTION</th> </tr> </thead> <tbody> '; $cnt = 0; foreach ($users as $uid => $user) { $cnt++; $result .= ' <tr> <td>' . $cnt . '</td> <td>' . $user['user'] . '</td> <td>' . $user['gid'] . '</td> <td>' . $user['status'] . '</td> <td>' . $user['lastlogin'] . '</td> <td> <div id="' . $uid . '" class="btn-group btn-group-xs"> <button type="button" class="btn btn-default user_edit" data-toggle="modal" data-target="#EditUser">edit</button> <button type="button" class="btn btn-default user_del">delete</button> </div> </td> </tr> '; } $result .= "</tbody></table>\n"; } else { $result .= '<div class="well">' . \CORE::init()->lang('norecdb', 'No records found in the database.') . '</div>'; } $UI->pos['js'] .= ' <script type="text/javascript"> $(document).ready(function() { function IsJsonString(str) { try { JSON.parse(str); } catch(e) { return false; } return true; } function generate_pwd(len) { var length = len, charset = "abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", retVal = ""; for (var i = 0, n = charset.length; i < length; ++i) { retVal += charset.charAt(Math.floor(Math.random() * n)); } return retVal; } $("#new_pwd_gen").click(function(){ var xpwd=generate_pwd(10); $("#new_pwd").val(xpwd); $("#new_pwd_gen_val").text(xpwd); }); // ADD $("#NewUser").on("shown.bs.modal", function() { $("#new_user").focus(); }); $("#frm_NewUser").submit(function(e){ e.preventDefault(); }); $("#addUser").click(function(e){ var xgid = $("#new_group").val(); var xuser = $("#new_user").val(); var xpwd = $("#new_pwd").val(); var xstatus = 1; if(!$("#new_status").prop("checked")){ xstatus=0; } $.post("./?c=user&act=manage&do=add&ajax", {user:xuser,password:xpwd,gid:xgid,status:xstatus}, function(data){ if(data=="New user successfully added."){ location.reload(); } else { if(IsJsonString(data)){ var obj = JSON.parse(data); alert(obj.errors); } else { alert("Error. Check JS console log."); console.log(data); } } }); }); // EDIT $("#EditUser").on("shown.bs.modal", function() { $("#edit_user").focus(); }); $("#frm_EditUser").submit(function(e){ e.preventDefault(); }); $("#edit_pwd_gen").click(function(){ var xpwd=generate_pwd(10); $("#edit_pwd").val(xpwd); $("#edit_pwd_gen_val").text(xpwd); }); $("#edit_pwd_change").click(function(){ if($(this).prop("checked")){ $("#pwd_box").removeClass("hidden"); } else { $("#edit_pwd").val(""); $("#edit_pwd_gen_val").text(""); $("#pwd_box").addClass("hidden"); } }); $("button.user_edit").click(function(){ var xuid = $(this).parent("div").attr("id"); $.post("./?c=user&act=manage&do=edit&ajax", {uid:xuid}, function(data){ $("#edit_pwd").val(""); $("#edit_pwd_gen_val").text(""); if(IsJsonString(data)){ var obj = JSON.parse(data); $("#edit_uid").val(obj.uid); $("#edit_group").val(obj.gid); $("#edit_user").val(obj.user); if(obj.status==1){ $("#edit_status").prop("checked",true); } else { $("#edit_status").prop("checked",false); } } else { alert("Error. Check JS console log."); console.log(data); } }); }); // UPDATE $("#updateUser").click(function(e){ var xuid = $("#edit_uid").val(); var xgid = $("#edit_group").val(); var xuser = $("#edit_user").val(); var xchpwd = 0; var xpwd = $("#edit_pwd").val(); var xstatus = 1; if($("#edit_pwd_change").prop("checked")){ xchpwd=1; } if(!$("#edit_status").prop("checked")){ xstatus=0; } $.post("./?c=user&act=manage&do=update&ajax", {uid:xuid,gid:xgid,user:xuser,chpwd:xchpwd,password:xpwd,status:xstatus}, function(data){ if(data=="User data successfully updated."){ location.reload(); } else { if(IsJsonString(data)){ var obj = JSON.parse(data); alert(obj.errors); } else { alert("Error. Check JS console log."); console.log(data); } } }); }); // DEL $("button.user_del").click(function(){ var xuid = $(this).parent("div").attr("id"); if(confirm("Delete this user?")){ $.post("./?c=user&act=manage&do=del&ajax", {uid:xuid}, function(data){ if(data=="User successfully deleted."){ location.reload(); } else { alert("Error. Check JS console log."); console.log(data); } }); } }); }); </script> '; return $result; }