Radiance |
Дата: Понедельник, 03.11.2014, 18:12 | Сообщение # 1
|
Боец
Сообщений: 209
Статус: Offline
|
Всем привет. В общем, призадумался зафигачить себе бложег. Сначала, думал, не париться, и поставить на каком нибудь готовом движке, но потом, поставив поочередно всякие джумлы, вордпресы, дле и тд, понял, что это для меня будет чересчур громоздко. Объясню почему: 1. Куча ненужных функций, которые мне по замыслу вообще не пригодятся, а вот мещаться будут. 2. Малая гибкость в плане быстрого расширения (придётся дрочиться с ядром цмски, дабы написать какой нибудь компонент или модуль). 3. Естественно, все уязвимости, которые обнаружатся в этих громоздких чудовищах будут актуальны и для нашего бложика, что не очень то приятно.
Так что, чутка подумав, решил я написать своё. Обдумав, определился с общим функционалом, и вот, что он будет в себя включать: 1. Естественно, центр авторизации пользователей (Регистрация, авторизация и т.д). 2. Возможность предложения постов пользователями, и естественно, комментирование пользователей. 3. Создание различных категорий постов. 4. Админочка вот, для нас, которая даст нам возможности добавления \ удаления \ редактирования постов, возможность создания \ блокировки \ удалений \ редактирования аккаунтов пользователей.
В общем то, вот он, самый минимум, нужный для блога.
Далее, чутка обдумав, решил начать с фейса. Естественно, для большего удобства нужно юзать шаблонизаторы. Опять же, те же смарти будет, опять же чересчур громоздким, а я хочу всё свести к минимуму. Полазив по интернетам нашёл интересный такой класс, который приведу ниже. Ну и объясню, как им пользоваться.
Код шаблонизатора:
Код <?php
define("PATH","http://".$_SERVER['HTTP_HOST']."/");
class Templater{ // список переменных, используемых в классе // нам пока не нужен // обрабатываем переменные, что будет выводиться в шаблоне. public function tmp($data,$path=NULL){ $thic->footer=$data['footer']; $this->title = $data['title']; $this->content = $data['content'];
// ну и присваивать будем $tmp = file_get_contents(PATH.'/templates/'.$this->path); $tmp = str_replace('{footer}',$this->footer,$tmp); $tmp = str_replace('{content}',$this->content,$tmp); $tmp = str_replace('{TITLE}',$this->title,$tmp);
return $tmp; } } //Объект класса $templater = new Templater(); ?>
Т.е., вся работа шаблонизатора выйдет в том, что он будет искать нудные элементы в фигурных скобках, и заменяет на обработанные значения. Парсит файлики шаблона, крч. Например, если шаблонизатор найдёт на странице объявленный нами элемент {TITLE}, то она заменит его на значение переменной $title Удобно так то да? Чем мешать код постоянно с кусками HTML Ну а теперь посмотрим, как эта муть работает. Берем код шаблонизатора, и помещаем в файл с именем templater.php, кладём в папку core в корне нашего будущего сайта. Теперь создаём папку templates, В неё помещаем три пустых файла с именами: head.tpl, body.tpl, footer.tpl Попробуем их заполнить как нибудь, дабы продемонстрировать, как это будет работать. В файл head.tpl пихаем следующее: Код <html> <head> <title>{TITLE}</title> </head> <body>
В файл body.tpl пихаем: Код <div align = "center"> <p><h1>{TITLE}</h1></p> </div> <p>{content}</p>
В файл footer.tpl:
Ну а теперь, создаем файл index.php, или еще какой-либо.php файл в корне нашего сайта, и пихаем в него следующее:
Код <?php
// формируем массив данных для шаблонизатора $data = array( "title"=>"Это моя первая страница, с использованием шаблонизаторов", "content"=>"Какая либо надпись", "footer"=>"Подвал" ); //подключаем файл шаблонизатора include 'core/templater.php'; //Голова print $templater->tmp($data, 'head.tpl'); //Вывод середины print $templater->tmp($data,'body.tpl'); //Вывод подвала print $templater->tmp($data,'footer.tpl'); ?>
И в итоге имеем:
В следующий раз мы сделаем:
- Центр авторизации пользователей. - Профили пользователей. - Минимум админки - возможность добавления постов.
До новых встречь, ёпта
Радик камбек :D
|
|
|
|