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

Сначала реализуем вывод содержимого раздела. Откройте

index.php и найдите следующий фрагмент кода:

xf (!isset($p)) {

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

$tpl->set_value(·PAGE·,$page);

}

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

Сразу после него добавьте реакцию на значение ‘show переменной $р

(листинг 14.5).

elseif($p==»show») {

// Выводим содержимое раздела

// Удаляем из $id все, что может представлять опасность

//В последующих главах вы узнаете, зачем мы это сделали

$id = @htmlspecialchars($id);

$id = @strip_tags($id);

// Ищем подразделы, т. е. разделы, у которых поле root

// равно номеру выводимого раздела

$query = «select * from cats where root=$id»;

$result = mysql_query($query);

i f (mysql_num_rows ($ result) ==0) {

// Подразделов нет, выводим страницы

$q2 = «select * from cats where id=$id»;

$res2 = mysql__query($q2) ;

$q3 = «select * from cats where id=$id»;

$res3 = mysql_query($q3);

$row3 = mysql__fetch_array($res3);

$info = $row3[txt];

$page = $page . «

«;

if (mysql_num_rows ($res2)>0) {

$row2 = mysql_fetch_array($res2);

$page = $page . «$row2[title]

«;

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

181

$q = «select * from pages where cat=$id»;

$res = mysql_query($q);

while ($row = mysql_fetch_array($res))

$page = $page .

«

$row [header] «;

// Поле info — это информация о разделе

$page = $page . «

$info

«;

}

else $page = $page . «HeT такого раздела!«;

}

// Есть подразделы, выводим их

while ($row = mysql_fetch_array($result))

$page = $page . «

$row[title]«;

}

Приведенный код проверяет наличие у выводимого раздела подразделов.

Если подразделов нет, то выводится список страниц раздела и информация о

разделе. Если же подразделы есть, то выводится только список подразделов.

Выводить информацию о разделе я не стал, чтобы не усложнять код. В

случае необходимости вы можете добавить эту возможность самостоятельно. На

Рис. 14.10 показано, как наша CMS выводит содержимое раздела— список

страниц и информацию о разделе.

Теперь напишем код вывода страницы. По сравнению с кодом вывода

раздела он будет довольно прост. Заодно мы реализуем функцию GotoTop, доба-

вив ссылки-якоря для перехода вниз и вверх документа. Нужный нам код

представлен в листинге 14.6. Данный код нужно добавить сразу после

последней закрывающей фигурной скобки сценария index.php.

182

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

Рис. 14.10. Вывод раздела сайта

elseif ($p==»showpageM) {

$id = @htmlspecialchars($id);

$id = @strip_tags($id);

$q = «select * from pages where id=$id»;

$r = mysql__query($q);

if (mysql_num_rows ($r) >0) {

$row = mysql__fetch__array($r);

// Выводим название страницы

$page = $page . «$row[h€>ader]M;

// Выводим ссылку Вниз

$page = $page .

«

BHH3

«;

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

// Выводим содержимое страницы

$раде = $раде . «

$row[content]«;

// Выводим ссылку на версию для печати

$раде = $раде . «

href=print.php?page=$id>Bepo*H для печатиа>«;

// Выводим ссылку Вверх

$раде = $раде . «

HaBepx

«;

}

else $page = $раде . «HeT такой страницы!«;

}

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

Зак ?ял

Рис. 14.11. Меню готово

184

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

Последняя строка необходима для установки переменной шаблона { page } по

переменной сценария $раде. Результат вывода страницы представлен на

рис. 14.11. Как видно из этого рисунка, наш сценарий раскрыл меню и

отобразил список страниц раздела.

14.6. Подведем итоги проделанной работы

Я могу вас поздравить: львиная доля работы выполнена. Наша CMS уже

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

радоваться раньше времени. Нам предстоит еще много чего сделать: нужно

реализовать дополнительные функции CMS, панель администрирования и

защитить нашу систему от атак злоумышленников.

Полный листинг файла index.php я приводить не стану— вы его найдете на

компакт-диске в каталоге Glava_14. Кроме этого файла в каталоге Glava_14

вы найдете следующие файлы:

? 14-3.php — листинг 14.3 — это наш первоначальный index.php, чтобы вы

убедились, что он работает;

? config.php — файл параметров CMS;

? menu.php — сценарий вывода меню;

? page.tpl — TPL-шаблон;

? template.php — шаблонизатор;

? db.sql — SQL-файл, создающий все необходимые таблицы и

заполняющий их первоначальной информацией.

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

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

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