Inhalte aufrufen

Profilbild
- - - - -

Link Adminmenü

admin entwicklung menü plugins smartstore.net

  • Bitte melden Sie sich an, um eine Antwort zu verfassen.
7 Antworten zu diesem Thema

#1 Lucil

Lucil

    Benutzer

  • Members
  • PunktPunktPunkt
  • 96 Beiträge

Geschrieben: 04 November 2013 - 22:20

Hallo liebe SmartStore.Net Gemeinde.

Ich benötige einen Tip von euch.

Ich möchte einen Adminmenülink anlegen. Weiß auch wie das funktioniert nur leider ist die Klasse "IAdminMenuPlugin" nicht mehr vorhanden. Wisst Ihr vielleicht von welcher Klasse ich jetzt erben muss um die ehemaligen Funktionen nutzen zu können. Vielleicht könnte die Frage auch kurz ein SmartStore Interner Entwickler beantworten.

Oder gibt es schon eine schönere Lösung solch ein Link im Adminmenü einzufügen?

Vielen Dank schon im voraus.
Verwende SM.biz 5 & 6 Ultimate

SmartSTore.NET Version 1.2.1 sowie 2.0.1 und bin begeistert. :-)

DBasner.de -> Plugins und mehr für SmartStore.net http://dbasner.de

Zum Beispiel:

LiveZilla Plugin für das Besuchertracking V 1.8

#2 Murat Cakir

Murat Cakir

    SmartStore AG

  • Administrators
  • 1118 Beiträge

Geschrieben: 04 November 2013 - 23:53

Typ hat sich geändert, heißt jetzt SmartStore.Web.Framework.UI.IMenuProvider.

Beispiel-Implementierung für SmartStore.biz Importer MenuItem:

    public class AdminMenu : IMenuProvider
    {
        public void BuildMenu(TreeNode<MenuItem> pluginsNode)
        {
            var menuItem = new MenuItem().ToBuilder()
                .Text("SmartStore.biz Import")
                .PermissionNames("AccessImportBiz")
                .Action("ConfigureMiscPlugin", "Plugin", new { systemName = "Import.Biz", area = "Admin" })
                .ToItem();

            pluginsNode.Append(menuItem);
        }

    }

Nach diesem Refactoring ist es nun auch möglich, eigene MenuItems an beliebige Root-Menüs anzuhängen, z.B. Katalog, Kunden, Konfiguration etc. Dazu findet man zuerst das gewünschte Menü per

pluginsNode.Root.SelectNode(...)
.

Murat Cakir
SmartStore AG


#3 Lucil

Lucil

    Benutzer

  • Members
  • PunktPunktPunkt
  • 96 Beiträge

Geschrieben: 05 November 2013 - 13:05

Hallo und vielen Dank.

Das hatte ich schon gesehen: IMenuProvider

War ich also auf dem richtigen Weg.

Super vielen Dank für diese Information, durch die Änderung kann ich jetzt zwei Fliegen mit einer Klappe schlagen ;-) .

Grüße

Bearbeitet von Lucil, 05 November 2013 - 13:06,
etwas vergessen

Verwende SM.biz 5 & 6 Ultimate

SmartSTore.NET Version 1.2.1 sowie 2.0.1 und bin begeistert. :-)

DBasner.de -> Plugins und mehr für SmartStore.net http://dbasner.de

Zum Beispiel:

LiveZilla Plugin für das Besuchertracking V 1.8

#4 Lucil

Lucil

    Benutzer

  • Members
  • PunktPunktPunkt
  • 96 Beiträge

Geschrieben: 05 November 2013 - 23:16

Hallo Murat.

Wie aknn ich es realisieren wenn das Plugin installiert wird, dass dieses Menü erstellt wird. Muss ich dafür eine extra Klasse anlegen oder kann ich das über den Install Aufruf erledigen. Für ein kurzes Feedback wäre ich dankbar.

Grüße
Verwende SM.biz 5 & 6 Ultimate

SmartSTore.NET Version 1.2.1 sowie 2.0.1 und bin begeistert. :-)

DBasner.de -> Plugins und mehr für SmartStore.net http://dbasner.de

Zum Beispiel:

LiveZilla Plugin für das Besuchertracking V 1.8

#5 Murat Cakir

Murat Cakir

    SmartStore AG

  • Administrators
  • 1118 Beiträge

Geschrieben: 06 November 2013 - 01:29

Alles was du brauchst, ist die IMenuProvider implementierende Klasse in deinem Plugin-Projekt. Bei AppStart wird diese automatisch erkannt, instanziiert und ausgeführt.

Beispiel (Glimpse Plugin):

using System;
using System.Collections.Generic;
using System.Web.Routing;
using System.Web.Mvc;
using SmartStore.Web.Framework.UI;
using SmartStore.Collections;

namespace SmartStore.Plugin.Import.Biz
{
    public class AdminMenu : IMenuProvider
    {
        public void BuildMenu(TreeNode<MenuItem> pluginsNode)
        {
            var menuItem = new MenuItem().ToBuilder()
                .Text("Glimpse")
                .Action("ConfigureMiscPlugin", "Plugin", new { systemName = "Developer.Glimpse", area = "Admin" })
                .ToItem();

            pluginsNode.Append(menuItem);
        }

    }
}

Murat Cakir
SmartStore AG


#6 Lucil

Lucil

    Benutzer

  • Members
  • PunktPunktPunkt
  • 96 Beiträge

Geschrieben: 06 November 2013 - 20:53

Hallo und danke an dich.

Manchmal sieht man den Wald vor lauter Bäumen nicht. Hat alles super funktioniert.

Wie kann man aber direkt zur Konfiguration des Plugins springen?

Grüße
Verwende SM.biz 5 & 6 Ultimate

SmartSTore.NET Version 1.2.1 sowie 2.0.1 und bin begeistert. :-)

DBasner.de -> Plugins und mehr für SmartStore.net http://dbasner.de

Zum Beispiel:

LiveZilla Plugin für das Besuchertracking V 1.8

#7 Murat Cakir

Murat Cakir

    SmartStore AG

  • Administrators
  • 1118 Beiträge

Geschrieben: 07 November 2013 - 01:40

Diese Zeile...

.Action("ConfigureMiscPlugin", "Plugin", new { systemName = "Developer.Glimpse", area = "Admin" })


...sorgt ja bereits dafür, dass der richtige Link zum Plugin erzeugt wird. Da muss nur noch der systemName deines Plugins stehen.

Murat Cakir
SmartStore AG


#8 Lucil

Lucil

    Benutzer

  • Members
  • PunktPunktPunkt
  • 96 Beiträge

Geschrieben: 10 November 2013 - 15:02

Hallo und Danke für den Tip.

Hab ich bereits gemacht. Bestimmt nur ein Schreibfehler von mir.
:o
Grüße
Verwende SM.biz 5 & 6 Ultimate

SmartSTore.NET Version 1.2.1 sowie 2.0.1 und bin begeistert. :-)

DBasner.de -> Plugins und mehr für SmartStore.net http://dbasner.de

Zum Beispiel:

LiveZilla Plugin für das Besuchertracking V 1.8


Auch markiert mit einem oder mehrerer dieser Schlüsselwörter: admin, entwicklung, menü, plugins, smartstore.net