Exemple #1
0
 /**
  * 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);
     }
 }
Exemple #2
0
 /**
  * Загружаем все необходимые данные и запускаем выполнение метода контроллера
  */
 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()]);
     }
 }
Exemple #4
0
 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;
     }
 }
Exemple #5
0
 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;
 }
Exemple #6
0
 /**
  * @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;
 }
Exemple #7
0
<?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>
Exemple #8
0
 /**
  * Метод сохраняет в базе данных массив 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;
     }
 }
Exemple #9
0
                    </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>
Exemple #10
0
 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;
Exemple #12
0
 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);
     }
 }