Всем привет! Добро пожаловать на Блог RS! Сегодня мы закончим реализацию пунктов настроек постов в нашей админ панели. Эту очень долгую и нудную линейку статей я начал в посте "Убираем выбранные посты с главной страницы". Сегодня мы по быстрому реализуем возможность управлять блокировкой постов из нашей админ панели. После чего я подытожу возможности нашей CMS, и определю дальнейшее развитие данного проекта.
Сегодня пятница, мне очень лень описывать что-то глобальное, поэтому галопом пробежимся по подключению
Прежде чем я начну, хочу обратится к тем кто пришел на блог в первые. Обращение к новоприбывшем обязательная часть поста, так как 95% информации на блоге посвящено одной и той же теме, а именно созданию блога с нуля. Я уже на протяжение, приблизительно, 4-х месяцев описываю разработку своей, узкоспециализированной CMS на php. Вопрос: "Для чего?". Бог его знает для чего! Просто описываю, может кому то эта информация покажется полезной. В общем... Если Вам интересно проследить создание сайта, если быть точнее блога, то Вы пришли туда куда нужно! Переходите по ссылке, что я Вам дал чуть выше и приступайте к ознакомлению.
Если Вам понравился мой проект, то подпишитесь на RSS ленту блога через ридер, или же по почте
Когда я сказал, что подключать будем очень быстро, я не соврал. Размещаю дополнения к коду, говорю где он должен находится и все! Почему так? Потому что на протяжение реализации этого списка настроек, мы неоднократно проделывали одно и тоже. Если вы не читали предыдущие посты ( "Убираем выбранные посты с главной страницы ", "Убираем модуль комментариев из нужных постов ", "Генератор карты сайта - Sitemap.xml ", "Привязываем генератор sitemap.xml к движку ", "Генератор RSS ленты для нашего блога ", "Привязываем генератор RSS ленты к нашему движку ", "Приветствие на главной странице нашего блога " ), то ознакомитесь сначала с ними, это поможет Вам понять то что я сейчас Вам дам.
Изменения будут наблюдаться, как и предыдущих постах, в функции вывода списка настроек поста, в шаблоне и в обработчике. Начнем с шаблона ( configpost.html )
<p align="right"><a href="index.php?page=all_content">К списку постов</a></p><br/>
<form action="index.php?page=cfgpost&id=[_id]" method="post" name="form">
<table width="700px" cellpadding="5" cellspacing="0" border="0" align="center">
<tr>
<td style="border-bottom:1px solid #dcdcdc;" valign="top" align="left">Видим пост в ленте новостей?</td>
<td style="border-bottom:1px solid #dcdcdc;" valign="top" align="right">
<select style="font-family:Verdana;font-weight:100;font-size:11px;" name="viewindex">
[_cfgvi]
</select>
</td>
</tr>
<tr>
<td style="border-bottom:1px solid #dcdcdc;" valign="top" align="left">Разрешить комментировать пост?</td>
<td style="border-bottom:1px solid #dcdcdc;" valign="top" align="right">
<select style="font-family:Verdana;font-weight:100;font-size:11px;" name="viewcomm">
[_cfgcomm]
</select>
</td>
</tr>
<tr>
<td style="border-bottom:1px solid #dcdcdc;" valign="top" align="left">Разместить в файле sitemap.xml?</td>
<td style="border-bottom:1px solid #dcdcdc;" valign="top" align="right">
<select style="font-family:Verdana;font-weight:100;font-size:11px;" name="sm">
[_cfgsm]
</select>
<select style="font-family:Verdana;font-weight:100;font-size:11px;" name="xmlsmup">
[_cfgsmup]
</select>
<select style="font-family:Verdana;font-weight:100;font-size:11px;" name="xmlsmpr">
[_cfgsmpr]
</select>
</td>
</tr>
<tr>
<td style="border-bottom:1px solid #dcdcdc;" valign="top" align="left">Разместить пост в RSS ленте?</td>
<td style="border-bottom:1px solid #dcdcdc;" valign="top" align="right">
<select style="font-family:Verdana;font-weight:100;font-size:11px;" name="viewrss">
[_cfgrss]
</select>
</td>
</tr>
<tr>
<td style="border-bottom:1px solid #dcdcdc;" valign="top" align="left">Блокировать пост на гл. стр.?</td>
<td style="border-bottom:1px solid #dcdcdc;" valign="top" align="right">
<select style="font-family:Verdana;font-weight:100;font-size:11px;" name="viewblock">
[_cfgblock]
</select>
</td>
</tr>
<tr>
<td valign="top" colspan="2" align="center">
<br/><br/><input type="submit" value="Сохранить настройки">
</td>
</tr>
</table>
</form>
<br/><br/>
Это полный html шаблона. Появилась новая строка в таблице. Обратите внимание на атрибут name ( viewblock ) тега select и код-слово [_cfgblock].
Сразу после строк
//-----Разместить пост в RSS ленте?----
...
//-----Разместить пост в RSS ленте?----
вставляем вот такой кусочек кода
//-----Блокировать пост на гл. стр.?----
$vblQUEtxt = array("Нет","Да");//Вариант для человека
$vblQUEint = array(0,1);//Вариант для скрипта
$vbl = queCFG($myrow_index[block],$vblQUEtxt,$vblQUEint);//формируем option для пункта "Блокировать пост на гл. стр.?"
//-----Блокировать пост на гл. стр.?----
Стандартный набор. Два варианта ответа для администратора, и два варианта ответа для скрипта. Далее после строчки
...
$sm_read = str_replace("[_cfgrss]",$vrss,$sm_read);//rss лента
вставляем вот такую строчку
$sm_read = str_replace("[_cfgblock]",$vbl,$sm_read);//блокировка поста на гл стр
Даю Вам полный код обработчика
//ОБРАБОТЧИК
//определяем переменные
if(isset($_POST['viewindex']))$viewindex = $_POST['viewindex'];
if(isset($_POST['viewcomm']))$viewcomm = $_POST['viewcomm'];
if(isset($_POST['sm']))$sm = $_POST['sm'];
if(isset($_POST['xmlsmup']))$xmlsmup = $_POST['xmlsmup'];
if(isset($_POST['xmlsmpr']))$xmlsmpr = $_POST['xmlsmpr'];
if(isset($_POST['viewrss']))$viewrss = $_POST['viewrss'];
if(isset($_POST['viewblock']))$viewblock = $_POST['viewblock'];
//обращение к БД
if(isset($viewindex) AND isset($viewcomm) AND isset($sm) AND isset($xmlsmup) AND isset($xmlsmpr) AND isset($viewrss) AND isset($viewblock))//если переменная форма была заполнена и отправленна
{
$smCONFIGresult = mysql_query("SELECT sm,xmlsm,rss FROM blog WHERE id='$id'");//Выводим из базы данных некоторые данные для проверки
$smCONFIG = mysql_fetch_array($smCONFIGresult);
$newXMLconfig = $xmlsmup."|".$xmlsmpr;//Склеиваем инфу об обновление и приоритете в одну переменную ( monthly|0.2 )
$addrss = $smCONFIG[rss];
$newCONFIG = mysql_query ("UPDATE blog SET viewindex='$viewindex',viewcomm='$viewcomm',sm='$sm',xmlsm='$newXMLconfig',rss='$viewrss',block='$viewblock' WHERE id='$id'");//обнавляем настройки
if($smCONFIG[sm] != $sm OR $smCONFIG[xmlsm] != $newXMLconfig) sitemap($server_root);//Если настройки карты сайты изменились, то записываем их в файл
if($addrss != $viewrss) rss($server_root);//если пункт был изменен, то запускаем функцию rss()
header("location: ".getenv('HTTP_REFERER'));//Переносим пользовотеля на страницу с списком настроек
exit;
}
//ОБРАБОТЧИК
Добавил создание из post переменной обычную. Ну и запрос в базу данных на обновление строки таблицы тоже перетерпел некие изменения.
Ну чтож, покажу Вам приблизительно как выглядит результат.
Вот как выглядит весь список настроек целиком
Как я и говорил, вторая часть поста итог того, что уже реализовано и описано. И планы на ближайшее будущее.
Пробежался по главным функциям нашего движка.
Что это значит? Я загорелся желанием перенести свой блог на этот движок, именно поэтому реализовал уже куда больше чем описал, мне нужно составить список реализованного, и опубликовать его. После чего руководствуясь им потихоньку описать все на блоге. Вот список ( естественно не подробный и может даже не полный, могу что-нить позабыть ) того что я реализовал, и собираюсь описать:
Сейчас загрузка главной страницы составляет приблизительно 16 запросов в базу данных. При этому включено все, что можно сейчас включить. В скором времени запросы естественно увеличатся но не на много. В каком порядке я буду Вам описывать не описанные возможности движка, я не знаю, пускай это будет сюрпризом для нас всех Вроде я все что хотел, сказал.
Ах да! Если Вам понравился мой проект, то подпишитесь на RSS ленту блога через ридер, или же по почте
Всего Вам наилучшего! У меня все!
Исходник |
$result_index = mysql_query("SELECT viewindex,viewcomm,sm,xmlsm,rss,block FROM blog WHERE id='$id'");
$myrow_index = mysql_fetch_array($result_index);
Забыл вытащить информацию из колонки block