2016-08-01 14 views
1

Ich möchte ein Plugin schreiben, das dem Einkaufswagen eine neue Schaltfläche hinzufügt.Weitere Schaltfläche zum Warenkorb hinzufügen nopCommerce

Diese Schaltfläche wäre neben der Schaltfläche "Aktualisieren" und der Schaltfläche "Weiter" die dritte Schaltfläche.

In dem Bild sehen Sie eine rote Taste wie die, die ich hinzufügen möchte. Das Bild ist nur eine Demo. Die Proportionen sind aus.

Ich habe eine benutzerdefinierteViewEngine.

Und das ist meine Configure.cshtml meines Plugins. Ich weiß, ich könnte die OrderSummery.cshtml ändern, aber ich möchte es über ein Plugin tun.

@model ShoppingCartModel 

@using Nop.Web.Models.ShoppingCart; 

@{ 

    <input type="submit" name="continueshopping2" value="@T("ShoppingCart.ContinueShopping")" class="button-2 continue-shopping-button" /> 
    <script> 
    $(document).ready(function(){ 
     $("#continueshopping2").appendTo(".cart-options .common-buttons"); 
    }); 
    </script> 

} 

Hello World! 

picture

My Second aproach war:

Kopieren Sie die Original-OrderSummery.cshtml in meinem Views Ordner. Das sollte das Original überschreiben. Aber das funktioniert nicht.

Vollständige Plugin-Code unten.

Full Code

+1

Es ist einfach! Verwenden Sie die Plugin-Ansichts-Engine im Plugin und geben Sie den Pfad Ihrer Ansichtsseite an, die Sie kopiert haben. Die Anwendung überschreibt diese Ansichtsseite! –

Antwort

0

Dazu geben Sie eine index.cshtml arbeiten müssen.

Mit diesem Code.

<input type="submit" id="check-cart-button" value="Check Cart Button" class="button-2 continue-shopping-button" /> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#check-cart-button").appendTo(".cart-options .common-buttons"); 
    }); 
</script> 

Und im Plugin.cs

Sie müssen hinzufügen

public IList<string> GetWidgetZones() 
{ 
    return new[] { "order_summary_content_after" }; 
} 

public void GetDisplayWidgetRoute(string widgetZone, out string actionName, out string controllerName, out RouteValueDictionary routeValues) 
{ 
    actionName = "Index"; 
    controllerName = "CheckCart"; 
    routeValues = new RouteValueDictionary { 
     { "Namespaces", "Nop.Plugin.Misc.CheckCart.Controllers" }, 
     { "area", null }, 
     { "widgetZone", widgetZone } 
    }; 
} 

Das ist mein Projekt festgelegt.

Der obige Code ist nötig, weil Sie die Wurzel umleiten müssen.

+0

Ihr Problem wurde behoben oder nicht? –

+0

Mit meinem Selfanswerd-Code wurde es gelöst. Aber danke trotzdem :) –

+1

Okay, gern geschehen! –

1

Sie können Folgendes tun: Fügen Sie den Ordner ShoppingCart in den Ordner für die Ordneransicht ein. Und fügen Sie OrderSummary.cshtml Datei in ShoppingCart Ordner hinzu. Fügen Sie jetzt PluginviewEngine.cs Ihrem Plugin und diesem Code hinzu.

public PluginViewEngine() 
     { 
      PartialViewLocationFormats = 
       new[] 
       {  //themes 
         "~/Themes/{2}/Views/{1}/{0}.cshtml",     
        "~/Plugins/Yourpluginname/Views/{1}/{0}.cshtml" 
       }; 

      ViewLocationFormats = 
       new[] 
       {  
        //themes 
         "~/Themes/{2}/Views/{1}/{0}.cshtml", 
        "~/Plugins/YourPluginName/Views/ShoppingCart/{0}.cshtml" 
       }; 
     } 

Hoffe, das wird Ihnen helfen!

Verwandte Themen