新しいカテゴリを作成してマッピングせずに、すべての製品を表示したいと思います。
誰でも私を助けることができますか?
前もって感謝します。
それは本当です; 商品を nopCommerce に表示するには、商品をカテゴリに割り当てる必要があります。最善の策は、「すべての製品」などの最上位の包括的なカテゴリを作成し、すべての製品をその包括的なカテゴリに追加することです。
私の知る限り、それらは製品に関連付けられたカテゴリでなければなりません。
コードを変更することでそれを行うことができます。私は以前にそれをやったことがあります。それは実際には非常に簡単です。
Catalog コントローラーの Category アクションを変更して、null 許容の CategoryId を受け取ります。
public ActionResult Category(int? categoryId, CatalogPagingFilteringModel command){
この null 許容パラメーターが原因で中断しないようにアクションを変更します。
変更する最も重要な部分は、フィルタリングするカテゴリ ID のリストを作成する場所です。
var categoryIds = new List<int>();
if (category != null)
{
categoryIds.Add(category.Id);
}
if (_catalogSettings.ShowProductsFromSubcategories)
{
//include subcategories
categoryIds.AddRange(GetChildCategoryIds(category.Id));
}
メソッド _productService.SearchProducts は、カテゴリ ID の空のリストを受け取り、製品をフィルタリングしません。
プラグインを作成し、それにルートをマップし (たとえば、「allproducts」ルートにマップ)、プラグイン内に独自のコントローラー、アクション、およびビューを作成できます。次に、ルートへのリンクをメイン メニューに挿入します。
@Html.RouteLink(routeName, null) //or similar overloads
プラグインの作成部分は、ここで説明するには大きすぎます。http://www.nopcommerce.com/documentation.aspxは良いスタートです。
PS:/ ルーティングに関しては、各プラグインは「IRouteProvider」インターフェースを実装することでルート レジストラーを実装できます。
:)