-
git clone https://github.com/andymab/treeentitles you-domain
-
cd you-domain/
-
cp ./.conf.example.php ./.conf.php
-
Создать базу данных в MySql
-
Прописать в .conf.php имя базы данных, пользователя, пароль
-
php -S localhost:8000 server.php ( команда выполняется если у Вас не запущен свой сервер )
-
Перейти в браузере по адресу http://localhost:8000/setup.php ( создаст необходимые таблицы и пользователей ) в случае успеха перекинет на главную, в данном конкретном случае на http://localhost:8000
-
После чего можно работать по назначению, пароли пользователя и администратора смотри ниже
Основой проекта является MVC написанная мной ранее Основной принцип работы ее следующий index.php: исполняет роль route и инициализации
- подгружаем установки конфигурации
- Определяем и загружаем autoloader классов
- Начинаем инициализировать запрашиваемый контроллер и его методы класс Controller
- Инициализируем работу с сессиями класс Session
- Инициализируем доступ к контроллеру и его методам класс Access
- Инициализируем представление класс View
- Осуществляем проверку доступности и доступа к контроллеру и его методам, в случае доступности и доступа обращаемся к нужному контроллеру и его методу.
- Полученный результат выводим в класс View (представление)
- Титульная страница (доступна всем) (/)
- Войти (/login) / Выйти (/outLogin) для пользователя или администратора
Пользователь:
- login: [email protected]
- password: user
Администратор:
- login: [email protected]
- password: admin
- Страница пользователя /userDashboard
- Страница администратора /adminDashboard
- для просмотра пользователями
- для администратора
- Вход на страницу администрирования осуществляется только авторизованными пользователями по логину и паролю. Логин и пароль хранятся в базе данных, причем пароль – в зашифрованном виде.
- В случае успешной авторизации, администратор допускается до редактирования «структуры данных». «Структура данных» представляет из себя дерево объектов, состоящих из двух полей:
- название,
- описание.
- Каждый объект может являться потомком другого объекта и быть родителем других объектов. При этом родитель у объекта только один, а потомков неограниченное множество. Глубина дерева не ограничена. Объекты, не имеющие родителей, являются корневыми. Объекты хранятся в базе данных.
- Администратор видит текущее состояние «структуры данных», при этом визуально обозначена иерархия объектов в дереве (например, количеством отступов слева в зависимости от уровня вложенности объекта).
С помощью находящихся на странице форм администратор имеет возможность:
- добавлять объект на любой уровень дерева;
- удалять любой объект, при этом если у удаляемого объекта имеются потомки, то они также удаляются;
- редактировать любой объект, изменяя его название, описание или родителя. Все произведенные изменения сохраняются в базе данных.
- Нажав на соответствующую кнопку, администратор может разлогиниться, покинув страницу администрирования.
- Страница открыта для всех и на ней в виде дерева отображается «структура данных», заведенная администратором на странице администрирования. Иерархия объектов отображается визуально, при этом показаны только названия объектов.
- По умолчанию отображаются только корневые объекты. Если у какого-то из объектов имеются потомки, то справа от его названия отображается иконка (например, плюс), при нажатии на которую показываются потомки первого уровня данного объекта. Если у какого-то из потомков первого уровня в свою очередь имеются потомки, то они также отображаются только после нажатия на иконку справа от названия их родителя. Это правило действует для объектов любого уровня.
- При нажатии на название объекта в отдельном блоке на странице (например, справа от дерева) отображается его описание. Если описания нет, то блок отображается пустым.
- Реализация задания на PHP 5, JavaScript, HTML (приветствуется использование HTML5 и CSS3). В качестве базы данных используется MySQL.
- Задание необходимо выполнить без применения фреймворков (как PHP, так и JavaScript, то есть использовать jQuery не нужно) и использования стороннего кода.
- JavaScript и стили, используемые на странице, должны быть кроссбраузерными: Chrome, Firefox, Opera, Safari.
- Внедрение системы валидации введенных данных не обязательно, защита «от дурака» и от взлома не требуется, однако, безусловно, будет приветствоваться.
- Требования к стилистическому оформлению страниц минимальные, необходима лишь понятность интерфейса.
- Ориентировочный срок выполнения задания указан в письме. Если Вам потребуется больше времени, пожалуйста, заранее сообщите ответным письмом на электронный адрес.
- Данное задание составлено для определения уровня Ваших знаний: если Вы не сможете реализовать какую-то его часть, то можете ее упростить или не выполнять (например, не сделать систему авторизации администратора). В таком случае, пожалуйста, сообщите, с чем именно у Вас возникли проблемы.