Modify message templates

NEW TO SITEFINITY?

To modify a specific message template, you use the NewslettersManager class. First, you initialize the NewslettersManager. Then, you get the specified message template. Finally, you modify the title and the body text, and save the changes.

The following code modifies a plain text message template through the Native API:

  1. using Telerik.Sitefinity.Modules.Newsletters;
    using Telerik.Sitefinity.Newsletters.Model;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    namespace Telerik.Sitefinity.Documentation.CodeSnippets.DevGuide.SitefinityEssentials.Modules.EmailCampaigns.MessageBodies
    {
    public partial class EmailCampaignsSnippets
    {
    public void ModifyMessageBody(Guid id, string newName, string newBodyText)
    {
    NewslettersManager manager = NewslettersManager.GetManager();
    MessageBody messageBody = manager.GetMessageBodies().Where(b => b.Id == id).SingleOrDefault();
    if (messageBody != null)
    {
    messageBody.Name = newName;
    messageBody.BodyText = newBodyText;
    manager.SaveChanges();
    }
    }
    }
    }
  2. The following code modifies a page-like message template through the Native API:
  3. using System.Linq;
    using Telerik.Sitefinity.Modules.Newsletters;
    using Telerik.Sitefinity.Modules.Newsletters.Web.UI;
    using Telerik.Sitefinity.Modules.Pages;
    using Telerik.Sitefinity.Pages.Model;
    namespace Telerik.Sitefinity.Documentation.CodeSnippets.DevGuide.SitefinityEssentials.Modules.EmailCampaigns.MessageBodies
    {
    public partial class EmailCampaignsSnippets
    {
    public static void UpdateMessageBodyByName(string templateName)
    {
    // Get Newsletters Manager and Newsletters Page Manager
    PageManager newsLettersPageManager = NewslettersManager.GetPageManager();
    NewslettersManager newslettersManager = NewslettersManager.GetManager();
    // Get message body
    var messageBody = newslettersManager.GetMessageBodies().Where(t => t.Name == templateName).FirstOrDefault();
    // Get the message body as Page
    PageData pageData = newsLettersPageManager.GetPageData(messageBody.Id);
    var pageNode = newsLettersPageManager.GetPageNodes().Where(p => p.Id == pageData.Id).SingleOrDefault();
    // Edit the Page
    var editPage = newsLettersPageManager.EditPage(pageNode.GetPageData().Id);
    if (pageData != null)
    {
    // Get all controls of type ContentBlock
    var contentItem = editPage.Controls.Where(c => c.Caption == "Content block").FirstOrDefault();
    // Create new Content Block
    NewslettersContentBlock myNewContentItem = new NewslettersContentBlock();
    // Get and Update the content
    var currentControl = newsLettersPageManager.LoadControl(contentItem) as NewslettersContentBlock;
    var innerHtml = currentControl.Html;
    myNewContentItem.Html = innerHtml + " -> your updated text goes here";
    // Copy the properties of the current Content Block item to the newly created
    newsLettersPageManager.ReadProperties(myNewContentItem, contentItem);
    // Checking all changes to the Page
    newsLettersPageManager.PagesLifecycle.CheckIn(editPage);
    //Call the method to save editing
    newsLettersPageManager.SaveChanges();
    }
    }
    }
    }

Want to learn more?

Increase your Sitefinity skills by signing up for our free trainings. Get Sitefinity-certified at Progress Education Community to boost your credentials.

Get started with Integration Hub | Sitefinity Cloud | Sitefinity SaaS

This free lesson teaches administrators, marketers, and other business professionals how to use the Integration hub service to create automated workflows between Sitefinity and other business systems.

Web Security for Sitefinity Administrators

This free lesson teaches administrators the basics about protecting yor Sitefinity instance and its sites from external threats. Configure HTTPS, SSL, allow lists for trusted sites, and cookie security, among others.

Foundations of Sitefinity ASP.NET Core Development

The free on-demand video course teaches developers how to use Sitefinity .NET Core and leverage its decoupled architecture and new way of coding against the platform.

Was this article helpful?