protected void Page_Load(object sender, EventArgs e) { if (!UserMayEdit) { btnUpdate.Visible = false; txtTemplateContent.Enabled = false; } hlkCancel.NavigateUrl = DotNetNuke.Common.Globals.NavigateURL(this.TabId); if (IsPostBack) { return; } if (Template == null) { return; } if (File.Exists(TemplatePath)) { txtTemplateContent.Text = File.ReadAllText(TemplatePath); } // Get name of the current template and write it to lblTemplate lblTemplate.Text = Template.Name; lblTemplateLocation.Text = @"/" + TemplatePath.Replace(HttpContext.Current.Request.PhysicalApplicationPath, String.Empty).Replace('\\', '/'); lblEditTemplateFileHeading.Text = String.Format(LocalizeString("lblEditTemplateFileHeading.Text"), Template.Name); var defaultLanguageID = Sexy.ContentContext.GetLanguageId(PortalSettings.DefaultLanguage); var languageList = defaultLanguageID.HasValue ? new[] { defaultLanguageID.Value } : new[] { 0 }; var templateDefaults = Sexy.GetTemplateDefaults(Template.TemplateID).Where(t => t.ContentTypeID.HasValue); string formatString; if (Template.Type == "Token") { formatString = "[{0}:{1}]"; } else { formatString = "@{0}.{1}"; } foreach (var templateDefault in templateDefaults) { var contentTypeId = templateDefault.ContentTypeID.Value; AddHelpForAContentType(contentTypeId, formatString, templateDefault, languageList); } // todo: add AppResources and AppSettings help // add standard help AddHelpFragments(); }
protected void ProcessView() { List <ContentGroupItemType> EditableItemsTypes = new List <ContentGroupItemType>(); if (CurrentlyEditedItems.Any() && CurrentlyEditedItems.Any(c => c.ItemType == ContentGroupItemType.Content)) { EditableItemsTypes.Add(ContentGroupItemType.Content); EditableItemsTypes.Add(ContentGroupItemType.Presentation); } if (SortOrder == -1 || CurrentlyEditedItems.Any(c => c.ItemType == ContentGroupItemType.ListContent)) { EditableItemsTypes.Add(ContentGroupItemType.ListContent); EditableItemsTypes.Add(ContentGroupItemType.ListPresentation); } if (Items.Any() && Items.First().TemplateID.HasValue) { foreach (var TemplateDefault in Sexy.GetTemplateDefaults(Items.First().TemplateID.Value).Where(c => EditableItemsTypes.Contains(c.ItemType))) { if (TemplateDefault.ContentTypeID.HasValue && TemplateDefault.ContentTypeID.Value > 0) { ContentGroupItem ContentGroupItem = null; if (CurrentlyEditedItems.Any() && CurrentlyEditedItems.First().ContentGroupItemID != 0) { ContentGroupItem = CurrentlyEditedItems.FirstOrDefault(p => p.ItemType == TemplateDefault.ItemType); } var editControl = (EditContentGroupItem)LoadControl(System.IO.Path.Combine(TemplateSourceDirectory, "EditContentGroupItem.ascx")); editControl.ContentGroupItemID = ContentGroupItem != null && ContentGroupItem.ContentGroupID != 0 ? ContentGroupItem.ContentGroupItemID : new int?(); editControl.ContentGroupID = ContentGroupID.Value; editControl.AppId = AppId.Value; editControl.ZoneId = ZoneId.Value; editControl.ItemType = TemplateDefault.ItemType; editControl.TemplateID = Items.First().TemplateID.Value; editControl.SortOrder = CurrentlyEditedItems.Any() || SortOrder == -1 ? SortOrder : new int?(); editControl.ModuleID = ModuleId; editControl.TabID = TabId; editControl.AttributeSetID = TemplateDefault.ContentTypeID.Value; phNewOrEditControls.Controls.Add(editControl); } } } // Directly edit entity Id if ((!SortOrder.HasValue && EntityId.HasValue) || (!SortOrder.HasValue && AttributeSetId.HasValue && NewMode)) { var editControl = (EditEntity)LoadControl(System.IO.Path.Combine(TemplateSourceDirectory, "EditEntity.ascx")); editControl.AppId = AppId.Value; editControl.ZoneId = ZoneId.Value; editControl.ModuleID = ModuleId; editControl.TabID = TabId; editControl.AttributeSetID = AttributeSetId.HasValue ? AttributeSetId.Value : Sexy.ContentContext.GetEntity(EntityId.Value).AttributeSetID; editControl.EntityId = EntityId; phNewOrEditControls.Controls.Add(editControl); } }
protected void Page_Load(object sender, EventArgs e) { hlkCancel.NavigateUrl = DotNetNuke.Common.Globals.NavigateURL(this.TabId, "", null); var contentTypes = Sexy.GetAvailableAttributeSets("2SexyContent"); var templates = Sexy.GetTemplates(PortalSettings.PortalId); var entities = DataSource.GetInitialDataSource(ZoneId.Value, AppId.Value, false); var language = System.Threading.Thread.CurrentThread.CurrentCulture.Name; var data = new { contentTypes = contentTypes.Select(c => new { Id = c.AttributeSetId, Name = c.Name, StaticName = c.StaticName, Templates = templates.Where(t => t.AttributeSetID == c.AttributeSetId).Select(p => new { p.TemplateID, p.AttributeSetID, p.Name, TemplateDefaults = Sexy.GetTemplateDefaults(p.TemplateID).Select(td => new { td.ContentTypeID, td.DemoEntityID, ItemType = td.ItemType.ToString("F") }) }), Entities = entities.List.Where(en => en.Value.Type.AttributeSetId == c.AttributeSetId).Select(en => Sexy.GetDictionaryFromEntity(en.Value, language)) }), templatesWithoutContentType = templates.Where(p => !p.AttributeSetID.HasValue).Select(t => new { t.TemplateID, t.Name }) }; pnlExportView.Attributes.Add("ng-init", "init(" + Newtonsoft.Json.JsonConvert.SerializeObject(data) + ");"); }
private IDictionary <int, IEntity> GetStream(ContentGroupItemType itemType, ContentGroupItemType?presentationItemType) { var entitiesToDeliver = new Dictionary <int, IEntity>(); if (!ContentGroupItems.Any(c => c.TemplateID.HasValue) && !OverrideTemplateId.HasValue) { return(entitiesToDeliver); } var items = ContentGroupItems.ToList(); // Create copy of list (not in cache) because it will get modified var templateId = OverrideTemplateId.HasValue ? OverrideTemplateId.Value : items.First().TemplateID.Value; var templateDefaults = Sexy.GetTemplateDefaults(templateId); var templateDefault = templateDefaults.FirstOrDefault(t => t.ItemType == itemType); // If no Content Elements exist and type is List, add a ContentGroupItem to List (not to DB) if ((itemType == ContentGroupItemType.Content || itemType == ContentGroupItemType.ListContent) && !items.Any(p => p.ItemType == itemType)) { if (!ListId.HasValue) { throw new Exception("GetStream() failed because ListId is null. ModuleId is " + (ModuleId.HasValue ? ModuleId.ToString() : "null")); } items.Add(new ContentGroupItem { ContentGroupID = ListId.Value, ContentGroupItemID = -1, EntityID = new int?(), SortOrder = (itemType == ContentGroupItemType.ListContent ? -1 : 0), SysCreated = DateTime.Now, SysCreatedBy = -1, TemplateID = templateId, Type = itemType.ToString("F") }); } var originals = In["Default"].List; foreach (var i in items.Where(p => p.ItemType == itemType)) { // use demo-entites where available var entityId = i.EntityID.HasValue ? i.EntityID.Value : (templateDefault != null && templateDefault.DemoEntityID.HasValue ? templateDefault.DemoEntityID.Value : new int?()); // We can't deliver entities that are not delivered by base (original stream), so continue if (!entityId.HasValue || !originals.ContainsKey(entityId.Value)) { continue; } IEntity presentation = null; if (presentationItemType.HasValue) { // Try to find presentation entity var presentationEntityId = items.Where(p => p.SortOrder == i.SortOrder && p.ItemType == presentationItemType && p.EntityID.HasValue && originals.ContainsKey(p.EntityID.Value)).Select(p => p.EntityID).FirstOrDefault(); // If there is no presentation entity, take default entity if (!presentationEntityId.HasValue) { presentationEntityId = templateDefaults.Where( d => d.ItemType == presentationItemType && d.DemoEntityID.HasValue && originals.ContainsKey(d.DemoEntityID.Value)) .Select(p => p.DemoEntityID).FirstOrDefault(); } presentation = presentationEntityId.HasValue ? originals[presentationEntityId.Value] : null; } var key = entityId.Value; // This ensures that if an entity is added more than once, the dictionary doesn't complain because of duplicate keys while (entitiesToDeliver.ContainsKey(key)) { key += 1000000000; } entitiesToDeliver.Add(key, new EAVExtensions.EntityInContentGroup(originals[entityId.Value]) { SortOrder = i.SortOrder, ContentGroupItemModified = i.SysModified, Presentation = presentation, GroupId = ListId.Value }); } return(entitiesToDeliver); }