Pagination

The module is designed to generate content-page navigation. The module consists of the connected parts and template.

Connection

Подключаемая часть – файл modules/paginator/paginator.inc.php. В нем описан класс Paginator_inc. В модуле к объекту класса можно обратиться через переменную $this->diafan->_paginator. Экземпляр класса создается при первом вызове переменной.

Свойства

var nastr – количество элементов, показанных на странице.

Example:

// definition variable in the code has more prior
// then determ consider field in the module setiings
$this->diafan->_paginator->nastr = 30;

var variable = 'page' – название переменной, содержащей номер страницы.

If concurrent need use 2 paginations then define property variable for additional pagination not equal "page".

Example:

Comments attached to news categories cannot use pagination with variable page (http://site.com/news/page2/), while this variable use by pagination of news categories. Because use additional variable dpage (http://site.com/news/dpage2/).

$this->diafan->_paginator->variable = 'dpage';

var navnastr = 10 – количество ссылок постраничной навигации, показанных на одной страние.

Example:

// reduce pagination links quantity
$this->diafan->_paginator->navnastr = 3;

// output:
// 1 2 3 ...» or « 6 7 8 »
// instead
// 1 2 3 4 5 6 7 8 9 10 »

var navlink – ссылка на первую страницу.

Example:

// link to first page of counter of photos views
$this->diafan->_paginator->navlink = 'photo/counter/'.($this->diafan->_route->cat ? 'cat'.$this->diafan->_route->cat.'/' : '');

var page – номер страницы.

Example:

// in particular cases can use GET variable for pagination
$this->diafan->_paginator->page = ! empty($_GET["page"]) ? intval($_GET["page") : 0;

var get_nav – GET переменные, участвующие в навигации для постраничного вывода.

Example:

// add to all pagination links
// GET-variable with search word
if(! empty($_GET["searchword"])))
{
    
$this->diafan->_paginator->get_nav =
    
'?searchword='.$this->diafan->filter($_GET, "url", "searchword");
}

var urlpage = 'page%d/' – шаблон части ссылки, отвечающей за передачу номера страницы.

Example:

//instead variable $navlink_tpl can define $utlpage
// then $navlink_tpl will be equal navlink + urlpage
$this->diafan->_paginator->urlpage = 'page%d/';

var polog – порядковый номер элемента, с которого начинается вывод элементов.

Example:

// get pagination links
$links = $this->diafan->_paginator->get();

// send query to db to get news list for the current page
$result = DB::query_range("SELECT * FROM {news}",
$this->diafan->_paginator->polog, $this->diafan->_paginator->nastr);

var nen – количество элементов в списке.

Example:

// news quantity
$this->diafan->_paginator->nen = DB::query_result("SELECT COUNT(*) FROM {news}");

Методы

array get () – Формирует строку навигации.

Example:

// get pagination links
$links = $this->diafan->_paginator->get();

// insert getting data in template
$this->result["paginator"] = $this->diafan->_tpl->get('get', 'paginator', $links);

The most simple example of using pagination.

Example:

// total news
$this->diafan->_paginator->nen = DB::query_result("SELECT COUNT(*) FROM {news}");

// pagination
$this->result["paginator"] = $this->diafan->_tpl->get('get', 'paginator', $this->diafan->_paginator->get());

// news for the current page
$rows = DB::query_range_fetch_all("SELECT * FROM {news}", $this->diafan->_paginator->polog, $this->diafan->_paginator->nastr);

The remaining properties to be added as needed. For example, when searching for products to add to the navigation search terms. Or to make an additional pagination as in the comments.

Template

The module has two templates: paginator.view.get.php and paginator.view.get_admin.php. The first part is used for the user and one for administration. You can create your own template and use it in your module.

Files

  1. modules/paginator/js/paginator.show_more.js – JS-сценарий модуля;

  2. modules/paginator/paginator.inc.php – Подключение для работы с постраничной навигацией;

  3. modules/paginator/paginator.install.php – Module installation;

  4. modules/paginator/views/paginator.view.get.php – Шаблон постраничной навигации для пользовательской части;

  5. modules/paginator/views/paginator.view.get_admin.php – Шаблон постраничной навигации для административной части;

  6. modules/paginator/views/paginator.view.show_more.php – Шаблон постраничной навигации для пользовательской части.