1. Kem_Tun_28

    Kem_Tun_28 NopMember

    31/10/14
    #1
    Nó kiểu thế này:
    [​IMG]
    B1: Trong Nop.Service > Catalog > CategoryService :
    + Bên trong
    #region Methods
    .........
    - Thêm hàm này:
    public virtual int GetCategoryIdByCategoryName(string categoryName)
    {
    var query = _categoryRepository.Table;
    query = from c in query
    where c.Name==categoryName && c.Deleted!=true
    select c;
    return query.ToList()[0].Id;
    }

    B2: Trong Nop.Service > Catalog > ICategoryService :
    + Bên trong:
    public partial interface ICategoryService
    {
    .............
    }
    - Thêm khai báo này:
    int GetCategoryIdByCategoryName(string categoryName);

    B3: Trong Nop.Service > Catalog > ProductService :
    + Bên trong:
    #region Products
    .............
    - Thêm hàm này :
    public IList<Product> GetProductIdByCategoryId(int categoryId)
    {
    var query = from pc in _productcategoryRepository.Table
    where pc.CategoryId==categoryId
    select pc.ProductId;
    var productId = query.ToArray();
    return GetProductsByIds(productId);
    }

    + Bên trong:
    #region Constants
    ..............
    - Thêm khai báo này:
    private readonly IRepository<ProductCategory> _productcategoryRepository;

    + Bên trong:
    #region Ctor:
    - Tìm :
    public ProductService(ICacheManager cacheManager,
    ....................
    )
    - Thêm khai báo này:
    IRepository<ProductCategory> productcategoryRepository,

    - Và tìm:
    {
    this._cacheManager = cacheManager;
    ...........
    }
    - Thêm vào khai báo này:
    this._productcategoryRepository = productcategoryRepository;

    B4: Trong Nop.Service > Catalog > IProductService
    + Bên trong:
    public partial interface IProductService
    {
    ...............
    }
    - Thêm khai báo này:
    IList<Product> GetProductIdByCategoryId(int categoryId);

    B5: Trong Nop.Web > Catalog > CatalogController:
    + Bên trong:
    #region Categories
    .............
    - Thêm hàm này:
    [ChildActionOnly]
    public ActionResult CategoryByName(string name, int size)
    {
    int id=_categoryService.GetCategoryIdByCategoryName(name);
    var products = _productService.GetProductIdByCategoryId(id);
    var model = PrepareProductOverviewModels(products, true, true, size).ToList();
    return PartialView(model);
    }

    B6: Trong Nop.Web > Views > Catalog :
    - Tạo mới file CategoryByName.cshtml:

    @model IList<ProductOverviewModel>
    @using Nop.Core.Domain.Common;
    @using Nop.Core.Domain.Seo;
    @using Nop.Core.Infrastructure;
    @using Nop.Web.Models.Catalog;
    @using Nop.Web.Extensions;

    <div class="product-of-subcat">
    @foreach (var product in Model)
    {
    <div class="item-box">
    @Html.Partial("_ProductBox", product)
    </div>
    }
    </div>

    B7: Rebuil lại Nop.Service, Nop.Web

    + Cách sử dụng:
    - Chèn đoạn này vào trong:
    CategoryTemplate.ProductsInGridOrLines.cshtml trong đoạn:
    <div class="sub-category-grid">
    @foreach (var item in Model.SubCategories)
    {
    <div class="item-box">
    <div class="sub-category-item">
    <h2 class="title">
    <a href="@Url.RouteUrl("Category", new { SeName = item.SeName })" title="@item.PictureModel.Title">
    @item.Name</a>
    </h2>
    @Html.Action("CategoryByName", "Catalog", new {name = item.Name, size = 125}) @*Display Product Of Subcategories*@
    </div>
    </div>
    }
    </div>
    - Hoặc chèn ở bất cứ đâu @Html.Action("CategoryByName", "Catalog", new {name = item.Name, size = 125}) @*Thay item.Name = "Tên Category or SubCategories khi cần hiện sản phẩm"*@
     
    Sửa lần cuối bởi mod: 1/11/14
    1
    An Nguyen thích bài này.
    An Nguyen thích bài này
    Đang tải...
    • ngày tạo

      Kem_Tun_28 31/10/14
    • trả lời cuối

      An Nguyen 7/1/16
    • 1,384

      lượt xem

    • 3

      trả lời

    • 1

      lượt thích

  2. hunter

    hunter NopMember

    31/10/14
    #2
    chưa hình dung ra được nhiều lắm, hóng xem
     
  3. An Nguyen

    An Nguyen bụi Ban quản trị

    30/12/15
    #3
    chưa thử, thấy cách này có vẻ dài quá, đang tìm kiếm cách khác khả thi hơn, ít đụng tới code hơn
     
  4. An Nguyen

    An Nguyen bụi Ban quản trị

    7/1/16
    #4
    nopcommerce mới hỗ trợ tính năng này rồi nhé
     
Đã lưu nháp Draft deleted
Đang tải...