2 Руководство программиста Разработка шаблонов Так как дизайн главной страницы и внутренних отличны, то потребовалось изготовление двух шаблонов. Приведу HTML код отличных частей. Оба шаблона имеют одинаковую шапку и левый столбец (сайдбар). Подвал (футер) различен: - для главной <div id="footer"> %ADRESS% %TEL_F% - для внутренних Также у шаблонов различна средина. У шаблона для главной - поле основного контента и левый столбец (сайдбар). У шаблона для внутренних поле основного контента и 2 сайдбара, один слева, один справа. - для главной  Лестницы винтовые |  Лестницы маршевые |  Лестничные ограждения |  Навесы и козырьки |  Дерево в интерьере |
- для внутренних
Кроссбраузерность Opera, Internet Explorer, Safari, Firefox, Google Chrome.
2.2 База данных
Исходя из целей и требований проекта, была выбрана СУБД MySQL. Реляционная база данных, реализованная при помощи средств MySQL, как и любая другая СУБД, предоставляет возможность совместного доступа к данным, что является необходимым условием при разработке многопользовательской системы. Необходимость использования MySQL вытекает из того, что в PHP действительно мощные средства работы с базами данных, и MySQL – это законченное приложение в области баз данных и анализа данных для быстрого создания масштабируемых решений электронной коммерции, бизнес-приложений и хранилищ данных. Оно позволяет значительно сократить время выхода этих решений на рынок, одновременно обеспечивая масштабируемость, соответствующую самым высоким требованиям. База данных MySQL используется для хранения контента для страниц, логина и пароля администратора, пути к файлу модулей, путь к конкретному файлу модуля, и конечно же основная таблица с названиями страниц и пути запроса к ним. База данных представляет собой набор взаимосвязанных таблиц и предназначена для хранения данных. Связь между таблицами представлена на схеме:  Рисунок 2.1 – Схема базы данных сайта Опишем подробнее таблицы базы данных. В первую очередь необходимо организовать хранение всех страниц сайта. К тому же надо как-то организовать хранение информационных блоков телефон и адрес. Для этих целей служит таблица leo_mft.  Рисунок 2.2 – структура таблицы leo_mft Ключом таблицы является поле id. Поле parent_id служит для определения предка текущей страницы. Это служит для построения полного URL. Так же в будущем возможно написание дополнительных модулей, которым требуется это значение. Таковым может быть, например, хлебные крошки (breadcrumbs). Поле position служит для упорядочивания элементов, находящихся на одном уровни иерархии. Это требуется для порядка пунктов меню. Поле name содержит название страницы, путь по которому она будет открыта. Поле title содержит само название страницы. Keywords – ключевые слова. Будут занесены в соответствующий мета тег. Description содержит описание страницы. Тоже заносится в мета тег. Type – поле, в котором содержится тип страниц. Может быть сколько угодно типов. В данном проекте этих типов 2: txt – обычная страница, application – приложение, говорит о том, что данная страница обрабатывается каким-либо модулем. На рисунке 2.3 показано текущее содержание таблицы leo_mft. Поля Description и Keywords оказались не заполнены, но это никоим образом не влияет на правильность работы.  Рисунок 2.3 Когда мы запрашиваем одну из страниц сайта, идет обращение к этой таблице. Просматривается поле name. Если совпадение есть то идет дальнейший разбор URL. Иначе выдается сообщение, что страница не найдена. Когда страница найдена, просматривается поле type для определения типа таблицы. Txt – значит обычная html страница. Application – приложение, иначе говоря, модуль. Узнав тип запрашиваемой страницы, следует обращение к таблице leo_modules.  Рисунок 2.4 – таблица leo_modules В данной таблице поле mid – идентификатор. Mod_path – путь к файлу-обработчику, type - тип. В этой таблице идет поиск по полю type типа запрошенной страницы. Когда соответствие установлено, берется значение поля mod_path. В этом поле содержится путь к файлу, обрабатывающего страницы какого-либо типа.  Рисунок 2.5 – текущее содержание таблицы leo_modules Если тип запрашиваемой страницы равен application, то запускается файл application.php. В этом файле происходит обращение к таблице leo_application за путем к файлу для выдачи конкретной страницы.  Рисунок 2.6 – структура таблицы leo_application В поле id таблицы leo_application ищется id запрошенной таблицы, известный нам из таблицы leo_mft. После соответствие извлекается содержимое поля app_path. Затем идет обращение к данному файлу. В этом файле возможны любые операции с данными, будь-то запросы к базе, обращение к другим файлам, обработка глобальных параметров. В нашем случае – это работа с данными формы и отправка письма.  Рисунок 2.7 – текущее наполнение таблицы leo_application
Если тип – txt, то запускается файл txt.php. В этом файле происходит загрузка данных из таблицы leo_content. Настало время рассмотреть таблицу leo_content.  Рисунок 2.8 На рисунке 2.8 изображена структура таблицы leo_content. Поле id содержит идентификатор записи. Поле content содержит текст страницы. Когда тип запрошенной страницы txt, в этой таблице ищется идентификатор запрошенной страницы. Он должен быть равен id в таблице leo_mft. Если соответствие установлено, показывается содержимое поля content для данного id.  Рисунок 2.9 – текущее наполнение таблицы контента Осталось рассмотреть последнюю таблицу – leo_users. В этой таблице содержатся данные о всех зарегистрированных пользователях. В нашем случае зарегистрированный пользователь всего один – администратор. Рассмотрим структуру таблицы.  Рисунок 2.10 – структура таблицы leo_users Id – идентификатор записи. Login – поле логина. Email – поле адреса электронной почты. Datetime_login – поле, содержащее дату регистрации. Пароль хранится в зашифрованном виде в файле.
|