summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2017-05-04 15:26:21 +0300
committerAndrew Dolgov <[email protected]>2017-05-04 15:26:21 +0300
commit4a0da0e5bf06e91cd3d461c98d54a0723ed0529c (patch)
treecf338df462e52a51bcd03c14b4ea7d075c89c59f /classes
parent2ed0d6c433c9ef5a6b9137725030f64b4b38392e (diff)
move get_article_labels to Article
Diffstat (limited to 'classes')
-rw-r--r--classes/api.php9
-rw-r--r--classes/article.php47
-rwxr-xr-xclasses/feeds.php2
3 files changed, 50 insertions, 8 deletions
diff --git a/classes/api.php b/classes/api.php
index 31dd3c086..cb035c86b 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 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;
+ }
+
}
diff --git a/classes/feeds.php b/classes/feeds.php
index 23571c369..a96e53fcf 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 = "<span class=\"HLLCTR-$id\">";
$labels_str .= Article::format_article_labels($labels);