diff --git a/classes/api.php b/classes/api.php index 31dd3c08..cb035c86 100644 --- a/classes/api.php +++ b/classes/api.php @@ -354,7 +354,7 @@ class API extends Handler { "guid" => $line["guid"], "title" => $line["title"], "link" => $line["link"], - "labels" => get_article_labels($line['id']), + "labels" => Article::get_article_labels($line['id']), "unread" => sql_bool_to_bool($line["unread"]), "marked" => sql_bool_to_bool($line["marked"]), "published" => sql_bool_to_bool($line["published"]), @@ -450,7 +450,7 @@ class API extends Handler { WHERE owner_uid = '".$_SESSION['uid']."' ORDER BY caption"); if ($article_id) - $article_labels = get_article_labels($article_id); + $article_labels = Article::get_article_labels($article_id); else $article_labels = array(); @@ -740,10 +740,7 @@ class API extends Handler { } } - if (!is_array($labels)) $labels = get_article_labels($line["id"]); - - //if (!$tags) $tags = get_article_tags($line["id"]); - //if (!$labels) $labels = get_article_labels($line["id"]); + if (!is_array($labels)) $labels = Article::get_article_labels($line["id"]); $headline_row = array( "id" => (int)$line["id"], diff --git a/classes/article.php b/classes/article.php index 6d881f50..95f1704c 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; + } + } diff --git a/classes/feeds.php b/classes/feeds.php index 23571c36..a96e53fc 100755 --- a/classes/feeds.php +++ b/classes/feeds.php @@ -350,7 +350,7 @@ class Feeds extends Handler_Protected { } } - if (!is_array($labels)) $labels = get_article_labels($id); + if (!is_array($labels)) $labels = Article::get_article_labels($id); $labels_str = ""; $labels_str .= Article::format_article_labels($labels); diff --git a/include/labels.php b/include/labels.php index 9e2674b9..fd0d40af 100644 --- a/include/labels.php +++ b/include/labels.php @@ -11,52 +11,6 @@ } } - 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; - } - - function label_find_caption($label, $owner_uid) { $result = db_query( "SELECT caption FROM ttrss_labels2 WHERE id = '$label' diff --git a/include/rssfuncs.php b/include/rssfuncs.php index a7d30d67..5e1bdd2c 100644 --- a/include/rssfuncs.php +++ b/include/rssfuncs.php @@ -683,7 +683,7 @@ if (db_num_rows($result) != 0) { $base_entry_id = db_fetch_result($result, 0, "id"); $entry_stored_hash = db_fetch_result($result, 0, "content_hash"); - $article_labels = get_article_labels($base_entry_id, $owner_uid); + $article_labels = Article::get_article_labels($base_entry_id, $owner_uid); $entry_language = db_fetch_result($result, 0, "lang"); $existing_tags = Article::get_article_tags($base_entry_id, $owner_uid);