0

多くのカテゴリを持つ Magento 1.12 をインストールしています。Toolbar.php の次の行を変更すると、すべてのカテゴリが降順でソートされます。

public $_direction = 'desc';

問題は、クライアントが単一のカテゴリの方向を昇順に変更したいということです。これを達成する方法を知っている人はいますか?

どうもありがとう。

4

1 に答える 1

2

テンプレートで呼び出される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 に置き換えてください。)

于 2013-01-17T12:41:30.017 に答える