多くのカテゴリを持つ Magento 1.12 をインストールしています。Toolbar.php の次の行を変更すると、すべてのカテゴリが降順でソートされます。
public $_direction = 'desc';
問題は、クライアントが単一のカテゴリの方向を昇順に変更したいということです。これを達成する方法を知っている人はいますか?
どうもありがとう。
テンプレートで呼び出されるapp/code/core/Mage/Catalog/Block/Product/List/Toolbar.php
関数getCurrentDirection()
が呼び出されます。この関数を次のようにtoolbar.phtml
書き直して拡張し、変更することができます。Toolbar.php
/**
* Retrieve current direction
*
* @return string
*/
public function getCurrentDirection()
{
$dir = $this->_getData('_current_grid_direction');
if ($dir) {
return $dir;
}
$directions = array('asc', 'desc');
$dir = strtolower($this->getRequest()->getParam($this->getDirectionVarName()));
if ($dir && in_array($dir, $directions)) {
if ($dir == $this->_direction) {
Mage::getSingleton('catalog/session')->unsSortDirection();
} else {
$this->_memorizeParam('sort_direction', $dir);
}
} else {
$dir = Mage::getSingleton('catalog/session')->getSortDirection();
}
// validate direction
if (!$dir || !in_array($dir, $directions)) {
// Addition: get current category for custom direction
$_category = Mage::registry('current_category');
if ($_category && $_category->getId() == 10) {
$dir = 'asc';
} else {
$dir = $this->_direction;
}
}
$this->setData('_current_grid_direction', $dir);
return $dir;
}
現在のカテゴリの取得と、カテゴリ ID のテストが追加されていることに注意してください。(「10」は、使用しているカテゴリ ID に置き換えてください。)