0

我在 Magento 有一个奇怪的问题。我想在我的标题中添加一个滑块,其中一个类别的所有产品都将显示在滑块中。为此,我刚刚创建了fetured.phtml文件,并在其中编写了这样的代码

<?php $cat_id = 35; ?>
<?php $category = Mage::getModel('catalog/category')->load($cat_id);?>
<?php $collection = $category->getProductCollection()->addAttributeToSort('position');?>
<?php Mage::getModel('catalog/layer')->prepareProductCollection($collection);?>
<?php  $i=0; foreach ($collection as $_product):?>
<?php if($i++%7==0): ?>
 <div class="container">
  <div id="da-slider" class="da-slider">
  <?php endif ?>
  <div class="da-slide">
    <h2 class="product-name"><?php echo $this->htmlEscape($_product->getName()) ?></h2>
    <p class="price"><?php echo $formattedSpecialPrice = Mage::helper('core')->currency($_product->getFinalPrice(),true,false);?></p>
    <p><?php echo $_product->_data['short_description']; ?> </p> <br />

    <a class="da-link" href="<?php echo $_product->getProductUrl() ?>">Shop Now</a>

    <div class="da-img"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(90, 90); ?>" width="120" height="120" alt="<?php echo $this->htmlEscape($_product->getName()) ?>" /></div>

    <!--.da-img-->

   </div><!--.da-slide-->
   <?php endforeach ?>
    <nav class="da-arrows">
      <span class="da-arrows-prev"></span>
      <span class="da-arrows-next"></span>
    </nav><!--.da-arrows-->
  </div><!--#da-slider-->
 </div><!--.container-->

在那之后,因为我想在标题中显示产品,所以我去了catalog.xml文件app/design/frontend/mytheme/default/layout/catalog.xml,我做了这样的

<block type="page/html_wrapper" name="top.container" as="topContainer" translate="label">
  <label>Page Header</label>
    <block type="catalog/product_featured" name="catalog.product.featured" template="catalog/product/featured.phtml" />
      <action method="setElementClass"><value>top-container</value></action>
    </block>
 </block>

在这里,我这样做是为了在滑块的标题中显示特色产品类别。但它没有显示产品。但是,如果我将代码更改为

<block type="page/html_wrapper" name="top.container" as="topContainer" translate="label">
      <label>Page Header</label>
        <block type="catalog/product_list" name="catalog.product.featured" template="catalog/product/featured.phtml" />
          <action method="setElementClass"><value>top-container</value></action>
        </block>

它在滑块中显示产品。有人可以告诉我这里有什么问题吗?任何帮助和建议都将非常可观。谢谢

4

1 回答 1

0

第一个代码未显示产品的原因是您使用catalog/product_featured的是块类型。
Magento 尝试从 Block 文件夹中获取块文件,但由于 Block 文件夹中没有Featured.php,因此失败。
当您catalog/product_list用作块类型时,它会找到List.php来自块文件夹并显示结果。
如果你想让你的第一个代码工作,只需在 Block 文件夹中创建一个名为Featured.php
Hope this help..

于 2013-08-17T11:48:37.983 回答