/OxfordTest

Oxford personality test

Primary LanguagePHPApache License 2.0Apache-2.0

Модуль для проведения оксфордского теста личности.

Принцип действия.


После захода по ссылке you_domain.com/index.php?r=OxfordTest модуль спросит имя, фамилию и возраст у пользователя. Данные необходимы для аутентификации пользователя. Дальше предложит 200 вопросов по одному за раз. При ответах на вопросы пользователю не придется наблюдать перезагрузку страницы, ибо вопросы подгружаются Аяксом. После ответа на все вопросы, пользователю будет предложено дождаться ответа администратора о результатах теста.


Администратор с дефолтными данными admin/admin/0 после аутентификации улетит на you_domain.com/index.php?r=OxfordTest/admin, где сможет просматривать список пользователей, % ответов на вопросы и если на все вопросы ответы даны, то дату этого знаменательного события. Напротив каждого пользователя есть кнопочка, нажав на которую можно просмотреть все данные пользователем ответы и когда он на них ответил. На странице с ответами, если ответы даны все появляется кнопочка с отправкой ответов на анализ и получения баттхерта от ошибки http: named cookie not present. Гугление показало, что ошибка со стороны сервера. На написание логики анализа ответа в модуле не хватило времени.

Структура модуля:

OxfordTest/ - Папка модуля
    controllers - Контроллеры модуля
        UserController.php - Основной контроллер
    models/ - Папка модели
        Answers.php - Модель ответов на вопросы
        Questions.php - Модель вопросов
        UserForm.php - Модель для работы с пользователями
        Users.php - Вспомогательная модель для аутентификации пользователей
    modules/ - Субмодули
        admin/ - Папка субмодуля админки
            controllers/ - Контроллеры субмодуля админки
                AdminController.php - Главный контроллер админки
            views/ - Виды админки
                answers.php - Вид списка ответов конкретного пользователя
                main.php - Вид списка всех пользователей
            Module.php - Субмодуль админки
    views/ - Виды модуля
        user/ - Основные виды модуля
            main.php - Форма авторизации и регистрации пользователей
            questions.php - Вид вывода вопросов
    Module.php - Файл модуля
    README.md - Этот файл

После распаковки модуля необходимо поправить конфиг config/web.php:
Включение модуля:


'modules' => [
    'OxfordTest' => [
        'class' => 'app\modules\OxfordTest\Module',
    ],
],

Перенаправление логинации на модуль:

'components' => [
    'user' => [
        //'identityClass' => 'app\models\User',
        'identityClass' => 'app\modules\OxfordTest\models\Users',
        'enableAutoLogin' => true,
        'loginUrl' => 'index.php?r=OxfordTest',
    ],

Включение authManager:

'components' => [
    'authManager' => [
        'class' => 'yii\rbac\DbManager',
    ],

Правки конфига config/console.php:

'components' => [
    'authManager' => [
        'class' => 'yii\rbac\DbManager',
    ],

После правки конфигов перенести из папки migrations файлы в app/migrations и выполнить команды:


yii migrate --migrationPath=@yii/rbac/migrations
yii migrate

После этих действий модуль готов к работе.
Все вопросы и пожелания на e-mail.