在Prestashop中创建主页分页

在Prestashop中创建主页分页,prestashop,prestashop-1.6,Prestashop,Prestashop 1.6,我创建了一个名为“blockallproducts”的模块,它也在主页和分页中显示所有产品。但是如何将paginaton页面值的值传递给模块?或者我需要再创建一个控制器吗? 谁来帮帮我! 这是一个函数hookdisplayHome($params),用于在blockallproducts.php中显示所有产品 $p = 1; $n = 10; $pages_nb = ceil($this->countAllProducts() / (int)$n); $range = 2; /* how

我创建了一个名为“blockallproducts”的模块,它也在主页和分页中显示所有产品。但是如何将paginaton页面值的值传递给模块?或者我需要再创建一个控制器吗? 谁来帮帮我! 这是一个函数
hookdisplayHome($params)
,用于在blockallproducts.php中显示所有产品

$p = 1;
$n = 10;
$pages_nb = ceil($this->countAllProducts() / (int)$n);

$range = 2; /* how many pages around page selected */
$start = (int)($p - $range);
if ($start < 1)
    $start = 1;
$stop = (int)($p + $range);
if ($stop > $pages_nb)
    $stop = (int)$pages_nb;

if (!$p) $p = 1;
    $category = new Category(Context::getContext()->shop->getCategory(),(int)Context::getContext()->language->id);
    $products = $category->getProducts((int)Context::getContext()->language->id,((int)$p - 1) * (int)$n,(int)$n,'id_product','DESC');

$this->smarty->assign(array(
  'new_products'  =>  $products,
  'homeSize'      => Image::getSize(ImageType::getFormatedName('home')),
  'pages_nb' => $pages_nb,
  'prev_p' => $p != 1 ? $p - 1 : 1,
  'next_p' => (int)$p + 1  > $pages_nb ? $pages_nb : $p + 1,
  'requestPage' => $this->context->link->getPageLink('blockallproducts'),
  'p' => $p,
  'n' => $n,
  'range' => $range,
  'start' => $start,
  'stop' => $stop,
  /*'ajaxurl'   => $this->context->link->getModuleLink('blockallproducts', 'display')*/
  ));
return $this->display(__FILE__, 'blocknewproducts_home.tpl');
$p=1;
$n=10;
$pages\u nb=ceil($this->countAllProducts()/(int)$n);
$range=2;/*选定页面周围有多少页*/
$start=(int)($p-$range);
如果($start<1)
$start=1;
$stop=(int)($p+$range);
如果($stop>$pages\u nb)
$stop=(int)$pages\u nb;
如果(!$p)$p=1;
$category=新类别(Context::getContext()->shop->getCategory(),(int)Context::getContext()->language->id);
$products=$category->getProducts((int)Context::getContext()->language->id,((int)$p-1)*(int)$n,(int)$n,'id_product','DESC');
$this->smarty->assign(数组)(
“新产品”=>$产品,
“homeSize”=>Image::getSize(ImageType::GetFormattedName('home')),
“pages\u nb”=>$pages\u nb,
'prev_p'=>$p!=1?$p-1:1,
‘next_p’=>(int)$p+1>$pages\u nb?$pages\u nb:$p+1,
'requestPage'=>$this->context->link->getPageLink('blockallproducts'),
“p”=>p美元,
'n'=>n美元,
“范围”=>$range,
“开始”=>$start,
“停止”=>$stop,
/*'ajaxurl'=>$this->context->link->getModuleLink('blockallproducts','display')*/
));
返回$this->display(_文件,'blocknewproducts_home.tpl');

类别控制器中的分页是使用URL参数完成的,如页码的
?p=2

如果您想在主页中使用分页并保持干净的URL,您可以添加一些
javascript
next
previous
按钮和
your module/controllers/front/your controller.php
来处理有关产品数据的请求