私の質問について何か助けを求めたいと思います.
CMS ページを作成しましたが、特定のカテゴリの製品をリストに表示したいと考えています。そこで、モジュールを作成し、catalog/product/list.phtml から完全なコードを貼り付けて、うまくいくかどうかを確認しました...
残念ながら、次のエラーが発生しました。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 のコードは次のとおりです
<?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:
<?php
class Thaneuk_Cmsproducts_IndexController extends Mage_Core_Controller_Front_Action{
public function IndexAction() {
}
}
カテゴリから CMS ページに製品を追加する方法を探しましたが、いずれの方法でもエラーが発生したり、製品が表示されません。
機能するステップバイステップガイドを誰かが助けてくれたり、紹介してくれたりできますか?
前もって感謝します