[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Алгоритм IRB_Paginator
Гость_Slava
В разделе "Простой сайт" что то не полностью работает пагинатор, да и к тому же нет там подробных разъяснений по нему. Попытался разобраться, но запутался. Особенно загадочный метод createMenu ($level='num'). Если по отдельности то вроде каждый блок ясно как работает. А вот общая картина метода ... сложно понять.

Вопрос: можете в нем (пагинаторе или хотя бы этом методе) помочь разобраться? (может в уроке выложить разъяснения или где то на форуме есть алгоритм пагинатора)

Спасибо
twin
Вообще он вот тут описан

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Гость_Слава
Напомните что значит в ХТМЛ: /n аnd /t - не вспомню и найти не попадется.
inpost
перенос на новую строку и табуляция.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Winston
Такого нету.
Цитата (Гость_Слава @ 9.01.2013 - 01:00)
/n аnd /t - не вспомню и найти не попадется.

\n - перенос на новую строку
\t - табуляция
Игорь_Vasinsky
и \r - возврат корретки

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
arbuz
Цитата
что то не полностью работает пагинатор

А что именно не работает?

Пагинатор отказывается листать если число выводимых элементов равно 1.

$pag = New IRB_Paginator($this->num, 1);


Лечится изменением условия в конструкторе. В ТП отписывался, но так и не исправили, хотя может в целом это и не ошибка.

Michael
Цитата (arbuz)
В ТП отписывался, но так и не исправили, хотя может в целом это и не ошибка.

Как это может быть не ошибкой ?... Чем тогда - фичей? laugh.gif


_____________
There never was a struggle in the soul of a good man that was not hard
arbuz
Не, ну может в ТЗ при разработке было указано про этот момент. Но в целом я расценил как ошибку. Ибо мне нужно было вывести один элемент, а он отказывался laugh.gif
Гость_Slava
Этот пагинатор что на сайте не запускал, запускал тот что на платных курсах (работате не с БД, а с папкой с картинками). Он вообще не листает, разве что первый раз листнул, а потом все ссылки на ту же страницу.
Ну то еще доберемся, пока хочется разобраться с самой логикой пагинатора:

к примеру если this->TableCount - это количество записей (картинок) в базе, то что означет вот эта строчка:
$this->TableTotal = intval(($this->TableCount - $this->NumColumns) / $this->NumRows * $this->NumColumns) - 1;

Вото что получается:
$this->TableCount       2            10           20            50
$this->NumColumns 2 2 2 2
$this->NumRows 2 2 2 2
$this->TableTotal -1 1 3 11

$this->TableCount       2            10           20            50
$this->NumColumns 2 2 2 2
$this->NumRows 3 3 3 3
$this->TableTotal -1 0 2 7


Дальше есть строчка:
$count = ceil($this->TableTotal / $this->NumRows / $this->NumColumns);

То есть это, для меня не понятное число, делим на количество рядов и на количество колонок на странице и должно получится количество страниц. Я пока логики в этом не вижу, может кто то понимает как это работает или это ошибка?
Идем дальше, есть такая строчка:
if($this->NumPage > $this->TableTotal) 
$this->NumPage = $this->TableTotal;

То есть, если вдруг номер страницы окажется больше этого загадочного числа, то на эту страницу мы не попадаем, а попадаем на страницу с номером $this->TableTotal...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.