generated from mirzaev/pot
	начало работы над сессиями и там дохуя чего ещё
This commit is contained in:
		| @@ -1,146 +1,146 @@ | ||||
| <?php | ||||
|  | ||||
| declare(strict_types=1); | ||||
|  | ||||
| namespace mirzaev\site\account\controllers; | ||||
|  | ||||
| // Файлы проекта | ||||
| use mirzaev\site\account\controllers\core; | ||||
| use mirzaev\site\account\models\account_model as account; | ||||
| use mirzaev\site\account\models\session_model as session; | ||||
| use mirzaev\site\account\models\vk_model as vk; | ||||
|  | ||||
| // Библиотека для ArangoDB | ||||
| use ArangoDBClient\Document as _document; | ||||
| use stdClass; | ||||
|  | ||||
| // Фреймворк для ВКонтакте | ||||
| use mirzaev\vk\core as api; | ||||
|  | ||||
| /** | ||||
|  * Контроллер аккаунтов | ||||
|  * | ||||
|  * @package mirzaev\site\account\controllers | ||||
|  * @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy> | ||||
|  */ | ||||
| final class account_controller extends core | ||||
| { | ||||
|     /** | ||||
|      * Страница профиля | ||||
|      * | ||||
|      * @param array $parameters Параметры запроса | ||||
|      */ | ||||
|     public function index(array $parameters = []): ?string | ||||
|     { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Инициализация | ||||
|      * | ||||
|      * @param array $parameters Параметры запроса | ||||
|      */ | ||||
|     public function initialization(array $parameters = []): ?string | ||||
|     { | ||||
|         if ($this->variables['account'] instanceof _document) { | ||||
|             // Найден аккаунт | ||||
|  | ||||
|             if ($this->variables['vk'] instanceof _document) { | ||||
|                 // Найден аккаунт ВКонтакте | ||||
|  | ||||
|                 // Инициализация данных аккаунта ВКонтакте | ||||
|                 vk::parse($this->variables['vk'], $this->variables['errors']['vk']); | ||||
|             } | ||||
|  | ||||
|             // Запись кода ответа | ||||
|             http_response_code(200); | ||||
|  | ||||
|             return null; | ||||
|         } else { | ||||
|             // Не найден аккаунт | ||||
|  | ||||
|             // Запись кода ответа | ||||
|             http_response_code(401); | ||||
|  | ||||
|             // Запись заголовка ответа с ключом аккаунта | ||||
|             header('session: ' . $this->variables['session']->hash); | ||||
|  | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         // Запись кода ответа | ||||
|         http_response_code(500); | ||||
|  | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Связь аккаунта с аккаунтом ВКонтакте | ||||
|      * | ||||
|      * @param array $parameters Параметры запроса | ||||
|      */ | ||||
|     public function connect(array $parameters = []): ?string | ||||
|     { | ||||
|         if ($this->variables['session']->hash === $parameters['state']) { | ||||
|             // Совпадает хеш сессии с полученным хешем из ответа ВКонтакте | ||||
|  | ||||
|             if (!empty($response = vk::key($parameters['code'], $this->variables['errors']['vk']))) { | ||||
|                 // Получены данные аккаунта ВКонтакте | ||||
|  | ||||
|                 if (($this->variables['vk'] = vk::initialization($response, $this->variables['errors']['vk'])) instanceof _document) { | ||||
|                     // Инициализирован аккаунт ВКонтакте | ||||
|  | ||||
|                     if (($this->variables['account'] = vk::account($this->variables['vk'])) instanceof _document) { | ||||
|                         // Найден аккаунт (существующий) | ||||
|  | ||||
|                         if (session::connect($this->variables['session'], $this->variables['account'], $this->variables['errors']['session'])) { | ||||
|                             // Связана сессия с аккаунтом | ||||
|                         } | ||||
|                     } else if (($this->variables['account'] = account::create($this->variables['errors']['account'])) instanceof _document) { | ||||
|                         // Найден аккаунт (создан новый) | ||||
|  | ||||
|                         if (session::connect($this->variables['session'], $this->variables['account'], $this->variables['errors']['session'])) { | ||||
|                             // Связана сессия с аккаунтом | ||||
|  | ||||
|                             if (account::connect($this->variables['account'], $this->variables['vk'], $this->variables['errors']['account'])) { | ||||
|                                 // Связан аккаунт с аккаунтом ВКонтакте | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|  | ||||
|                     // Инициализация робота для аккаунта ВКонтакте | ||||
|                     $this->vk = api::init()->user(key: $this->variables['vk']->access['key']); | ||||
|  | ||||
|                     if ($this->variables['vk'] instanceof _document) { | ||||
|                         // Инициализирован робот для аккаунта ВКонтакте | ||||
|  | ||||
|                         // Инициализация данных аккаунта ВКонтакте | ||||
|                         $data = vk::parse($this->vk, $this->variables['errors']['vk']); | ||||
|                         var_dump($data); die; | ||||
|  | ||||
|                         if ($data instanceof stdClass) { | ||||
|                             // Получены данные ВКонтакте | ||||
|  | ||||
|                             // Запись в базу данных | ||||
|                             vk::update($this->variables['vk'], $data, $this->variables['errors']['vk']); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         // Генерация представления | ||||
|         return $this->view->render(DIRECTORY_SEPARATOR . 'account' . DIRECTORY_SEPARATOR . 'vk.html', $this->variables); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Генерация панели аккаунта | ||||
|      * | ||||
|      * @param array $parameters Параметры запроса | ||||
|      */ | ||||
|     public function panel(array $parameters = []): ?string | ||||
|     { | ||||
|         // Генерация представления | ||||
|         return $this->view->render(DIRECTORY_SEPARATOR . 'account' . DIRECTORY_SEPARATOR . 'panel.html', $this->variables); | ||||
|     } | ||||
| } | ||||
| <?php | ||||
|  | ||||
| declare(strict_types=1); | ||||
|  | ||||
| namespace mirzaev\site\account\controllers; | ||||
|  | ||||
| // Файлы проекта | ||||
| use mirzaev\site\account\controllers\core; | ||||
| use mirzaev\site\account\models\account_model as account; | ||||
| use mirzaev\site\account\models\session_model as session; | ||||
| use mirzaev\site\account\models\vk_model as vk; | ||||
|  | ||||
| // Библиотека для ArangoDB | ||||
| use ArangoDBClient\Document as _document; | ||||
| use stdClass; | ||||
|  | ||||
| // Фреймворк для ВКонтакте | ||||
| use mirzaev\vk\core as api; | ||||
|  | ||||
| /** | ||||
|  * Контроллер аккаунтов | ||||
|  * | ||||
|  * @package mirzaev\site\account\controllers | ||||
|  * @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy> | ||||
|  */ | ||||
| final class account_controller extends core | ||||
| { | ||||
|     /** | ||||
|      * Страница профиля | ||||
|      * | ||||
|      * @param array $parameters Параметры запроса | ||||
|      */ | ||||
|     public function index(array $parameters = []): ?string | ||||
|     { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Инициализация | ||||
|      * | ||||
|      * @param array $parameters Параметры запроса | ||||
|      */ | ||||
|     public function initialization(array $parameters = []): ?string | ||||
|     { | ||||
|         if ($this->variables['account'] instanceof _document) { | ||||
|             // Найден аккаунт | ||||
|  | ||||
|             if ($this->variables['vk'] instanceof _document) { | ||||
|                 // Найден аккаунт ВКонтакте | ||||
|  | ||||
|                 // Инициализация данных аккаунта ВКонтакте | ||||
|                 vk::parse($this->variables['vk'], $this->variables['errors']['vk']); | ||||
|             } | ||||
|  | ||||
|             // Запись кода ответа | ||||
|             http_response_code(200); | ||||
|  | ||||
|             return null; | ||||
|         } else { | ||||
|             // Не найден аккаунт | ||||
|  | ||||
|             // Запись кода ответа | ||||
|             http_response_code(401); | ||||
|  | ||||
|             // Запись заголовка ответа с ключом аккаунта | ||||
|             header('session: ' . $this->variables['session']->hash); | ||||
|  | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         // Запись кода ответа | ||||
|         http_response_code(500); | ||||
|  | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Связь аккаунта с аккаунтом ВКонтакте | ||||
|      * | ||||
|      * @param array $parameters Параметры запроса | ||||
|      */ | ||||
|     public function connect(array $parameters = []): ?string | ||||
|     { | ||||
|         if ($this->variables['session']->hash === $parameters['state']) { | ||||
|             // Совпадает хеш сессии с полученным хешем из ответа ВКонтакте | ||||
|  | ||||
|             if (!empty($response = vk::key($parameters['code'], $this->variables['errors']['vk']))) { | ||||
|                 // Получены данные аккаунта ВКонтакте | ||||
|  | ||||
|                 if (($this->variables['vk'] = vk::initialization($response, $this->variables['errors']['vk'])) instanceof _document) { | ||||
|                     // Инициализирован аккаунт ВКонтакте | ||||
|  | ||||
|                     if (($this->variables['account'] = vk::account($this->variables['vk'])) instanceof _document) { | ||||
|                         // Найден аккаунт (существующий) | ||||
|  | ||||
|                         if (session::connect($this->variables['session'], $this->variables['account'], $this->variables['errors']['session'])) { | ||||
|                             // Связана сессия с аккаунтом | ||||
|                         } | ||||
|                     } else if (($this->variables['account'] = account::create($this->variables['errors']['account'])) instanceof _document) { | ||||
|                         // Найден аккаунт (создан новый) | ||||
|  | ||||
|                         if (session::connect($this->variables['session'], $this->variables['account'], $this->variables['errors']['session'])) { | ||||
|                             // Связана сессия с аккаунтом | ||||
|  | ||||
|                             if (account::connect($this->variables['account'], $this->variables['vk'], $this->variables['errors']['account'])) { | ||||
|                                 // Связан аккаунт с аккаунтом ВКонтакте | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|  | ||||
|                     // Инициализация робота для аккаунта ВКонтакте | ||||
|                     $this->vk = api::init()->user(key: $this->variables['vk']->access['key']); | ||||
|  | ||||
|                     if ($this->variables['vk'] instanceof _document) { | ||||
|                         // Инициализирован робот для аккаунта ВКонтакте | ||||
|  | ||||
|                         // Инициализация данных аккаунта ВКонтакте | ||||
|                         $data = vk::parse($this->vk, $this->variables['errors']['vk']); | ||||
|                         var_dump($data); die; | ||||
|  | ||||
|                         if ($data instanceof stdClass) { | ||||
|                             // Получены данные ВКонтакте | ||||
|  | ||||
|                             // Запись в базу данных | ||||
|                             vk::update($this->variables['vk'], $data, $this->variables['errors']['vk']); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         // Генерация представления | ||||
|         return $this->view->render(DIRECTORY_SEPARATOR . 'account' . DIRECTORY_SEPARATOR . 'vk.html', $this->variables); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Генерация панели аккаунта | ||||
|      * | ||||
|      * @param array $parameters Параметры запроса | ||||
|      */ | ||||
|     public function panel(array $parameters = []): ?string | ||||
|     { | ||||
|         // Генерация представления | ||||
|         return $this->view->render(DIRECTORY_SEPARATOR . 'account' . DIRECTORY_SEPARATOR . 'panel.html', $this->variables); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -61,7 +61,7 @@ class core extends controller | ||||
|         $expires = time() + 604800; | ||||
|  | ||||
|         // Инициализация сессии (без журналирования) | ||||
|         $this->variables['session'] = session::initialization($_COOKIE["session"] ?? null, $expires) ?? header('Location: https://mirzaev.sexy/error?code=500&text=Не+удалось+инициализировать+сессию'); | ||||
|         $this->variables['session'] = new session($_COOKIE["session"] ?? null, $expires) ?? header('Location: https://mirzaev.sexy/error?code=500&text=Не+удалось+инициализировать+сессию'); | ||||
|  | ||||
|         if ($_COOKIE["session"] ?? null !== $this->variables['session']->hash) { | ||||
|             // Изменился хеш сессии (подразумевается, что сессия устарела) | ||||
| @@ -78,7 +78,7 @@ class core extends controller | ||||
|         } | ||||
|  | ||||
|         // Инициализация аккаунта (без журналирования) | ||||
|         $this->variables['account'] = session::account($this->variables['session']); | ||||
|         $this->variables['account'] = $this->variables['session']->account(); | ||||
|  | ||||
|         if ($this->variables['account'] instanceof _document) { | ||||
|             // Инициализирован аккаунт | ||||
|   | ||||
| @@ -1,44 +1,44 @@ | ||||
| <?php | ||||
|  | ||||
| declare(strict_types=1); | ||||
|  | ||||
| namespace mirzaev\site\account\controllers; | ||||
|  | ||||
| // Файлы проекта | ||||
| use mirzaev\site\account\controllers\core; | ||||
|  | ||||
| /** | ||||
|  * Контроллер ошибок | ||||
|  * | ||||
|  * @package mirzaev\site\account\controllers | ||||
|  * @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy> | ||||
|  */ | ||||
| final class error_controller extends core | ||||
| { | ||||
|     /** | ||||
|      * Страница с ошибкой | ||||
|      * | ||||
|      * @param array $parameters | ||||
|      */ | ||||
|     public function index(array $parameters = []): ?string | ||||
|     { | ||||
|         // Запись текста ошибки в переменную окружения | ||||
|         $this->variables['text'] = $parameters['text'] ?? null; | ||||
|  | ||||
|         if (isset($parameters['code'])) { | ||||
|             // Получен код ошибки | ||||
|  | ||||
|             // Запись кода ошибки в переменную окружения | ||||
|             $this->variables['code'] = $parameters['code']; | ||||
|  | ||||
|             // Запись кода ответа | ||||
|             http_response_code($parameters['code']); | ||||
|  | ||||
|             // Генерация представления | ||||
|             return $this->view->render(DIRECTORY_SEPARATOR . 'errors' . DIRECTORY_SEPARATOR . 'index.html', $this->variables); | ||||
|         } | ||||
|  | ||||
|         // Генерация представления | ||||
|         return $this->view->render(DIRECTORY_SEPARATOR . 'errors' . DIRECTORY_SEPARATOR . ($parameters['code'] ?? 'index') . '.html', $this->variables); | ||||
|     } | ||||
| } | ||||
| <?php | ||||
|  | ||||
| declare(strict_types=1); | ||||
|  | ||||
| namespace mirzaev\site\account\controllers; | ||||
|  | ||||
| // Файлы проекта | ||||
| use mirzaev\site\account\controllers\core; | ||||
|  | ||||
| /** | ||||
|  * Контроллер ошибок | ||||
|  * | ||||
|  * @package mirzaev\site\account\controllers | ||||
|  * @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy> | ||||
|  */ | ||||
| final class error_controller extends core | ||||
| { | ||||
|     /** | ||||
|      * Страница с ошибкой | ||||
|      * | ||||
|      * @param array $parameters | ||||
|      */ | ||||
|     public function index(array $parameters = []): ?string | ||||
|     { | ||||
|         // Запись текста ошибки в переменную окружения | ||||
|         $this->variables['text'] = $parameters['text'] ?? null; | ||||
|  | ||||
|         if (isset($parameters['code'])) { | ||||
|             // Получен код ошибки | ||||
|  | ||||
|             // Запись кода ошибки в переменную окружения | ||||
|             $this->variables['code'] = $parameters['code']; | ||||
|  | ||||
|             // Запись кода ответа | ||||
|             http_response_code($parameters['code']); | ||||
|  | ||||
|             // Генерация представления | ||||
|             return $this->view->render(DIRECTORY_SEPARATOR . 'errors' . DIRECTORY_SEPARATOR . 'index.html', $this->variables); | ||||
|         } | ||||
|  | ||||
|         // Генерация представления | ||||
|         return $this->view->render(DIRECTORY_SEPARATOR . 'errors' . DIRECTORY_SEPARATOR . ($parameters['code'] ?? 'index') . '.html', $this->variables); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -1,59 +1,59 @@ | ||||
| <?php | ||||
|  | ||||
| declare(strict_types=1); | ||||
|  | ||||
| namespace mirzaev\site\account\controllers; | ||||
|  | ||||
| // Файлы проекта | ||||
| use mirzaev\site\account\controllers\core; | ||||
|  | ||||
| /** | ||||
|  * Контроллер графика | ||||
|  * | ||||
|  * @package mirzaev\site\account\controllers | ||||
|  * @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy> | ||||
|  */ | ||||
| final class graph_controller extends core | ||||
| { | ||||
|     /** | ||||
|      * Страница с графиком | ||||
|      * | ||||
|      * Можно использовать совместно с элементом <iframe> для изоляции | ||||
|      * содержимого бегущей строки от поисковых роботов | ||||
|      * | ||||
|      * @param array $parameters | ||||
|      */ | ||||
|     public function index(array $parameters = []): ?string | ||||
|     { | ||||
|         // Инициализация элементов для генерации в головном элементе | ||||
|         $this->variables['head'] = [ | ||||
|             'title' => 'Бегущая строка', | ||||
|             'metas' => [ | ||||
|                 [ | ||||
|                     'attributes' => [ | ||||
|                         'name' => 'robots', | ||||
|                         'content' => 'nofollow' | ||||
|                     ] | ||||
|                 ] | ||||
|             ] | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация бегущей строки | ||||
|         $this->variables['graph'] = [ | ||||
|             'id' => $this->variables['request']['id'] ?? 'graph' | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация аттрибутов бегущей строки | ||||
|         $this->variables['graph']['attributes'] = [ | ||||
|  | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация элементов бегущей строки | ||||
|         $this->variables['graph']['elements'] = [ | ||||
|         ]; | ||||
|  | ||||
|         // Генерация представления | ||||
|         return $this->view->render(DIRECTORY_SEPARATOR . 'graph' . DIRECTORY_SEPARATOR . 'index.html', $this->variables); | ||||
|     } | ||||
|  | ||||
| } | ||||
| <?php | ||||
|  | ||||
| declare(strict_types=1); | ||||
|  | ||||
| namespace mirzaev\site\account\controllers; | ||||
|  | ||||
| // Файлы проекта | ||||
| use mirzaev\site\account\controllers\core; | ||||
|  | ||||
| /** | ||||
|  * Контроллер графика | ||||
|  * | ||||
|  * @package mirzaev\site\account\controllers | ||||
|  * @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy> | ||||
|  */ | ||||
| final class graph_controller extends core | ||||
| { | ||||
|     /** | ||||
|      * Страница с графиком | ||||
|      * | ||||
|      * Можно использовать совместно с элементом <iframe> для изоляции | ||||
|      * содержимого бегущей строки от поисковых роботов | ||||
|      * | ||||
|      * @param array $parameters | ||||
|      */ | ||||
|     public function index(array $parameters = []): ?string | ||||
|     { | ||||
|         // Инициализация элементов для генерации в головном элементе | ||||
|         $this->variables['head'] = [ | ||||
|             'title' => 'Бегущая строка', | ||||
|             'metas' => [ | ||||
|                 [ | ||||
|                     'attributes' => [ | ||||
|                         'name' => 'robots', | ||||
|                         'content' => 'nofollow' | ||||
|                     ] | ||||
|                 ] | ||||
|             ] | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация бегущей строки | ||||
|         $this->variables['graph'] = [ | ||||
|             'id' => $this->variables['request']['id'] ?? 'graph' | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация аттрибутов бегущей строки | ||||
|         $this->variables['graph']['attributes'] = [ | ||||
|  | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация элементов бегущей строки | ||||
|         $this->variables['graph']['elements'] = [ | ||||
|         ]; | ||||
|  | ||||
|         // Генерация представления | ||||
|         return $this->view->render(DIRECTORY_SEPARATOR . 'graph' . DIRECTORY_SEPARATOR . 'index.html', $this->variables); | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -1,82 +1,82 @@ | ||||
| <?php | ||||
|  | ||||
| declare(strict_types=1); | ||||
|  | ||||
| namespace mirzaev\site\account\controllers; | ||||
|  | ||||
| // Файлы проекта | ||||
| use mirzaev\site\account\controllers\core; | ||||
|  | ||||
| /** | ||||
|  * Контроллер бегущей строки | ||||
|  * | ||||
|  * @package mirzaev\site\account\controllers | ||||
|  * @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy> | ||||
|  */ | ||||
| final class hotline_controller extends core | ||||
| { | ||||
|     /** | ||||
|      * Страница с бегущей строкой | ||||
|      * | ||||
|      * Можно использовать совместно с элементом <iframe> для изоляции | ||||
|      * содержимого бегущей строки от поисковых роботов | ||||
|      * | ||||
|      * @param array $parameters | ||||
|      */ | ||||
|     public function index(array $parameters = []): ?string | ||||
|     { | ||||
|         // Инициализация элементов для генерации в головном элементе | ||||
|         $this->variables['head'] = [ | ||||
|             'title' => 'Бегущая строка', | ||||
|             'metas' => [ | ||||
|                 [ | ||||
|                     'attributes' => [ | ||||
|                         'name' => 'robots', | ||||
|                         'content' => 'nofollow' | ||||
|                     ] | ||||
|                 ] | ||||
|             ] | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация бегущей строки | ||||
|         $this->variables['hotline'] = [ | ||||
|             'id' => $this->variables['request']['id'] ?? 'hotline' | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация параметров бегущей строки | ||||
|         $this->variables['hotline']['parameters'] = [ | ||||
|             // 'step' => 2 | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация аттрибутов бегущей строки | ||||
|         $this->variables['hotline']['attributes'] = [ | ||||
|  | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация элементов бегущей строки | ||||
|         $this->variables['hotline']['elements'] = [ | ||||
|             ['content' => '1'], | ||||
|             [ | ||||
|                 'tag' => 'article', | ||||
|                 'content' => '2' | ||||
|             ], | ||||
|             ['content' => '3'], | ||||
|             ['content' => '4'], | ||||
|             ['content' => '5'], | ||||
|             ['content' => '6'], | ||||
|             ['content' => '7'], | ||||
|             ['content' => '8'], | ||||
|             ['content' => '9'], | ||||
|             ['content' => '10'], | ||||
|             ['content' => '11'], | ||||
|             ['content' => '12'], | ||||
|             ['content' => '13'], | ||||
|             ['content' => '14'], | ||||
|             ['content' => '15'] | ||||
|         ]; | ||||
|  | ||||
|         // Генерация представления | ||||
|         return $this->view->render(DIRECTORY_SEPARATOR . 'hotline' . DIRECTORY_SEPARATOR . 'index.html', $this->variables); | ||||
|     } | ||||
|  | ||||
| } | ||||
| <?php | ||||
|  | ||||
| declare(strict_types=1); | ||||
|  | ||||
| namespace mirzaev\site\account\controllers; | ||||
|  | ||||
| // Файлы проекта | ||||
| use mirzaev\site\account\controllers\core; | ||||
|  | ||||
| /** | ||||
|  * Контроллер бегущей строки | ||||
|  * | ||||
|  * @package mirzaev\site\account\controllers | ||||
|  * @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy> | ||||
|  */ | ||||
| final class hotline_controller extends core | ||||
| { | ||||
|     /** | ||||
|      * Страница с бегущей строкой | ||||
|      * | ||||
|      * Можно использовать совместно с элементом <iframe> для изоляции | ||||
|      * содержимого бегущей строки от поисковых роботов | ||||
|      * | ||||
|      * @param array $parameters | ||||
|      */ | ||||
|     public function index(array $parameters = []): ?string | ||||
|     { | ||||
|         // Инициализация элементов для генерации в головном элементе | ||||
|         $this->variables['head'] = [ | ||||
|             'title' => 'Бегущая строка', | ||||
|             'metas' => [ | ||||
|                 [ | ||||
|                     'attributes' => [ | ||||
|                         'name' => 'robots', | ||||
|                         'content' => 'nofollow' | ||||
|                     ] | ||||
|                 ] | ||||
|             ] | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация бегущей строки | ||||
|         $this->variables['hotline'] = [ | ||||
|             'id' => $this->variables['request']['id'] ?? 'hotline' | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация параметров бегущей строки | ||||
|         $this->variables['hotline']['parameters'] = [ | ||||
|             // 'step' => 2 | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация аттрибутов бегущей строки | ||||
|         $this->variables['hotline']['attributes'] = [ | ||||
|  | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация элементов бегущей строки | ||||
|         $this->variables['hotline']['elements'] = [ | ||||
|             ['content' => '1'], | ||||
|             [ | ||||
|                 'tag' => 'article', | ||||
|                 'content' => '2' | ||||
|             ], | ||||
|             ['content' => '3'], | ||||
|             ['content' => '4'], | ||||
|             ['content' => '5'], | ||||
|             ['content' => '6'], | ||||
|             ['content' => '7'], | ||||
|             ['content' => '8'], | ||||
|             ['content' => '9'], | ||||
|             ['content' => '10'], | ||||
|             ['content' => '11'], | ||||
|             ['content' => '12'], | ||||
|             ['content' => '13'], | ||||
|             ['content' => '14'], | ||||
|             ['content' => '15'] | ||||
|         ]; | ||||
|  | ||||
|         // Генерация представления | ||||
|         return $this->view->render(DIRECTORY_SEPARATOR . 'hotline' . DIRECTORY_SEPARATOR . 'index.html', $this->variables); | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -1,85 +1,80 @@ | ||||
| <?php | ||||
|  | ||||
| declare(strict_types=1); | ||||
|  | ||||
| namespace mirzaev\site\account\controllers; | ||||
|  | ||||
| // Файлы проекта | ||||
| use mirzaev\site\account\controllers\core; | ||||
|  | ||||
| /** | ||||
|  * Контроллер основной страницы | ||||
|  * | ||||
|  * @package mirzaev\site\account\controllers | ||||
|  * @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy> | ||||
|  */ | ||||
| final class index_controller extends core | ||||
| { | ||||
|     /** | ||||
|      * Главная страница | ||||
|      * | ||||
|      * @param array $parameters Параметры запроса | ||||
|      */ | ||||
|     public function index(array $parameters = []): ?string | ||||
|     { | ||||
|         // Инициализация загружаемых категорий | ||||
|         $this->variables['include'] = [ | ||||
|             'head' => ['self'], | ||||
|             'body' => ['self'] | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация бегущей строки | ||||
|         $this->variables['hotline'] = [ | ||||
|             'id' => $this->variables['request']['id'] ?? 'hotline' | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация параметров бегущей строки | ||||
|         $this->variables['hotline']['parameters'] = [ | ||||
|             // 'step' => 2 | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация аттрибутов бегущей строки | ||||
|         $this->variables['hotline']['attributes'] = [ | ||||
|  | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация элементов бегущей строки | ||||
|         $this->variables['hotline']['elements'] = [ | ||||
|             ['content' => '1'], | ||||
|             [ | ||||
|                 'tag' => 'article', | ||||
|                 'content' => '2' | ||||
|             ], | ||||
|             ['content' => '3'], | ||||
|             ['content' => '4'], | ||||
|             ['content' => '5'], | ||||
|             ['content' => '6'], | ||||
|             ['content' => '7'], | ||||
|             ['content' => '8'], | ||||
|             ['content' => '9'], | ||||
|             ['content' => '10'], | ||||
|             ['content' => '11'], | ||||
|             ['content' => '12'], | ||||
|             ['content' => '13'], | ||||
|             ['content' => '14'], | ||||
|             ['content' => '15'] | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация бегущей строки | ||||
|         $this->variables['graph'] = [ | ||||
|             'id' => $this->variables['request']['id'] ?? 'graph' | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация аттрибутов бегущей строки | ||||
|         $this->variables['graph']['attributes'] = [ | ||||
|  | ||||
|         ]; | ||||
|  | ||||
|         // Инициализация элементов бегущей строки | ||||
|         $this->variables['graph']['elements'] = [ | ||||
|         ]; | ||||
|  | ||||
|         // Генерация представления | ||||
|         return $this->view->render(DIRECTORY_SEPARATOR . 'index.html', $this->variables); | ||||
|     } | ||||
| } | ||||
| <?php | ||||
|  | ||||
| declare(strict_types=1); | ||||
|  | ||||
| namespace mirzaev\site\account\controllers; | ||||
|  | ||||
| // Файлы проекта | ||||
| use mirzaev\site\account\controllers\core; | ||||
|  | ||||
| /** | ||||
|  * Контроллер основной страницы | ||||
|  * | ||||
|  * @package mirzaev\site\account\controllers | ||||
|  * @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy> | ||||
|  */ | ||||
| final class index_controller extends core | ||||
| { | ||||
|   /** | ||||
|    * Главная страница | ||||
|    * | ||||
|    * @param array $parameters Параметры запроса | ||||
|    */ | ||||
|   public function index(array $parameters = []): ?string | ||||
|   { | ||||
|     // Инициализация загружаемых категорий | ||||
|     $this->variables['include'] = [ | ||||
|       'head' => ['self'], | ||||
|       'body' => ['self'] | ||||
|     ]; | ||||
|  | ||||
|     // Инициализация бегущей строки | ||||
|     $this->variables['hotline'] = [ | ||||
|       'id' => $this->variables['request']['id'] ?? 'hotline' | ||||
|     ]; | ||||
|  | ||||
|     // Инициализация параметров бегущей строки | ||||
|     $this->variables['hotline']['parameters'] = [ | ||||
|       // 'step' => 2 | ||||
|     ]; | ||||
|  | ||||
|     // Инициализация аттрибутов бегущей строки | ||||
|     $this->variables['hotline']['attributes'] = []; | ||||
|  | ||||
|     // Инициализация элементов бегущей строки | ||||
|     $this->variables['hotline']['elements'] = [ | ||||
|       ['content' => '1'], | ||||
|       [ | ||||
|         'tag' => 'article', | ||||
|         'content' => '2' | ||||
|       ], | ||||
|       ['content' => '3'], | ||||
|       ['content' => '4'], | ||||
|       ['content' => '5'], | ||||
|       ['content' => '6'], | ||||
|       ['content' => '7'], | ||||
|       ['content' => '8'], | ||||
|       ['content' => '9'], | ||||
|       ['content' => '10'], | ||||
|       ['content' => '11'], | ||||
|       ['content' => '12'], | ||||
|       ['content' => '13'], | ||||
|       ['content' => '14'], | ||||
|       ['content' => '15'] | ||||
|     ]; | ||||
|  | ||||
|     // Инициализация бегущей строки | ||||
|     $this->variables['graph'] = [ | ||||
|       'id' => $this->variables['request']['id'] ?? 'graph' | ||||
|     ]; | ||||
|  | ||||
|     // Инициализация аттрибутов бегущей строки | ||||
|     $this->variables['graph']['attributes'] = []; | ||||
|  | ||||
|     // Инициализация элементов бегущей строки | ||||
|     $this->variables['graph']['elements'] = []; | ||||
|  | ||||
|     // Генерация представления | ||||
|     return $this->view->render(DIRECTORY_SEPARATOR . 'index.html', $this->variables); | ||||
|   } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user