Не так давно ГО №2 написал заметку о пагинаторе. Но что мне там не понравилось, так это то, что как и во всех остальных пагинаторах там код нефигово так смешан с html-тегами. А мне это не нужно. С утреца сегодня набросал кой-че, баги видны невооруженным взглядом, еще не принимался фиксить их. Просто хочу показать идею пагинации с другой стороны немного. http://code.google.com/p/bicycle-librar ... ce/browse/
например, у меня нет вообще такого класса. Логика отображения в шаблоне делается. Туда только набор ссылок передается с номерами страниц. Этот набор формирует контроллер по запросу из коллекции которая отображается постранично.
ну тут примерно тоже самое будет. 1) В конструктор закидываешь общее кол-во элементов, текущую страницу, настройки если нужно. 2) Получаешь номера страниц, которые можешь показать, 3) тулишь их в шаблон, он сам расставляет троеточия, стрелочки, стиль active или нет. Все эти пункты можно сделать каким-то своим другим классом и потом его все время и юзать. Задача моей поделки: всего лишь получить номера страниц, которые можно выводить. Такой вопрос еще: SPL ArrayObject быстрее стандартных массивов или нет?
Нет, ибо это надстройка над стандартными массивами. При этом - не очень качественная: PHP: <?php $array = array('Buck','Jerry','Tomas'); $arrayObject = new ArrayObject($array);
странно, меня смутило это исследование http://blueparabola.com/blog/spl-deserv ... eiteration TheShock а по поводу такого пагинатора против генерирующих сразу html че скажешь?
блин я имел ввиду что куда удобнее писать так Paginator("<a href='/index.php?page={page}'>[{page}]</a>") чем каждый раз писать по сути обёртку для сабжа хотя с другой стороно с сабжем можно сделать вывод логикой шаблона
Генерирующие сразу html есть самый, что ни на есть маразм, имхо. Твой подход мне нравится намного больше.
Переехали на говнокод^W гуглокод. Теперь это набор велосипедных библиотек (пока одна, вскоре наверно подтянется strclass).
Добавлен метод getCountElementsOnPage([$page]) - возвращает кол-во элементов на странице $page. если $page не указывать - вернет кол-во элементов на текущей странице если $page=-1 - кол-во на последней странице Добавлен параметр fromTo в настройках. Если true, вывод будет примерно таким: Код (Text): Страницы слева: 1 - 21, 31 - 51, 61 - 81, 91 - 111, 121 - 141 Страницы по центру: 391 - 411, 421 - 441, 451 - 471, 481 - 501, 511 - 531 Страницы справа: 751 - 771, 781 - 801, 811 - 831, 841 - 861, 871 - 891 Если false (что по умолчению), то что-то типа: Код (Text): Страницы слева: 1, 2, 3, 4, 5 Страницы по центру: 14, 15, 16, 17, 18 Страницы справа: 26, 27, 28, 29, 30 Если по-хорошему, то нужно сделать возможность возвращать и то и другое одновременно. Но я не придумал еще как это сделать лучше (какой формат возвращаемых данных). Есть идеи - велкам.
Правильное слово - "сразу" ;-) html-код ссылок в любом случае генерируется скритом, вопрос лишь в том, как бы сделать это-по сложнее =)