Browse Source

fixed bug when adding a category and feed at the same time (#1731)

fixed bug when adding a category and feed at the same time
Kevin Papst 8 years ago
parent
commit
62e9db55b2
1 changed files with 18 additions and 5 deletions
  1. 18 5
      app/Controllers/feedController.php

+ 18 - 5
app/Controllers/feedController.php

@@ -26,6 +26,18 @@ class FreshRSS_feed_Controller extends Minz_ActionController {
 		}
 	}
 
+	/**
+	 * @param $url
+	 * @param string $title
+	 * @param int $cat_id
+	 * @param string $new_cat_name
+	 * @param string $http_auth
+	 * @return FreshRSS_Feed|the
+	 * @throws FreshRSS_AlreadySubscribed_Exception
+	 * @throws FreshRSS_FeedNotAdded_Exception
+	 * @throws FreshRSS_Feed_Exception
+	 * @throws Minz_FileNotExistException
+	 */
 	public static function addFeed($url, $title = '', $cat_id = 0, $new_cat_name = '', $http_auth = '') {
 		FreshRSS_UserDAO::touch();
 		@set_time_limit(300);
@@ -33,12 +45,13 @@ class FreshRSS_feed_Controller extends Minz_ActionController {
 		$catDAO = new FreshRSS_CategoryDAO();
 
 		$cat = null;
+		if ($new_cat_name != '') {
+			$new_cat_id = $catDAO->addCategory(array('name' => $new_cat_name));
+			$cat_id = $new_cat_id > 0 ? $new_cat_id : $cat_id;
+		}
 		if ($cat_id > 0) {
 			$cat = $catDAO->searchById($cat_id);
 		}
-		if ($cat == null && $new_cat_name != '') {
-			$cat = $catDAO->addCategory(array('name' => $new_cat_name));
-		}
 		if ($cat == null) {
 			$catDAO->checkDefault();
 		}
@@ -54,7 +67,7 @@ class FreshRSS_feed_Controller extends Minz_ActionController {
 			throw new FreshRSS_AlreadySubscribed_Exception($url, $feed->name());
 		}
 
-		// Call the extension hook
+		/** @var FreshRSS_Feed $feed */
 		$feed = Minz_ExtensionManager::callHook('feed_before_insert', $feed);
 		if ($feed === null) {
 			throw new FreshRSS_FeedNotAdded_Exception($url, $feed->name());
@@ -136,7 +149,7 @@ class FreshRSS_feed_Controller extends Minz_ActionController {
 				// User want to create a new category, new_category parameter
 				// must exist
 				$new_cat = Minz_Request::param('new_category');
-				$new_cat_name = isset($new_cat['name']) ? $new_cat['name'] : '';
+				$new_cat_name = isset($new_cat['name']) ? trim($new_cat['name']) : '';
 			}
 
 			// HTTP information are useful if feed is protected behind a