デフォルトですべての製品を最新のものから古いものへと表示したいと思います。私はこのリンクを見ました:
そしてこれも。それらはすべて同じソリューションを示していますが、常にフロントエンド用です。
私が欲しいのは、デフォルトで[システム]->[構成]->[カタログ]->[製品リスト]で並べ替えて設定し、デフォルトで[作成場所]に設定します。また、順序(descまたはasc)も設定します。
それをカスタマイズする方法について何かアイデアはありますか?
デフォルトですべての製品を最新のものから古いものへと表示したいと思います。私はこのリンクを見ました:
そしてこれも。それらはすべて同じソリューションを示していますが、常にフロントエンド用です。
私が欲しいのは、デフォルトで[システム]->[構成]->[カタログ]->[製品リスト]で並べ替えて設定し、デフォルトで[作成場所]に設定します。また、順序(descまたはasc)も設定します。
それをカスタマイズする方法について何かアイデアはありますか?
私はあなたの質問に答えていませんでした。
グリッドは entity_id によって並べ替えられます。
// app/code/core/Mage/Adminhtml/Block/Catalog/Product/Grid.php:41
$this->setDefaultSort('entity_id');
$this->setDefaultDir('DESC');
つまり、必要な動作はデフォルトである必要があります。
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>
このソリューションはテストされていません。
コア ファイルを変更せずに実行する最善の方法は、次の場所にある 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 バックエンドのキャッシュを再インデックスして更新し、準備完了です。