【问题标题】:Magento - Displaying Add to Compare button on New Products blockMagento - 在新产品块上显示添加到比较按钮
【发布时间】:2014-10-26 17:26:20
【问题描述】:

我在 Magento 1.9 上,我在主页上显示“新产品”,但我无法为每个新产品显示“添加到比较”链接。 以下是我在 CMS > Pages > Home page > Design 选项卡中拥有的 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>
<action method="setColumnCount"><columns>5</columns></action>
<action method="setProductsCount"><count>10</count></action> 
</block>
</reference>

这是我的自定义主题文件夹中的 new.phtml。在 customtheme\warecompare\default\template\catalog\product 下。如您所见,那里有一些代码可以显示“添加到比较”链接。

<?php if (($_products = $this->getProductCollection()) && $_products->getSize()): ?>
<h2 class="subtitle"><?php echo $this->__('New Products') ?></h2>
<?php $_columnCount = $this->getColumnCount(); ?>
    <ul class="products-grid products-grid--max-<?php echo $_columnCount; ?>-col">
    <?php $i=0; foreach ($_products->getItems() as $_product): ?>
        <?php /*if ($i++%$_columnCount==0): ?>
        <ul class="products-grid">
        <?php endif*/ ?>
            <li class="item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>">
                <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->escapeHtml($_product->getName()) ?>" class="product-image">
                    <?php $_imgSize = 260; ?>
                    <img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize($_imgSize); ?>" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />
                </a>
                <h3 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->escapeHtml($_product->getName()) ?>"><?php echo $this->escapeHtml($_product->getName()) ?></a></h3>
                <?php echo $this->getReviewsSummaryHtml($_product, 'short') ?>
                <?php echo $this->getPriceHtml($_product, true, '-new') ?>
                <div class="actions">
                    <?php if($_product->isSaleable()): ?>
                        <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
                    <?php else: ?>
                        <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
                    <?php endif; ?>
                    <ul class="add-to-links">
                        <?php if ($this->helper('wishlist')->isAllow()) : ?>
                            <li><a href="<?php echo $this->getAddToWishlistUrl($_product) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
                        <?php endif; ?>
                        <?php if ($_compareUrl = $this->getAddToCompareUrl($_product)): ?>
                            <li><span class="separator">|</span> <a href="<?php echo $_compareUrl ?>" class="link-compare"><?php echo $this->__('Add to Compare') ?></a></li>
                        <?php endif; ?>
                    </ul>
                </div>
            </li>
        <?php /*if ($i%$_columnCount==0 || $i==count($_products)): ?>
        </ul>
        <?php endif*/ ?>
    <?php endforeach; ?>
    </ul>
<?php endif; ?>

尽管有上述所有代码,但新产品块上显示的只是 (1) 产品图像 (2) 产品价格 (3) 没有其他内容。

是不是因为块类型catalog/product_new不支持上面的getAddToCompareUrl等方法?我也在尝试查找对应于块类型 catalog/product_new 的 源/类文件,但我不知道它是如何派生的以及在哪里可以找到它。

请帮忙。

谢谢 凯文

【问题讨论】:

  • 有时 $_products->getItems() 仅返回产品数据的子集。您可能需要在 foreach ($_products->getItems() as $_product): 循环中加载完整产品。像这样: $_fullProduct = Mage::getModel('catalog/product')->load($_product->getId())
  • 这很可能是答案,但我发现了实际问题,默认模板 css 将操作 div 隐藏在我的主页上

标签: magento


【解决方案1】:

@sulman 感谢您的意见。您的答案很可能就是答案,但我发现了实际问题,默认模板 css 将操作 div 隐藏在我的主页上

【讨论】:

    猜你喜欢
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多