Как создать Admin-панель для сайта
В прошлой статье мы с Вами разбирали создание собственного движка для сайта. Однако, очень часто приходится управлять сайтом: добавлять новые материалы, управлять пользователями, голосованиями. Безусловно, это можно делать через PHPMyAdmin, но это весьма неудобно, поэтому хорошим решением будет - создать Admin-панель для сайта. И как это сделать, Вы узнаете в этой статье.
Итак, давайте вновь распишу порядок действий, которые необходимо выполнить:
- Сверстайте все страницы сайта. В принципе, Вы вообще можете обойтись без дизайна, но элементарная структура должна быть. То есть табличные данные должны быть в таблице, а не сплошным текстом.
- Примите решение о том, какие данные Вы хотите видеть в Admin-панели. Например, наверняка Вам потребуется видеть пользователей Вашего сайта, Ваши статьи, может быть, какие-нибудь опросы.
- Создайте класс для управления Admin-панелью. Здесь должны быть созданы методы, которые позволяют делать выборку из самых разных таблиц, а также добавлять и редактировать записи в них. И сделать подобные методы нужно для всех таблиц, с которыми Вы хотите работать в Admin-панели (Вы уже должны были выбрать это в предыдущем пункте). Например, самый простой пример с пользователями. Минимальный набор требуемых методов: выборка всех пользователей, добавление нового пользователя, изменение пользователя. Безусловно, все эти задачи должны быть Вами уже реализованы при создании движка для сайта, поэтому здесь Вам надо будет только обратиться к старым классам и, возможно, как-то изменить данные конкретно для Admin-панели.
- Разбейте Ваш шаблон сайта на отдельные части и скопируйте их в отдельные файлы с расширением tpl. Также поставьте элементы шаблона, например, так: "Пользователь {username} зарегистрировался {regdate}". Это всего лишь пример, а данные, вообще говоря, удобнее выводить в таблицах.
- Создайте класс, который будет заниматься подстановкой вместо элементов шаблона соответствующие данные.
- Собирайте по кирпичикам все страницы Admin-панели Вашего сайта с помощью созданного в предыдущем пункте класса.
- При желании можете сделать дизайн, хотя, безусловно, это исключительно для Вас и других администраторов.
Как видите, последние 4 пункта идентичны тем, которые Вы выполняли при создании движка. Здесь объём работы будет значительно меньше, поэтому, думаю, Вы с этим без проблем справитесь.
Я где-то три месяца сидел на своём сайте без Admin-панели, добавляя новые материалы напрямую через базу данных. Скажу честно, тратил много лишнего времени, а когда создал Admin-панель на своём сайте, то процесс управления сайтом значительно упростился. Так что рекомендую Вам сделать то же самое.
Пример создания Admin-панели Вы найдёте в этом обучающем курсе: http://srs.myrusakov.ru/im
-
- Михаил Русаков
Комментарии (15):
"Я где-то три месяца сидел на своём сайте без Admin-панели, добавляя новые материалы напрямую через базу данных. Скажу честно, тратил много лишнего времени, а когда создал Admin-панель на своём сайте, то процесс управления сайтом значительно упростился. Так что рекомендую Вам сделать то же самое." И мне тоже мучить добавляя новые материалы, как это вы сделал "напрямую через базу данных" я сам не знаю? И еще когда вы создал админ-панель на своей сайт? да хочу управления сайт упростился, как это сделать? Я выучил твой видеоуроки html css я сам все понял. Но мне интересую как создать админ-панель самое главное мне удобно добавляя новые материалы. У вас есть этот видеоурок этот? Мне нужно без joomla я знаю это готовый это мне не интересно, мне интересне с нуля.
Ответить
Чтобы создать admin-панель, HTML и CSS недостаточно. Изучайте PHP и MySQL. Когда будете знать на достаточно хорошем уровне, то вопрос сразу же отпадёт.
Ответить
Михайл Русаков, большое спасибо за совет. Хорошо постараюсь зучай РНР и MySQL.
Ответить
Здравствуйте. Для админки я сделал 2 страницы: 1)Страница с формой входа. 2)Сама админка. Так же в скрипте есть функция проверки введённых данных. Если данные введены верно,как направить пользователя на страницу админки? И,если пользователь в строку урл сразу ввёл адрес админки, как направить его на страницу с формой входа? Или подскажите как реализуется доступ в админку.
Ответить
Если пользователь правильно ввёл данные, то делается редирект на админку. Если пользователь просто зашёл в админку, а он не авторизован (не содержит правильных данных в сессии или cookie), то делается редирект на форму авторизации.
Ответить
Редирект я делал так: <?php $url='нужный адрес'; header(location:$url); ?> Ничего не получилось, выдаёт ошибку.
Ответить
header("Location: $url");
Ответить
Здравствуйте, Максим. Можно сделать проще. Написать функцию по redirect. Подключить модуль и пользоваться по всему сайту как вам удобно. <?php function redirect_php($url,$timer=0) { echo '<meta http-equiv="refresh" content="'.$timer.'; url='.$url.'">'; } ?>
Ответить
Здравствуйте, Михаил! А скажите, если мне надо сделать редирект, то после слова Location: $url - эту переменную надо обрабатывать как то - то есть надо подключать к скрипту как - то или редирект работает как отдельная строка и не зависит от скрипта?
Ответить
Можно сразу вписать строку, можно задать как переменную заранее.
Ответить
Михаил, здравствуйте, а как пользоваться вашим шаблонизатором, я если честно не понял. Сделал по вашему уроку.
Ответить
Михаил, а зачем именно в tpl файлы? Оьясните пожалуйста, я просто новечек в этом) Сделайте пожалуйста видеоурок, буду очень благодарен. Заранее спасибо)
Ответить
Как правило,когда шаблон прописан не в коде PHP,а используется какой-либо шаблонизатор,то это в разы удобнее при редактировании.Чтобы не было каши. Поэтому именно в отдельных файлах вида .tpl
Ответить
Здравствуйте Михаил. У меня вопрос относительно надежности подобного типа авторизации, она предназначена только для 1 пользователя. Надежно ли подобное: <?php session_start (); $admin_log = "--"; $admin_pass = "--"; $check_admin_log = htmlspecialchars($_POST["admin_log"], ENT_XHTML | ENT_QUOTES); $check_admin_pass = htmlspecialchars($_POST["admin_pass"], ENT_XHTML | ENT_QUOTES); $check_admin_pass = md5($check_admin_pass); if ( $_SESSION["admin_log"] != "$admin_log" || $_SESSION["admin_pass"] != "$admin_pass" ) { if ( $check_admin_log != "$admin_log" || $check_admin_pass != "$admin_pass" ) { require_once "blocks/auth_block.php"; exit; } $_SESSION["admin_log"] = $check_admin_log; $_SESSION["admin_pass"] = $check_admin_pass; } ?> Заранее спасибо
Ответить
Есть уже универсальные решения для управления сайтом. Nest Admin, SiteCake. nestpanel.github.io http://sitecake.com
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.