0

ホームページのスライダー付きの画像で全メーカーをブロックとして表示します。そこに [すべて表示] リンクを配置し、そのリンクをクリックすると、すべてのメーカーが新しいページにカテゴリ ページとして表示されます。私は以下のように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() の呼び出し

誰もがこれに対する解決策を持っています私を助けてください...

ありがとうございました..

4

1 に答える 1