Magento产品来自一个类别,在xml文件中更改时未显示

时间:2013-08-17 10:36:00

标签: php xml magento magento-1.7

我在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>

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

1 个答案:

答案 0 :(得分:0)

第一个代码未显示产品的原因是您使用catalog/product_featured作为块类型 Magento尝试从Block文件夹中获取块文件但由于Block文件夹中没有Featured.php而失败。 当您使用catalog/product_list作为块类型时,它会从块文件夹中找到List.php并显示结果 如果您希望第一个代码正常工作,只需在名为Featured.php的Block文件夹中创建一个文件 希望这会有所帮助..