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

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

175

// Проверяем, является ли раздел подразделом

$qur2 = «select * from cats where id=$number»;

$res2 = mysql_query($qur2) ;

$row2 = mysql_fetch_array($res2);

// Получаем значение поля root и анализируем его

$root = $row2[root];

if ($root > -1) {

// Наш раздел является подразделом, поэтому нужно

// установить переменные:

// $orig — номер исходного раздела

// $number — номер корневого раздела

// $sub=l — признак подраздела

$orig=$number; $number=$root; $sub=l;

}

}

После того как мы выполнили подготовительные действия, мы можем с

чистой совестью вывести корневые (родительские) разделы. Это можно сделать

с помощью следующего кода:

while ($row = mysql_fetch^array($r)) {

$menu = $menu . «

href=index.php?p=show&id=$row[id]>$row[title]«;

// Далее будет продолжение кода

Данный код выводит ссылки первого вида:

название_раздела а>

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

проанализировать переменную $is_ext_menu. Ведь, возможно, пользователь

открыл страницу сайта, и теперь нам нужно вывести иерархическое меню, т. е.

отобразить список страниц раздела/подраздела и название самого

раздела/подраздела.

176

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

Все сказанное реализуется с помощью следующего кода:

// Если нужно раскрыть меню

if ($is_ext_menu ==1) {

if ($row[id]==$number) {

// Если перед нами подраздел

if ($sub==l) {

// Выводим имя подраздела

$qur3 = «select * from cats where id=$orig»;

$res3 = mysql_query($qur3);

$row3 — mysql_fetch_array($res3);

$menu = $menu .

«
  

href=index.php?p=show&id=$row[id]>$row3[title]«;

}

// Получаем и выводим список страниц раздела

if ($sub==l) $number=$orig;

$qur = «select * from pages where cat=$number»;

$res = mysql__query ($q4ur) ;

// Выводим список страниц

while ($row = mysql_fetch__array($res) )

$menu = $menu .

«
    

href=index.php?p=showpage&id=$row[id]>$row[header]«;

}

} //if ($is_ext_menu == 1)

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

В листинге 14.4 представлен полный листинг файла menu.php. Чтобы листинг

был менее громоздким, я удалил все комментарии, которые были приведены

ранее.

$q = «select * from cats where root—l»;

$r = mysql_query($q);

$is_ext_menu = 0;

if ($p===»showpage») {

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

$res = @mysql_query($qur);

$row = @mysql_fetch_array($res);

$number = $row[cat];

$is_ext_menu = 1;

$sub = 0;

$qur2 = «select * from cats where id=$number»;

$res2 = mysql_query($jqur2);

$row2 = mysql_fetch_array($res2);

$root = $row2[root];

if ($root > -1) { $orig=$number; $number=$root; $sub=l; }

}

while ($row = mysql_fetch_array($r)) {

$menu = $menu . «

href=index.php?p=show&id=$row[id]>$row[title]«;

178

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

if ($is_ext_menu ==1) {

if ($row[id]==$number) {

if ($sub—1) {

$qur3 = «select * from cats where id=$orig»;

$res3 = mysql_query($qur3);

$row3 = mysql_fetch__array($res3);

$menu = $menu . «
  

href=index.php?p=show&id=$row[id]>$row3[title]«;

}

if ($sub==l) $number=$orig;

$qur = «select * from pages where cat=$number»;

$res = mysql__query($qur);

while ($row = mysql_fetch_array($res))

$menu = $menu .

«
    

$row[header]«;

}

} // if ($is_ext__menu == 1)

}

?>

Примечание

Данный листинг вы найдете в каталоге Glava_14.

Теперь нам нужно изменить файл index.php. Отройте его и найдите оператор

присваивания:

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

Пункт 1

Пункт 2

Пункт 3″;

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

179

Замените его оператором include:

include «menu.php»;

Запустите index.php. Наша CMS уже отображает корневые разделы меню

(рис. 14.9), но еще не готова к выводу содержимого раздела/страницы —

вместо этого отображается только строка { page }.

Рис. 14.9. CMS пока не готова к выводу содержимого раздела/страницы

14.5.3. Вывод содержимого раздела и страницы

Наш index.php должен реагировать на значения ‘show и ‘showpage·

переменной $р.

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

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

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