1: #region Using
2:
3: using System;
4: using BlogEngine.Core.Web.Controls;
5: using BlogEngine.Core;
6: using System.Collections.Generic;
7: using System.Collections.Specialized;
8:
9: #endregion
10:
11: #region Code
12:
13: [Extension("MultiParamExt", "1.0", "<a href=\"http://espertini.com\">dextr</a>")]
14: public class MultiParamExt
15: {
16: static protected ExtensionSettings _settings = null;
17:
18: public MultiParamExt()
19: {
20: Comment.Serving += new EventHandler<ServingEventArgs>(Post_CommentServing);
21: InitSettings();
22: }
23:
24:
25: private void Post_CommentServing(object sender, ServingEventArgs e)
26: {
27: Comment comment = (Comment)sender;
28: if (comment.Author != "typetest")
29: return;
30:
31: foreach (ExtensionParameter p in _settings.Parameters)
32: {
33: if (string.IsNullOrEmpty(p.SelectedValue))
34: e.Body += "<br/>" + p.Name + ": " + p.Values[0];
35: else
36: e.Body += "<br/>" + p.Name + ": " + p.SelectedValue;
37: }
38: }
39:
40: private void InitSettings()
41: {
42: ExtensionSettings settings = new ExtensionSettings(this);
43: settings.IsScalar = true;
44:
45: // define parameters
46: settings.AddParameter("TheString");
47: settings.AddParameter("TheBoolean", "The boolean");
48: settings.AddParameter("TheInteger", "The integer", 10);
49: settings.AddParameter("TheLong", "The Long", 20, false);
50: settings.AddParameter("TheFloat", "The Float", 10, false, false, ParameterType.Float);
51: settings.AddParameter("TheDouble", "The Double", 15, false, false, ParameterType.Double);
52: settings.AddParameter("TheDecimal", "The Decimal", 20, false, false, ParameterType.Decimal);
53:
54: // lists
55: settings.AddParameter("TheDropdown");
56: settings.AddParameter("TheListBox", "The ListBox", 20, false, false, ParameterType.ListBox);
57: settings.AddParameter("TheRadioGroup", "The RadioGroup", 20, false, false, ParameterType.RadioGroup);
58:
59: // set default values
60: settings.AddValue("TheString", "Test string");
61: settings.AddValue("TheBoolean", true);
62: settings.AddValue("TheInteger", 25);
63: settings.AddValue("TheLong", 9223372036854);
64: settings.AddValue("TheFloat", 25.7);
65: settings.AddValue("TheDouble", 523456789.35);
66: settings.AddValue("TheDecimal", decimal.Parse("9223372036854342342.345"));
67:
68: // lists
69: StringCollection dd = new StringCollection();
70: dd.AddRange(new string[] { "One", "Two", "Three" });
71: settings.AddValue("TheDropdown", dd, "Three");
72: settings.AddValue("TheListBox", new string[] { "List1", "List2", "List3" }, "List2");
73: settings.AddValue("TheRadioGroup", new string[] { "Radio1", "Radio2", "Radio3" }, "Radio1");
74:
75: _settings = ExtensionManager.InitSettings(this.GetType().Name, settings);
76: }
77:
78: }
79:
80: #endregion