[РЕШЕНО] Как активировать пагинацию в своем модуле?

Как активировать пагинацию в своем модуле?

я так сделал (упростил до основных необходимых действий):
в контроллере

    $default_params = array (
        'page' => 1,
        'items_per_page' => Registry::get('settings.Appearance.admin_elements_per_page')
    );
    $params = array_merge($default_params, $params);

    list($my_products, $search, $totals) = fn_avp_mp_my_get_products($params);

    Registry::get('view')->assign('params', $params);
    Registry::get('view')->assign('search', $search);
    Registry::get('view')->assign('my_products', $my_products);
    Registry::get('view')->assign('totals', $totals);

в fn_avp_mp_my_get_products

    $limit = '';
    $totals = получаем общее количество строк по заданным условиям;
    $limit = db_paginate($params['page'], $params['items_per_page'], $totals);
    $params['total_items'] = $totals;

    $products = db_get_array("SELECT * FROM таблица LEFT JOIN ... WHERE $where ORDER BY productId $limit");

    return array($products, $params, $totals);

и в шаблоне

{include file="common/pagination.tpl" save_current_page=true save_current_url=true div_id=$smarty.request.content_id}

в начале списка, и в конце списка:

<div class="clearfix">
    {include file="common/pagination.tpl" div_id=$smarty.request.content_id}
</div>
3 лайка

Какие переменные обязательны?

В шаблон надо передать массив search, в нём должны быть page, item_per_page, total_items для работы пагинации, если правильно помню

1 лайк

Спасибо огромное!