Magento 1.7.0.2 に新しいモジュールを追加しました。すべて問題ありません。[カートに追加] をクリックしても成功メッセージが表示されませんが、カート内の製品は問題ありません。別のページをクリックすると、メッセージが表示されます。
アプリ/デザイン/フロントエンド/デフォルト/f001/レイアウト/printer.xml
<?xml version="1.0"?>
<layout>
<default>
<reference name="right">
<block type="printer/finder" name="product.finder" before="-" template="printer/finder.phtml" />
</reference>
</default>
<printer_finder_result>
<reference name="content">
<block type="printer/finder_result" name="product.finder.result" template="printer/finder/result.phtml"/>
</reference>
<reference name="left">
<block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/>
</reference>
</printer_finder_result>
</layout>
アプリ/コード/ローカル/HB/プリンター/ブロック/ファインダー/Result.php
class HB_Printer_Block_Finder_Result extends Mage_Catalog_Block_Product_Abstract
{
public function __construct()
{
parent::__construct();
$storeID = Mage::app()->getStore()->getId();
$printerID = $this->getRequest()->getParam('modelId');
$collection = Mage::getResourceModel('catalog/product_collection')->addAttributeToSelect('*');
$collection->getSelect()
->joinInner(
array('e2' => 'printer_applicable_product'),
'e2.product_id = e.entity_id'
)
->where('e2.printer_id = ?', $printerID)
;
$this->setProductCollection($collection);
}
protected function _prepareLayout()
{
parent::_prepareLayout();
$toolbar = $this->getLayout()->createBlock('catalog/product_list_toolbar', microtime())
->setCollection($this->getProductCollection());
$pager = $this->getLayout()->createBlock('page/html_pager', microtime());
$toolbar->setChild('product_list_toolbar_pager', $pager);
$this->setChild('toolbar', $toolbar);
$this->getProductCollection()->load();
return $this;
}
public function getPagerHtml()
{
return $this->getChildHtml('toolbar');
}
}
アプリ/コード/ローカル/HB/プリンター/コントローラー/FinderController.php
class HB_Printer_FinderController extends Mage_Core_Controller_Front_Action
{
public function indexAction()
{
$this->_title($this->__('Products Finder'));
$this->loadLayout();
$this->renderLayout();
}
public function resultAction()
{
$this->_title($this->__('Printer Applicable Products'));
$this->loadLayout();
$this->renderLayout();
}
}
現在のページにメッセージが表示されないのはなぜですか?どうすれば修正できますか?