Programatically updating admin menu and creating groups?
I've created a custom pluggable module and added it to the administration menu using the following code (straight from an example) but one thing I cant seem to find out is how to programmatically update the menu once the module is installed.
protected
override
void
InstallPages(Telerik.Sitefinity.Abstractions.SiteInitializer initializer)
var pageManager = initializer.PageManager;
var backendPagesNode = pageManager.GetPageNode(SiteInitializer.SitefinityNodeId);
var landingPage = pageManager.GetPageNodes().SingleOrDefault(p => p.Id ==
this
.LandingPageId);
if
(landingPage ==
null
)
var pageInfo =
new
PageDataElement()
PageId =
this
.LandingPageId,
IncludeScriptManager =
true
,
ShowInNavigation =
true
,
EnableViewState =
false
,
TemplateName = SiteInitializer.BackendTemplateName,
Name =
"Contacts"
,
MenuName =
"Contacts"
,
UrlName =
"Contacts"
,
Description =
"Contacts Module"
,
HtmlTitle =
"Contacts Module"
;
pageInfo.Parameters[
"ModuleName"
] =
"Contacts"
;
var html =
new
Literal();
html.Text =
"<h1>Contacts</h1>"
;
initializer.CreatePageFromConfiguration(pageInfo, backendPagesNode, html);
Hi,
There is a way to edit the pages backend menu. Here is a code example how to do it:
SiteInitializer siteInitializer = new SiteInitializer("myEdit");
Guid landingPageId = new Guid("19BCC56D-B04C-409C-847B-458F6A21BDB9");
PageManager pageManager = PageManager.GetManager(null, "myEdit");
PageNode backendPagesNode = pageManager.GetPageNode(SiteInitializer.SitefinityNodeId);
PageDataElement pageInfo = new PageDataElement()
PageId = landingPageId,
IncludeScriptManager = true,
ShowInNavigation = true,
EnableViewState = false,
TemplateName = SiteInitializer.BackendTemplateName,
Name = "Contacts",
MenuName = "Contacts",
UrlName = "Contacts",
Description = "Contacts Module",
HtmlTitle = "Contacts Module"
;
pageInfo.Parameters["ModuleName"] = "Contacts";
var html = new Literal();
html.Text = "<
h1
>Contacts</
h1
>";
siteInitializer.CreatePageFromConfiguration(pageInfo, backendPagesNode, html);
siteInitializer.SaveChanges();
public override void Upgrade(SiteInitializer initializer, Version upgradeFrom)
if (upgradeFrom.Major == 10 && upgradeFrom.Minor < 2)
//your code goes here
protected override void InstallPages(SiteInitializer initializer)
initializer.Installer
.CreateModuleGroupPage(MyModule.ModulePageGroupId, "MyGroup")
.PlaceUnder(CommonNode.TypesOfContent)
.SetOrdinal(1)
.SetTitle("ModuleTitle")
.AddChildPage(MyModule.HomePageId, "MyHomePage")
.SetTitle("MyHomePage")
.SetHtmlTitle("MyHomePage")
.Done()