0

我正在尝试从一开始就构建一个模板。我已经准备好了所有东西,现在我有一个主页,我想在其中以网格形式显示所有可用的产品。所以我从布局中渲染了 list.phtml。列表.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 这个词,所以我认为我正在加载所有产品,但我的问题是我不知道如何显示它们(照片、链接、添加到购物车、价格、名称......)谢谢对所有人

4

2 回答 2

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();

于 2012-08-07T04:48:26.427 回答
0

当我使用 getdata 我得到这个:

数组(11){[“entity_id”]=>字符串(1)“2”[“entity_type_id”]=>字符串(1)“4”[“attribute_set_id”]=>字符串(2)“10”[“type_id "]=> string(6) "simple" ["sku"]=> string(10) "1343918767" ["has_options"]=> string(1) "0" ["required_options"]=> string(1) “0”[“created_at”]=>字符串(19)“2012-08-02 14:46:29”[“updated_at”]=>字符串(19)“2012-08-02 17:09:43”[ "is_salable"]=> string(1) "1" ["stock_item"]=> object(Varien_Object)#336 (5) { ["_data":protected]=> array(1) { ["is_in_stock"]= > string(1) "1" } ["_hasDataChanges":protected]=> bool(false) ["_origData":protected]=> NULL ["_idFieldName":protected]=> NULL ["_isDeleted":protected]=> bool(false) } }

我需要名字,价格...

我已经替换了这个:$_productCollection=$this->getLoadedProductCollection(); 作为交换: $_productCollection=Mage::getModel('catalog/product')->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; ?>

第一个 <a> 在 <li> 里面,它的 img 不工作

于 2012-08-06T15:25:02.320 回答