1

Тема: Простой движок

Почитал http://s2cms.ru/info/ и нельзя не отметить, что задумка отличная и движок получился хороший.
Непонравилась только большая куча кода, но наверно по сравнению с другими движками этот считается еще минималистичным.

Так вот, сделал себе нечто подобное, в десяток строк кода, и хочу поделиться).. Правда, пишу я на php левой ногой через правое плечо.

nginx.conf

  server {
    ...

    try_files $uri $uri/ /index.php?$args&test=$uri;
  }

index.php

<?php
// записываем весь вывод
ob_start();

// обработка человеко-понятных урлов
foreach (explode('/', $_GET['test']) as $test) {
  if (strlen($test) > 0) $path[] = $test;
}

// и смотрим уже на документы, какие запросили
if (implode('/', $path) == 'about') include('./includes/about.inc.php');
elseif (implode('/', $path) == 'man/install') include('./includes/man/install.inc.php');
elseif (implode('/', $path) == 'man/config') include('./includes/man/config.inc.php');
elseif ($path[0] == 'man') include('./includes/man.inc.php');
else include('./includes/error.inc.php');

// получаем вывод
$contents = ob_get_clean();
?>
<!doctype html>
<html>
...
<?php echo $contents; ?>
...
</html>

таким вот образом... html храню вместе с php кодом с одним лишь "но", - сначала выполняется php код, получая данные откуда либо, а после уже выводится html с <?php echo ...; ?> вставками, а где нужны условия или циклы - использую <?php if (...): ?>...<?php endif; > такой формат.
имхо, нет ничего удобнее, чем управлять документами прямо в коде, инклудя нужные файлы в зависимости от запрашиваемого человеко-понятного урла... и не лепить громоздкие cms с админками, шаблонами, плагинами, модулями, блоками и тому подобным)..

разумеется, это и рядом не стояло с s2cms, где уже готовы комментарии к каждой странице, навигация и древовидная структура, теги (ключевые слова) для отображения похожих страниц и прочая-прочая-прочая. но вобщем, такая вот чпу навигация по документам реализуется в десяток строк, и надеюсь кому-нибудь окажется полезна.

2

Re: Простой движок

Spoofing пишет:

имхо, нет ничего удобнее, чем управлять документами прямо в коде, инклудя нужные файлы в зависимости от запрашиваемого человеко-понятного урла... и не лепить громоздкие cms с админками, шаблонами, плагинами, модулями, блоками и тому подобным)..

Представляю сколько простых юзеров обрадуются такому движку, где можно "инклудить прямо в коде" без всяких админок)))

03.07.2012 08:51:44. Текст был изменен (Igor1).

3

Re: Простой движок

Кода много, но каждая его часть делает что-то полезное. Иначе я бы его не писал.

Все начинали с самых простых вещей: http://written.ru/articles/technologies … g/template :)

4

Re: Простой движок

Роман, спасибо интересная статья! Правда уже читал подобное в книге Д.Котеров PHP5 глава "код и шаблон страниц"

03.07.2012 16:17:16. Текст был изменен (Igor1).

5

Re: Простой движок

Хотел попробовать рабочий пример прикреплённого к статье шаблонизатора, но не получается запустить его на Денвере, выдает ошибку как на скришноте. Залил на платный хостинг, аналогичная картина наблюдается. В настройках Денвере точно настроено исполнения PHP кода в файлах .htm и .html
Можете подсказать в чем проблема?
http://pic.lg.ua/x/13/2a6905/md_176cce9d.png

6

Re: Простой движок

В веб-сервере не нужно настраивать выполнение php-кода в файлах .htm. За обработку этих файлов отвечают строчки в .htacces:

Action htm_handler "/engine/main.php?"
AddHandler htm_handler .htm

А вообще зачем вам такое старье?

7

Re: Простой движок

Это я хочу в учебных целях сделать сайт который бы работал на своем простейшем скрипте.

Ваш пример шаблонизатора мне показался более простым для освоения, чем пример в книге Котерова про пассивные шаблоны с использованием контролера MVC и более продвинутей, чем просто вставлять куски PHP кода в шаблон.

Если есть что-то более новое и не сложное, то буду благодарен за ссылку :)