0

我做了一些修改,现在需要建立自己的分页。

所以我知道 prestashop 有他自己的,所以我该如何使用它们?

我试图在 classes/controller/FrontController.php 中使用

使用功能:

public function pagination($nbProducts = 10)
        {....

但是不能很好地理解分页本身是在哪里以及如何形成的......我认为我的 php 知识很低,所以如果有人了解 Prestashop 的分页是如何工作的,我需要一些帮助。

4

1 回答 1

0

Front Controller为您要查看的页面分配产品和smarty 变量中的产品数量。这是 BestSalesController 中 BestSales 页面的示例

$nbProducts = (int)ProductSale::getNbSales();
$bestSales = ProductSale::getBestSales($this->context->language->id, $this->p - 1, $this->n, $this->orderBy, $this->orderWay);
....
// then assign it to smarty
$this->context->smarty->assign(array(
     'nbProducts' => $nbProducts,
     'products' => $bestSales
));

您可以在 Front Controller 中执行任何特殊或自定义的操作。

如果您想进行自定义分页,请查看blocklayered模块。

例如,在modules/blocklayered/blocklayered.php函数ajaxCall()中,您可以通过编辑以下行来指定“按页显示的产品数量”的自定义选项:

$nArray = (int)Configuration::get('PS_PRODUCTS_PER_PAGE') != 10 ? array((int)Configuration::get('PS_PRODUCTS_PER_PAGE'), 10, 20, 50) : array(10, 20, 50);

此行显示后台/首选项/产品中指定的每页 10、20、50 和默认产品数量,但您可以根据需要更改它,例如:

$nArray = array(10, 20, 30, 40, 50, 60);

如果要进行自定义,则必须在此模块中进行自定义,但这并不简单(文件达到 4200 行,祝你好运!)。

于 2013-07-12T10:09:14.790 回答