Приветствую дорогой читатель! Мы закончили разработку базовых возможностей нашего блога, много конечно еще не доделано, но все что мы не доделали, будут вписано в цикл статей под названием "улучшение нашей CMS". Сейчас же хочу поделится планами, касающийся разработки нашей админ панели. Что у нас реализовано в пользовательской части нашей cms?


Для начало думаю достаточно. После реализации этого будем думать о улучшениях всего нами написанного...
А сейчас же предлагаю приступить к реализации нашей первой возможности. В этой статье мы создадим нужные нам папки, добавим пару файлов, и введем простую форму, пока что без bb кодов, для добавление постов в базу данных.
Для начало советую создать нужные нам папки.. Админка будет находится в папке admin. В этой папке создайте следующие каталоги:
В папку admin/templates нужно скопировать из папки templates наш style.css... Для примера будем использовать стили из нашей пользовательской части...
Наша админка должна как то выглядеть, дизайн измудрять не будем, и воспользуемся нашим index.html, вот его переделанный код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title><?=$header_title?></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta name="description" content="<?=$header_metaD?>">
<meta name="keywords" content="<?=$header_metaK?>">
<link rel="stylesheet" type="text/css" href="/templates/style.css">
</head>
<body>
<table width="800px" height="750px" cellpadding="0" cellspacing="0" border="0" align="center">
<tr>
<td height="60px" valign="top">
<!--ЛОГО-->
<div class="logo"><div class="logoP">
<p style="padding:3px;">Добро пожаловать в админ панель</p>
</div></div>
<!--ЛОГО-->
</td>
</tr>
<tr>
<td valign="top" align="center"><br>
<!--ТЕКСТ-->
<?=$txt?>
<!--ТЕКСТ-->
</td>
</tr>
</table>
</body>
</html>
По сути это все тот же index.html из нашей пользовательской части, за одним маленьким исключением, удалил часть отвечающую за вывод меню... Сохранил я этот файл в папку шаблонов admin/templates.
Прежде чем приступить к выводу главной странице админки, хочу описать ее. Она будет выглядеть как большое меню...То есть по середине экрана мы увидим много всяких разных кнопочек. Так вот при запуске главной странице мы увидим такое большое меню, вот для начало давайте создадим шаблон с этим меню.
<table width="600px" cellpadding="0" cellspacing="0" border="0" align="center">
<tr>
<td width="100px" height="100px" valign="top" align="center"><a href="/index.php?page=add_content"><img src="img/add_content.jpg" border="0px"></a></td>
<td width="100px" height="100px" valign="top" align="center"> </td>
<td width="100px" height="100px" valign="top" align="center"> </td>
<td width="100px" height="100px" valign="top" align="center"> </td>
<td width="100px" height="100px" valign="top" align="center"> </td>
<td width="100px" height="100px" valign="top" align="center"> </td>
</tr>
</table>
Обычная таблица с шестью ячейками.. В одной из них я разместил ссылку на первую нашу возможность, ну то есть по этому адресу будет находится форма для добавление постов. Ссылка изображена в виде графической кнопки, вот ссылка на кнопку: Кнопка
Лежать изображение должно в папке img, называться add_content.jpg
Полученный html файл я назвал menu.html и поместил в папку шаблонов
Пришло время поговорить о файле index.php. Для начала давайте подумаем, что будет в нем? Первым делом в этом файле понадобится написать подключение к базе данных. Далее нам нужно будет подключить главный шаблон index.html. Так как наш шаблон не содержит никакой информации, нужно будет создать и подключить модуль, который с генерирует меню и выведет на экран. Ну и забегая вперед, в этом файле будет так же подключаться модуль, отвечающий за появление формы для добавление постов в базу данных. Как Вы догадались, нам нужно написать два модуля и шаблон с формой. Начнем с модуля, который с генерирует нам меню. Код выйдет не большой, нам всего лишь необходимо подключить шаблон и вывести его в переменную, вот код с комментариями:
<?
function menu()
{
$sm_read = file("templates/menu.html");//...подключаем шаблон
$sm_read = implode("",$sm_read);//функция file() возвращаем массив, поэтому склеиваем его
return $sm_read;//Выводим с генерированный html код
}
?>
Назвал модуль menu.php и сохранил в папку с модулями
Далее считаю необходимым создать шаблон для формы. Ну то есть саму форму 
<table width="600px" cellpadding="0" cellspacing="0" border="0" align="center">
<tr>
<td width="100px" height="100px" valign="top" align="center">
<form action="index.php?page=add_content" method="post" name="form">
<br>
<input style="width:600px;" name="name_post" type="text" value="Название статьи">
<br>
<textarea style="width:600px;height:600px;" name="txt_post" rows="10">Введите текст*</textarea>
<input style="width:600px;" name="author_post" type="text" value="Автор*">
<br>
<br><br><input type="submit" value="Добавить пост">
</form>
</td>
</tr>
</table>
Тут ничего сложного нет, три поля:
Ну и собственно кнопка для отправки. Обратите внимание на ссылку обработчика - index.php?page=add_content. Полученный файл я назвал addcontent.html и поместил в папку с шаблонами.
Так... Создадим модуль который будет выводить форму, вот код с комментариями:
<?
function addcontent()
{
$sm_read = file("templates/addcontent.html");//...подключаем шаблон
$sm_read = implode("",$sm_read);//функция file() возвращаем массив, поэтому склеиваем его
return $sm_read;//Выводим с генерированный html код
}
?>
Тут тоже ничего экстраординарного
Назвал этот модуль addcontent.php и поместил в папку с модулями moduls
Ну что ж.. Все файлы, которые нам сейчас нужны, созданы. Пришло время их объединить в один:
<?
//ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ (БД)
$nameDB = "blog";//Название БД
$nameSERVER = "localhost";//Сервер
$nameUSER = "root";//Имя пользователя БД
$passUSER = "";//Пароль пользователя БД
mysql_select_db($nameDB, mysql_connect($nameSERVER,$nameUSER,$passUSER));
//ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ (БД)
$header_title = "Админ панель";
$header_metaD = "Описание страницы";
$header_metaK = "Ключевые слова страницы";
if($_GET['page'])$page = $_GET['page']; else $page = "index";//Определяем страницу которая открыта.
//Если переменная не существует значит открыта главная страница
//ГЛАВНОЕ МЕНЮ АДМИНКИ
if($page == "index")//Главная страница
{
include("moduls/menu.php");//Подключаем модуль
$txt = menu();//Помещаем с генерированный код в переменную
}
//ГЛАВНОЕ МЕНЮ АДМИНКИ
//ДОБАВЛЕНИЕ КОНТЕНТА
if($page == "add_content")//Если открыта страница добавление постов
{
include("moduls/addcontent.php");//Подключаем модуль
$txt = addcontent();//Выводим с генерированный код в переменную
}
//ДОБАВЛЕНИЕ КОНТЕНТА
include("templates/index.html");//Выводим главный шаблон на экран
?>
Назвал файл index.php и поместил в папку admin.
Если сейчас запустить полученный файл ( я про index.php
) Вы увидите главную страницу с кнопкой "Добавить материал". Щелкнув по этой кнопке, Вы попадете на страницу с формой.
Думаю не плохо для начала, не так ли?
А теперь давайте организуем обработчик, который запишет в базу данных информацию, посланную из формы, обработчик будем писать в модуле addcontent.php перед функцией addcontent():
//Объявляем переменные, если форма была заполнена и отправленна
if($_POST['name_post'])$name_post = $_POST['name_post'];
if($_POST['txt_post'])$txt_post = $_POST['txt_post'];
if($_POST['author_post'])$author_post = $_POST['author_post'];
//Объявляем переменные, если форма была заполнена и отправленна
if($name_post & $txt_post & $author_post)//Если существуют посланные данные...
{//...то
$date_day = date("d");//Определяем день
$date_month = date("m");//Определяем месяц
$date_year = date("Y");//Определяем год
$date_time = date("H:i");//Определяем часы и минуты
$date_cont = $date_day."/".$date_month."/".$date_year." ".$date_time;//Склеим все переменные в одну
//получим дату для записи в формате день/месяц/год часы:минуты
//Заменяем html код на аналог
$name_post = htmlspecialchars($name_post);
$txt_post = htmlspecialchars($txt_post);
$author_post = htmlspecialchars($author_post);
//Избавляемся от кавычки
$name_post = str_replace("'","'",$name_post);
$txt_post = str_replace("'","'",$txt_post);
$author_post = str_replace("'","'",$author_post);
$txt_post = str_replace("\n","<BR>",$txt_post);//Заменяем переносы строки на тег <BR>
//ДОБАВЛЯЕМ ПОСТ В БАЗУ ДАННЫХ
$result_add_cont = mysql_query ("INSERT INTO blog (text,title,author,date_b)
VALUES ('$txt_post','$name_post','$author_post','$date_cont')");
//ДОБАВЛЯЕМ ПОСТ В БАЗУ ДАННЫХ
header("location: index.php");//Перенаправление
exit;//на главную страницу
}
Ну что ж.. Думаю то, что хотели сделать сделали. В следующей статье мы будем писать редактирование для постов, не переключайтесь
А на сегодня все, удачи Вам!
![]() |
Исходник |