protected void Page_Load(object sender, EventArgs e) { CurrentUserInfo user = CMSContext.CurrentUser; // Check UIProfile if (!user.IsAuthorizedPerUIElement("CMS.Content", "MasterPage")) { RedirectToCMSDeskUIElementAccessDenied("CMS.Content", "MasterPage"); } // Check "Design" permission if (!user.IsAuthorizedPerResource("CMS.Design", "Design")) { RedirectToAccessDenied("CMS.Design", "Design"); } if (displaySplitMode) { // Get document node int nodeId = QueryHelper.GetInteger("nodeid", 0); TreeNode node = DocumentHelper.GetDocument(nodeId, CMSContext.PreferredCultureCode, false, null); // Redirect to page 'New culture version' in split mode. if ((node == null) && displaySplitMode) { URLHelper.Redirect("~/CMSModules/Content/CMSDesk/New/NewCultureVersion.aspx" + URLHelper.Url.Query); } } // Add progress script to the header collection (can't use inline code blocks or ScriptHelper) HTMLHelper.AddToHeader(this, ScriptHelper.GetIncludeScript("progress.js")); HTMLHelper.AddToHeader(this, ScriptHelper.GetScript("var IsCMSDesk = true;")); // Register synchronization script for split mode if (CMSContext.DisplaySplitMode) { RegisterSplitModeSync(false, false); } }
/// <summary> /// Loads content from specific newsletter template. /// </summary> private void LoadContent() { EmailTemplateInfo emailTemplate = EmailTemplateInfoProvider.GetEmailTemplateInfo(mTemplateID); if ((emailTemplate == null) || string.IsNullOrEmpty(emailTemplate.TemplateBody)) { return; } // Remove security parameters from macros string templateText = MacroResolver.RemoveSecurityParameters(emailTemplate.TemplateBody, true, null); if (!RequestHelper.IsPostBack() && (issue != null)) { // Load content of editable regions IssueHelper.LoadRegionsContents(ref regionsContents, issue.IssueText); } CMSEditableRegion editableRegion = null; LiteralControl before = null; int count = 0; int textStart = 0; string region = null; string[] parts = null; string name = null; int width = 0; int height = 0; string toolbarLocation = "Out:CKEditorToolbar"; string toolbarSetName = "Newsletter"; int editRegStart = templateText.IndexOfCSafe("$$", textStart); int editRegEnd = 0; // Apply CSS e-mail template style HTMLHelper.AddToHeader(Page, CSSHelper.GetCSSFileLink(EmailTemplateInfoProvider.GetStylesheetUrl(emailTemplate.TemplateName))); while (editRegStart >= 0) { count++; before = new LiteralControl(); // Get template text surrounding editable regions - make links absolute before.Text = URLHelper.MakeLinksAbsolute(templateText.Substring(textStart, (editRegStart - textStart))); plcContent.Controls.Add(before); // End of region editRegStart += 2; textStart = editRegStart; if (editRegStart < templateText.Length - 1) { editRegEnd = templateText.IndexOfCSafe("$$", editRegStart); if (editRegEnd >= 0) { region = templateText.Substring(editRegStart, editRegEnd - editRegStart); parts = (region + ":" + ":").Split(':'); try { name = parts[0]; if (!string.IsNullOrEmpty(name.Trim())) { width = ValidationHelper.GetInteger(parts[1], 0); height = ValidationHelper.GetInteger(parts[2], 0); editableRegion = new CMSEditableRegion(); editableRegion.ID = name; editableRegion.RegionType = CMSEditableRegionTypeEnum.HtmlEditor; editableRegion.ViewMode = ViewModeEnum.Edit; editableRegion.DialogHeight = height; editableRegion.DialogWidth = width; editableRegion.WordWrap = false; editableRegion.HtmlAreaToolbarLocation = toolbarLocation; editableRegion.RegionTitle = name; editableRegion.UseStylesheet = false; editableRegion.HTMLEditorCssStylesheet = EmailTemplateInfoProvider.GetStylesheetUrl(emailTemplate.TemplateName); if (!mReadOnly) { editableRegion.HtmlAreaToolbar = toolbarSetName; } else { editableRegion.HtmlAreaToolbar = "Disabled"; } CMSHtmlEditor editor = editableRegion.HtmlEditor; editor.AddExtraPlugin("CMSPlugins"); editor.AddExtraPlugin("autogrow"); editor.AutoGrowMinHeight = height; editor.LinkDialogConfig.UseFullURL = true; editor.QuickInsertConfig.UseFullURL = true; editor.ResolverName = "NewsletterResolver"; DialogConfiguration dialogConfig = editor.MediaDialogConfig; dialogConfig.UseFullURL = true; dialogConfig.MetaFileObjectID = (issue != null) ? issue.IssueID : 0; dialogConfig.MetaFileObjectType = (issue != null) && issue.IssueIsVariant ? NewsletterObjectType.NEWSLETTERISSUEVARIANT : NewsletterObjectType.NEWSLETTERISSUE; dialogConfig.MetaFileCategory = MetaFileInfoProvider.OBJECT_CATEGORY_ISSUE; dialogConfig.HideAttachments = false; editableRegion.LoadContent(ValidationHelper.GetString(regionsContents[name.ToLowerCSafe()], string.Empty)); plcContent.Controls.Add(editableRegion); textStart = editRegEnd + 2; } } catch { } } } editRegStart = templateText.IndexOfCSafe("$$", textStart); } before = new LiteralControl(); before.Text = URLHelper.MakeLinksAbsolute(templateText.Substring(textStart)); plcContent.Controls.Add(before); }
/// <summary> /// Loads content from specific newsletter template. /// </summary> private void LoadContent() { EmailTemplate emailTemplate = EmailTemplateProvider.GetEmailTemplate(templateId); if ((emailTemplate == null) || string.IsNullOrEmpty(emailTemplate.TemplateBody)) { return; } // Remove security parameters from macros string templateText = MacroResolver.RemoveSecurityParameters(emailTemplate.TemplateBody, true, null); if (!RequestHelper.IsPostBack() && (issue != null)) { // Load content of editable regions IssueHelper.LoadRegionsContents(ref regionsContents, issue.IssueText); } CMSEditableRegion editableRegion = null; LiteralControl before = null; int count = 0; int textStart = 0; int editRegStart = templateText.IndexOf("$$", textStart); // Apply CSS e-mail template style HTMLHelper.AddToHeader(this.Page, CSSHelper.GetCSSFileLink(EmailTemplateProvider.GetStylesheetUrl(emailTemplate.TemplateName))); while (editRegStart >= 0) { count++; before = new LiteralControl(); // Get template text surrounding editable regions - make links absolute before.Text = URLHelper.MakeLinksAbsolute(templateText.Substring(textStart, (editRegStart - textStart))); plcContent.Controls.Add(before); // End of region editRegStart += 2; textStart = editRegStart; if (editRegStart < templateText.Length - 1) { int editRegEnd = templateText.IndexOf("$$", editRegStart); if (editRegEnd >= 0) { string region = templateText.Substring(editRegStart, editRegEnd - editRegStart); string[] parts = (region + ":" + ":").Split(':'); try { string name = parts[0]; if (!string.IsNullOrEmpty(name.Trim())) { int width = ValidationHelper.GetInteger(parts[1], 0); int height = ValidationHelper.GetInteger(parts[2], 0); editableRegion = new CMSEditableRegion(); editableRegion.ID = name; editableRegion.RegionType = CMSEditableRegionTypeEnum.HtmlEditor; editableRegion.ViewMode = ViewModeEnum.Edit; editableRegion.DialogHeight = height; editableRegion.DialogWidth = width; editableRegion.WordWrap = false; editableRegion.HtmlAreaToolbarLocation = "Out:CKEditorToolbar"; editableRegion.RegionTitle = name; editableRegion.UseStylesheet = false; editableRegion.HTMLEditorCssStylesheet = EmailTemplateProvider.GetStylesheetUrl(emailTemplate.TemplateName); editableRegion.HtmlAreaToolbar = "Newsletter"; editableRegion.HtmlEditor.MediaDialogConfig.UseFullURL = true; editableRegion.HtmlEditor.LinkDialogConfig.UseFullURL = true; editableRegion.HtmlEditor.QuickInsertConfig.UseFullURL = true; editableRegion.LoadContent(ValidationHelper.GetString(regionsContents[name.ToLower()], "")); plcContent.Controls.Add(editableRegion); textStart = editRegEnd + 2; } } catch { } } } editRegStart = templateText.IndexOf("$$", textStart); } before = new LiteralControl(); before.Text = URLHelper.MakeLinksAbsolute(templateText.Substring(textStart)); plcContent.Controls.Add(before); }