public function action_index() { $buildList = Tools::getAllBuilds(); $sinList = array(); $ai = new ArrayIterator($buildList); foreach ($ai as $id => $vals) { if (substr_count($vals, "admin") > 0) { unset($buildList[$id]); } else { if (!empty($this->sinonims[$vals])) { $sinList[$vals] = $this->sinonims[$vals]; } else { $sinList[$id] = $vals; } } } unset($buildList[-1]); unset($sinList[-1]); if (!empty($_POST["abchenge"])) { if (!empty($buildList[$_POST["abchenge"]])) { unset($_SESSION["mwcuser"], $_SESSION["mwcpwd"], $_SESSION["mwcpoints"], $_SESSION["mwccharacter"]); $_SESSION["mwcbuild"] = $buildList[$_POST["abchenge"]]; Tools::go(); } } if (count($buildList) > 1) { $this->view->set("buildlist", html_::select($sinList, "abchenge", $_SESSION["mwcbuild"], 'onchange="document.getElementById(\'abcnanger\').submit();" class="selectbox"'))->out("plugin_bchanger"); } }
public function action_index() { if (!empty($_SESSION["mwccfgread"])) { $selectted = $_SESSION["mwccfgread"]; } else { require "configs/configs.php"; $selectted = $cfg["defaultabuild"]; $_SESSION["mwccfgread"] = $cfg["defaultabuild"]; } $this->view->set("buildsList", html_::select(Tools::getAllBuilds(), "whosconfig", $selectted, "class='selectserv' onchange='document.getElementById(\"bselecter\").submit()'"))->out("selserver"); }
private function __construct() { $mainpath = "configs" . DIRECTORY_SEPARATOR . "configs.php"; if (file_exists($mainpath)) { require_once $mainpath; } else { die("main cfg error!"); } $globalcfg = Configs::readCfg("main", $cfg["defaultabuild"]); if (empty($_SESSION["mwcabuild"])) { $_SESSION["mwcabuild"] = $cfg["defaultabuild"]; } define("tbuild", $cfg["defaultabuild"]); //$baseDir = substr(dirname( __FILE__ ),0,-4); if (empty($_SESSION["mwcserver"])) { //сервер $_SESSION["mwcserver"] = 0; } if (empty($_SESSION["mwclang"])) { //язык $_SESSION["mwclang"] = $globalcfg["dlang"]; } if (empty($_SESSION["mwcapoints"])) { //группа в админке $_SESSION["mwcapoints"] = $globalcfg["defgrp"]; } $adres = $globalcfg["address"]; //для редактирования билдов (подгрузка всего и вся (настроек) if (isset($_POST["whosconfig"])) { $builds = Tools::getAllBuilds(); if (!empty($builds[$_POST["whosconfig"]])) { $_SESSION["mwccfgread"] = $_POST["whosconfig"]; } } else { if (empty($_SESSION["whosconfig"])) { $_SESSION["whosconfig"] = "admin"; } } $content = new content($adres, $globalcfg["theme"], $_SESSION["mwclang"]); $isBackground = isset($_GET["bg"]) ? 1 : NULL; //если идет обращение к серверу try { $db = connect::start(); $builder = new builder(tbuild, $_SESSION["mwclang"], $_SESSION["mwcserver"]); // проверяем наличие списка модулей и плагинов $action_name = "action_index"; //region плагины $plugin = ""; require_once "build" . DIRECTORY_SEPARATOR . tbuild . DIRECTORY_SEPARATOR . "_dat" . DIRECTORY_SEPARATOR . $_SESSION["mwcserver"] . "_" . $_SESSION["mwclang"] . "_plugins.php"; if (is_array($plugin) && is_null($isBackground)) { $aplugin = new ArrayIterator($plugin); foreach ($aplugin as $name => $param) { if ($param["pstate"] == 2) { $contoller_path = "build" . DIRECTORY_SEPARATOR . tbuild . DIRECTORY_SEPARATOR . "plugins" . DIRECTORY_SEPARATOR . "controller" . DIRECTORY_SEPARATOR . $name . ".php"; if (file_exists($contoller_path) && !empty($param["groups"])) { $paccess = explode(",", $param["groups"]); if (!empty($param["mname"])) { $model_path = "build" . DIRECTORY_SEPARATOR . tbuild . DIRECTORY_SEPARATOR . "plugins" . DIRECTORY_SEPARATOR . "model" . DIRECTORY_SEPARATOR . $param["mname"] . ".php"; if (file_exists($model_path)) { require $model_path; } require $contoller_path; if (in_array($_SESSION["mwcapoints"], $paccess) || in_array(4, $paccess) && class_exists($param["mname"])) { $tmp = $param["mname"]; $model = new $tmp(); $pcontoller = new $name($model, $content, $plugin, $_SESSION["mwcserver"]); if (method_exists($name, "action_index")) { $pcontoller->init(); $pcontoller->action_index(); $pcontoller->parentOut(); } } } else { if (in_array($_SESSION["mwcapoints"], $paccess) || in_array(4, $paccess)) { $model = new $globalcfg["defModel"](); $pcontoller = new PController($model, $content, $plugin, $_SESSION["mwcserver"]); $pcontoller->genNonMVC($contoller_path); $pcontoller->parentOut($name); } } } } } } //endregion //region страницы //region получение контроллера и экшена if (!isset($_GET["p"])) { $controller = $globalcfg["defpage"]; } else { $controller = htmlspecialchars($_GET["p"], ENT_QUOTES); if ($controller == "index") { $controller = $globalcfg["defpage"]; } } if (isset($_GET["a"])) { $action_name = "action_" . $_GET["a"]; } //endregion require_once "build" . DIRECTORY_SEPARATOR . tbuild . DIRECTORY_SEPARATOR . "_dat" . DIRECTORY_SEPARATOR . $_SESSION["mwcserver"] . "_" . $_SESSION["mwclang"] . "_pages.php"; if (empty($page)) { $page = array(); } if (isset($page[$controller])) { $path = "build" . DIRECTORY_SEPARATOR . tbuild . DIRECTORY_SEPARATOR . $page[$controller]["ppath"] . DIRECTORY_SEPARATOR . $controller . ".php"; if (file_exists($path)) { $access = explode(",", $page[$controller]["groups"]); if (in_array($_SESSION["mwcapoints"], $access) || $_SESSION["mwcapoints"] == 1) { if (!empty($page[$controller]["mname"]) && !empty($page[$controller]["mpath"])) { $modelpath = "build" . DIRECTORY_SEPARATOR . tbuild . DIRECTORY_SEPARATOR . $page[$controller]["mpath"] . DIRECTORY_SEPARATOR . $page[$controller]["mname"] . ".php"; require_once $path; if (file_exists($modelpath)) { require_once $modelpath; $modelname = $page[$controller]["mname"]; } else { $modelname = "Model"; $action_name = "showError"; $db->SQLog("model {$modelpath} wasn't found", "arouter", 3); } $model = new $modelname($db); $contolinst = new $controller($model, $content, $page, $_SESSION["mwcserver"]); $contolinst->init(); if (method_exists($controller, $action_name)) { $contolinst->{$action_name}(); } else { $contolinst->action_index(); $db->SQLog("action {$action_name} wasn't found for {$controller}", "arouter", 3); } $contolinst->parentOut($isBackground); } else { $model = new $globalcfg["defModel"](); $contolinst = new $globalcfg["defController"]($model, $content, $page, $_SESSION["mwcserver"]); if (method_exists($contolinst, $action_name) && $action_name != "action_index" && (in_array($_SESSION["mwcapoints"], $access) || $_SESSION["mwcapoints"] == 1)) { $contolinst->{$action_name}(); } else { $contolinst->genNonMVC($path); } $contolinst->parentOut($isBackground); } } else { $model = new Model($db); $contolinst = new Controller($model, $content, $page, $_SESSION["mwcserver"]); $contolinst->init(); $contolinst->showError(2); $contolinst->parentOut($isBackground); if (!empty($_SESSION["mwcuid"])) { $theGuy = $_SESSION["mwcuid"]; } else { $theGuy = "?"; } if (!empty($_SESSION["mwcauid"])) { $theGuy = $_SESSION["mwcauid"]; } $db->SQLog("user ({$theGuy}) try access to {$controller} but he hasn't access", "arouter", 6); } } else { $model = new Model(); $contolinst = new Controller($model, $content, $page, $_SESSION["mwcserver"]); $contolinst->init(); $contolinst->showError(3); $contolinst->parentOut($isBackground); $db->SQLog("controller '{$path}' wasn't found", "arouter", 1); } } else { $model = new Model(); $contolinst = new Controller($model, $content, $page, $_SESSION["mwcserver"]); $contolinst->init(); $contolinst->showError(3); $contolinst->parentOut($isBackground); $db->SQLog("controller '{$controller}' does't register in system", "arouter", 1); } //endregion } catch (Exception $ex) { $stack = $ex->getTrace(); $msg = $ex->getMessage() . " in file: " . basename($stack[3]["file"]) . " line: " . $stack[3]["line"]; self::addlog(tbuild . "_error", $msg, "log"); content::showError("Something went wrong", "please, check logs."); } }