/** * 1. Присваивает название класса, бъект которого создается переменной $folder * в нижнем регистре * из строки "\liw\controllers\MainController" делает "main" * 2. Загружает язык, если есть такой файл в папке languages */ public function __construct() { $path = get_class($this); $this->called_class = str_replace('controller', '', substr(strrchr(strtolower($path), "\\"), 1)); /** * Загружаем файл языка и добавляем его к переменной Lang::uage() */ $file_lang = LIW_LANG . Request::$lang . '/' . $this->called_class . '.php'; if (file_exists($file_lang)) { Lang::add(require $file_lang); } }
/** * Загружаем все необходимые данные и запускаем выполнение метода контроллера */ public static function start() { Liw::$config = (require_once LIW_WEB . 'config/config.php'); ErrorHandler::register(); try { Session::start(); Request::getRequest(); Lang::checkLanguage(Request::$lang); Router::getWay(Request::$route, AccessMulti::getWays()); Router::run(); } catch (\Exception $e) { ErrorHandler::showError("Exception", $e->getMessage(), $e->getFile(), $e->getLine()); } }
public function loginAction() { $loginForm = new LoginForm(); if ($loginForm->post()) { $user = new User(); if ($user->verify($loginForm->fields)) { $this->redirect('/user'); } else { $this->redirect(['user', 'registration'], ['login' => isset($loginForm->login) ? $loginForm->login : null, 'error' => Lang::uage('error_verify'), 'captcha' => $this->newCaptcha()]); } } else { $this->redirect(['user', 'registration'], ['login' => isset($loginForm->login) ? $loginForm->login : null, 'error' => Lang::uage('error_verify'), 'captcha' => $this->newCaptcha()]); } }
private function testField($field, $rulesArr) { foreach ($rulesArr as $key => $value) { if (method_exists($this, $value)) { $error = call_user_func([$this, $value], $field); } elseif (is_int($value)) { $error = call_user_func('liw\\core\\validation\\Is::' . $key, $field, $value); } else { $error = call_user_func('liw\\core\\validation\\Is::' . $value, $field); } if ($error !== true) { $this->error = Lang::uage('error_field') . $this->getLabel($field) . Lang::uage('error_' . $error) . $value; return false; } return true; } }
public function getView($layout = null) { if (null === self::$_view) { self::$_view = new self(); } /** * определяем текущий вид (лэйаут) */ if ($layout === null) { if (Liw::$config['def_layout'] !== null) { self::$layout = LIW_WEB . 'views/layouts/' . Liw::$config['def_layout'] . '.php'; } else { $this->view = Lang::uage('def_layout_not_exist'); require_once LIW_CORE . 'core/error/view/index.php'; exit; } } else { self::$layout = LIW_WEB . 'views/layouts/' . $layout . '.php'; } return self::$_view; }
/** * @param $params * @throws \Exception * @return array */ private function addTypesToParams(array $params) { $type_param = ''; foreach ($params as $key => $param) { switch (gettype($param)) { case 'boolean': $type_param .= 'i'; break; case 'integer': $type_param .= 'i'; break; case 'double': $type_param .= 'd'; break; case 'string': $type_param .= 's'; break; default: throw new \Exception(Lang::uage('error_data_type') . gettype($param)); } } array_unshift($params, $type_param); return $params; }
<?php use liw\core\Lang; /** * @var $login string */ ?> <div class="container"> <h1>Time: <?php echo date("d.m.Y H:i:s", time()); ?> </h1> <p class="test"> <?php echo Lang::uage('login'); ?> : <?php echo isset($_SESSION['user']['login']) ? $_SESSION['user']['login'] : ''; ?> </p> <p class="test"> Имя: <?php echo isset($_SESSION['user']['name']) ? $_SESSION['user']['name'] : ''; ?> </p> <p class="test"> Фамилия: <?php echo isset($_SESSION['user']['s_name']) ? $_SESSION['user']['s_name'] : ''; ?> </p>
/** * Метод сохраняет в базе данных массив fields * @return mixed : 1. id - сохраненной модели, если у нее есть поле AI в случае успешного сохранение * 2. true - в случае успешного сохранение, но в отсутствие поля с AI * 3. false - в случае неудачного сохранения * @throws \Exception */ public function save() { if (!empty($this->fields)) { if (!empty($this->rules())) { $arr_keys = $this->addFieldsFromRules(); } else { $arr_keys = array_keys($this->fields); } if (method_exists($this, 'validate')) { if ($this->validate() && ($id = $this->insert($arr_keys)->push())) { if ($id !== true) { $this->fields['id'] = $id; } return true; } else { return false; } } else { if ($id = $this->insert($arr_keys)->push()) { if ($id !== true) { $this->id = $id; } return true; } else { return false; } } } else { ErrorHandler::insertErrorInLogs("ERROR_SAVE_MODEL", Lang::uage('error_save_model'), 'liw\\core\\Model', '309'); return false; } }
</div> </div> <?php } elseif (Liw::$isGuest) { ?> <form action="/login" method="post" class="navbar-form navbar-right"> <div class="form-group"> <input name="login" id="login" type="text" placeholder="<?php echo Lang::uage('login'); ?> " class="form-control"> </div> <div class="form-group"> <input name="pass" id="pass" type="password" placeholder="<?php echo Lang::uage('pass'); ?> " class="form-control"> </div> <div class="form-group"> <input type="submit" value="Войти" class="btn btn-success"> </div> </form> <?php } ?> </div><!--/.navbar-collapse --> </div> </nav>
public function labels() { return ['login' => Lang::uage('login'), 'pass' => Lang::uage('pass')]; }
autofocus > </div> <div class="form-group"> <input type="password" id="pass" name = "pass" placeholder="<?php echo Lang::uage('pass'); ?> " class="form-control input-center" data-tooltip="<?php echo Lang::uage('hide_pass'); ?> " > </div> <div class="checkbox"> <label> <input type="checkbox"> Запомнить меня </label> </div> <div class="form-group"> <div class="input-center"> <img src="<?php echo $captcha;
public static function run() { $way_arr = explode('::', self::$way[0]); $controller_route = '\\web\\controllers\\' . $way_arr[0] . 'Controller'; if (!class_exists($controller_route)) { throw new \Exception(Lang::uage('error_no_controller') . $way_arr[0] . 'Controller'); } $controller_obj = new $controller_route(); if (!method_exists($controller_obj, $way_arr[1] . 'Action')) { throw new \Exception(Lang::uage('error_no_action') . '<strong>' . $way_arr[1] . 'Action' . '</strong> in controller <strong>' . $way_arr[0] . 'Controller' . '</strong>'); } /** * Если существует метод before, то запускаем его перед действием */ if (method_exists($controller_obj, "before")) { call_user_func_array([$controller_obj, "before"], Request::$attr); } /** * запускает метод контроллера с параметрами */ call_user_func_array([$controller_obj, $way_arr[1] . 'Action'], Request::$attr); /** * Если существует метод after, то запускаем его после действия */ if (method_exists($controller_obj, "after")) { call_user_func_array([$controller_obj, "after"], Request::$attr); } }