mirror of
https://github.com/FreshRSS/FreshRSS.git
synced 2026-05-19 05:44:39 -04:00
Add a feed_before_insert hook
See https://github.com/FreshRSS/FreshRSS/issues/252
This commit is contained in:
@@ -138,6 +138,12 @@ class FreshRSS_feed_Controller extends Minz_ActionController {
|
||||
$feed->_category($cat);
|
||||
$feed->_httpAuth($http_auth);
|
||||
|
||||
// Call the extension hook
|
||||
$feed = Minz_ExtensionManager::callHook('feed_before_insert', $feed);
|
||||
if (is_null($feed)) {
|
||||
Minz_Request::bad(_t('feed_not_added', $feed->name()), $url_redirect);
|
||||
}
|
||||
|
||||
$values = array(
|
||||
'url' => $feed->url(),
|
||||
'category' => $feed->category(),
|
||||
|
||||
@@ -259,10 +259,16 @@ class FreshRSS_importExport_Controller extends Minz_ActionController {
|
||||
$feed->_website($website);
|
||||
$feed->_description($description);
|
||||
|
||||
// addFeedObject checks if feed is already in DB so nothing else to
|
||||
// check here
|
||||
$id = $this->feedDAO->addFeedObject($feed);
|
||||
$error = ($id === false);
|
||||
// Call the extension hook
|
||||
$feed = Minz_ExtensionManager::callHook('feed_before_insert', $feed);
|
||||
if (!is_null($feed)) {
|
||||
// addFeedObject checks if feed is already in DB so nothing else to
|
||||
// check here
|
||||
$id = $this->feedDAO->addFeedObject($feed);
|
||||
$error = ($id === false);
|
||||
} else {
|
||||
$error = true;
|
||||
}
|
||||
} catch (FreshRSS_Feed_Exception $e) {
|
||||
Minz_Log::warning($e->getMessage());
|
||||
$error = true;
|
||||
@@ -427,13 +433,17 @@ class FreshRSS_importExport_Controller extends Minz_ActionController {
|
||||
$feed->_name($name);
|
||||
$feed->_website($website);
|
||||
|
||||
// addFeedObject checks if feed is already in DB so nothing else to
|
||||
// check here.
|
||||
$id = $this->feedDAO->addFeedObject($feed);
|
||||
// Call the extension hook
|
||||
$feed = Minz_ExtensionManager::callHook('feed_before_insert', $feed);
|
||||
if (!is_null($feed)) {
|
||||
// addFeedObject checks if feed is already in DB so nothing else to
|
||||
// check here.
|
||||
$id = $this->feedDAO->addFeedObject($feed);
|
||||
|
||||
if ($id !== false) {
|
||||
$feed->_id($id);
|
||||
$return = $feed;
|
||||
if ($id !== false) {
|
||||
$feed->_id($id);
|
||||
$return = $feed;
|
||||
}
|
||||
}
|
||||
} catch (FreshRSS_Feed_Exception $e) {
|
||||
Minz_Log::warning($e->getMessage());
|
||||
|
||||
@@ -17,6 +17,7 @@ class Minz_ExtensionManager {
|
||||
private static $hook_list = array(
|
||||
'entry_before_display' => array(), // function($entry) -> Entry | null
|
||||
'entry_before_insert' => array(), // function($entry) -> Entry | null
|
||||
'feed_before_insert' => array(), // function($feed) -> Feed | null
|
||||
);
|
||||
private static $ext_to_hooks = array();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user