我在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>
它在滑块中显示产品。有人可以告诉我这里的问题是什么吗?任何帮助和建议都会非常明显。感谢
答案 0 :(得分:0)
第一个代码未显示产品的原因是您使用catalog/product_featured
作为块类型
Magento尝试从Block文件夹中获取块文件但由于Block文件夹中没有Featured.php
而失败。
当您使用catalog/product_list
作为块类型时,它会从块文件夹中找到List.php
并显示结果
如果您希望第一个代码正常工作,只需在名为Featured.php
的Block文件夹中创建一个文件
希望这会有所帮助..