From df763eb8b34b9823511d93ec078d4644d3e6ff64 Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Mon, 14 Oct 2024 09:35:41 +0200 Subject: Add hook entries_favorite (#6880) Called when entries are starred or unstarred --- app/Models/EntryDAO.php | 1 + docs/fr/developers/03_Backend/05_Extensions.md | 2 ++ lib/Minz/ExtensionManager.php | 4 ++++ 3 files changed, 7 insertions(+) diff --git a/app/Models/EntryDAO.php b/app/Models/EntryDAO.php index e22650f0d..23874a8e1 100644 --- a/app/Models/EntryDAO.php +++ b/app/Models/EntryDAO.php @@ -362,6 +362,7 @@ SQL; $values = array_merge($values, $ids); $stm = $this->pdo->prepare($sql); if ($stm !== false && $stm->execute($values)) { + Minz_ExtensionManager::callHook('entries_favorite', $ids, $is_favorite); return $stm->rowCount(); } else { $info = $stm === false ? $this->pdo->errorInfo() : $stm->errorInfo(); diff --git a/docs/fr/developers/03_Backend/05_Extensions.md b/docs/fr/developers/03_Backend/05_Extensions.md index 61d0589ef..8d2866f26 100644 --- a/docs/fr/developers/03_Backend/05_Extensions.md +++ b/docs/fr/developers/03_Backend/05_Extensions.md @@ -233,6 +233,8 @@ The following events are available: 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. +* `entries_favorite` (`function(array $ids, bool $is_favorite): void`): + will be executed when some entries are marked or unmarked as favorites (starred) * `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. diff --git a/lib/Minz/ExtensionManager.php b/lib/Minz/ExtensionManager.php index 2d7c92d6b..b3756372e 100644 --- a/lib/Minz/ExtensionManager.php +++ b/lib/Minz/ExtensionManager.php @@ -26,6 +26,10 @@ final class Minz_ExtensionManager { 'list' => array(), 'signature' => 'OneToOne', ), + 'entries_favorite' => [ // function(array $ids, bool $is_favorite): void + 'list' => [], + 'signature' => 'PassArguments', + ], 'entry_auto_read' => array( // function(FreshRSS_Entry $entry, string $why): void 'list' => array(), 'signature' => 'PassArguments', -- cgit v1.2.3