Additional items for IBlogIt
Greg brings up some valid points. A few ideas I have are detailed below.
In the case of MovableType, as Im sure is the case with other blog software, there are numerous properties available when submitting a new post. Take for example:
- Category
- Convert Line Breaks
- Allow Comments
- Allow Pings
- Additional Entry Text
- Excerpt Entry Text
- Keywords
Given this, and the fact that the aggregator should be able to display its own interface in the case of HasEditingGUI() returning false, should there be some method allowed to make these properties and whatever values available via this interface as well?
Im thinking something along the lines of:
public interface IBlogThisEx : IBlogThis { ... BlogPropertyCollection Properties } public class BlogPropertyCollection : CollectionBase { ... } public class BlogProperty { private string _name; private IEnumerable _values; public string Name { get { return _name; } set { _name = value; } } public IEnumerable Values { get { return _values; } set { _values = value; } } }
Secondly, since exceptions are likely to be thrown back to the aggregator, perhaps there should be a common Exception-derived object that the aggregator can expect. For example:
public class BlogThisException : Exception { // Implementation goes in here }
Thoughts? Am I way off my rocker here?
I may not have communicated this properly. The aggregator would call IBlogThisEx.Properties, in essence retrieving a list of properties and potential values for those properties.
Popping up a form to collect these extra values is a viable solution as well.
Hmm…I guess what I’m thinking is the aggregator is going to pass just about everything it has available inside the item itself, so it wouldn’t have any more information. So even if it knew these properties that the plug-in supported, it wouldn’t know what to put in them without a pre-existing “contract”, and even then, I doubt if it would have the necessary information anyway.
I’m thinking a plug-in popup form when a post happens is probably the way to go; maybe the popup could be optional, and you could set the behavior in the configuration settings?
The more we talk about this, the more I like that idea.
This, however, does mean more work for me, as I will need to create an effective UI for this.

Matt - I would think a plug-in could still present a GUI for setting options even if it returns false from HasEditingGUI(); it just wouldn’t prompt the user to edit the post again.
The problem I see with the property collection you discuss is that the aggregator wouldn’t know what properties to pass in, unless it knew details about the plug-in, which kind of kills the point.
I would think that when an item is submitted, the plug-in would look at its config, and look at the item passed in, and determine if it needs more information. If it does, it would prompt for it; if it doesn’t, it would just post…