public CmsPageContent CreateRow(int numColumns) { var row = new CmsPageContent { WidgetTypeCode = "ConfiguratorRow", }; row.Id = Guid.NewGuid(); row.Parameters[nameof(ConfiguratorRow.NumColumns)] = numColumns.ToString(); return(row); }
public static PageContent ToPresentationElement(this CmsPageContent content) { return(new PageContent { Id = content.Id, AllContent = content.AllContent.Select(ToPresentationElement).ToList(), Order = content.Order, Parameters = content.Parameters, PlacementContentPlaceHolderId = content.PlacementContentPlaceHolderId, PlacementLayoutBuilderId = content.PlacementLayoutBuilderId, WidgetTypeCode = content.WidgetTypeCode, }); }
public CmsPageContent CreateCmsPageContent(SettingProperty property, string widgetTypeCode, FormStyle parentFormStyle) { var setup = new ConfiguratorSetup { PropertyType = property.PropertyInfo.PropertyType.FullName, DisplayName = property.DisplayName, PropertyName = property.PropertyInfo.Name }; var cmsPageContent = new CmsPageContent { Id = Guid.NewGuid(), WidgetTypeCode = widgetTypeCode }; var standardParameters = setup.GetPropertyValues(x => true).ToDictionary(x => x.Key, x => x.Value); var datasourceParameters = new Dictionary <string, string>(); var toolboxItem = new ToolboxManager().GetToolboxItemByCode(widgetTypeCode); if (toolboxItem.RequiresDataSource) { var dataRelationDs = InferDataSourceFromDataRelation(property); if (dataRelationDs != null) { datasourceParameters = dataRelationDs.GetPropertyValues(x => true).ToDictionary(x => x.Key, x => x.Value); } } if (toolboxItem.SupportsSubContent) { var propType = property.PropertyInfo.PropertyType; var defaultForm = GenerateDefaultForm(propType, parentFormStyle); cmsPageContent.AllContent = defaultForm.ChildNodes; } var mergedParameters = new Dictionary <string, string>(); foreach (var parameter in standardParameters) { mergedParameters.Add(parameter.Key, parameter.Value); } foreach (var parameter in datasourceParameters) { mergedParameters.Add(parameter.Key, parameter.Value); } cmsPageContent.Parameters = mergedParameters; return(cmsPageContent); }
private StructureNode GetPageStructure(CmsPageContent content) { var sn = new StructureNode { Id = content.Id, Order = content.Order, Parameters = content.Parameters, PlacementContentPlaceHolderId = content.PlacementContentPlaceHolderId, PlacementLayoutBuilderId = content.PlacementLayoutBuilderId, WidgetTypeCode = content.WidgetTypeCode, ChildNodes = content.AllContent.Select(GetPageStructure).ToList() }; return(sn); }
private void WriteMetadata() { CmsPageContent contentPlacement = null; if (CurrentNode.Type == NodeType.Element) { contentPlacement = _draft.FindContentById(CurrentNode.ContentId); } if (contentPlacement == null) { CurrentNode.IsFromLayout = true; } else { CurrentNode.Parameters = contentPlacement.Parameters; var toolboxItem = new ToolboxManager().GetToolboxItemByCode(contentPlacement.WidgetTypeCode); CurrentNode.FriendlyName = toolboxItem.FriendlyName; } }
public Site SetupTestSite() { var tbx = new ToolboxManager(); var myLayout = new Layout { Name = "Demo", MasterPagePath = "/Demo.Master", }; myLayout.PageContent.Add(new CmsPageContent { Id = Guid.NewGuid(), WidgetTypeCode = "Client-CustomNavigation", PlacementContentPlaceHolderId = "NavigationContentPlaceHolder" }); var layoutRepository = new LayoutRepository(); layoutRepository.Save(myLayout); var siteRepo = new SiteRepository(); var newSite = new Site { Name = "WarpCore Demo", IsFrontendSite = true }; siteRepo.Save(newSite); var homePage = new CmsPage { Name = "Homepage", SiteId = newSite.ContentId, LayoutId = myLayout.ContentId, Keywords = "WarpCore,CMS,Demo", Description = "WarpCore CMS Demo" }; var lbId = Guid.NewGuid(); var row = new CmsPageContent { Id = Guid.NewGuid(), WidgetTypeCode = RowLayout.ApiId, PlacementContentPlaceHolderId = "Body", Parameters = new Dictionary <string, string> { //[nameof(RowLayout.LayoutBuilderId)] = lbId.ToString(), [nameof(RowLayout.NumColumns)] = 3.ToString() } }; var helloWorld0 = new CmsPageContent { Id = Guid.NewGuid(), PlacementContentPlaceHolderId = "0", PlacementLayoutBuilderId = lbId, WidgetTypeCode = ContentBlock.ApiId, Parameters = new Dictionary <string, string> { ["AdHocHtml"] = "Hello World (0)" } }; var helloWorld1 = new CmsPageContent { Id = Guid.NewGuid(), PlacementContentPlaceHolderId = "1", PlacementLayoutBuilderId = lbId, WidgetTypeCode = ContentBlock.ApiId, Parameters = new Dictionary <string, string> { ["AdHocHtml"] = "Hello World (1)" } }; row.AllContent.Add(helloWorld0); row.AllContent.Add(helloWorld1); homePage.PageContent.Add(row); var aboutUs = new CmsPage { Name = "About Us", SiteId = newSite.ContentId, LayoutId = myLayout.ContentId }; var contactUs = new CmsPage { Name = "Contact Us", SiteId = newSite.ContentId, LayoutId = myLayout.ContentId }; var pageRepository = new CmsPageRepository(); pageRepository.Save(homePage, SitemapRelativePosition.Root); pageRepository.Save(aboutUs, SitemapRelativePosition.Root); pageRepository.Save(contactUs, SitemapRelativePosition.Root); newSite.HomepageId = homePage.ContentId; siteRepo.Save(newSite); var subPage1 = new CmsPage { Name = "Subpage 1", SiteId = newSite.ContentId }; pageRepository.Save(subPage1, new PageRelativePosition { ParentPageId = homePage.ContentId }); var subPage0 = new CmsPage { Name = "Subpage 0", SiteId = newSite.ContentId }; pageRepository.Save(subPage0, new PageRelativePosition { ParentPageId = homePage.ContentId, BeforePageId = subPage1.ContentId }); return(newSite); }