Как работает сайт?
Доброго времени суток!
С вами valoo - автор и разработчик программного обеспечения "Столица". Этот раздел я буду вести от своего имени.
Пока что по всем вопросам обращайтесь в Гостевую книгу, возможно, со временем появится и форум.
Итак, рассмотрим основу работы CMS "Столица", о которой я вкратце писал в разделе Что такое CMS?
В начале - о самом сайте. В нем задействованы следующие программные модули:
Верхняя панель
- простое верхнее меню (combined_menu.php)
- комбинированное верхнее меню (top_menu.php)
Левая панель
- простое левое меню (left_menu.php)
- левое меню, связанное с верхним меню (make_left_menu.php)
Главная панель
- модуль показа страниц (show_page.php)
- модуль гостевой книги (gb_view.php)
- модуль записи в гостевую книгу (gb.php)
При загрузке сайта выполняется проверка записей из базы данных сайта, внесенных через панель настоек, где среди всего прочего нас будет интересовать сейчас тип шаблона. В зависимости от типа шаблона к верхней и левой панели подключается тот или иной модуль верхнего и левого меню.
Никаких динамических изменений во время работы с сайтом с меню не происходит.
Другое дело - главная панель. Динамика ее работы основана на гиперссылках, которые исполняются в виде команд, когда пользователь нажимает мышкой на тот или иной раздел меню или линк на странице.
Как это происходит?
Главный файл сайта index.php - это, по сути, сервер-обработчик поступающих к нему команд. Команды эти записаны в html-кодах гиперссылок и имеют следующий вид:
<a href ="index.php?option=abcd" />Название пункта меню или текст гиперссылки</a>
Как прикажете серверу понимать эту команду? А вот как.
Из правил языка HTML мы знаем, что тег <a href ="адрес страницы"/> открывает на экране броузера ту или иную страницу. Следовательно, в нашем случае гиперссылка ведет прямехонько к файлу index.php. Уже хорошо!
Следующая запись ?option=abcd означает, что в этом самом файле index.php имеется переменная с именем $option, которая должна получить значение, равное abcd. Прекрасно! А теперь посмотрим на другую ссылку, уже с другого пункта меню:
<a href ="index.php?option=efgh" />Название другого пункта меню или текст гиперссылки</a>
Итак, в случае с пуктом меню №1 наша переменная $option получила значение abcd, а в случае, если пользователь нажал на пункт меню №2 - efgh.
Нам осталось только организовать проверку (хотите посредством if или switch - кому как нравится!) переменной $option и, в зависимости от ее значения, загружать в окно главной панели тот или иной материал.
Больше никаких премудростей в работе самого сайта нет. Кроме одной - вы не видите никаких кодов в верхней строке броузера, а линки на страницы выглядят вроде обычных, только без расширений .html.
Как же так, спросите вы, где же обещанные ?option=abcd и $option?
Все в порядке! Они находятся в файле index.php, только пользователю их незачем показывать. Ну, посудите сами, разве приятно посылать другу линк на страницу сайта, который выглядит примерно так:
http://ваш_сайт.ru/index.php?option=com_easygallery&Itemid=46
Поэтому и появилось такое понятие как ЧПУ (Человеко-Подобные Урлы). Это когда в адресной строке вы видите нормальный URL, а на самом сервере при этом исполняется нужная команда.
О том, как это работает, смотрите здесь.
|