diff options
author | Andrew Dolgov <[email protected]> | 2017-05-04 15:26:21 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2017-05-04 15:26:21 +0300 |
commit | 4a0da0e5bf06e91cd3d461c98d54a0723ed0529c (patch) | |
tree | cf338df462e52a51bcd03c14b4ea7d075c89c59f /classes/article.php | |
parent | 2ed0d6c433c9ef5a6b9137725030f64b4b38392e (diff) |
move get_article_labels to Article
Diffstat (limited to 'classes/article.php')
-rw-r--r-- | classes/article.php | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/classes/article.php b/classes/article.php index 6d881f50e..95f1704c9 100644 --- a/classes/article.php +++ b/classes/article.php @@ -358,7 +358,7 @@ class Article extends Handler_Protected { else label_remove_article($id, $label, $_SESSION["uid"]); - $labels = get_article_labels($id, $_SESSION["uid"]); + $labels = $this->get_article_labels($id, $_SESSION["uid"]); array_push($reply["info-for-headlines"], array("id" => $id, "labels" => $this->format_article_labels($labels))); @@ -924,4 +924,49 @@ class Article extends Handler_Protected { } } + static function get_article_labels($id, $owner_uid = false) { + $rv = array(); + + if (!$owner_uid) $owner_uid = $_SESSION["uid"]; + + $result = db_query("SELECT label_cache FROM + ttrss_user_entries WHERE ref_id = '$id' AND owner_uid = " . + $owner_uid); + + if (db_num_rows($result) > 0) { + $label_cache = db_fetch_result($result, 0, "label_cache"); + + if ($label_cache) { + $label_cache = json_decode($label_cache, true); + + if ($label_cache["no-labels"] == 1) + return $rv; + else + return $label_cache; + } + } + + $result = db_query( + "SELECT DISTINCT label_id,caption,fg_color,bg_color + FROM ttrss_labels2, ttrss_user_labels2 + WHERE id = label_id + AND article_id = '$id' + AND owner_uid = ". $owner_uid . " + ORDER BY caption"); + + while ($line = db_fetch_assoc($result)) { + $rk = array(label_to_feed_id($line["label_id"]), + $line["caption"], $line["fg_color"], + $line["bg_color"]); + array_push($rv, $rk); + } + + if (count($rv) > 0) + label_update_cache($owner_uid, $id, $rv); + else + label_update_cache($owner_uid, $id, array("no-labels" => 1)); + + return $rv; + } + } |