Что еще? онлайн урок.


Мы создали простой класс для работы со страницами некоторого каталога товаров (например). Он содержит в себе минимальную логику. В нем, например, не предусмотрено возможности для печати "троеточия" (...) в случае, если страниц слишком много, например:



В данном случае не стоит записывать в массив именно 11285 экземпляров кнопок - это будет слишком громоздко по отношению к ресурсам памяти. Как вариант, можно записать в массив кнопок лишь те кнопки, которые явно отображены на странице, а также "формальные кнопки" с тремя точками в виде текста, которые не будут кликабельными. Создание алгоритма для такой панели кнопок мы оставляем в качестве домашнего задания.

Также, обратим внимание, что наш класс не содержит абсолютно никакой информации о способе представления панели кнопок на веб-странице. Это означает, что внешний вид будет определятся уже в шаблонах при использовании объекта панели (мы так и сделали).

Обратим внимание на способ передачи страницы в ссылку. Мы передали номер страницы как обычный GET параметр. Но бывают случаи, когда номер страницы прописан прямо в URL, например http://site.com/Hatchback-cheap.12.html. Тут 12 - номер страницы. В таком случае можно, к примеру, передавать в конструктор класса Pagination еще и шаблон строки со ссылкой в виде Hatchback.{page}.html, которая будет хранится как свойство объекта. Таким образом, мы сможем создавать более сложные ссылки, которые включают номер страницы.