WikiDB/Roadmap
From TestWiki
< WikiDB
Revision as of 03:33, 23 January 2007 by HappyDog (Talk | contribs) (→Bugs: data tab not displayed when table definition missing in 1.6.8)
This is an (incomplete) list of features and bugs that need fixing for v1.
Bugs
-
On table display, the definition is currently above the page title and sitenotice. This only seemed to happen since I set 'MediaWiki:Sitenotice', so maybe has something to do with that - or maybe I just never noticed it for some reason? --HappyDog 00:00, 6 January 2007 (GMT)- It was to do with the site notice. ParserBeforeStrip is being called once for each interface message that uses wiki text (I assume - it's being called for that one, anyway!). I now use a flag so that the code in my hook only executes the first time it is called for a page. This will only work if (a) the hook is called for every page view (i.e. it is not avoided by caching) and (b) it is always called first. I don't know the answer to either of these, so if the bug resurfaces please let me know! --HappyDog 03:30, 23 January 2007 (GMT)
- If a table doesn't have a definition, the 'data' tab is not displayed in 1.6.8 (it's ok in 1.5.6). --HappyDog 03:33, 23 January 2007 (GMT)
Administration
- Update tables when page is moved.
- Update tables when page is deleted.
- Update tables when page is undeleted.
- (check that rollbacks work)
- 'What links here' should show templates that are included via data tags.
Syntax
- Better data syntax: Need to allow multiple rows in a single definition.
- Also, data definitions in a DB namespace shouldn't require the 'table' attribute (default to current).
- Repeat tag - some things to iron out (see below)
- Field names need to be limited to 255 chars (DB limit)
- Field names need to have leading underscores removed (Reserved for special uses)
Repeat tag
Still quite a way to go on this, but here's where I'm up to:
Done
- Basic sort/filter is implemented. Only limited filter options available, due to a parsing issue with MW/HTML.
- Contents of repeat tag are repeated for each row with variables expanded (see below for limitations).
To Do
- Tag Contents
- Aliases are currently expanding correctly, but not in a foolproof manner (e.g. aliases that point to aliases are not handled - this is a general issue, I think)
- Undefined fields - is their current handling OK? Currently they will be expanded if defined for the row, and left as they are if not. This might be the best behaviour, but perhaps not.
- Cannot currently supply default values for empty fields. In any case (given the above point) default values for undefined fields must, by definition, be ignored (I think).
- Cannot handle nested vars. Not a problem at the moment, but if default values are allowed, the default should be allowed to be an alternative variable (e.g.
{{{ShortName}}}
should be valid syntax). - Should strip blank lines at start and end. Maybe restrict to stripping 1 line only (so <repeat> need not be on the same line as the start of it's content). Should _not_ use trim(), as we need to allow for space at start of line (wiki <pre> syntax).
- Filtering
- Can't use > in attribute values, e.g. criteria="Field>Value", as it cripples parser. Need to decide how to specify criteria.
- In general - how detailed can we get?
- Other
- Ability to have header/footer? Ideally you put your header before the repeat tag, and the footer afterwards, but tables are screwed up by this (though I might be able to fix that somehow). There may also be other situations that cause problems.
Code Tidying
- Ensure all user-visible text uses the message cache.
- Add profiling statements.
- Move datatype handlers out of WikiDB class (into separate module).
Misc
- References to tables in table="..." attributes should follow redirects. This allows tables to be moved without screwing everything up!
- Special:UnusedTables to list tables that don't have any data (opposite of Special:UndefinedTables).