我做了一些修改,现在需要建立自己的分页。
所以我知道prestashop有他自己的,所以我怎么能用它们?
我试图在classes / controller / FrontController.php中使用
使用功能:
public function pagination($nbProducts = 10)
{....
但是不能很好地理解在哪里以及如何形成一个分页本身...我认为我的PHP知识很低所以如果有人了解Prestashop的分页是如何工作的话我需要一些帮助。
答案 0 :(得分:0)
Front Controller为您要查看的页面分配智能变量中的产品和产品数量。 这里是 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 模块。
例如,在ajaxCall()
函数的 modules / blocklayered / blocklayered.php 中,您可以通过编辑以下行来指定“按页面划分的产品数量”的自定义选项:
$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和 Back-Office / Preferences / Products 中指定的每页默认产品数量,但您可以根据需要进行更改,例如:
$nArray = array(10, 20, 30, 40, 50, 60);
如果你想进行自定义,你必须在这个模块中进行自定义,但这并不简单(文件达到4200行,祝你好运!)。