0

デフォルトですべての製品を最新のものから古いものへと表示したいと思います。私はこのリンクを見ました:

最初の解決策

2番目の解決策

そしてこれも。それらはすべて同じソリューションを示していますが、常にフロントエンド用です。

私が欲しいのは、デフォルトで[システム]->[構成]->[カタログ]->[製品リスト]で並べ替えて設定し、デフォルトで[作成場所]に設定します。また、順序(descまたはasc)も設定します。

それをカスタマイズする方法について何かアイデアはありますか?

4

3 に答える 3

3

私はあなたの質問に答えていませんでした。

グリッドは entity_id によって並べ替えられます。

// app/code/core/Mage/Adminhtml/Block/Catalog/Product/Grid.php:41
$this->setDefaultSort('entity_id');
$this->setDefaultDir('DESC');

つまり、必要な動作はデフォルトである必要があります。

于 2012-12-28T09:49:48.250 に答える
2

GridControlをインストールして拡張機能を記述し、これをモジュールで作成したgrid.xmlに追加できます。

<?xml version="1.0"?>
<gridcontrol>
    <grids>
        <product.grid>
            <add>
                <header>Created at</header>
                <type>int</type>
                <index>created_at</index>
          </add>        
        </product.grid>
    </grids>
</gridcontrol>

このソリューションはテストされていません。

于 2012-12-26T18:20:17.510 に答える
0

コア ファイルを変更せずに実行する最善の方法は、次の場所にある Toolbar.php ファイルをコピーすることです。

/app/code/core/Mage/Catalog/Block/Product/List/Toolbar.php

次に、新しいディレクトリ パスを作成します (まだ作成していない場合)。

/app/code/local/Mage/Catalog/Block/Product/List/Toolbar.php

ここで、232 行目から以下を置き換えます。

    if ($this->getCurrentOrder()) {
        $this->_collection->setOrder($this->getCurrentOrder(), $this->getCurrentDirection());
    }

if ($this->getCurrentOrder()) {
if(($this->getCurrentOrder())=='position'){ //defines the sort option
//sort by position (ascending) and entity_id (descending)
$this->_collection->addAttributeToSort('position','asc')->addAttributeToSort('entity_id','desc');
} else {
$this->_collection->setOrder($this->getCurrentOrder(),$this->getCurrentDirection());
}
}

最後に、Magento バックエンドのキャッシュを再インデックスして更新し、準備完了です。

于 2015-10-22T13:24:39.480 に答える