Ejemplo n.º 1
0
        public IEnumerable<MenuItem> BuildMenu(string name, ActionContext actionContext)
        {
            var builder = new NavigationBuilder();

            // Processes all navigation builders to create a flat list of menu items.
            // If a navigation builder fails, it is ignored.
            foreach (var navigationProvider in _navigationProviders)
            {
                try
                {
                    navigationProvider.BuildNavigation(name, builder);
                }
                catch (Exception e)
                {
                    _logger.LogError($"An exception occured while building the menu: {name}", e);
                }
            }

            var menuItems = builder.Build();

            // Merge all menu hierarchies into a single one
            Merge(menuItems);

            // Remove unauthorized menu items
            menuItems = Reduce(menuItems, null);

            // Compute Url and RouteValues properties to Href
            menuItems = ComputeHref(menuItems, actionContext);

            return menuItems;
        }
Ejemplo n.º 2
0
        public void BuildNavigation(string name, NavigationBuilder builder)
        {
            if (!String.Equals(name, "admin", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            builder
                .Add(T["Demo"], "10", themes => themes
                    .AddClass("demo")
                    .Add(T["This Menu Item 1.1"], "0", installed => installed
                        .Add(T["This is Menu Item 1.1"])
                        .Add(T["This is Menu Item 1.2"])
                        .Add(T["This is Menu Item 1.2"])
                    )
                    .Add(T["This Menu Item 2.1"], "0", installed => installed
                        .Add(T["This is Menu Item 2.1"])
                        .Add(T["This is Menu Item 2.2"])
                        .Add(T["This is Menu Item 3.2"])
                    )
                    .Add(T["This Menu Item 3.1"], "0", installed => installed
                        .Add(T["This is Menu Item 3.1"])
                        .Add(T["This is Menu Item 3.2"])
                    )
                );
        }
Ejemplo n.º 3
0
        public void BuildNavigation(string name, NavigationBuilder builder)
        {
            if (!String.Equals(name, "admin", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            builder
                .Add(T["Content"], content => content
                    .Add(T["Roles"], "5", installed => installed
                        .Action("Index", "Admin", "Orchard.Roles")
                        .Permission(Permissions.ManageRoles)
                        .LocalNav()
                    )
                );
        }
Ejemplo n.º 4
0
        public void BuildNavigation(string name, NavigationBuilder builder)
        {
            if (!String.Equals(name, "admin", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            builder
                .Add(T["Themes"], "10", themes => themes
                    .AddClass("themes")
                    .Permission(Permissions.ApplyTheme)
                    .Add(T["Active Themes"], "0", installed => installed
                        .Action("Index", "Admin", new { area = "Orchard.Themes" })
                        .Permission(Permissions.ApplyTheme)
                        .LocalNav()
                    )
                );
        }
Ejemplo n.º 5
0
        public void BuildNavigation(string name, NavigationBuilder builder)
        {
            if (!String.Equals(name, "admin", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            builder.Add(T["Content Definition"], "1", contentDefinition => contentDefinition
                .LinkToFirstChild(true)
                    .Add(T["Content Types"], "1", contentTypes => contentTypes
                        .Action("List", "Admin", new { area = "Orchard.ContentTypes" })
                        .Permission(Permissions.ViewContentTypes)
                        .LocalNav())
                    .Add(T["Content Parts"], "2", contentParts => contentParts
                        .Action("ListParts", "Admin", new { area = "Orchard.ContentTypes" })
                        .Permission(Permissions.ViewContentTypes)
                        .LocalNav())
                    );
        }
Ejemplo n.º 6
0
        public void BuildNavigation(string name, NavigationBuilder builder)
        {
            if (!String.Equals(name, "admin", StringComparison.OrdinalIgnoreCase))
            {
                return;
            }

            var contentTypeDefinitions = _contentDefinitionManager.ListTypeDefinitions().OrderBy(d => d.Name);

            builder.Add(T["Content"], "1.4", content => content
                .Permission(Permissions.EditOwnContent)
                .AddClass("content")
                .Add(T["Content Items"], "1", contentItems => contentItems
                    .Action("List", "Admin", new { area = "Orchard.Contents", id = "" })
                    .LocalNav())
                );

            var contentTypes = contentTypeDefinitions.Where(ctd => ctd.Settings.ToObject<ContentTypeSettings>().Creatable).OrderBy(ctd => ctd.DisplayName);
            if (contentTypes.Any()) {
                builder.Add(T["New"], "-1", newMenu =>
                {
                    newMenu.LinkToFirstChild(false).AddClass("new");
                    foreach (var contentTypeDefinition in contentTypes)
                    {
                        var ci = _contentManager.New(contentTypeDefinition.Name);
                        var cim = _contentManager.GetItemMetadata(ci);
                        var createRouteValues = cim.CreateRouteValues;
                        if (createRouteValues.Any())
                            newMenu.Add(new LocalizedString(contentTypeDefinition.DisplayName, contentTypeDefinition.DisplayName), "5", item => item
                                .Action(cim.CreateRouteValues["Action"] as string, cim.CreateRouteValues["Controller"] as string, cim.CreateRouteValues)
                                // Apply "PublishOwn" permission for the content type
                                //.Permission(DynamicPermissions.CreateDynamicPermission(DynamicPermissions.PermissionTemplates[Permissions.PublishOwnContent.Name], contentTypeDefinition)
                                );
                    }
                });
            }
        }