致命错误:在非对象中调用成员函数count() [英] Fatal error: Call to a member function count() on a non-object in

查看:48
本文介绍了致命错误:在非对象中调用成员函数count()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在查询中寻求帮助.

I would like to ask for some assistance with my query please.

我已经创建了一个CMS页面,并希望在列表中显示特定类别的产品.因此,我创建了一个模块,并粘贴了catalog/product/list.phtml中的完整代码,以查看其是否可行...

I've created a CMS page and would like to show products from a specific category in a list. So I created a module and pasted the complete code from catalog/product/list.phtml in order to see if it would work out...

不幸的是,我收到此错误:Fatal error: Call to a member function count() on a non-object in /Applications/MAMP/htdocs/mysite/app/design/frontend/bootstrapped/default/template/cmsproducts/index.phtml on line 23

Unfortunately I got this error: Fatal error: Call to a member function count() on a non-object in /Applications/MAMP/htdocs/mysite/app/design/frontend/bootstrapped/default/template/cmsproducts/index.phtml on line 23

这是list.phtml

Here's the code from list.phtml

<?php echo get_class($this);
/**
 * Magento responsive theme
 *
 * @category    design
 * @package     bootstrapped_default
 * @copyright   Copyright (c) 2012 Magenthon (http://magenthon.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 * @author      Vedran Subotic <vedran@magenthon.com>
 */
?>
<?php
/**
 * Product list template
 *
 * @see Mage_Catalog_Block_Product_List
 */
?>
<?php
    $_productCollection=$this->getLoadedProductCollection();
    $_helper = $this->helper('catalog/output');
?>
<?php if(!$_productCollection->count()): ?>
<div class="alert fade in">
  <a class="close" data-dismiss="alert">×</a>
  <?php echo $this->__('There are no products matching the selection.') ?>
</div>
<?php else: ?>
<div class="category-products">
    <?php echo $this->getToolbarHtml() ?>
    <?php // List mode ?>
    <?php if($this->getMode()!='grid'): ?>
    <?php $_iterator = 0; ?>
    <ol class="products-list unstyled row-fluid" id="products-list">
        <?php foreach ($_productCollection as $_product): ?>
        <li class="item<?php if( ++$_iterator == sizeof($_productCollection) ): ?> last<?php endif; ?> row-fluid">
            <?php // Product Image ?>
            <div class="span4"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image thumbnail"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(225); ?>" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a></div>
            <?php // Product description ?>
            <div class="span8">
                <div class="thumbnail data">
                    <div class="caption">
                    <?php $_productNameStripped = $this->stripTags($_product->getName(), null, true); ?>
                    <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped; ?>"><?php echo $_helper->productAttribute($_product, $_product->getName() , 'name'); ?></a></h2>
                    <?php if($_product->getRatingSummary()): ?>
                        <?php echo $this->getReviewsSummaryHtml($_product) ?>
                    <?php endif; ?>
                    <div class="row-fluid">
                        <span class="pull-right">
                            <?php if($_product->isSaleable()): ?>
                                <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="btn btn-danger" 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; ?>
                        </span>
                        <?php echo $this->getPriceHtml($_product, true) ?>
                    </div>
                    <div class="desc std">
                        <?php echo $_helper->productAttribute($_product, $_product->getShortDescription(), 'short_description') ?>
                        <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped ?>" class="link-learn"><?php echo $this->__('Learn More') ?></a>
                    </div>
                    <p class="add-to-links unstyled">
                        <?php if ($this->helper('wishlist')->isAllow()) : ?>
                        <a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist label label-info"><?php echo $this->__('Add to Wishlist') ?></a>
                        <?php endif; ?>
                        <?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
                        <span class="separator">|</span> <a href="<?php echo $_compareUrl ?>" class="link-compare label label-info"><?php echo $this->__('Add to Compare') ?></a>
                        <?php endif; ?>
                    </p>
                    </div>
                </div>
            </div>
        </li><hr>
        <?php endforeach; ?>
    </ol>
    <script type="text/javascript">decorateList('products-list', 'none-recursive')</script>

    <?php else: ?>

    <?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 unstyled thumbnails row-fluid">
            <?php endif ?>
            <li class="item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?> span4">
                <div class="thumbnail">
                <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image thumbnail"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(225); ?>" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a>

                <div class="caption">
                    <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) ?>
                    <?php if($_product->isSaleable()): ?>
                        <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="btn btn-danger btn-mini" 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; ?>
                    <p class="add-to-links unstyled">
                        <?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
                        <a href="<?php echo $_compareUrl ?>" class="link-compare label label-info pull-right"><?php echo $this->__('Add to Compare') ?></a>
                        <?php endif; ?>
                        <?php if ($this->helper('wishlist')->isAllow()) : ?>
                            <a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist label label-info"><?php echo $this->__('Add to Wishlist') ?></a>
                        <?php endif; ?>

                    </p>
                </div>
                </div>
            </li>
            <?php if ($i%$_columnCount==0 || $i==$_collectionSize): ?>
            </ul>
        <?php endif ?>
        <?php endforeach ?>
    <script type="text/javascript">decorateGeneric($$('ul.products-grid'), ['odd','even','first','last'])</script>
    <?php endif; ?>

    <div class="toolbar-bottom">
        <?php
        /* @var $toolbar Mage_Catalog_Block_Product_List_Toolbar */
        // get toolbars limits - overrides default pager limit
        $toolbar = Mage::getBlockSingleton('catalog/product_list_toolbar')->getAvailableLimit();

        /* @var $pager Mage_Page_Block_Html_Pager */
        $pager = $this->getLayout()->createBlock('page/html_pager', 'bootstrapped.standalone.pager');

        // set limit - uses category's instead of default pager's (10-20-50)
        $pager->setAvailableLimit($toolbar);
        // need to set collection
        $pager->setCollection($_productCollection);
        //set custom template
        $pager->setTemplate('catalog/product/list/pager.phtml');
        echo $pager->toHtml();
        ?>
    </div>
</div>
<?php endif; ?>

对于我的CMS阻止:

{{block type="core/template" category_id="41" template="cmsproducts/index.phtml"}}

indexController.php用于我的自定义模块:

indexController.php for my custom module:

<?php
class Thaneuk_Cmsproducts_IndexController extends Mage_Core_Controller_Front_Action{
    public function IndexAction() {  
    }
}

我一直在寻找将产品从类别添加到CMS页面的方法,但是每种方法都会导致错误或产品未显示.

I've searched around for ways to add products from a category to a CMS page but each method results in an error or the products not showing.

任何人都可以帮忙或指导我使用有效的分步指南吗?

Can anyone help or refer me to a step by step guide that works?

预先感谢

推荐答案

解决了!!

<?php 
$category_id = "43"; // category_id for "Featured Products"
$_productCollection = Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect(array('name', 'price', 'small_image', 'short_description'), 'inner')
->addCategoryFilter(Mage::getModel('catalog/category')->load($category_id));
?>
<?php if($_productCollection->count()): ?>
      <div class="featured">
      <br />
      <ul id="featured-product-list">
        <div class="block-title">
      <h3><span><?php echo $this->__('FEATURED PRODUCT'); ?></span></h3>
    </div>
       <?php 
       $products = array();
       foreach ($_productCollection as $_product) { 
        ?>
        <li class="featured-product">
          <!--<h6>Price <?php echo Mage::helper('core')->currency($_product->getPrice());; ?></h6>-->
          <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>">
            <img class="product-image" src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(225, 200); ?>" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" title="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" />
          </a>
        </li>
       <strong><a class="view-item-button" href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->htmlEscape($_product->getName()) ?>"><?php echo $this->__('Order'); ?> <?php echo $this->htmlEscape($_product->getName())?><?php echo $this->__('&#8482;'); ?></a></strong>
        <div class="clearfix"></div>
        <p>
            <?php echo $_product->_data['short_description']; ?>
        </p>
        <div class="clearfix"></div>  
        <?php } ?>
      </ul>
</div>  
<?php endif; ?>

这篇关于致命错误:在非对象中调用成员函数count()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆