Pageloadでデフォルトにリセットするページあたりの製品の作成方法
質問
ファイルmage_catalog_block_product_list_toolbarでgetlimit()を変更してみましたが、それは何も変わらないようです。これも可能ですか?
解決
これはあなたが望むものを達成しないかもしれませんが、それは言及する価値があります:あなたは次の方法を呼び出すことにより、製品リストツールバーパラメーターの「暗記」を無効にすることができます:
Mage_Catalog_Block_Product_List_Toolbar::disableParamsMemorizing()
または、レイアウトXMLを介して、次のようにカテゴリハンドルのツールバーブロックを更新できます。
<block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
<action method="disableParamsMemorizing"></action>
<block type="page/html_pager" name="product_list_toolbar_pager"/>
<!-- The following code shows how to set your own pager increments -->
<!--
<action method="setDefaultListPerPage"><limit>4</limit></action>
<action method="setDefaultGridPerPage"><limit>9</limit></action>
<action method="addPagerLimit"><mode>list</mode><limit>2</limit></action>
<action method="addPagerLimit"><mode>list</mode><limit>4</limit></action>
<action method="addPagerLimit"><mode>list</mode><limit>6</limit></action>
<action method="addPagerLimit"><mode>list</mode><limit>8</limit></action>
<action method="addPagerLimit" translate="label"><mode>list</mode><limit>all</limit><label>All</label></action>
-->
</block>
私が追加したことに注意してください <action>
の呼び出し付きノード disableParamsMemorizing
方法。
これにより、ユーザーのツールバーパラメーションがセッションに保存されなくなり、クエリ文字列にPARAMがない場合、ページをロードするたびにリセットできます。これは「忘れる」ことに留意してください すべて ツールバーパラメーション:
- sort_order
- sort_direction
- ディスプレイモード
- limit_page
Magento管理者のレイアウトアップデートを介して、これをカテゴリごとに適用することもできます。
他のヒント
次のように方法を書き直したように思われます。
public function getLimit()
{
$limit = $this->_getData('_current_limit');
if ($limit) {
return $limit;
}
$limit = $this->getRequest()->getParam($this->getLimitVarName(), $this->getDefaultPerPageValue());
$this->setData('_current_limit', $limit);
return $limit;
}
ここでやったことは、カタログセッションから制限値を設定/取得する条件を削除することです。これは、制限がクエリストリングに設定されている場合、それはそれに従うことを意味しますが、それはセッションに保存されないため、ページあたりのドロップダウン値を変更する人に限界を適用するだけです - 彼らの帰国訪問のためではありません サイトを閲覧するか、オーガニック検索によってカテゴリページを押す可能性があります。
クエリストリングで制限値が設定されていない場合、設定で設定された値がデフォルトになります。
幸運を!