protected override void InstallPages(SiteInitializer initializer)
{
// code to install admin page nodes and pages
// get pagemanager
var pageManager = initializer.PageManager;
var modulesPageNode = pageManager.GetPageNode(SiteInitializer.ModulesNodeId);
// need local variable for ID due to limitation in API
var id = LocationsPageGroupID;
// Create PageNode if doesn't exist
var locationsModulePageGroupNode = pageManager.GetPageNodes().Where(t => t.Id == id).SingleOrDefault();
if (locationsModulePageGroupNode == null)
{
// create page node under Modules node
locationsModulePageGroupNode = initializer.CreatePageNode(id, modulesPageNode, NodeType.Group);
locationsModulePageGroupNode.Name = LocationsModule.ModuleName;
locationsModulePageGroupNode.ShowInNavigation = true;
locationsModulePageGroupNode.Attributes["ModuleName"] = LocationsModule.ModuleName;
locationsModulePageGroupNode.Title = "Locations";
locationsModulePageGroupNode.UrlName = "Locations";
locationsModulePageGroupNode.Description = "Module for managing a list of Locations";
}
// local version of landing page ID
id = this.LandingPageId;
// create Landing Page if doesn't exist
var landingPage = pageManager.GetPageNodes().SingleOrDefault(p => p.Id == id);
if (landingPage == null)
{
// create page
var pageInfo = new PageDataElement()
{
PageId = id,
IncludeScriptManager = true,
ShowInNavigation = false,
EnableViewState = false,
TemplateName = SiteInitializer.BackendTemplateName,
Name = LocationsModule.ModuleName,
MenuName = "Locations Module",
UrlName = "Locations",
Description = "Landing page for the Locations Module",
HtmlTitle = "Locations Module"
};
pageInfo.Parameters["ModuleName"] = LocationsModule.ModuleName;
// create control panel
var controlPanel = new BackendContentView()
{
ModuleName = LocationsModule.ModuleName,
ControlDefinitionName = LocationsDefinitions.BackendDefinitionName
};
// add page
initializer.CreatePageFromConfiguration(pageInfo, locationsModulePageGroupNode, controlPanel);
}
}
public override void Upgrade(SiteInitializer initializer, Version upgradeFrom)
{
}
protected override void InstallTaxonomies(SiteInitializer initializer)
{
this.InstallTaxonomy(initializer, typeof(LocationItem));
}
protected override ConfigSection GetModuleConfig()
{
// code to return Module configuration
return Config.Get<LocationsConfig>();
}
protected override void InstallConfiguration(SiteInitializer initializer)
{
var config = initializer.Context.GetConfig<ToolboxesConfig>();
var pageControls = config.Toolboxes["PageControls"];
var section = pageControls
.Sections
.Where<ToolboxSection>(e => e.Name == ToolboxesConfig.ContentToolboxSectionName)
.FirstOrDefault();
if (section == null)
{
section = new ToolboxSection(pageControls.Sections)
{
Name = ToolboxesConfig.ContentToolboxSectionName,
Title = "ContentToolboxSectionTitle",
Description = "ContentToolboxSectionDescription",
ResourceClassId = typeof(PageResources).Name
};
pageControls.Sections.Add(section);
}
if (!section.Tools.Any<ToolboxItem>(e => e.Name == "LocationsView"))
{
var tool = new ToolboxItem(section.Tools)
{
Name = "LocationsView",
Title = "LocationsViewTitle",
Description = "LocationsViewDescription",
ModuleName = LocationsModule.ModuleName,
ControlType = typeof(LocationsView).AssemblyQualifiedName
};
section.Tools.Add(tool);
}
}
public override Guid LandingPageId
{
get { return LocationsModuleLandingPage; }
}
public override Type[] Managers
{
get { return new[] { typeof(LocationsManager) }; }
}