Основы SQL даны в приложении 3.
Теперь добавим в данную таблицу три записи:
INSERT INTO ‘static1 VALUES (‘main’, ‘Главная страница’);
INSERT INTO ‘static’ VALUES (‘prices’, ‘Прайс-листы’);
INSERT INTO ‘static’ VALUES (‘contacts’, ‘Контакты’);
Каждая запись в данной таблице соответствует одной странице сайта. В
нашем случае будут три страницы — Главная страница, Прайс-листы и
Контакты. Конечно, на практике содержимое данных страниц не будет состоять из
одного-двух слов, а будет представлять собой полноценную HTML-страницу,
но не вижу особого смысла усложнять код примера на данном этапе.
14.4.2. Таблица cats
Таблица cats (сокращение от categories— ничего общего с котами!) будет
содержать четыре поля:
? id — номер раздела. Поле автоматически увеличивается (autoincrement),
чтобы нам было удобнее создавать разделы;
? title — название раздела (будет отображено в меню сайта);
? root — номер корневого раздела. Если номер корневого раздела равен
-1, то перед нами корневой раздел. Если же поле root содержит
положительное значение, то перед нами — подраздел, а поле root указывает
номер его родительского раздела. Значение по умолчанию для этого поля
-1, т. е. если поле root не задано, мы подразумеваем, что будет создан
корневой (родительский) раздел;
? txt — описание раздела, может содержать любую информацию.
Структура таблицы cats изображена на рис. 14.3.
Запрос для создания данной таблицы выглядит так:
CREATE TABLE ‘cats’ (
‘id’ int(ll) NOT NULL auto_increment,
Глава 14. Реализация основных функций CMS 169_
•title1 varchar(lOO) default NULL,
‘root1 int(ll) default ‘-1\
‘txt’ text,
PRIMARY KEY (‘id’)
) DEFAULT CHARSET=cpl251;
Рис. 14.3. Структура таблицы cats
Теперь добавим в нашу таблицу несколько разделов:
INSERT INTO ‘cats’ VALUES (1, ‘Дисковые пилы для стали’, -1, ‘Информация
о разделе’);
INSERT INTO ‘cats’ VALUES (2, ‘Дисковые пилы для алюминия’, -1, NULL);
INSERT INTO ‘cats’ VALUES (3, ‘Линии обработки стальных профилей’, -1,
NULL);
INSERT INTO ‘cats’ VALUES (4, ‘Центры обработки листового металла’, -1,
NULL) ;
INSERT INTO ‘cats’ VALUES (5, ‘Отрезные станки’, 3, NULL);
INSERT INTO ‘cats’ VALUES (6, ‘Линии сверления профилей’, 3, NULL);
INSERT INTO ‘cats’ VALUES (7, ‘Роботы для обработки профилей’, 3, NULL);
Первые четыре раздела являются корневыми, т. е. родительскими. Разделы
5—7 являются подразделами раздела с номером 3.
14.4.3. Таблица pages
Таблица pages, как и таблица cats, тоже состоит из четырех полей:
? id — идентификатор (номер) страницы;
? cat — номер раздела, в который помещена страница;
? header — заголовок страницы (будет выводиться в меню);
? content — содержимое страницы.
170
Часть IV. Разработка собственной CMS
Структура таблицы приведена на рис. 14.4, а для ее создания используется
следующий SQL-запрос:
CREATE TABLE •pages1 (
fidf int(ll) NOT NULL auto_increment,
•cat1 int(ll) NOT NULL,
‘header1 varchar(250) default NULL,
‘content1 text,
•price1 varchar(250) default NULL,
‘rd’ varchar(250) default NULL,
PRIMARY KEY (‘id’)
) DEFAULT CHARSET=cpl251;
Рис. 14.4. Структура таблицы pages
Для добавления новых страниц используется следующий SQL-оператор:
INSERT INTO ‘pages1 VALUES (0, номер, ‘заголовок1, ‘содержимое’);
Номер страницы можно не указывать (0), поскольку значение поля будет
автоматически увеличено. Но не забывайте при добавлении страницы
указывать номер раздела, к которому принадлежит страница, а также заголовок и
содержимое страницы.
14.5. Иерархическая структура сайта.
Создание иерархического меню
14.5.1. Алгоритм работы меню
Сейчас нам предстоит самое сложное — реализовать вывод меню. Если
переменная $р не указана, то будут выведены родительские разделы меню и
главная страница, как показано на рис. 14.5 (разрабатываемая в книге CMS
Глава 14. Реализация основных функций CMS
171
уже успешно используется на некоторых сайтах, поэтому все снимки экрана
будут сделаны с реальных сайтов).
Рис. 14.5.
5th Фев 2011
|
Теги:
|