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

Вы можете отредактировать этот

файл по своему усмотрению. Файл используется для импорта таблиц

CMS с помощью программы phpMyAdmin.

ГЛАВА 15

Дополнительные функции CMS

15.1. Вывод информации из таблицы static

В главе 14 мы совершенно забыли о таблице static и трех страницах (вы

можете добавить в нее столько страниц, сколько вам захочется), содержащихся

в ней.

Откройте шаблон page.tpl и добавьте три следующие ссылки:

r\naBHaH

Ilpaiicbi

KoHTaKTbi

Место добавления этих ссылок особого значения не имеет, но желательно

добавить их после строки {description}. Как обычно, на компакт-диске в

каталоге Glava_15 вы найдете измененную версию файла page.tpl.

Обратите внимание на формат ссылки:

index.php?p=static&id=HMH

Имя — это идентификатор страницы в таблице static. Теперь осталось

добавить код отображения страницы из таблицы static. Для этого после последней

закрывающей фигурной скобки файла index.php нужно добавить следующий

код:

elseif ($p==»staticM) {

$id = @htmlspecialchars($id);

$id = @strip_tags($id);

$q = «select * from static where id=\»$id\» limit 1″;

$r = mysql_query($q);

186

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

$row = mysql_fetch_array($r);

$page = $row[content];

}

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

if (!isset($p)) {

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

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

}

Замените его следующим фрагментом:

if (!isset($p)) {

$q = «select * from static where id=\»main\» limit 1″;

$r = mysql_query($q);

$row = mysql_fetch_array($r);

$page = $row[content];

}

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

содержимое страницы с идентификатором ‘main1, т. е. будет отображена

главная страница. Поскольку страницы из таблицы static не относятся ни к

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

Полную версию файла index.php (со всеми изменениями) вы найдете в

каталоге Glava_15. Так как на протяжении данной главы мы будем изменять

данный файл, наращивая возможности CMS, то версия с поддержкой таблицы

static будет называться index-static.php.

15.2. Постраничный вывод

В нашей CMS мы не будем использовать постраничный вывод из базы

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

знать, как его реализовать.

Глава 15. Дополнительные функции CMS

187

Вывести информацию из базы данных в виде HTML-страницы достаточно

просто. Смотреться это тоже будет красиво. Но вот если выводится много

записей, скажем, больше 30, то читать такой вывод не очень удобно —

попробуйте просмотреть пару сотен записей на одной странице! А ведь в

таблице могут быть даже не сотни, а тысячи записей.

Выходом из данной ситуации может служить постраничный вывод из базы

данных (рис. 15.1). Отметим, что данная функция присутствует практически

во всех серьезных PHP-проектах, поэтому она обязательно должна быть и у

вас.

Рис. 15.1. Постраничный вывод форума phpBB

Существуют два алгоритма организации постраничного вывода:

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

записи, которые нужно вывести, а затем анализируем некую переменную $р,

содержащую смещение от начала таблицы. После вывода части записей мы

188

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

увеличиваем переменную $р на величину, равную числу выведенных

записей, таким образом, при отображении следующей страницы на ней не

окажется уже выведенных ранее записей. Нерациональность данного способа

заключается в том, что мы получаем все записи таблицы, а это лишняя

нагрузка на сервер баз Данных, да и сам сценарий будет работать медленно,

особенно когда записей в таблице много.

Второй способ заключается в совместном использовании операторов limit и

select. Как мы уже знаем, оператор limit позволяет ограничить выбор

записей из базы данных (мы так уже делали при обновлении и удалении записей).

Рассмотрим синтаксис limit:

SELECT *

FROM

[WHERE ]

LIMIT ,

Здесь start — это номер начальной записи, a offset — это смещение,

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

заданной параметром start.

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

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

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