Hi, I was wondering if someone out there could please point out a
better way to store some data I'm using in this extension.
The basic premise is to display a header or footer for all pages
within a given namespace or category (it also allows a global one, or
page specific). I decided to leverage MediaWiki's ability to edit
pages to store the actual headers and footers, which made a lot of
sense because they are wikitext.
I obviously don't want them searched, so at first I put them in
NS_MEDIAWIKI. The urls look something like:
MediaWiki:HeadersFooters/Cat/<catname>/Header
Alphos and bawolff pointed out in IRC that if I was going to use
NS_MEDIAWIKI I should make them more message like... so I've converted
to: MediaWiki:headersfooters-cat-<catname>-header
And I'm checking if the message exists before fetching the contents
using wfMsgForContentNoTrans. This is interesting because technically
an administrator could make some multi-langual messages in the i18n
file manually. A potential problem is that as far as I know messages
aren't really supposed to be mixed case, and a category name inserted
into <catname> could definitely have some uppercase letters in it.
Reedy in IRC mentioned this was all awful, but didn't offer any
suggestions when I asked.
Another idea I had was to store these messages as pages in a custom
namespace, like HeadersFooters:Cat/<catname>/Header -- although I have
no clue how I would go about making my extension add a new custom
namespace without the admin having to go and make them herself, so
some information about this would be much appreciated.
Yet another would be to store them in a new database table, but this
sounds really clunky and icky, but maybe I'm wrong and it's slick? It
would necesitate I create all these editing and management pages for
the new table.
I'm designing a SpecialPage to make sure users can make these headers
and footers more easily.
Does anyone have any suggestions for me? Anything would be appreciated,
- Olivier Finlay Beaton