Создание страниц материалов для сайта на PHP

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

Итак, нам необходима система страниц материалов, делать её мы будем, естественно на PHP.

Наша система будет состоять из 2 частей.

1. Скрипт вывода нужных на данной странице материалов

2. Список страниц, проще говоря навигация по страницам.

Давайте разберём всё это.

Значит так, мы с вами хотим на странице вывести материалы. В рамках примера, наши материалы будут выводиться на странице aaa.ru/materials.php.

На нашем сайте должен быть файл содержащий конфикурации. Этот файл подгружается всегда, допустип у нас это config.php. В него мы вместим строку

$num=5;

Данная переменная содержит в себе число выводимых на странице материалов. Вы можете её изменить по желанию.

А вот и сам код вывода:

if(isset($_GET['page'])){
$page=$_GET['page'];}
else{$page=1;}
$mp= intval($nall/$num+1);
if($page>$mp){
$page=$mp;
}
if($page<1){
$page=1;
}
$pitem=($page-1)*$num;
include 'db.php';
$query = "select * from post order by time desc limit $pitem, $num";

Всё мы выбрали из базы необходимое количество материалов для вывода, теперь используйте и выводите их как вам угодно.

И теперь непосредственно вывод самой навигации, которая обычно располагается внизу страницы с материалами:

if($mp>1){
$pm3=$page-3;
$pm2=$page-2;
$pm1=$page-1;
$pp3=$page+3;
$pp2=$page+2;
$pp1=$page+1;
?><div style="text-align:center;"><?
if($page>4){echo '<a href="http://aaa.ru/materials.php?page=1";>В начало </a>...';}
if($page>3){echo '<a href="http://aaa.ru/materials.php?page=';.$pm3.'">'.$pm3.' </a>';}
if($page>2){echo '<a href="http://aaa.ru/materials.php?page=';.$pm2.'">'.$pm2.' </a>';}
if($page>1){echo '<a href="http://aaa.ru/materials.php?page=';.$pm1.'">'.$pm1.' </a>';}
echo '<a class="active" href="http://aaa.ru/materials.php?page=';.$page.'">'.$page.' </a>';
if($pp1<=$mp){echo '<a href="http://aaa.ru/materials.php?page=';.$pp1.'">'.$pp1.' </a>';}
if($pp2<=$mp){echo '<a href="http://aaa.ru/materials.php?page=';.$pp2.'">'.$pp2.' </a>';}
if($pp3<=$mp){echo '<a href="http://aaa.ru/materials.php?page=';.$pp3.'">'.$pp3.' </a>';}
if(($mp-$page)>3){echo '...<a href="http://aaa.ru/materials.php?page=';.$mp.'"> В конец</a>';}
}

Извиняюсь за громоздкость, можно было бы это и короче сделать, но пока так.

Идентифицироваться страницы в адресе с помощью переменной page, т.е. при переходе по ссылке http://aaa.ru/materials.php?page=4 будет открыты материалы на 4 странице.

Элемент в навигации с именем класс active будет естественно той страницей на который посетитель находится. По желанию в CSS можете украсить его под ваш дизайн.


You have no rights to post comments

Карта сайта