我正在尝试从一开始就构建一个模板。我已准备好所有东西,现在我有一个主页,我想在网格中显示所有可用的产品。所以我从布局中渲染了list.phtml。 list.phtml:
<?php
$_productCollection=$this->getLoadedProductCollection();
$_helper = $this->helper('catalog/output');
?>
<?php if(!$_productCollection->count()): ?>
<p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
<?php else: ?>
<div class="category-products">
<?php // Grid Mode ?>
<?php $_collectionSize = $_productCollection->count() ?>
<?php $_columnCount = $this->getColumnCount(); ?>
<?php $i=0; foreach ($_productCollection as $_product): ?>
<?php if ($i++%$_columnCount==0): ?>
<ul class="products-grid">
<?php endif ?>
<li>
productsample
</li>
<?php if ($i%$_columnCount==0 || $i==$_collectionSize): ?>
</ul>
<?php endif ?>
<?php endforeach ?>
</div>
<?php endif; ?>
这显示了产品数量的时间,单词productsample,所以我认为我正在加载所有产品,但我的问题是我不知道如何显示它们(照片,链接,addtocart,价格,名称.. 。) 感谢所有
答案 0 :(得分:0)
当我使用getdata时,我得到了这个:
array(11){[“entity_id”] =&gt; string(1)“2”[“entity_type_id”] =&gt; string(1)“4”[“attribute_set_id”] =&gt; string(2)“10”[“type_id”] =&gt; string(6)“simple”[“sku”] =&gt; string(10)“1343918767”[“has_options”] =&gt; string(1)“0”[“required_options”] =&gt; string(1)“0”[“created_at”] =&gt; string(19)“2012-08-02 14:46:29”[“updated_at”] =&gt; string(19)“2012-08-02 17:09:43”[“is_salable”] =&gt; string(1)“1”[“stock_item”] =&gt; object(Varien_Object)#336(5){[“_ data”:protected] =&gt; array(1){[“is_in_stock”] =&gt; string(1)“1”} [“_ hasDataChanges”:protected] =&gt; bool(false)[“_ origData”:protected] =&gt; NULL [“_ idFieldName”:protected] =&gt; NULL [“_isDeleted”:protected] =&gt; bool(false)}}
我需要名字,价格......
我已经解决了这个问题:$ _productCollection = $ this-&gt; getLoadedProductCollection(); 作为交换:$ _productCollection = Mage :: getModel('catalog / product') - &gt; getCollection();
因为如果我使用第一个,它会告诉我实际类别中没有产品。
然后我在foreach里面的默认list.phtm中的foreach里面的代码,但它没有向我显示产品。产品img中存在某种错误,因为它在第一个产品中停止,在其图像中。这是代码:
代码:
<?php
// $_productCollection=$this->getLoadedProductCollection();
$_productCollection=Mage::getModel('catalog/product')->getCollection();
$_helper = $this->helper('catalog/output');
?>
<?php if(!$_productCollection->count()): ?>
<p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
<?php else: ?>
<div class="category-products">
<?php // Grid Mode ?>
<?php $_collectionSize = $_productCollection->count() ?>
<?php $_columnCount = $this->getColumnCount(); ?>
<?php $i=0; foreach ($_productCollection 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() ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135); ?>" width="135" height="135" /></a>
<h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>"><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></a></h2>
<?php if($_product->getRatingSummary()): ?>
<?php echo $this->getReviewsSummaryHtml($_product, 'short') ?>
<?php endif; ?>
<?php echo $this->getPriceHtml($_product, true) ?>
<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->helper('wishlist')->getAddUrl($_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==$_collectionSize): ?>
</ul>
<?php endif ?>
<?php endforeach ?>
</div>
<?php endif; ?>
首先&lt; a&gt;里面&lt; li&gt;,它的img不工作
答案 1 :(得分:0)
如果您使用cms主页,则只需将此代码{{block type="catalog/product_list" category_id="your cat id" template="catalog/product/list.phtml"}}
分配给此类别。
或者您可以直接使用list.phtml文件代码列出刚放在代码下面的所有产品。
$_productCollection = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('*')->addAttributeToFilter('visibility', 4)->addAttributeToFilter('status', 1)->load();
只需输入此代码而不是此$_productCollection=$this->getLoadedProductCollection();