Логотип

Документация по макросам и шаблонам UMI.CMS

system numpages()

Название

%system numpages()% — Выводит список страниц при постраничном выводе.

Параметры: system numpages(total, per_page [, template = 'default', varName='p', maxPages='5'])

total

Общее количество страниц.

per_page

Количество страниц, выведенных на странице.

template

Имя шаблона, по которому следует выводить список страниц.В XSLT-шаблонизаторе игнорируется.

varName

Имя переменной, которая будет использоваться для задания номера страницы в URL в списке страниц. По умолчанию — символ "p". Например, ~/vse_novosti/?p=0 отобразит первую страницу ленты, ~/vse_novosti/?p=1 — вторую страницу, и так далее.

Внимание

Все макросы работающие с постраничным выводом принимают только значение по умолчанию. Поэтому, если не преследуются какие-либо специальные цели, менять этот параметр не рекомендуется.

maxPages

Максимальное количество элементов в списке номеров страниц. Этот параметр ограничивает количество элементов списка страниц, выводимых макросом %pages% в шаблоне.

Описание

Макрос отвечает за построение списков страниц при постраничном выводе. Его можно использовать вместе с любым макросом, который осуществляет постраничный вывод и передает параметры total и per_page, которые необходимы для корректного вывода списка страниц.

<?php $pages = $this->macros('system', 'numpages', array($variables['total'], $variables['per_page'])); ?>

Пример вызова

udata://system/numpages/20/5/

XML-ответ UData

Если параметр p указывает на первую страницу (или отсутствует), выводятся только элементы toend_link и tonext_link.

udata://system/numpages/20/5/

<udata module="system" method="numpages" generation-time="0.000595">
  <items>
    <item link="?p=0" is-active="1">1</item>
    <item link="?p=1" page-num="1">2</item>
    <item link="?p=2" page-num="2">3</item>
    <item link="?p=3" page-num="3">4</item>
  </items>
  <toend_link page-num="3">?p=3</toend_link>
  <tonext_link page-num="1">?p=1</tonext_link>
</udata>

Если параметр указывает на середину списка (например страница 2 из 3), то выводятся все элементы: tobegin_link, toend_link, toprev_link, tonext_link.

udata://system/numpages/20/5/?p=1

<udata module="system" method="numpages" generation-time="0.000641">
  <items>
    <item link="?p=0">1</item>
    <item link="?p=1" page-num="1" is-active="1">2</item>
    <item link="?p=2" page-num="2">3</item>
    <item link="?p=3" page-num="3">4</item>
  </items>
  <tobegin_link page-num="0">?p=0</tobegin_link>
  <toend_link page-num="3">?p=3</toend_link>
  <toprev_link page-num="0">?p=0</toprev_link>
  <tonext_link page-num="2">?p=2</tonext_link>
  <current-page>1</current-page>
</udata>

Если параметр p указывает на последнюю страницу, выводятся только элементы tobegin_link и toprev_link.

data://system/numpages/20/5/?p=3

<udata module="system" method="numpages" generation-time="0.000606">
  <items>
    <item link="?p=0">1</item>
    <item link="?p=1" page-num="1">2</item>
    <item link="?p=2" page-num="2">3</item>
    <item link="?p=3" page-num="3" is-active="1">4</item>
  </items>
  <tobegin_link page-num="0">?p=0</tobegin_link>
  <toprev_link page-num="2">?p=2</toprev_link>
  <current-page>3</current-page>
</udata>

Элементы и атрибуты

<items>

Ветвь, содержащая в себе элементы items — параметры для построения постраничного вывода.

<item>

Элемент, описывающий параметры для постраничного вывода. Значение элемента — порядковый номер страницы при постраничном выводе.

@link

Строка параметром и значением, для перехода на эту страницу.

@page-num

Значение параметра, передающегося для перехода на страницы постраничного вывода. Этот же атрибут присутствует у следующих четырех элементов UData.

@is-active

Указывает на текущую страницу постраничного вывода.

<tobegin_link>

Параметр и значение для перехода на первую страницу при постраничном выводе.

<toend_link>

Параметр и значение для перехода на последнюю страницу при постраничном выводе.

<toprev_link>

Параметр и значение для перехода на предыдущую страницу при постраничном выводе.

<tonext_link>

Параметр и значение для перехода на следующую страницу при постраничном выводе.

Вывод списка страниц осуществляется по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, в этом случае для вывода свойства будет использован шаблон по умолчанию — default.tpl.

Если общее количество страниц меньше, либо равно параметру per_page, то выводится блок pages_block_empty

Используемые шаблоны

Макрос оперирует шаблонами, находящимися в каталоге /tpls/numpages/.

Используемые блоки шаблона

pages_block

Выводит оформление для списка страниц.

%pages%

Выводит список страниц.

%tobegin%

Выводит блок pages_tobegin , либо pages_tobegin_a .

%toprev%

Выводит блок pages_toprev , либо pages_toprev_a .

%toend%

Выводит блок pages_toend , либо pages_toend_a .

%tonext%

Выводит блок pages_tonext , либо pages_tonext_a .

%tobegin_link%

Выводит ссылку на первую страницу.

%toprev_link%

Выводит ссылку на предыдущую страницу.

%toend_link%

Выводит ссылку на последнюю страницу.

%tonext_link%

Выводит ссылку на следующую страницу.

pages_block_empty

Используется в том случае, если общее количество страниц меньше, либо равно параметру per_page.

pages_item

Выводит отдельную страницу, если эта страница не является активной (текущей).

%link%

Выводит ссылку на страницу.

%num%

Выводит номер страницы.

%quant%

Выводит разделитель, который вставляется между элементами списка страниц. Использует блок pages_quant .

%list-class-first%

в случае, если элемент первый, выводит "first"

%list-class-last%

в случае, если элемент последний, выводит "last"

%list-class-odd%

в случае, если элемент четный, выводит "odd"

%list-class-even%

в случае, если элемент нечетный, выводит "even"

%list-position%

вставляет порядковый номер в списке

pages_item_a

Выводит отдельную страницу, если эта страница является активной.

%link%

Выводит ссылку на страницу.

%num%

Выводит номер страницы.

%quant%

Выводит разделитель, который вставляется между элементами списка страниц. Использует блок pages_quant .

%list-class-first%

в случае, если элемент первый, выводит "first"

%list-class-last%

в случае, если элемент последний, выводит "last"

%list-class-odd%

в случае, если элемент четный, выводит "odd"

%list-class-even%

в случае, если элемент нечетный, выводит "even"

%list-position%

вставляет порядковый номер в списке

pages_quant

Выводит разделитель, который вставляется между страницами.

pages_tobegin

Выводит блок с ссылкой на первую страницу, если текущая страница не первая.

%tobegin_link%

Выводит ссылку на первую страницу.

pages_tobegin_a

Выводит блок с ссылкой на первую страницу, если текущая страница первая.

%tobegin_link%

Выводит ссылку на первую страницу.

pages_toprev

Выводит блок с ссылкой на предыдущую страницу, если текущая страница не первая.

%toprev_link%

Выводит ссылку на предыдущую страницу.

pages_toprev_a

Выводит блок с ссылкой на предыдущую страницу, если текущая страница первая.

%toprev_link%

Выводит ссылку на предыдущую страницу.

pages_toend

Выводит блок с ссылкой на последнюю страницу, если текущая страница не последняя.

%toend_link%

Выводит ссылку на последнюю страницу.

pages_toend_a

Выводит блок с ссылкой на последнюю страницу, если текущая страница последняя.

%toend_link%

Выводит ссылку на последнюю страницу.

pages_tonext

Выводит блок с ссылкой на следующую страницу, если текущая страница не последняя.

%tonext_link%

Выводит ссылку на следующую страницу.

pages_tonext_a

Выводит блок с ссылкой на следующую страницу, если текущая страница последняя.

%tonext_link%

Выводит ссылку на следующую страницу.

Примеры использования

<?php

$FORMS = Array();

$FORMS['pages_block'] = <<<END
 <div>%tobegin% %toprev% %pages% %tonext% %toend%</div>
END;

$FORMS['pages_item'] = <<<END
 <a href="%link%">%num%</a>%quant%
END;

$FORMS['pages_item_a'] = <<<END
 <b>%num%</b>%quant%
END;

$FORMS['pages_quant'] = <<<END
 &#160;&#160;&#160;
END;

$FORMS['pages_block_empty'] = <<<END
END;

$FORMS['order_by'] = <<<END
 <a href="%link%">%title%</a>
END;

$FORMS['order_by_a'] = <<<END
 <span style="color: #000;"><b>%title%</b></span>
END;

$FORMS['pages_tobegin'] = <<<END
 <a href="%tobegin_link%" id="tobegin">В начало</a>
END;

$FORMS['pages_tobegin_a'] = <<<END
END;

$FORMS['pages_toprev'] = <<<END
 <a href="%toprev_link%" id="toprev">Предыдущая</a>
END;

$FORMS['pages_toprev_a'] = <<<END
END;

$FORMS['pages_toend'] = <<<END
 <a href="%toend_link%" id="toend">В конец</a>
END;

$FORMS['pages_toend_a'] = <<<END
END;

$FORMS['pages_tonext'] = <<<END
 <a href="%tonext_link%" id="tonext">Следующая</a>
END;

$FORMS['pages_tonext_a'] = <<<END
END;

?>