Add user maintenance hooks (#3440)

The new hook allows to add maintenance extensions at the user level.

See #3398
pull/3416/head
Alexis Degrugillier 4 years ago committed by GitHub
parent 8961c7beac
commit 787e8fa463
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      app/actualize_script.php
  2. 17
      docs/en/developers/03_Backend/05_Extensions.md
  3. 4
      lib/Minz/ExtensionManager.php

@ -72,6 +72,9 @@ foreach ($users as $user) {
}
FreshRSS_Auth::giveAccess();
Minz_ExtensionManager::callHook('freshrss_user_maintenance');
$app->init();
notice('FreshRSS actualize ' . $user . '...');
echo $user, ' '; //Buffered

@ -330,15 +330,16 @@ The following events are available:
* `entry_before_insert` (`function($entry) -> Entry | null`): will be executed when a feed is refreshed and new entries will be imported into the database. The new entry (instance of FreshRSS\_Entry) will be passed as parameter.
* `feed_before_actualize` (`function($feed) -> Feed | null`): will be executed when a feed is updated. The feed (instance of FreshRSS\_Feed) will be passed as parameter.
* `feed_before_insert` (`function($feed) -> Feed | null`): will be executed when a new feed is imported into the database. The new feed (instance of FreshRSS\_Feed) will be passed as parameter.
* `freshrss_init` (`function() -> none`): will be executed at the end of the initialization of FreshRSS, useful to initialize components or to do additional access checks
* `js_vars` (`function($vars = array) -> array | null`): will be executed if the `jsonVars` in the header will be generated
* `menu_admin_entry` (`function() -> string`): add an entry at the end of the "Administration" menu, the returned string must be valid HTML (e.g. `<li class="item active"><a href="url">New entry</a></li>`)
* `menu_configuration_entry` (`function() -> string`): add an entry at the end of the "Configuration" menu, the returned string must be valid HTML (e.g. `<li class="item active"><a href="url">New entry</a></li>`)
* `menu_other_entry` (`function() -> string`): add an entry at the end of the header dropdown menu (i.e. after the "About" entry), the returned string must be valid HTML (e.g. `<li class="item active"><a href="url">New entry</a></li>`)
* `freshrss_init` (`function() -> none`): will be executed at the end of the initialization of FreshRSS, useful to initialize components or to do additional access checks.
* `freshrss_user_maintenance` (`function() -> none`): will be executed for each user during the `actualize_script`, useful to run some maintenance tasks on the user.
* `js_vars` (`function($vars = array) -> array | null`): will be executed if the `jsonVars` in the header will be generated.
* `menu_admin_entry` (`function() -> string`): add an entry at the end of the "Administration" menu, the returned string must be valid HTML (e.g. `<li class="item active"><a href="url">New entry</a></li>`).
* `menu_configuration_entry` (`function() -> string`): add an entry at the end of the "Configuration" menu, the returned string must be valid HTML (e.g. `<li class="item active"><a href="url">New entry</a></li>`).
* `menu_other_entry` (`function() -> string`): add an entry at the end of the header dropdown menu (i.e. after the "About" entry), the returned string must be valid HTML (e.g. `<li class="item active"><a href="url">New entry</a></li>`).
* `nav_menu` (`function() -> string`): will be executed if the navigation was built.
* `nav_reading_modes` (`function($reading_modes) -> array | null`): **TODO** add documentation
* `post_update` (`function(none) -> none`): **TODO** add documentation
* `simplepie_before_init` (`function($simplePie, $feed) -> none`): **TODO** add documentation
* `nav_reading_modes` (`function($reading_modes) -> array | null`): **TODO** add documentation.
* `post_update` (`function(none) -> none`): **TODO** add documentation.
* `simplepie_before_init` (`function($simplePie, $feed) -> none`): **TODO** add documentation.
### Writing your own configure.phtml

@ -39,6 +39,10 @@ class Minz_ExtensionManager {
'list' => array(),
'signature' => 'NoneToNone',
),
'freshrss_user_maintenance' => array( // function() -> none
'list' => array(),
'signature' => 'NoneToNone',
),
'js_vars' => array( // function($vars = array) -> array | null
'list' => array(),
'signature' => 'OneToOne',

Loading…
Cancel
Save