Show Changes Show Changes
Print Print
Recent Changes Recent Changes
Subscriptions Subscriptions
Lost and Found Lost and Found
Find References Find References
Rename Rename
Administration Page Administration Page
Search

History

2/8/2005 10:55:04 AM
TommyWilliams-131.107.71.96
1/21/2005 1:44:04 AM
DerekLakin-62.189.22.124
1/18/2005 2:42:44 AM
DerekLakin-62.189.22.124
1/18/2005 2:39:10 AM
DerekLakin-62.189.22.124
1/6/2005 8:58:33 AM
-199.125.45.10
List all versions List all versions

RSS feed for the FlexWiki namespace

Bliki Comments Plug In
.
Summary

The Problem

I've currently got a BlikiLibrary that provides some simple WikiTalk methods to provide some BLiki functionality powered by FlexWiki. This has all been going well so far and I rencently added a BlikiLibraryUpdateForCategories. However, my progress so far on adding comments to posts has been virtually nil, with a simple HowToPostComments post suggesting that people add their comments inline.

This is not really a satisfactory solution as it requires some knowledge of FlexWiki to understand that you need to double-click a page to get it in to edit mode and there is nothing to ensure that the commenting style is adhered to. From a site owner's perspective there is also no notification method to find out that someone has commented apart from the (rather woeful from a blogging perpsective) Rss feed.

The Requirements

  1. A intuitive method of prompting visitors to post a comment. 1
  2. A means of displaying the comments that have been made on a post.
  3. A means of displaying the number of comments that have been made on a post. 2
  4. A method of notification for the blog owner(s).

1 Bearing in mind that visitors may not be aware of FlexWiki or WikiWikiWebs in general.

2 This is typical blog functionality.

A Solution

This is clearly not core FlexWiki functionality so I see no reason to integrate the functionality with the FlexWikiCore, but would be well suited as a PlugIn. This would also enable the main BlikiLibrar functionality to be incorporated in to the same PlugIn.

What I am currently suggesting is that the PlugIn would expose a WikiTalk method called something like BlikiComments which would make a bliki post look something like this:

 :Blog: Category1, Category2
 :Summary: A summary of the blog topic
 Your topic content goes here
 @@BlikiComments@@

What I think the PlugIn should do is to display a 'Comments[x]' message to show the number of messages and then a 'Post Comment' link to provide access to the comment posting interface for that post.

For a post that has comments the BlikiComment method should display the comments so far below the message detailed above.

I also think that the comment posting interface should be fairly consistent with other blogging engines and contain a preview of the post and a form for the visitor to enter their name, url and comment (which would allow wiki text to be entered according to the usual FormattingRules).

If all of this is achieved then I think we have satisfactorily accomplished items 1 to 3 in the requirements listed above.

And Now The Difficult Bit!

The difficult bit and the main purpose of this topic is how we actually go about implementing this. My thoughts at the moment are that comments are added to a new topic with the same name as the post topic, but with 'Comments' at the end and beginning with an underscore to exclude it from the core listing methods, e.g. _BlikiCommentsPlugInComments.

New comments would be added in a format like so:

 ----
 CommentAuthor: Derek Lakin
 CommentAuthorUrl: http://bliki.salamandersoftware.co.uk
 CommentDate: 02 December 2004 13:46
 CommentContent:[Wiki formatted content here.
 ]

The BlogComments method can then parse the content of the comment topic and display the comments in a more visitor friendly format.

The next part we need is an extra page that displays the post preview and a comment form (just like the old preview page). This page would be the target of the 'Post Comment' link and would add the contents of the comment form to the relevant comment topic.

The other requirement to meet is that of notifiying the bliki owner(s) that a new comment has been posted. My thoughts thus far are that we could reuse the existing WikiNewsletter functionality so that you would have a CommentNewsletter topic (created by BlogComments if it doesn't exist already) and the BlogComments method would add the relevant comment topics to the Topics property. This approach would also allow commenters and other interested visitors to subscribe to the same newsletter to be notified of new comments.

Conclusion

So far this is all my current thoughts, I haven't actually looked in to the implementation of the PlugIn. I would welcome comments, suggestions and feedback from anyone with any views on the approach, the implementation and the solution. -- DerekLakin

Comments

I actually think this is fairly well-thought through. It's a shame that there is a requirement to have people be able to post comments in a comment form as opposed to the regular FlexWiki topic interface. A shame, but I totally understand it. I say a shame, because I think you could actually get everything else you describe working with just plain WikiTalk. -- DavidOrnstein

I'm not tied down to any particular approach or implementation at this stage. I'm open to ideas and suggestions, which is why I created this topic so that people could present their ideas. If you have an idea of how to satisfy the requirements using just plain WikiTalk, please let me know. -- DerekLakin [08-Dec-2004]

A rough mapping of your requirements to WikiTalk approaches:

A intuitive method of prompting visitors to post a comment.

You can place a link to a comment form pretty much anywhere you want -- either as text or a graphic -- around the four borders of the page.

A means of displaying the comments that have been made on a post.

If you change your idea about storing all comments for a topic together in a "sister" topic to storing each comment in its own topic, this gets pretty easy. You're on the right track about using a naming convention. Something like "CommentOn<originalTopicName><uniqueID>". You can use the date and time for the uniqueID, so on an original topic called FooBar, you could call it CommentOnFooBar20041206120000. You could generate this topic name pretty easily in WikiTalk. Then your 'Add Comment' link would like to this and it'd take people to the Edit Topic page.

To display comments made on a post, you could have some WikiTalk that looped through all topics and filter down to the ones that start with CommentOnXXXXXX (where XXXXXX is your current topic). Then you could include the contents of them (even with custom headers if you wanted). You could do this loop either in a function you call at the bottom of each comment post (a bit annoying because you need to remember to put FlexWiki.BlikiCommentsPlugIn(1:1) : No such property or function: BlikiComments in -- or you might be able to put them in the BottomBorder (not sure what happens if that gets really big, though.)

A means of displaying the number of comments that have been made on a post.

Use the logic above and count instead of displaying. To could I would take allTopics, use a Select to pick only those that match and then take the .Count of that resulting array.

A method of notification for the blog owner(s).

Why RSS, of course. I'd agree this might need some tuning to get right.

Thanks for your further thoughts, David. I'll work on it and see where I get too -- DerekLakin [08-Dec-2004]

Progress so far is on the PlayPage. What I really need is support for multiple templates so I can present a different comments template with the necessary page properties -- DerekLakin [08-Dec-2004]

Core functionality has now been done along with an implementation of multiple topic templates; see MoreBlikiLibraryUpdatesAndANewCommentInterface. Ideally what I'd like to do now is to not display the comments on the HomePage. -- DerekLakin [10-Dec-2004]

Not logged in. Log in

Welcome to the home of FlexWiki, an experimental collaboration tool, based on WikiWiki.

This is FlexWiki, an open source wiki engine.

This site supports the new NoFollow anti-spam initiative.
Change Style

Recent Topics