Monday, October 3, 2022 1:40:23 PM

Menu balk Iconen

2 years ago
#734 Quote
Ik zou graag één menu balk icoon (Grote iconen balk) willen gebruiken voor het weergeven van de functie iconen van mijn verschillende plugins.
Dit kan en mag nu niet.
Doe ik iets fout, en zo ja, hoe zou ik dit wel voor elkaar krijgen?
Zo nee, komt dit er in?
0
nopFinance plugin developer
E-commerce specialist sinds 2003
Sinds 2003 ervaring in het begeleiden van starters en mkb-ers met het opzetten van hun bedrijfsautomatisering/administratie
0031-(0)36-7851687 / 0031-(0)6-54694849 (whatsapp)
2 years ago
#740 Quote
Dat is zeker al mogelijk. Eenzelfde gebeurt door de begrotingsplugin die een top menu maakt en daar dan panels en knoppen in maakt.

Hiervoor moet je plugin class overerven van BasePlugin en ook de interface ITabMenuItemPlugin implementeren:

public class JouwPlugin : BasePlugin,  ITabMenuItemPlugin ...
{
        #region IoC Properties
        private readonly IPermissionService _permissionService;
        private readonly IUserRoleService _userRoleService;
        private readonly IPermissionCategoryService _permissionCategoryService;
        #endregion

        public JouwPlugin(IPermissionService permissionService,
                            IUserRoleService userRoleService,
                            IPermissionCategoryService permissionCategoryService)
        {
            this._permissionService = permissionService;
            this._userRoleService = userRoleService;
            this._permissionCategoryService = permissionCategoryService;
        }

   //en vervolgens de volgende functie met code (is voorbeeldcode) :
        List<NopMenuItem> ITabMenuItemPlugin.GetMenuStructure()
        {
            var l = new List<NopMenuItem>();
            var tab = new NopMenuItem("name", "menu header") {
            };

            var panel = new NopMenuItem("", "panel name") {
            };

            var button = new NopMenuItem(nameof(ManageMenuItemX), "ManageMenuItemX")
            {
                Text = "Beheren menu item x",
                Tag = nameof(ManageMenuItemX),
                RibbonImage = ResourceKit.InfoIcons.Information_24 //24pix image

            };
            l.Add(tab);
            tab.SubItems.Add(panel);
            panel.SubItems.Add(button);

            return l;
        }

//Je menu item moet je een entrypoint geven:
        public bool ManageMenuItemX(IMDIParent mdiParent)
        {
            if (mdiParent == null)
                throw new ArgumentNullException("mdiParent");

               mdiParent.DisplayForm<MYFORM>();

            return true;
        }

//In de install functie moet je de permissies aanmaken voor het menu item


        /// <summary>
        /// Install plugin
        /// </summary>
        public override void Install()
        {
            //Start with base install before setting up this plugin
            base.Install();

            var pr = _permissionService.GetPermissionRecordBySystemName("ManageMenuItemX");
            if (pr == null)
            {
                var pc = _permissionCategoryService.GetPermissionCategoryBySystemName(StandardPermissionCategoryProvider.Accounting.SystemName);

                pr = new Core.Domain.Permissions.PermissionRecord() {
                    SystemName = "ManageMenuItemX",
                    PermissionCategoryId = pc.Id,
                    Name = "ManageMenuItemX"
                };
                _permissionService.InsertPermissionRecord(pr);
                var ur = _userRoleService.GetUserRoleBySystemName(StandardUserRoleProvider.Administrators.SystemName);
                ur.AvailablePermissionRecords.Add(new UserRolePermissionRecord() { PermissionRecord = pr, UserRole = ur });
                _userRoleService.SaveUserRole(ur);
            }
     }

}
0
"In an age where information is abundantly available, it is no longer enough to possess it. You have to act on it!"
2 years ago
#753 Quote
Hoe kan ik dynamisch elk van mijn plugins zich laten registreren onder "Mijn Plugins" menu item?
Ik heb nu wel een statische mogelijkheid, maar dat is in de praktijk niet echt werkbaar.
0
nopFinance plugin developer
E-commerce specialist sinds 2003
Sinds 2003 ervaring in het begeleiden van starters en mkb-ers met het opzetten van hun bedrijfsautomatisering/administratie
0031-(0)36-7851687 / 0031-(0)6-54694849 (whatsapp)
2 years ago
#754 Quote
De 'Mijn plugins' menu is mij niet bekend. Maar de voorgaande code wordt iig aangeroepen op het moment dat de plugin geladen is en de administratie werd geopend. Daarin kun je zelf besluiten wat je wel en niet toevoegt aan menu items. (obv licentie bijvoorbeeld)
0
"In an age where information is abundantly available, it is no longer enough to possess it. You have to act on it!"
2 years ago
#755 Quote
'Mijn plugins' is de voorbeeldnaam welke ik wil gebruiken in het top menu, net als bv. de menu's 'Beheer', 'Verwerken' en 'Promotie'.
0
nopFinance plugin developer
E-commerce specialist sinds 2003
Sinds 2003 ervaring in het begeleiden van starters en mkb-ers met het opzetten van hun bedrijfsautomatisering/administratie
0031-(0)36-7851687 / 0031-(0)6-54694849 (whatsapp)
2 years ago
#756 Quote
Zie mijn voorbeeldcode voor een implementatie.
0
"In an age where information is abundantly available, it is no longer enough to possess it. You have to act on it!"