繁体   English   中英

如何在magento 1.7的主页上显示5种以上的特色产品?

[英]how do I show more than 5 featured products on homepage in magento 1.7?

我已经研究了很多,但找不到适合我的解决方案。

我试图在首页的“特色产品”部分中显示超过5个项目的默认产品数量。

我目前有10个项目设置为“新”,但只有5个项目会显示。

在不更改核心代码的情况下如何执行此操作的任何提示?

http://saks-jewelers.com

(忽略我正在工作的底部的滑块)

编辑以解释更多我当前如何显示它们

我使用创建的模板phtml文件列出了它们,然后添加了一个静态块以在hp上调用它:

<?php if (($_products = $this->getProductCollection()) && $_products->getSize()): ?>
<?php $_columnCount = $this->getColumnCount(); ?>
    <?php $i=0; foreach ($_products->getItems() as $_product): ?>
        <?php if ($i++%$_columnCount==0): ?>
        <ul class="featured-products-grid">
        <?php endif ?>
            <a href="<?php echo $_product->getProductUrl() ?>">
            <li >
            <div class="drop-shadow curved curved-hz-2">
                <img class="product-image" src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135) ?>" width="135" height="135" alt="<?php echo $this->htmlEscape($_product->getName()) ?>" />
                <h3 class="product-name"><?php echo $this->htmlEscape($_product->getName()) ?></h3>
                <?php echo $this->getPriceHtml($_product, true, '-new') ?>
        <button type="button" title="View Product" class="button" onclick="setLocation('<?php echo $_product->getProductUrl() ?>')"><span><span>View Product</span></span></button>
        </div>
            </li></a>
        <?php if ($i%$_columnCount==0 || $i==count($_products)): ?>
        </ul>
        <?php endif ?>
    <?php endforeach; ?>
<?php endif; ?>

和静态块代码:

<div id="featured-products-container">
  <div class="featured-products-heading"><strong>Featured Products</strong></div>
  <div class="featured-products-heading-line"></div>
    <div id="featured-products-grid">
        {{block type="catalog/product_new" name="home.catalog.product.new" alias="product_homepage" template="catalog/featured-products.phtml"}}
    </div>
<div style="clear:both;"></div>
</div>

如果执行了echo count($_products) ,则可能会发现它始终为5。这是因为该块正在确定要加载的集合。 打开包含$this->getProductCollection()函数的块,然后遵循代码。 该集合可能会通过Mage :: getStoreConfig调用后端设置而限制在某处。 我希望这有帮助!

如果它是用于新产品而不是用于特色产品(因为您将不得不对特色产品使用某些扩展名,并且您未声明任何内容),则需要在\\app\\code\\core\\Mage\\Catalog\\Block\\Product\\New.php更改该行\\app\\code\\core\\Mage\\Catalog\\Block\\Product\\New.php

$products->setOrder(’news_from_date’)->setPageSize(5)->setCurPage(1);

改成

$products->setOrder(’news_from_date’)->setPageSize(10)->setCurPage(1);

这只是参考代码。 您不应更改任何核心文件,因此需要创建模块并覆盖块类Mage_Catalog_Block_Product_New

在您的.phtml中将此用作代码的第一行

$this->setProductsCount(10);

您正在使用块类Mage_Catalog_Block_Product_New来显示您的新产品...很好。 让我们看一下块类的定义:

class Mage_Catalog_Block_Product_New extends Mage_Catalog_Block_Product_Abstract
{
    protected $_productsCount = null;

    const DEFAULT_PRODUCTS_COUNT = 5;

const定义应该引起您的注意,因为这就是仅显示5个产品的原因。 Mage_Catalog_Block_Product_New::_beforeToHtml()函数中,集合被限制为一定数量:

[...]->setPageSize($this->getProductsCount())[...]

public function getProductsCount()
{
    if (null === $this->_productsCount) {
        $this->_productsCount = self::DEFAULT_PRODUCTS_COUNT;
    }
    return $this->_productsCount;
}

“神奇”的事情(作业:深入研究Magento并找出原因)是_productCount也可以从模板传递:

{{block products_count="2" type="catalog/product_new" name="home.catalog.product.new" alias="product_homepage" template="catalog/featured-products.phtml"}}

仅显示2个产品。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM