Движок сайта на PHP
Нечаев Евгений
В этой статье рассказывается о технике создания сайтов использующих технологию PHP. Рассмотрим это на примере.
Пусть наш сайт состоит из 3-х разделов: Раздел1, Раздел2 и Раздел3 соответственно. Для начала необходимо создать страницу, которая будет являться шаблоном нашего сайта. Например, такую:
CODE:
<html>
<head>
<title>Сайт</title>
</head>
<body>
<table border=0 width=100%>
<tr><td width=30% valign=top>меню</td>
<td valign=top>основное содержание<td/></tr>
</table>
</body>
</html>
<head>
<title>Сайт</title>
</head>
<body>
<table border=0 width=100%>
<tr><td width=30% valign=top>меню</td>
<td valign=top>основное содержание<td/></tr>
</table>
</body>
</html>
и сохранить её с расширением .php, например index.php
Вместо слов меню впишем ссылки на наши суперские и очень информативные разделы:
CODE:
<a href=index.php?id=1>Раздел1</a><BR>
<a href=index.php?id=2>Раздел2</a><BR>
<a href=index.php?id=3>Раздел3</a><BR>
<a href=index.php?id=2>Раздел2</a><BR>
<a href=index.php?id=3>Раздел3</a><BR>
Вместо слов "основное содержание" необходимо записать:
CODE:
<? include “razdel.php”; ?>
Это команда PHP, которая вставляет в нашу страничку содержание страницы razdel.php (если этот файл лежит в другом разделе, то нужно указать путь, например include “razdels/razdel.php”
Осталось создать страницу razdel.php. Как Вы уже поняли, она будет содержать информацию разделов и будет отображать необходимый нам в данный момент раздел. В простейшем случае этот файл может быть таким:
CODE:
<?
Function ShowRazdel_1() {
//Содержание раздела 1
}
Function ShowRazdel_2() {
//Содержание раздела 1
}
Function ShowRazdel_3() {
//Содержание раздела 1
}
Function ShowMainPage() {
//Содержание главной страницы
}
switch($id) {
case "0": ShowMainPage();
break;
case "1": ShowRazdel_1();
break;
case "2": ShowRazdel_2();
break;
case "3": ShowRazdel_3();
break;
}
?>
Function ShowRazdel_1() {
//Содержание раздела 1
}
Function ShowRazdel_2() {
//Содержание раздела 1
}
Function ShowRazdel_3() {
//Содержание раздела 1
}
Function ShowMainPage() {
//Содержание главной страницы
}
switch($id) {
case "0": ShowMainPage();
break;
case "1": ShowRazdel_1();
break;
case "2": ShowRazdel_2();
break;
case "3": ShowRazdel_3();
break;
}
?>
Получается номер раздела id, а затем на его основе вызывается та или иная функция, содержащая в себе содержание раздела. Для передачи id ссылка вызывается с параметром.
Сделаем, что если id не указан, то загружается главная страница (это используется при переходе на страницу не по ссылке). Для этого добавим в самое начало файла index.php следующую строчку:
CODE:
<? if(!isset($id)) { $id = 0; } ?>
Её можно расшифровать следующим образом: если не указан id, то делаем его нулем.
Окончательно получаем следующие страницы:
index.php
CODE:
<? if(!isset($id)) { $id = 0; } ?>
<html>
<head>
<title>Сайт</title>
</head>
<body>
<table border=0 width=100%>
<tr><td width=30% valign=top>
<a href=index.php?id=1>Раздел1</a><BR>
<a href=index.php?id=2>Раздел2</a><BR>
<a href=index.php?id=3>Раздел3</a><BR>
</td>
<td valign=top>
<? include “razdel.php”; ?>
</td></tr>
</table>
</body>
</html>
<html>
<head>
<title>Сайт</title>
</head>
<body>
<table border=0 width=100%>
<tr><td width=30% valign=top>
<a href=index.php?id=1>Раздел1</a><BR>
<a href=index.php?id=2>Раздел2</a><BR>
<a href=index.php?id=3>Раздел3</a><BR>
</td>
<td valign=top>
<? include “razdel.php”; ?>
</td></tr>
</table>
</body>
</html>
razdel.php
CODE:
<?
Function ShowRazdel_1() {
//Содержание раздела 1
echo "<h1 align=center>Раздел1</h1>";
}
Function ShowRazdel_2() {
//Содержание раздела 2
echo "<h1 align=center>Раздел2</h1>";
}
Function ShowRazdel_3() {
//Содержание раздела 3
echo "<h1 align=center>Раздел3</h1>";
}
Function ShowMainPage() {
//Содержание главной страницы
echo "<h1 align=center>Главная страница</h1>";
}
switch($id) {
case "0": ShowMainPage();
break;
case "1": ShowRazdel_1();
break;
case "2": ShowRazdel_2();
break;
case "3": ShowRazdel_3();
break;
}
?>
Function ShowRazdel_1() {
//Содержание раздела 1
echo "<h1 align=center>Раздел1</h1>";
}
Function ShowRazdel_2() {
//Содержание раздела 2
echo "<h1 align=center>Раздел2</h1>";
}
Function ShowRazdel_3() {
//Содержание раздела 3
echo "<h1 align=center>Раздел3</h1>";
}
Function ShowMainPage() {
//Содержание главной страницы
echo "<h1 align=center>Главная страница</h1>";
}
switch($id) {
case "0": ShowMainPage();
break;
case "1": ShowRazdel_1();
break;
case "2": ShowRazdel_2();
break;
case "3": ShowRazdel_3();
break;
}
?>
Создание нового раздела теперь не составляет труда – просто дописываем ссылку в меню и вставляем функцию в файл razdel.php. Таким образом, дизайн сайта и содержание разделов полностью изменяется всего одним файлом, что очень удобно.
Вот как здесь описано не очень хорошо получается.
#####################
# заголовок #
#####################
# м # #
# е # #
# н # здесь должно #
# ю # меняться #
#####################
Фреймы я использовать не хочу!