summaryrefslogtreecommitdiff
path: root/classes/feeds.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2021-03-02 10:24:15 +0300
committerAndrew Dolgov <[email protected]>2021-03-02 10:24:15 +0300
commitc4eaab8a31660d9b333b34cad2d5d458e30e4963 (patch)
treeb202436f88dd5abca88e7929dd1b0ab13e600782 /classes/feeds.php
parent7cf12233d7e24b0d745486e378a3351ef7cc67e4 (diff)
feeds/_add_cat: use ORM
Diffstat (limited to 'classes/feeds.php')
-rwxr-xr-xclasses/feeds.php43
1 files changed, 15 insertions, 28 deletions
diff --git a/classes/feeds.php b/classes/feeds.php
index 6f8ceeced..c67edbc51 100755
--- a/classes/feeds.php
+++ b/classes/feeds.php
@@ -1909,40 +1909,27 @@ class Feeds extends Handler_Protected {
$cat->delete();
}
- static function _add_cat($feed_cat, $parent_cat_id = false, $order_id = 0) {
+ static function _add_cat(string $title, int $owner_uid, int $parent_cat = null, int $order_id = 0) {
- if (!$feed_cat) return false;
-
- $feed_cat = mb_substr($feed_cat, 0, 250);
- if (!$parent_cat_id) $parent_cat_id = null;
-
- $pdo = Db::pdo();
- $tr_in_progress = false;
-
- try {
- $pdo->beginTransaction();
- } catch (Exception $e) {
- $tr_in_progress = true;
- }
-
- $sth = $pdo->prepare("SELECT id FROM ttrss_feed_categories
- WHERE (parent_cat = :parent OR (:parent IS NULL AND parent_cat IS NULL))
- AND title = :title AND owner_uid = :uid");
- $sth->execute([':parent' => $parent_cat_id, ':title' => $feed_cat, ':uid' => $_SESSION['uid']]);
-
- if (!$sth->fetch()) {
+ $cat = ORM::for_table('ttrss_feed_categories')
+ ->where('owner_uid', $owner_uid)
+ ->where('parent_cat', $parent_cat)
+ ->where('title', $title)
+ ->find_one();
- $sth = $pdo->prepare("INSERT INTO ttrss_feed_categories (owner_uid,title,parent_cat,order_id)
- VALUES (?, ?, ?, ?)");
- $sth->execute([$_SESSION['uid'], $feed_cat, $parent_cat_id, (int)$order_id]);
+ if (!$cat) {
+ $cat = ORM::for_table('ttrss_feed_categories')->create();
- if (!$tr_in_progress) $pdo->commit();
+ $cat->set([
+ 'owner_uid' => $owner_uid,
+ 'parent_cat' => $parent_cat,
+ 'order_id' => $order_id,
+ 'title' => $title,
+ ]);
- return true;
+ return $cat->save();
}
- $pdo->commit();
-
return false;
}