Тема: Простой движок
Почитал 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, где уже готовы комментарии к каждой странице, навигация и древовидная структура, теги (ключевые слова) для отображения похожих страниц и прочая-прочая-прочая. но вобщем, такая вот чпу навигация по документам реализуется в десяток строк, и надеюсь кому-нибудь окажется полезна.