ホームページのスライダー付きの画像で全メーカーをブロックとして表示します。そこに [すべて表示] リンクを配置し、そのリンクをクリックすると、すべてのメーカーが新しいページにカテゴリ ページとして表示されます。私は以下のようにmanufacturer.phpを作成しました
<?php
class Bc_Manufacturer_Block_Manufacturerpage extends Mage_Core_Block_Template
{
public function _prepareLayout()
{
return parent::_prepareLayout();
}
public function getManufacturer()
{
if (!$this->hasData('manufacturer')) {
$this->setData('manufacturer', Mage::registry('manufacturer'));
}
return $this->getData('manufacturer');
}
public function getToolbarHtml() {
$this->setToolbar($this->getLayout()->createBlock('catalog/product_list_toolbar', 'Toolbar'));
$toolbar = $this->getToolbar();
$toolbar->enableExpanded();
$toolbar->setAvailableOrders(array(
'ordered_qty' => $this->__('Position'),
'name' => $this->__('Name'),
'price' => $this->__('Price')
))
->setDefaultDirection('desc')
->setCollection($this->_productCollection);
$pager = $this->getLayout()->createBlock('page/html_pager', 'Pager');
$pager->setCollection($this->_productCollection);
$toolbar->setChild('product_list_toolbar_pager', $pager);
return $toolbar->_toHtml();
}
}
また、manufacurerpage.phtml ファイルの getToolbarHtml() の下にある getToolbarHtml() 関数を呼び出します。
<div class="grid-type-full">
<?php foreach($maufacturers as $manufacturer): ?>
<?php if(Mage::getModel('eav/entity_attribute_source_table')->setAttribute(Mage::getModel('eav/entity_attribute')->load(Mage::getModel('eav/entity_attribute')->getIdByCode('catalog_product',"manufacturer")))->getOptionText($manufacturer->getMenufecturerName())): ?>
<?php if ($i++%$_columnCount==0): ?>
<ul class="products-grid">
<?php endif ?>
<li style="position: relative; float: left; display: inline-block; " class="item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>">
<a href="<?php echo $this->getBaseUrl()."catalogsearch/advanced/result/?manufacturer[]=".$manufacturer->getMenufecturerName() ?>">
<?php echo $this->getLayout()->createBlock('core/template')->setmanufacturerimage($manufacturer->getFilename())->setlegend($manufacturer->getLegend())->setListPageFlag(1)->setTemplate('manufacturer/manufacturer_resize.phtml')->toHtml(); ?>
<div class="manufacturer-name">
<?php echo Mage::getModel('eav/entity_attribute_source_table')->setAttribute(Mage::getModel('eav/entity_attribute')->load(Mage::getModel('eav/entity_attribute')->getIdByCode('catalog_product',"manufacturer")))->getOptionText($manufacturer->getMenufecturerName()) ?>
</div>
</a>
</li>
<?php if ($i%$_columnCount==0 && $i!=count($maufacturers)): ?>
</ul>
<?php endif ?>
<?php endif ?>
<?php endforeach ?>
<script type="text/javascript">decorateGeneric($$('ul.products-grid'), ['odd','even','first','last'])</script>
</div>
<div class="toolbar-bottom">
<?php echo $this->getToolbarHtml() ?>
</div>
これを実行した後、次のようなエラーが発生しました
致命的なエラー: 225 行目の C:\wamp\www\magento\jumbostore\app\code\core\Mage\Catalog\Block\Product\List\Toolbar.php の非オブジェクトに対するメンバー関数 setCurPage() の呼び出し
誰もがこれに対する解決策を持っています私を助けてください...
ありがとうございました..