如何编写一个显示magento类别的自定义面板

时间:2010-11-29 19:46:59

标签: magento

我有一个名为“热门产品”的类别。我希望在我的主页上的面板中显示它。在magento中执行此操作的最佳方法是什么。

**编辑**

谢谢sdek,我现在有以下内容。在主页/设计。

<block type="catalog/product_list" category_id="13"  template="catalog/product/featured.phtml"/>

它正在展示产品。但是我有以下问题。 - 它没有显示category_id 13中的产品,似乎这个值没有通过 - 它只显示2个产品。我想展示所有。

featured.phtml

<?php
    $_productCollection=$this->getLoadedProductCollection();
    $_helper = $this->helper('catalog/output');
?>
<?php if(!$_productCollection->count()): ?>
<p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
<?php else: ?>
<h2>Featured Products </h2>
    <?php $_collectionSize = $_productCollection->count() ?>
    <?php $_columnCount = $this->getColumnCount(); ?>
    <?php $i=0; foreach ($_productCollection as $_product): ?>
        <?php if ($i++%$_columnCount==0): ?>
        <ul class="product-grid">
        <?php endif ?>
            <li class="<?php if(($i-1)%$_columnCount==0): ?> first<?php else: ?> last<?php endif; ?>">
            <a class="product-image" href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" >
            <img src="<?php echo $this->helper('catalog/image')->init($_product, 'thumbnail')->resize(85); ?>" class="product-img" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" style="padding-bottom:20px; margin-bottom:20px;" />
            </a>
           <p><strong><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></strong>
           <?php echo $_product->getShortDescription(); ?></p> 

            <?php echo $this->getPriceHtml($_product, true) ?>
            <a href="<?php echo $_product->getProductUrl() ?>" class="more">More details</a>
            </li>
        <?php if ($i%$_columnCount==0 || $i==$_collectionSize): ?>
        </ul>
        <?php endif ?>
        <?php endforeach ?>   
    <?php endif; ?

2 个答案:

答案 0 :(得分:0)

我甚至不会使用类别,而是使用此扩展名:
Featured Products

答案 1 :(得分:0)

clockworkgeek提到的特色产品扩展是一个好主意。但如果您不喜欢该选项,最简单的方法是在主页cms中添加它 {{block type =“catalog / product_list”category_id =“YOUR_CAT_ID”template =“catalog / product / YOUR_MODIFIED_COPY_OF_LIST.phtml”}}

然后复制app / design / frontend / / /template/catalog/product/list.phtml(我之前将其称为YOUR_MODIFIED_COPY_OF_LIST.phtml)并删除两个行说

<?php echo $this->getToolbarHtml() ?>

并删除输出“列表模式”的整个if块...基本上是if语句

    <?php // List mode ?>
    <?php if($this->getMode()!='grid'): ?>

你应该只有“网格模式”代码。