我试图使用ajax在主页上使用magento中的ajax显示流行的产品列表,我可以为5或"N"no.of产品做到这一点,但我想要的是添加了结果集的分页工具栏.
这是我添加以显示受欢迎的产品,
// Magento layout
$magento_block = Mage::getSingleton('core/layout');
$productsHtml = $magento_block->createBlock('catalog/product');
$productsHtml->setTemplate('catalog/product/popular.phtml');
echo $productsHtml ->toHTML();
Run Code Online (Sandbox Code Playgroud)
并在popular.phtml下
<?php
$_productCollection = Mage::getModel('catalog/product')->getCollection()
->addPriceData()
->addAttributeToSort('ordered_qty', 'DESC')
->addAttributeToSort('name', 'ASC')
->setPageSize($limit)
->setPage($p, $limit)
->addAttributeToSelect(array('entity_id', 'entity_type_id', 'attribute_set_id', 'type_id', 'sku', 'category_ids', 'created_at', 'updated_at','has_options', 'sync', 'name', 'stock_status', 'wc_review_iwc_rating', 'wc_review_wa_rating', 'wc_review_bh_rating', 'small_image', 'status', 'pre_arrival', 'description', 'short_description', 'price', 'is_salable', 'stock_item', 'gift_message_available', 'featured'));
?>
Run Code Online (Sandbox Code Playgroud)
所以这给了我指定页面和限制的流行产品,但我无法加载分页工具栏(通过直接将工具栏添加到popular.phtml或通过创建块布局功能),哪里错了?请有人告诉我.
谢谢
Vin*_*nai 10
尝试创建Mage_Catalog_Block_Product_List块并自行设置受欢迎产品的集合.
$collection = Mage::getModel('catalog/product')->addAttributeToFilter('your popular products');
// do not load the collection yet, otherwise the toolbar will not work
$listBlock = Mage::getSingleton('core/layout')->createBlock('catalog/product_list');
$listBlock->setCollection($collection)->setTemplate('your/alternative/catalog/product/list.phtml');
Run Code Online (Sandbox Code Playgroud)
产品列表块始终初始化工具栏块本身.您可以使用<?php echo $ this-> getToolbarHtml()?>在模板中显示工具栏
编辑:这是Magento 1.4.1.1中的示例前端操作的一个工作示例:
public function productListAction()
{
$collection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('*');
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
$this->loadLayout();
$listBlock = $this->getLayout()->createBlock('catalog/product_list')
->setTemplate('catalog/product/list.phtml')
->setCollection($collection);
$this->getLayout()->getBlock('content')->append($listBlock);
$this->renderLayout();
}
Run Code Online (Sandbox Code Playgroud)
我希望这更清楚.
| 归档时间: |
|
| 查看次数: |
13371 次 |
| 最近记录: |