using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using BlogEngine.Core.Web.Controls;
using BlogEngine.Core;
using System.Text.RegularExpressions;
using System.Data;
[Extension("Fixes [ usercontrol:...] tag in Feeds for configured user controls", "1.0", "Funkymule")]
public class UserControlFeedFixup
{
private static ExtensionSettings _settings;
static UserControlFeedFixup()
{
Post.Serving += new EventHandler<ServingEventArgs>(Post_Serving);
ExtensionSettings settings = new ExtensionSettings("UserControlFeedFixup");
settings.AddParameter("UserControlName", "User Control File Name", 255, true);
settings.AddParameter("ReplacementText", "Replace with", 255, true);
ExtensionManager.ImportSettings(settings);
_settings = ExtensionManager.GetSettings("UserControlFeedFixup");
}
private static void Post_Serving(object sender, ServingEventArgs e)
{
if (e.Location == ServingLocation.Feed)
{
foreach (DataRow row in _settings.GetDataTable().Rows)
{
string pattern = @"\[ usercontrol:.*?/User controls/" + row["UserControlName"] + @".*?\]";
e.Body = Regex.Replace(e.Body, pattern,
row["ReplacementText"].ToString(), RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
}
}
}
}