|Newer page:||version 4||Last edited on February 23, 2012 2:52 pm||by PhilHollenback|
|Older page:||version 3||Last edited on February 23, 2012 2:52 pm||by PhilHollenback||Revert|
Content of versions 3 and 4 is identical.
Version 4 was created because:
The term ActionPage refers to a page containing a plugin invocation with the same or translated pluginname as the pagename. An action is together with the pagename argument the basic PhpWiki argument. It can both be GET or POST actions. Actions are untranslated, always English, pagenames can be localized. Basic (and old) actions are all lowercase, like edit, browse, remove, ... Newer actions in CamelCase are invoked via plugins on their specific action page.
We decoupled actions from plugins via action pages for the following reasons:
- Support translated action buttons and customizable action descriptions.
- Customize standard actions by tuning the plugin invocation arguments. Override or add plugin defaults.
- Split simple plugins into multiple actions, like RecentChanges/RecentEdits, MostPopular/LeastPopular, AllPages/AllPagesCreatedByMe/AllPagesLastEditedByMe/ AllPagesOwnedByMe which differ only in one argument.
- Simplify the syntax for actions on another actions using a PageList as result of an actionpage as input parameter for another action or format.
- Those actions which have buttons or links in the theme or are referenced in the standard pgsrc pageset require their (possibly localized) actionpages, otherwise the actions will not work.
- If the localized actionpage is not found the english version is used.
- If no actionpage is found, it is recommended to do action=upgrade, which imports all missing and required action pages into the database.
So for a hypothetical new MyActionPage plugin MyActionPage will invoke the plugin and Help:MyActionPagePlugin should be the description page.