دسته بندی
    بسته

    جایگزینی ویو در ناپ کامرس 4.20

    5 سال پیش
    #1865 نقل قول
    با سلام.
    من در ناپ کامرس بسیار مبتدی هستم. کاری که قصد انجامش رو دارم نوشتن یک پلاگین برای نسخه ی 4.20 فروشگاه ساز ناپ کامرس هست و جایگزینی اون در ویو. در حال حاضر میخوام Product/_AddToCart رو جایگزین کنم. ویوهای جدید رو به پلاگین استفاده کردم، توابع جدید رو برای اون صفحه نوشتم، اما الان گیج شدم چطور ویوهای اصلی رو با ویوی پلاگینی که نوشتم، جایگزین کنم.
    لطفا کمکم کنید
    1
    5 سال پیش
    #1870 نقل قول
    بنظرم باید به Presentation\Nop.Web\Views\Product مراجعه کنید و در فایلهای "ProductTemplate.Simple.cshtml" و "ProductTemplate.Grouped.cshtml" به دنبال "@await Html.PartialAsync("_AddToCart", variant.AddToCart, dataDictAddToCart)" بگردید.

    اگر قصد جایگزین کردن ویو رو دارید، اون خطوط رو با ویو خودتون جایگزین کنید.

    اگر در حال ایجاد "ویجت پلاگین" هستید، میتونید کامپوننت خودتون رو به این صورت فراخوانی کنید:

    "@await Component.InvokeAsync("Widget", new { widgetZone = PublicWidgetZones.HomepageTop })"

    کافیه "PublicWidgetZones.HomepageTop" رو با نام  WidgetZone خودتون عوض کنید

    امیدوارم کمکتون کنه
    0
    5 سال پیش
    #1871 نقل قول
    شما میتونید از IViewLocationExpander برای جایگزینی ویو از طریق پلاگین استفاده کنید. برای منبع میتونید به اینجا مراجعه کنید:


    nopCommerce > Presentation > Nop.Web.Framework > Themes > ThemeableViewLocationExpander.cs

    0
    5 سال پیش
    #1876 نقل قول
    سلام و عرض ادب
    اگر پلاگینی نوشتید و قصد دارید فایل در پوشه ی ویو جایگزین کنید، لازمه که این کار رو انجام بدید:
    دو فایل رو در پوشه ی اصلی پلاگینتون قرار بدید.
     Infrastructure / HomepageCategoriesViewEngine.cs
    Infrastructure / NopStartup.cs

     --------------NopStartup.cs-------------

    using Microsoft.AspNetCore.Builder;
    using Microsoft.AspNetCore.Mvc.Razor;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.DependencyInjection;
    using Nop.Core.Infrastructure;

    namespace Nop.Plugin.Components.HomepageCategories.Infrasctructure
    {
        /// <summary>
        /// Represents object for the configuring services on application startup
        /// </summary>
        public class NopStartup : INopStartup
        {
            /// <summary>
            /// Add and configure any of the middleware
            /// </summary>
            /// <param name="services">Collection of service descriptors</param>
            /// <param name="configuration">Configuration of the application</param>
            public void ConfigureServices(IServiceCollection services, IConfiguration configuration)
            {
                services.Configure<RazorViewEngineOptions>(options =>
                {
                    options.ViewLocationExpanders.Add(new HomepageCategoriesViewEngine());
                });
            }

            /// <summary>
            /// Configure the using of added middleware
            /// </summary>
            /// <param name="application">Builder for configuring an application's request pipeline</param>
            public void Configure(IApplicationBuilder application)
            {
            }

            /// <summary>
            /// Gets order of this startup configuration implementation
            /// </summary>
            public int Order => int.MaxValue;
        }
    }

     -----------HomepageCategoriesViewEngine.cs-----------


    using Microsoft.AspNetCore.Mvc.Razor;
    using System.Collections.Generic;
    using System.Linq;

    namespace Nop.Plugin.Components.HomepageCategories.Infrasctructure
    {
      public class HomepageCategoriesViewEngine : IViewLocationExpander
      {
            public IEnumerable<string> ExpandViewLocations(ViewLocationExpanderContext context, IEnumerable<string> viewLocations)
            {
                if (context.AreaName == null && context.ViewName == "Components/HomepageCategories/Default")
                {
                    viewLocations = new[] { "/Plugins/Components.HomepageCategories/Views/PublicInfo.cshtml" }.Concat(viewLocations);
                }

                return viewLocations;
            }

        public void PopulateValues(ViewLocationExpanderContext context)
        {
        }
      }
    }
    0
    دسته بندی ها