using System;
using BlogEngine.Core.Web.Controls;
using BlogEngine.Core;
using System.Collections.Generic;
using System.Collections.Specialized;
[Extension("Example_03", "1.0", "<a href=\"http://me.net\">Me</a>")]
public class Example_03
{
static protected ExtensionSettings _settings = null;
public Example_03()
{
Comment.Serving += new EventHandler<ServingEventArgs>(Post_CommentServing);
InitSettings();
}
private void Post_CommentServing(object sender, ServingEventArgs e)
{
Comment comment = (Comment)sender;
if (comment.Author != "typetest")
return;
foreach (ExtensionParameter p in _settings.Parameters)
{
if (string.IsNullOrEmpty(p.SelectedValue))
e.Body += "<br/>" + p.Name + ": " + p.Values[0];
else
e.Body += "<br/>" + p.Name + ": " + p.SelectedValue;
}
}
private void InitSettings()
{
ExtensionSettings settings = new ExtensionSettings(this);
settings.IsScalar = true;
// define parameters
settings.AddParameter("TheString");
settings.AddParameter("TheBoolean", "The boolean");
settings.AddParameter("TheInteger", "The integer", 10);
settings.AddParameter("TheLong", "The Long", 20, false);
settings.AddParameter("TheFloat", "The Float", 10, false, false, ParameterType.Float);
settings.AddParameter("TheDouble", "The Double", 15, false, false, ParameterType.Double);
settings.AddParameter("TheDecimal", "The Decimal", 20, false, false, ParameterType.Decimal);
// lists
settings.AddParameter("TheDropdown");
settings.AddParameter("TheListBox", "The ListBox", 20, false, false, ParameterType.ListBox);
settings.AddParameter("TheRadioGroup", "The RadioGroup", 20, false, false, ParameterType.RadioGroup);
// set default values
settings.AddValue("TheString", "Test string");
settings.AddValue("TheBoolean", true);
settings.AddValue("TheInteger", 25);
settings.AddValue("TheLong", 9223372036854);
settings.AddValue("TheFloat", 25.7);
settings.AddValue("TheDouble", 523456789.35);
settings.AddValue("TheDecimal", decimal.Parse("9223372036854342342.345"));
// lists
StringCollection dd = new StringCollection();
dd.AddRange(new string[] { "One", "Two", "Three" });
settings.AddValue("TheDropdown", dd, "Three");
settings.AddValue("TheListBox", new string[] { "List1", "List2", "List3" }, "List2");
settings.AddValue("TheRadioGroup", new string[] { "Radio1", "Radio2", "Radio3" }, "Radio1");
_settings = ExtensionManager.InitSettings(this.GetType().Name, settings);
}
}