Vytvoření pluginu
Založení nového projektu s pluginem
Nastavení projektu
<PropertyGroup><TargetFramework>netcoreapp3.1</TargetFramework><Copyright>Copyright © Tyrion SW, s.r.o.</Copyright><Company>Tyrion SW, s.r.o.</Company><Authors>Tyrion SW, s.r.o.</Authors><PackageLicenseUrl></PackageLicenseUrl><OutputPath>..\..\Presentation\Nop.Web\Plugins\Payments.ComGate</OutputPath><OutDir>$(OutputPath)</OutDir><CopyLocalLockFileAssemblies>false</CopyLocalLockFileAssemblies></PropertyGroup>......<ItemGroup><ProjectReference Include="..\..\Presentation\Nop.Web.Framework\Nop.Web.Framework.csproj" /><ClearPluginAssemblies Include="$(MSBuildProjectDirectory)\..\..\Build\ClearPluginAssemblies.proj" /></ItemGroup><!-- This target execute after "Build" target --><Target Name="NopTarget" AfterTargets="Build"><!-- Delete unnecessary libraries from plugins path --><MSBuild Projects="@(ClearPluginAssemblies)" Properties="PluginPath=$(MSBuildProjectDirectory)\$(OutDir)" Targets="NopClear" /></Target>
Reference na Framework
plugin.json
Nastavení vlastností souborů
Jak plugin.json tak i logo.png musí mít nastaveny vlastnosti
Třída pluginu
Administrace / Configuration / Local plugins
Konfigurace
return $"{_webHelper.GetStoreLocation()}Admin/PaymentComGate/Configure";
Routing
public partial class RouteProvider : IRouteProvider{/// <summary>/// Register routes/// </summary>/// <param name="endpointRouteBuilder">Route builder</param>public void RegisterRoutes(IEndpointRouteBuilder endpointRouteBuilder){endpointRouteBuilder.MapControllerRoute("Plugin.Payments.Test.Index", "Plugins/Test/Index",new { controller = "Test", action = "Index" });endpointRouteBuilder.MapControllerRoute("Plugin.Payments.Test.Generator", "Admin/Test/Generator",new { controller = "Test", action = "Generator" });}/// <summary>/// Gets a priority of route provider/// </summary>public int Priority => -1;}