Всем привет! Добро пожаловать на Блог RS! В самом первом посте, посвященному списку настроек постов, я упомянул пункт, который позволил бы разместить наш пост в черновике. Этот пункт я включил в список реализаций не подумав. Объясню почему. Админ панель, из которой я Вам сейчас пишу пост, работает на bb кодной форме. Для того, что бы увидеть как выглядит пост, необходимо его сначала сохранить в базе данных. Но при сохранение в базе данных пост появляется на главной странице блога. Поэтому я реализовал на своем блоге "папку" черновика, она позволяет администратору посмотреть как будет выглядеть пост после публикации не публикуя его. В нашем же случае, у админ панели есть визуальный редактор, поэтому эта "папка" не актуальна! Немного поразмышляв я вспомнил одну маленькую возможность своего блога, которую не плохо было бы включить в функционал разрабатываемого нами движка.
О какой такой возможности я говорю? Заходя на главную страницу моего блога Вы можете лицезреть вступление.

Это предисловие, является обычным постом, и находится в списке всех материалов блога.
Как же тогда обычный пост попадает в самый верх главной страницы? Все очень просто. У меня в админ панели есть кнопочка, которую я назвал "блокиратор поста". Если нажать на эту кнопочку, то у поста, в базе данных, в колонку block запишется единичка. Эта единичка позволяет специальной функции вытащить этот пост и прикрепить его в самом вверху главной страницы. Это такая небольшая хитрость позволяющая на главной странице создать некое приветствие, которое администратор в любой момент можете отредактировать.
Долгое оказалось у меня введение к посту
Так вот чем мы сегодня займемся. Мы создадим колонку в базе данных, и напишем функцию, с помощью которой мы сможем вытащить из БД определенный пост и закрепить его на главной странице. А в следующем посте мы создадим пункт настройки позволяющий с помощью админ панели создавать приветствие на блоге!
Не смотря на то, что возможность не так сложно реализовать, я решил не грузить Вас, как я это делаю уже на протяжение нескольких недель, и разделить описание реализации возможности на два поста. Этот пост будет не очень большим, так как функция блокиратора состоит буквально из 5-10 строк. Цели я озвучивать не буду, и так все должно быть ясно
приступим
Совсем забыл сказать... Этот пост, как и 95% постов на моем блоге, посвящен циклу статей "Создать блог с нуля", и если Вы на блоге в первые, то этот пост покажется Вам совершенно бесполезным. Почему я так считаю? Потому что тут правятся файла которые Вы и в глаза не видели, естественно Вы ничего не поймете
Но не спешите уходить! Если у Вас есть желание на практике научится программировать на php, то переходите по ссылке выше, и приступайте к обучению 
Если Вам понравился мой проект, то подпишитесь на RSS ленту блога через ридер, или же по почте
Приступим, заходим в таблицу blog нашей базы данных. Жмем на кнопку "Структуры" и создаем новую колонку после колонки cat

Заполняем поля вот так

Далее в ручную отредактируем какой нить пост, для этого щелкните на иконку карандаша в строке таблицы базы данных

Исправляем в новой колонке ноль на единицу
![]()
Вот что у нас должно получится

Шаблон очень простой, вот html код
<!-- БЛОКИРОВАННЫЙ ПОСТ --> <div>[_text]</div> <!-- БЛОКИРОВАННЫЙ ПОСТ -->
Назвал этот шаблон lockpost.html и сохранил в папке templates
Функция очень простая, поэтому я не буду объяснять ее работу, в коде все за комментировано
<?
function lockpost()//функция блокировка поста
{
$result_block = mysql_query("SELECT text FROM blog WHERE block='1'");//выносим из базы данных пост где колонка block равна единице
$myrow_block = mysql_fetch_array($result_block);
if($myrow_block != "")//проверяем есть ли в базе данных такой пост, если есть...
{
$sm_read = file("templates/lockpost.html");//...подключаем шаблон
$sm_read = implode("",$sm_read);//так как функция file() выводит массив, то склеиваем его в целую переменную
$sm_read = str_replace("[_text]",$myrow_block[text],$sm_read);//заменяем код-слово на текст из базы данных
return $sm_read;//выводим результат в виде html кода
}
else return "";//...если нет, результатом функции будет пустота
}
?>
Сохранил этот файл в папке moduls. Назвал - lockpost.php
Открываем пользовательский файл index.php и редактируем подключение мини новостей
//МОДУЛЬ МИНИ НОВОСТЕЙ
if(!$blog AND !$contact AND !$cat)//Новое условие
{
include("moduls/news.php");
include("moduls/lockpost.php");//подключаем функцию блокировки поста
$txt = lockpost().index_page();//Выводим результат функции в переменную, которая отобразится на экране пользователя
}
//МОДУЛЬ МИНИ НОВОСТЕЙ
Все очень просто 
Вот так выглядит наш блог с отключенным приветствием

А вот так с включенным

В следующий раз мы создадим управление включение и выключение данной возможности через админ панель, так что не "переключайтесь" и подпишитесь на RSS ленту блога через ридер, или же по почте
Всего Вам самого наилучшего! У меня все!
![]() |
Исходник |
______
P.S.: Флешка с своим логотипом, довольно забавный подарок на какой-нибудь праздник, разве я не прав? Такой подарок будет полезным, и в тоже время будет напоминать о человеке который эту флешку подарил! Закажите такой подарок на флешки Киев...