Пишем микроCMS, поэтапно, вместе со мной. - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Sanoxxx, Alowir  
Пишем микроCMS, поэтапно, вместе со мной.
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:
Код

<p>{footer}</p>


Ну а теперь, создаем файл 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

  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума