Magento工具栏无法渲染寻呼机

时间:2013-04-10 19:52:25

标签: magento toolbar pager php

我是Magento的新手,当我从catalog / category / view.phtml文件中调用它时,我很难弄清楚如何在工具栏中显示寻呼机。这是我正在使用的代码:

$layout = Mage::getSingleton('core/layout');
$toolbar = $layout->createBlock('catalog/product_list_toolbar');
$pager = $layout->createBlock('catalog/html_pager');
$block = $layout->createBlock('catalog/product_list');
$block->setCategoryId($_category->getId());
$block->setChild('toolbar', $toolbar);  
$collection = $block->getLoadedProductCollection();
$toolbar->setCollection($collection);
echo $toolbar->renderView(); 

排序依据,显示每页的项目和项目总计显示,但寻呼机只是不渲染..任何人都知道我做错了什么?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

你有两个我可以立即发现的问题

  1. 没有catalog/html_pager这样的阻止类型(您的意思是page/html_pager

  2. 工具栏块的getPagerHtml方法查找名为product_list_toolbar_pager的子块。您尚未插入,追加或设置此子项。

  3. 使用类似这样的

    实例化寻呼机块
    $pager = $layout->createBlock('page/html_pager');
    

    并使用

    将其插入工具栏
    $toolbar->setChild('product_list_toolbar_pager', $pager);
    

    你可能会有更好的结果。

    此外,寻呼机模板本身(frontend/base/default/template/page/html/pager.phtml)包含的代码如果只有一页结果则会压缩页面。围绕这个if子句进行一些调试。

    <!-- File: app/design/frontend/base/default/template/page/html/pager.phtml -->
    <?php if($this->getLastPageNum()>1): ?>
    

    确保您不会与小类别列表发生冲突。