Постраничный вывод (Пргинация) в ModxSmarty Хочу выложить сюда пример вывода постраницно, т.к. изначально пришлось перелопатить исходники, чтобы понять как это работает Думаю будет полезно для других. Итак. Сначала Шаблон вывода нумерованныйх страниц tpl/pagination.tpl {pagination resource_id=$modx->resource->id items=$items limit=$limit current=$current_page prev_next=true assign=pagination}
<div class="pagination">
{assign var=prev value=1}
{if $pagination.prev.id}
<a href="{$pagination.prev.href}">предыдущая</a>
{/if}
{foreach from=$pagination.pages item=page name=pagination}
{if (($page.id-$prev) > 1)}
<span>...</span>
{/if}
{if $page.type == 'current'}
<span class="current">{$page.id}</span>
{else}
<a href="{$page.href}">{$page.id}</a>
{/if}
{assign var=prev value=$page.id}
{/foreach}
{if $pagination.next.id}
<a href="{$pagination.next.href}">следующая</a>
{/if}
</div> Что мы передаем в пагинатор:
resource_id — ID — ресурса, на котором выводится постраничный вывод. Обязательно. По-умолчанию почему то стоит «1», поэтому если не указать, то добавляет ?page=2 к корню сайта items — Общее количество записей для вывода. Это значение будем получать в шаблоне самой страницы. см. ниже current — текущая страница (присваиваем в шаблоне страницы) limit — количество записей на странице (По умолчанию 5, но мы присвоим свое значение также в шаблоне страницы. Теперь сам шаблон страницы tpl/news.tpl {extends file="tpl/layout-white.tpl"}
{block name=after_content}
{assign var=limit value=7} {assign var=current_page value=$smarty.request.page|default:1}
{assign var=params value=[ "where" => [ "parent" => $modx->resource->id ] ,"page"=>$current_page ,"limit"=>$limit ,"sort" => "publishedon" ,"dir" => "ASC" ,"includeTVs" => true ]}
{processor action="site/web/getdata" ns="modxsite" params=$params assign=result}
{assign var=items value=$result.total} {include file="tpl/pagination.tpl"}
<ul id="news-list"> {foreach $result.object as $object} {assign var=atitle value=$object.pagetitle} {if $object.longtitle}{assign var=atitle value=$object.longtitle}{/if} <li> <h3><a href="{$object.uri}" title="{$atitle}">{$object.pagetitle}</a> </h3> <p>{$object.summary}</p> <div><small>{$object.publishedon|date_format:"%Y-%m-%d %H:%M:%S"}</small></div> </li> {/foreach} </ul>{include file="tpl/pagination.tpl"} {/block} Тут в принципе интуитивно все понятно. Единственное что отмечу — это то откуда мы берем общее количество записей. {assign var=items value=$result.total}