Before, only the user configuration was supported by extensions. But it was
limiting if one has to create a system extension with configuration.
Now, both user and system configuration are supported.
Before, setting values did not refresh the configuration cache. Thus
generating some weird behavior when configuring extensions.
Now, the cache is updated with the most recent values when the
configuration is modified.
This will simplify extension code by removing a lot of logic from
the extension itself when it's not needed. I've tested it on one
of my extension with all the other recent extension modifications
and I could remove half of the code needed before.
Before, only one extension could be configured at a time. Thus we
were loosing the configuration for other extensions when saving.
Now, each extension can be saved without overriding data.
See #3397
Before, the extension configuration was handled by its author. There
was discrepancies between extensions on how the configuration was
stored.
Now, we could rely on a single way of storing configuration. This won't
invalidate how the extensions are storing their configuration but will
allow authors to focus on what is important.
Before, there were some guidelines on how to use the extension class and how to extend it. Those guidelines were defined as comments.
Now, those guidelines are enforced by the code itself. There is no need for those comments anymore.
Test if the install or uninstall has been successfully performed.
If these methods return true, all is ok but if a string is returned,
the string must explain the problem. This problem is stored in log file.
A feedback is given to explain to check log file.
This commit fix a problem in the english translation of
feedback.sub.feed.internal_problem.
- Give possibility to register new i18n files
- Add a extension->registerTranslates() method
- extensions can define new strings or override previous ones
Fix https://github.com/FreshRSS/FreshRSS/issues/731
- New Extension->registerHook($hook_name, $hook_function) method to register a new hook
- Only one hook works for the moment: entry_before_insert
- ExtensionManager::callHook will need to evolve based on future hooks
See https://github.com/FreshRSS/FreshRSS/issues/252
- Add an Extension->registerViews() method.
- Views are first searched in extension paths, then in APP_PATH.
- It gives a way to override easily existing controllers / views.
- Change include into an include_once in Dispatcher for new controllers.
See https://github.com/FreshRSS/FreshRSS/issues/252
- Add a Extension->registerController(name) method
- Controllers must be written in extension_dir/controllers/nameController.php
- Controllers must be named as FreshExtension_name_Controller
- Controllers must extend Minz_ActionController
See https://github.com/FreshRSS/FreshRSS/issues/252
- Only system extensions can be loaded for the moment by adding them in the config.php
file.
- Remove previous system (it will be added properly in the new system in the next step).