PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
teddy
Отправлено: 06 Ноября, 2014 - 18:22:16
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




Всем привет! На днях взялся за новый проект, где обязательным условием является его написание с нуля. Ввиду того, что обычно работаю на фреймворках и привык использовать готовые решения, отправился в гугл для поиска нормального класса-пагинатора, но устраивающий меня так и не нашел. Свой быдлокласс который я выкладывал сюда в начале этого года, меня так же не устроил Улыбка

Некоторые наработки у меня уже были, но нормального пагинатора под рукой не было. Поэтому решил написать сам, чем я и собираюсь с Вами поделиться.
Может в дальнейшем ещё великами поделюсь, если будет настроение. Этот самый простой, поэтому без особого выноса мозга смогу объяснить с чем его едят.

Итак, приступим. Собственно сам код загорает в спойлере.
ЗЫ: тут беда с форматированием кода, в файле который в приложении норм.
Спойлер (Отобразить)

У класса всего 6 методов, 5 из которых предназначены для клиентского кода.

Описание методов:
1. setCurrentPage - для установления номера текущей страницы
2. setRecordsCount - для установления общего количества записей
3. setMaxPageCount - для установления максимального количества страниц пагинатора
4. setPerPageLimit - для установления количества выводимых записей на одну страницу
5. getPages - для получения массива данных о страницах

Пример использования:
PHP:
скопировать код в буфер обмена
  1. $page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
  2.  
  3. $paginator = new Paginator();
  4. $pages = $paginator->setCurrentPage($page)
  5.                              ->setRecordsCount(200)
  6.                              ->setPerPageLimit(10)
  7.                              ->setMaxPageCount(5)
  8.                              ->getPages();


Если Вы все сделали правильно, то в $pages будет приблизительно такой массив:
Спойлер (Отобразить)

Если к примеру Вы переключитесь на вторую страничку, то в массиве появится дополнительный ключ 'prev' и значение(число) предыдущей странички.
Так же если нет страничек(высчитывается на основе переданных данных) "вперед", то ключа next в массиве так же не будет.

Ну и наконец пример вывода.

Спойлер (Отобразить)


Думаю ничего не забыл, файл с классом в приложении.
Скачать файл: Paginator.php
Скачан раз: 45

(Отредактировано автором: 28 Февраля, 2015 - 21:41:39)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Пользовательские функции »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB