magento首页显示新产品及产品数量控制

半凉气候 发布于 2009年7月12日

昨天写到在magento首页显示新产品的两种方式,第二种我没试。今天试着添加产品的时候发现,按照第一种方法,首页显示的新产品数量只有4个。换了第二种亦然。为此很懊恼。又是网上一通乱搜。算是基本弄清了这个问题。

1.首页显示新产品的方法,昨天日志里写的第一种方法依然有用。第二种方法暂时取消,原因在于1.32版本里cms-manage pages-home page的custom designLayout Update XML里默认是有一段代码的,只是默认做了注释。代码如下:

<!–<reference name=”content”>
<block type=”catalog/product_new” name=”home.catalog.product.new” alias=”product_new” template=”catalog/product/new.phtml” after=”cms_page”><action method=”addPriceBlockType”><type>bundle</type><block>bundle/catalog_product_price</block><template>bundle/catalog/product/price.phtml</template></action></block>
<block type=”reports/product_viewed” name=”home.reports.product.viewed” alias=”product_viewed” template=”reports/home_product_viewed.phtml” after=”product_new”><action method=”addPriceBlockType”><type>bundle</type><block>bundle/catalog_product_price</block><template>bundle/catalog/product/price.phtml</template></action></block>
<block type=”reports/product_compared” name=”home.reports.product.compared” template=”reports/home_product_compared.phtml” after=”product_viewed”><action method=”addPriceBlockType”><type>bundle</type><block>bundle/catalog_product_price</block><template>bundle/catalog/product/price.phtml</template></action></block>
</reference><reference name=”right”>
<action method=”unsetChild”><alias>right.reports.product.viewed</alias></action>
<action method=”unsetChild”><alias>right.reports.product.compared</alias></action>
</reference>–>

这段代码其实就是用来控制首页显示的,依次是新产品,已浏览产品,产品比较,只需要把注释标记”<!–”和”–>”去掉,首页就自动显示这些内容模块了。鉴于此,我还是推荐用这个办法显示新产品。

2.控制首页显示新产品数量

它由两个文件控制,一个是app/code/core/Mage/Catalog/Block/Product/New.php,这个文件在1.31版本以后有所改变。

1.31版本以前的控制行是$products->setOrder(’news_from_date’)->setPageSize(5)->setCurPage(1);

1.31版本以后是文件开头的:Set const DEFAULT_PRODUCTS_COUNT = 5;

通过修改这个数字可以控制新产品显示数量,但是仅仅修改这里还不够,因为在默认模板的new.phtml(路径app/design/frontend/default/default/template/catalog/product/new.phtml)文件里对新产品显示还有限制,这里的限制导致了即使你在上个文件里把新产品数量设成10,它依然显示4个。控制代码是:<?php if ($i>4): continue; endif; ?>

修改方法是把该行代码更换成:

<?php if ($i==5): echo “</tr><tr>”; endif; ?>
<?php if ($i>9): continue; endif; ?>

如果你需要显示10个以上的新产品,需要在下面加上:

<?php if ($i==5): echo “</tr><tr>”; endif; ?>
<?php if ($i==10): echo “</tr><tr>”; endif; ?>

依次类推。“</tr><tr>”的作用是让产品数量达到要求时另起一行,如果仅仅是修改了<?php if ($i>4): continue; endif; ?>里数字的话,新产品就会一根筋式的向着美国直奔而去。

*本文地址:magento首页显示新产品及产品数量控制 文章出处:皮蛋家 请尊重作者,转载以链接形式注明原始出处,谢谢!

  1. 谢谢你的文章。

    <?php if ($i%5==0): echo "”; endif; ?>
    =20): continue; endif; ?>

    这样就不用重复写几行 TR

  2. 不好意思发错地方了。
    站长大哥 为什么我按照你的方法弄了,首页的产品依然不能换行呢?
    http://www.dvdhot.net麻烦告诉我一下。谢谢!

访客留言