/** * Paginate query results * * @param int $page page number * @param int $items_per_page items per page * @return string SQL substring */ function db_paginate(&$page, $items_per_page, $total_items = 0) { $page = intval($page); if (empty($page)) { $page = 1; } $items_per_page = intval($items_per_page); // Check if page in valid limits if ($total_items > 0) { $page = db_get_valid_page($page, $items_per_page, $total_items); } return ' LIMIT ' . ($page - 1) * $items_per_page . ', ' . $items_per_page; }
if ($mode == 'manage' || $mode == 'p_subscr') { unset($_SESSION['product_ids']); unset($_SESSION['selected_fields']); $params = $_REQUEST; $params['only_short_fields'] = true; $params['extend'][] = 'companies'; if (fn_allowed_for('ULTIMATE')) { $params['extend'][] = 'sharing'; } if ($mode == 'p_subscr') { $params['get_subscribers'] = true; } list($products, $search) = fn_get_products($params, Registry::get('settings.Appearance.admin_products_per_page'), DESCR_SL); fn_gather_additional_products_data($products, array('get_icon' => true, 'get_detailed' => true, 'get_options' => false, 'get_discounts' => false)); $page = $search['page']; $valid_page = db_get_valid_page($page, $search['items_per_page'], $search['total_items']); if ($page > $valid_page) { $_REQUEST['page'] = $valid_page; return array(CONTROLLER_STATUS_REDIRECT, Registry::get('config.current_url')); } Tygh::$app['view']->assign('products', $products); Tygh::$app['view']->assign('search', $search); if (!empty($_REQUEST['redirect_if_one']) && $search['total_items'] == 1) { return array(CONTROLLER_STATUS_REDIRECT, 'products.update?product_id=' . $products[0]['product_id']); } $selected_fields = fn_get_product_fields(); Tygh::$app['view']->assign('selected_fields', $selected_fields); if (!fn_allowed_for('ULTIMATE:FREE')) { $filter_params = array('get_variants' => true, 'short' => true); list($filters) = fn_get_product_filters($filter_params); Tygh::$app['view']->assign('filter_items', $filters);