Template Errors: PAGE_CONTAINER

  1. htmlspecialchars() expects parameter 1 to be string, array given in /var/www/nopviet/library/XenForo/Template/Abstract.php(279) : eval()'d code, line 2338:
    2337: {
    2338: $__compilerVar175 .= '<a href="' . htmlspecialchars($xenOptions['privacyPolicyUrl'], ENT_QUOTES, 'UTF-8') . '">' . 'Privacy Policy' . '</a>';
    2339: }
    

Hướng dẫn Hiển thị Product của Subcategories !

Thảo luận trong 'Thảo luận chung' bắt đầu bởi Kem_Tun_28, 31/10/14.

  1. Kem_Tun_28

    Kem_Tun_28 NopMember

    Bài viết:
    24
    Điểm:
    3
    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"*@
     
    Last edited by a moderator: 1/11/14
    Tags:
    An Nguyen thích bài này.
    Đang tải...


  2. hunter

    hunter NopMember

    Bài viết:
    16
    Điểm:
    3
    chưa hình dung ra được nhiều lắm, hóng xem
     
  3. An Nguyen

    An Nguyen bụi Staff Member

    Bài viết:
    420
    Điểm:
    28
    Nơi ở:
    Biên Hòa
    Trang chủ:
    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 Staff Member

    Bài viết:
    420
    Điểm:
    28
    Nơi ở:
    Biên Hòa
    Trang chủ:
    nopcommerce mới hỗ trợ tính năng này rồi nhé
     
Draft saved Draft deleted

Chia sẻ trang này

Đang tải...