User:Dantman/Page output branch


 * 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

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.

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
 * 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.
 * 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.