На этой странице я опишу, как сделать движок сайта в самом упрощённом варианте на php, без баз данных.


Тут можно скачать CMS для агентства недвижимости

Не сложный двигарь на русском языке. И при некоторых знаниях php и mysql можно переделать его под свои цели.

Движок сайта это программная часть сайта, которая отвечает за динамическое добавление и отображение контента, то есть меняться будет только текст и динамическое меню, а верхняя и нижняя часть будут оставаться неимзенными.
ШАПКА
Динамическое меню
пункт1
пункт2
пункт3
подключаемый контент (текст)
ВАЛЕНКИ

Достигается такой эффект с помощью php функции include (); .

Находясь на сайте, вы всё время видите перед собой один и тот же файл index.php, но стоит "пройтись" по меню как за этим файлом начинают появляться различные закорлючки (это видно в адресной строке браузера) типа таких:
http://www.site.ru/index.php?papka=novosti&razdel=criminal&file=100
Это ссылка к которой с помощью знака ? прикреплены переменные. Знак ? поделил ссылку на две части. В правой части ссылки
papka, razlel, file
это переменные, которым присвоены значения
novosti, criminal, 100
соответственно. Таких переменных можно добавить много, главное не забывать ставить знак & между переменными. Этот знак присоединяет следующую переменную с её значением.

Рассмотрим внутренности такого микро движка сайта на примере:
Файл index.php в корне сайта.
<head>
</head>
<body>
<table border=3 width=350>
<tr><td width=170>
<?php
// ПРОВЕРЯЮ ДИРЕКТОРИЮ
if($dr==""){
$dirct="dir1";
}
else
{$dirct=$dr;}
$hdl=opendir($dirct); //открываем директрорию
while ($file = readdir($hdl)){ //считываем файлы
if (($file!=".")&&($file!="..")){
$file=ereg_replace(".html","",$file); //из имени файла вырезаем его расширение
$a[]=$file; //складываем в массив
sort($a); //сортируем, сортировка по алфавиту
}
}
closedir($hdl); //закрыли директорию
//проверяем передаваемые данные. Чтоб у взломщика было меньше шансов.
if(!empty($id))
{
if (preg_match('/[^a-z0-9]/',$id) ) {$dirct='error';$id=403;}
}
if(!empty($dr))
{
if (preg_match('/[^a-z0-9]/',$dr)) {$dirct='error';$id=403;}
}
//ВЫВОДИМ ОСНОВНОЕ МЕНЮ
if($dirct!="dir1"){echo '<a href="http://www.site.ru/index.php">'.'Главная'.'</a><br>';}
echo '<a href="http://www.site.ru/index.php?dr=dir2">'.'папка два'.'</a><br>';
echo '<a href="http://www.site.ru/index.php?dr=dir3">'.'папка три'.'</a><br>';

echo '<hr><hr>';
for($i=0; $i<count($a); $i++) //выводим подменю
{
$m=get_meta_tags("$dirct/$a[$i].html");/* вытягиваем метаданные из файла. В метаданных самой страницы передаётся
название якоря ссылки, таким же макаром можно передавать title для каждлой страницы.*/

echo '<a href="http://www.site.ru/index.php?dr='.$dirct.'&id='.$a[$i].'">'.$m[zagol].'</a>';
echo '<br>';
}
echo '</td>';
echo '<td>';
//ВЫВОЖУ КОНТЕНТ
if ($id=="") { //если переменная файла равна нулю, выводим страницу по умолчанию
include ("$dirct/$a[0].html");
}
else {
include ("$dirct/$id.html");
}
?>
</td>
</tr>
</table>
</body>
</html>

в это же время подключаемый файл находится в папке dir1 и должен выглядеть так:
<meta name="zagol" content="dir1 первый файл">
dir1 первый файл

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