|
Pagination
|
| Автор |
Сообщение |
ph0en1x Интернет на завтрак

Зарегистрирован: 28.11.2007 Сообщения: 41
1 
|
Добавлено: Чт, 18 Июн, 2009 22:43 Заголовок сообщения: Pagination |
|
|
занялся созданием простенькой фотогалереи.
Принцип роботы у неё такой:
получаем названия всех файлов с помощь php
и выводим посредством jQuery.
Код которым получаем превьюшки:
| Код: | <?
$d = dir('img/');
$i = 0;
$e = $_GET['e'];
while(false !== ($e = $d->read()))
{
if(strpos($e,'.jpg'))
{
++$i;
echo ' <li class="active"><img src="img/'.$e.'"></li>'.chr(10);
}
}
?> |
Хотелось бы выводить эти превьюшки квадратом 4х4 (по 16 фото)
но фотографий больше, и получается пока в 4 столбика.
Подскажите правильный способ реализации Pagination. |
|
| Вернуться к началу |
|
 |
madhamster Согнул ложку


Зарегистрирован: 09.10.2006 Сообщения: 902
432 
|
Добавлено: Пт, 19 Июн, 2009 00:54 Заголовок сообщения: |
|
|
| Код: |
<?php
$dirname = 'images';
$ext = '.jpg';
$items = 16;
$files = glob("$dirname/*$ext");
$total = count($files);
$pages = ceil($total / $items);
$page = (!is_numeric($_GET['page']) || $_GET['page'] > $pages || $_GET['page'] < 1)? 1 : $_GET['page'];
$offset = $page * $items - $items;
$files = array_slice($files, $offset, $items);
foreach($files as $file){
echo '<li class="active"><img src="'.$file.'" width="80" height="60"></li>';
}
?>
|
Номер страницы передаётся чрез GET типа: gallery.php?page=2
Думаю страницы подсчитать вы в состоянии. _________________ NextStage - live music competition |
|
| Вернуться к началу |
|
 |
ph0en1x Интернет на завтрак

Зарегистрирован: 28.11.2007 Сообщения: 41
1 
|
Добавлено: Вс, 21 Июн, 2009 18:47 Заголовок сообщения: |
|
|
madhamster, спасибо.
Странички подсчитал так:
| Код: | $next = ceil($page + 1);
$prev = ceil($page - 1);
if($_GET['page'] <= 1)
{
echo '<p class="nav">« prev|<a href="./?page='.$next.'">next »</a></p>';
}
if($_GET['page'] >= $pages)
{
echo '<p class="nav"><a href="./?page='.$prev.'">« prev</a>|next »</p>';
}
|
и переделал:
| Код: | | $page = (!is_numeric($_GET['page']))? 1 : $_GET['page']; |
|
|
| Вернуться к началу |
|
 |
ph0en1x Интернет на завтрак

Зарегистрирован: 28.11.2007 Сообщения: 41
1 
|
Добавлено: Вс, 21 Июн, 2009 22:44 Заголовок сообщения: |
|
|
И ещё хотелось бы узнать какова нагрузка такого скрипта на сервер.
При каком количестве обращений в секунду прийдется задумываться о кешировании?
А также сколько файлов должно быть в директории для "шустрой" работы?
Или нагрузка вобще минимальна и кеширования здесь не имеет смысла? |
|
| Вернуться к началу |
|
 |
madhamster Согнул ложку


Зарегистрирован: 09.10.2006 Сообщения: 902
432 
|
Добавлено: Пн, 22 Июн, 2009 00:31 Заголовок сообщения: |
|
|
Скорее последнее... _________________ NextStage - live music competition |
|
| Вернуться к началу |
|
 |
|