diff options
| author | 2024-11-21 08:22:13 +0100 | |
|---|---|---|
| committer | 2024-11-21 08:22:13 +0100 | |
| commit | 278181572e56283827aac10a66bb554f4b57b0a1 (patch) | |
| tree | 2e36cf9ff87a4af78536527224db46e5b4d35f10 | |
| parent | 0f4bcdad9b3bde1cf7724069e774eff198a7169c (diff) | |
Add extension hook simplepie_after_init (#7007)
* Add extension hook simplepie_after_init
fix https://github.com/FreshRSS/FreshRSS/issues/7006
* Add documentation note
* fix doc get_headers
* Syntax void
* Forgotten code
| -rw-r--r-- | app/Models/Feed.php | 1 | ||||
| -rw-r--r-- | docs/en/developers/03_Backend/05_Extensions.md | 5 | ||||
| -rw-r--r-- | docs/fr/developers/03_Backend/05_Extensions.md | 6 | ||||
| -rw-r--r-- | lib/Minz/ExtensionManager.php | 10 |
4 files changed, 16 insertions, 6 deletions
diff --git a/app/Models/Feed.php b/app/Models/Feed.php index 03c7cdd74..2aa0baa9d 100644 --- a/app/Models/Feed.php +++ b/app/Models/Feed.php @@ -372,6 +372,7 @@ class FreshRSS_Feed extends Minz_Model { } Minz_ExtensionManager::callHook('simplepie_before_init', $simplePie, $this); $simplePieResult = $simplePie->init(); + Minz_ExtensionManager::callHook('simplepie_after_init', $simplePie, $this, $simplePieResult); if ($simplePieResult === false || $simplePie->get_hash() === '' || !empty($simplePie->error())) { $errorMessage = $simplePie->error(); diff --git a/docs/en/developers/03_Backend/05_Extensions.md b/docs/en/developers/03_Backend/05_Extensions.md index f83d8eef7..2a4c4dcf0 100644 --- a/docs/en/developers/03_Backend/05_Extensions.md +++ b/docs/en/developers/03_Backend/05_Extensions.md @@ -178,7 +178,10 @@ The following events are available: * `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. +* `simplepie_after_init` (`function(\SimplePie\SimplePie $simplePie, FreshRSS_Feed $feed, bool $result): void`): Triggered after fetching an RSS/Atom feed with SimplePie. Useful for instance to get the HTTP response headers (e.g. `$simplePie->data['headers']`). +* `simplepie_before_init` (`function(\SimplePie\SimplePie $simplePie, FreshRSS_Feed $feed): void`): Triggered before fetching an RSS/Atom feed with SimplePie. + +> ℹ️ Note: the `simplepie_*` hooks are only fired for feeds using SimplePie via pull, i.e. normal RSS/Atom feeds. This excludes WebSub (push), and the various HTML or JSON Web scraping methods. ### Injecting CDN content diff --git a/docs/fr/developers/03_Backend/05_Extensions.md b/docs/fr/developers/03_Backend/05_Extensions.md index 8d2866f26..af6c7911a 100644 --- a/docs/fr/developers/03_Backend/05_Extensions.md +++ b/docs/fr/developers/03_Backend/05_Extensions.md @@ -257,8 +257,10 @@ The following events are available: * `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 +* `simplepie_after_init` (`function(\SimplePie\SimplePie $simplePie, FreshRSS_Feed $feed, bool $result): void`): Triggered after fetching an RSS/Atom feed with SimplePie. Useful for instance to get the HTTP response headers (e.g. `$simplePie->data['headers']`). +* `simplepie_before_init` (`function(\SimplePie\SimplePie $simplePie, FreshRSS_Feed $feed): void`): Triggered before fetching an RSS/Atom feed with SimplePie. + +> ℹ️ Note: the `simplepie_*` hooks are only fired for feeds using SimplePie via pull, i.e. normal RSS/Atom feeds. This excludes WebSub (push), and the various HTML or JSON Web scraping methods. ### Writing your own configure.phtml diff --git a/lib/Minz/ExtensionManager.php b/lib/Minz/ExtensionManager.php index b3756372e..976dddb82 100644 --- a/lib/Minz/ExtensionManager.php +++ b/lib/Minz/ExtensionManager.php @@ -90,10 +90,14 @@ final class Minz_ExtensionManager { 'list' => array(), 'signature' => 'NoneToNone', ), - 'simplepie_before_init' => array( // function($simplePie, $feed) -> none - 'list' => array(), + 'simplepie_after_init' => [ // function(\SimplePie\SimplePie $simplePie, FreshRSS_Feed $feed, bool $result): void + 'list' => [], 'signature' => 'PassArguments', - ), + ], + 'simplepie_before_init' => [ // function(\SimplePie\SimplePie $simplePie, FreshRSS_Feed $feed): void + 'list' => [], + 'signature' => 'PassArguments', + ], ]; /** Remove extensions and hooks from a previous initialisation */ |
