New file structure
See also
- Extensible architecture for Wikka components - #446
The new file structure should follow these general principles:
- Complete separation of core code from plugins
- Folder structure to allow single plugins to be completely self-contained
- Override mechanism to allow custom hacks (components in the plugins tree override the corresponding default ones)
- Note that we will need to introduce a system to notify the user that the upgraded core version may be more recent (and contain security patches) than the hacked one
- l10n ready components
- Custom theme support
Initial proposal
3rdparty/ <----------core 3rd party components actions/ <----------default actions .......myaction/ <----------example of default action folder ..............css/ <----------myaction's stylesheets ..............inc/ <----------myaction's dependencies ..............js/ <----------myaction's JS ..............myaction.php <---------- myaction's code docs/ <----------core documentation formatters/ <----------default formatters handlers/ <----------default handlers lang/ <----------core language files libs/ <----------core libraries plugins/ <----------PLUGIN TREE (will *not* be overwritten during an upgrade) .......actions/ <----------plugin actions (user-installable) ..............myaction/ <----------customized myaction (overrides the default one) .....................css/ .....................inc/ .....................js/ .....................myaction.php ..............newaction/ <----------plugin action (user-installable) .....................css/ .....................inc/ .....................lang/ <----------newaction's language files .....................js/ .....................newaction.php .......formatters/ <----------plugin formatters (user-installable) .......handlers/ <----------plugin handlers (user-installable) .......templates/ <----------plugin themes (user-installable) .....................fancy/ ............................css/ ............................js/ ............................footer.inc.php ............................header.inc.php .....................steampunk/ ............................css/ ............................js/ ............................footer.inc.php ............................header.inc.php setup/ <----------core installation files .......sql/ <----------default tables definition templates/ <----------core themes (bundled with the engine) .......default/ <----------main default theme ..............css/ <----------default stylesheets are moved inside the main default theme folder .....................wikka.css ..............js/ ..............footer.inc.php ..............header.inc.php .......modern/ <----------Wikka may bundle a few extra themes that will be maintained by the Wikka Devs ..............css/ .....................wikka.css ..............js/ ..............footer.inc.php ..............header.inc.php