User:Dantman/Page output branch
From MediaWiki.org
- Related RFC: Requests for comment/Drop actions in favour of page views and special pages
- Source: http://svn.wikimedia.org/svnroot/mediawiki/branches/pageoutput/ (ViewVC)
- Current dev environment: http://pageoutput.new.wiki-tools.com/
- Pages of interest:
- Page: http://pageoutput.new.wiki-tools.com/wiki/A_Page_called_Main_Page
- Redirect: http://pageoutput.new.wiki-tools.com/wiki/Main_Page
- Permalink: http://pageoutput.new.wiki-tools.com/index.php?title=A_Page_called_Main_Page&oldid=2
- Diff: http://pageoutput.new.wiki-tools.com/index.php?title=A_Page_called_Main_Page&diff=prev&oldid=2 (@todo)
- History: http://pageoutput.new.wiki-tools.com/wiki/Special:History/A_Page_called_Main_Page
[edit] Goals
- Implementation of Requests for comment/Drop actions in favour of page views and special pages
- The creation of a new PageView system.
- Instead of an Article instance a PageView instance controls what is output into a page including &oldid= handling
- SpecialPages become PageView implementations
- Removal of the Action system
- Implementation of actions as special pages
- Implementation of a layer that lets us use &action= urls for title (and maybe user?) targeted special pages like history, edit, whatlinkshere, and maybe block.
- Removal of functional logic from SkinTemplate
- Generation of page tabs becomes the job of PageView instead of code hardcoded into SkinTemplate.
- Likewise for links such as contribs links from a userpage.
[edit] Plans
- Start implementing PageView by migrating things piece by piece from Article. - Partially done
- Implement a new SpecialPage interface for action like special pages
- SpecialPage name autodetection from class name. - Done (@todo Perhaps we should add a test to ensure that 'SpecialPage' doesn't make it think the name is 'Page')
- Targetable special pages - Partially done
- target() and executeWithTarget() - Done
- Type sensitive target() - Done
- Default executeWithoutTarget() form.
- A way to mark special pages as ones that should use &action= urls
- Implement actions as special pages
- Actions within Article
- Delete
- Protect
- Unprotect
- Render
- Should we implement Special:Render in a way such that Special:Render/Special:Version works?
- Actions with their own custom class
- Raw
- Edit
- Find some way to deal with &action=submit
- History - Partially done
- Action class based actions
- Actions within Article
- Implement SpecialPage as a PageView.
- Implement tab handling inside PageView
- Implement canonical url handling inside PageView
- $wgSpecialPageAliases
- ...
- Look over what extensions do with Article and other things that are broken, implement compatibility layers for that functionality and find a way to allow extensions to transition to the new patterns.