Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

AndyArmstrong (7200)

  (email not shown publicly)
Friday April 13, 2007
02:35 PM

Wiki Widgets

[ #32987 ]

(warning: this item may contain traces of PHP)

A classic case of yak shaving: too much work on anyway, decided to take a break by turning our local community site into a wiki. Then I thought it'd be nice to embed a Google map showing a few local landmarks. Must be possible, right? Well it probably has been done already but it seemed pretty simple (and an interesting diversion) to write a MediaWiki extension to allow maps to be embedded.

So then you need to let users add points to the map - so the map needs button that spits out a chunk of markup that can be used to add a point. So I wrote some Javascript to do that.

Of course one extension is never enough (just say no kids). I was writing a load of code that'd be useful in other extensions anyway. What about a framework for extensions? Yup, the dreaded 'f' word. Oh well.

Anyway, to cut a long story short: Wiki Widgets.

One of the things I wanted to do (you know, once it became a project rather than a displacement activity) was to make widgets that, from the user's point of view, are discoverable. It's all very well installing an extension but if users can't find out about it they won't use it. Wiki Widgets has a pretty simple take on discoverability: make a blank page and add the markup:

<widget />

to it. When you save or preview the page you'll get a list of all the installed Wiki Widgets. For each Widget there's a link that takes you directly to a (wiki) page that explains how to use it. From there you should be able to select the widget you want. Wherever possible I plan to make the individual Widgets support additional discoverability. For example if you add an empty Google Gadget Widget like this:

<widget type="googlegadget" />

you should get a user interface that makes it easy to add the gadget you want and set up its parameters.

Anyway, back to the day job now.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.