Joomla портал
seo seo Subscribe
seo
0
seo

Основной файл CMS — index.php

Первым делом нужно разобраться, что будет делать этот файл. А делать он

будет вот что:

1. Подключать файл настроек.

2. Подключать шаблонизатор.

3. Устанавливать соединение с сервером MySQL, используя параметры

доступа из файла настроек.

4. Выводить содержимое выбранной пользователем страницы (точнее,

передавать содержимое страницы шаблонизатору, который управляет

выводом, но сейчас это не важно).

Первые три пункта ясны. Осталось определиться, как сценарий узнает, какую

страницу выбрал пользователь. Я предлагаю использовать параметр-

переменную $р, которая будет указывать тип страницы, и параметр $id,

который будет содержать идентификатор выводимой страницы. В итоге URL в

строке браузера будет выглядеть так:

http://cafiT/index.php?p=Tnn&id=4n^o

Если переменная $р не задана, то будет выведена главная страница сайта.

В этом случае URL будет выглядеть так:

http://caiiT/index.php

Да, можно было бы упростить нашу CMS и передавать с помощью

переменной $р сразу идентификатор страницы. Но это не совсем удобно. Представим,

что нам нужно отобразить страницы разных типов и для каждого типа

использовать свое оформление. Или что нам нужно вывести информацию не из

базы данных, а из HTML-файла или с другого сервера.

Глава 14. Реализация основных функций CMS

165

Вот в этом случае нам и понадобится переменная $р, которая будет

указывать:

$p=’db’; // Вывод страницы из базы данных

$p=’file’; // Вывод страницы из HTML-файла

$р=’server1; // Вывод страницы с сервера

Теперь мы можем написать index.php. Первоначальный его вариант

представлен в листинге 14.3 (обратите внимание на комментарии!).

// Подключаем файл настроек

require «config.php»;

// Подключаемся к серверу БД

mysql_connect($dbhost,$dbuser,$dbpasswd);

mysql_select_db($dbname);

// Подключаем шаблонизатор

require «template.php»;

// Открываем шаблон

$tpl->get_tpl(‘page.tpl·);

// Устанавливаем переменные шаблона

$tpl->set_value(‘TITLE1,$title);

$tpl->set_value(‘DESCRIPTION’,$description);

$tpl->set_value(‘INFO’,$info);

// Меню пока не будет

$menu = «скоро появится меню

Пункт 1

Пункт 2

Пункт 3″;

166

Часть IV. Разработка собственной CMS

$tpl->set_value(‘MENU1,$menu);

// Переменная $р не установлена — нужно вывести главную страницу

if (!isset($p)) {

$page = «Главная страница»;

$tpl->set_value(‘PAGE’,$page);

}

// Запускаем парсинг шаблона

$tpl->tpl_j>arse () ;

// Выводим HTML

echo $tpl->html;

?>

Рис. 14.1. Фундамент нашей CMS

Глава 14. Реализация основных функций CMS

167

Чтобы проверить, как работает index.php, нужно скопировать файлы

index.php, template.php, config.php и page.tpl в какой-нибудь каталог сервера и

ввести в строке адреса браузера следующий URL:

11Пр://сервер/каталог/тс1ех.рЬр

С одной стороны, наш index.php ничего особенного не делает (см. рис. 14.1),

но, с другой стороны, вас можно поздравить — вы заложили фундамент

своей CMS. Теперь вам осталось малость— сформировать меню по страницам

сайта, хранящимся в базе данных, и вывести одну из страниц как

переменную шаблона { page }.

14.4. Проектирование базы данных

Наша CMS будет хранить информацию в трех таблицах:

О static — статическая информация, например: главная страница, контакты

и т. д.;

? cats — таблица категорий, т. е. разделов сайта. По этой таблице будет

формироваться иерархическое меню сайта;

О pages — таблица страниц, содержит страницы сайта.

14.4.1. Таблица static

Таблица static — самая простая. Структура данной таблицы изображена на

рис. 14.2. Как видно из рисунка, таблица содержит всего два поля— id

(идентификатор страницы) и content (содержимое страницы).

Рис. 14.2. Структура таблицы static

1тобы создать данную таблицу, нужно выполнить следующий SQL-запрос:

CREATE TABLE ‘static1 (

ficT varchar(15) NOT NULL,

168

Часть IV. Разработка собственной CMS

‘content* text,

PRIMARY KEY (‘id’)

) DEFAULT CHARSET=cpl251;

Примечание

Данный SQL-запрос можно ввести в программе phpMyAdmin, которую мы

рассмотрим в приложении 4.

seo
5th Фев 2011
Теги:
seo

Написать ответ

seo
 
Все права защищены © 2023 Joomla портал
 
 
seo