]> git.wh0rd.org - tt-rss.git/blame - include/labels.php
move get_article_labels to Article
[tt-rss.git] / include / labels.php
CommitLineData
87d7e850 1<?php
a42c55f0 2 function label_find_id($label, $owner_uid) {
6322ac79 3 $result = db_query(
87d7e850
AD
4 "SELECT id FROM ttrss_labels2 WHERE caption = '$label'
5 AND owner_uid = '$owner_uid' LIMIT 1");
6
7 if (db_num_rows($result) == 1) {
8 return db_fetch_result($result, 0, "id");
9 } else {
10 return 0;
11 }
12 }
13
a42c55f0 14 function label_find_caption($label, $owner_uid) {
6322ac79 15 $result = db_query(
87d7e850
AD
16 "SELECT caption FROM ttrss_labels2 WHERE id = '$label'
17 AND owner_uid = '$owner_uid' LIMIT 1");
18
19 if (db_num_rows($result) == 1) {
20 return db_fetch_result($result, 0, "caption");
21 } else {
22 return "";
23 }
24 }
25
a42c55f0 26 function get_all_labels($owner_uid) {
87d7e850
AD
27 $rv = array();
28
a42c55f0 29 $result = db_query("SELECT fg_color, bg_color, caption FROM ttrss_labels2 WHERE owner_uid = " . $owner_uid);
87d7e850
AD
30
31 while ($line = db_fetch_assoc($result)) {
32 array_push($rv, $line);
33 }
34
35 return $rv;
36 }
37
a42c55f0 38 function label_update_cache($owner_uid, $id, $labels = false, $force = false) {
87d7e850
AD
39
40 if ($force)
a42c55f0 41 label_clear_cache($id);
87d7e850
AD
42
43 if (!$labels)
a42c55f0 44 $labels = get_article_labels($id);
87d7e850 45
a42c55f0 46 $labels = db_escape_string(json_encode($labels));
87d7e850 47
a42c55f0 48 db_query("UPDATE ttrss_user_entries SET
87d7e850
AD
49 label_cache = '$labels' WHERE ref_id = '$id' AND owner_uid = '$owner_uid'");
50
51 }
52
a42c55f0 53 function label_clear_cache($id) {
87d7e850 54
a42c55f0 55 db_query("UPDATE ttrss_user_entries SET
87d7e850
AD
56 label_cache = '' WHERE ref_id = '$id'");
57
58 }
59
a42c55f0 60 function label_remove_article($id, $label, $owner_uid) {
87d7e850 61
a42c55f0 62 $label_id = label_find_id($label, $owner_uid);
87d7e850
AD
63
64 if (!$label_id) return;
65
4a80c57c 66 db_query(
87d7e850
AD
67 "DELETE FROM ttrss_user_labels2
68 WHERE
69 label_id = '$label_id' AND
70 article_id = '$id'");
71
a42c55f0 72 label_clear_cache($id);
87d7e850
AD
73 }
74
a42c55f0 75 function label_add_article($id, $label, $owner_uid) {
87d7e850 76
a42c55f0 77 $label_id = label_find_id($label, $owner_uid);
87d7e850
AD
78
79 if (!$label_id) return;
80
6322ac79 81 $result = db_query(
87d7e850
AD
82 "SELECT
83 article_id FROM ttrss_labels2, ttrss_user_labels2
84 WHERE
85 label_id = id AND
86 label_id = '$label_id' AND
87 article_id = '$id' AND owner_uid = '$owner_uid'
88 LIMIT 1");
89
90 if (db_num_rows($result) == 0) {
a42c55f0 91 db_query("INSERT INTO ttrss_user_labels2
87d7e850
AD
92 (label_id, article_id) VALUES ('$label_id', '$id')");
93 }
94
a42c55f0 95 label_clear_cache($id);
87d7e850
AD
96
97 }
98
a42c55f0 99 function label_remove($id, $owner_uid) {
87d7e850
AD
100 if (!$owner_uid) $owner_uid = $_SESSION["uid"];
101
a42c55f0 102 db_query("BEGIN");
87d7e850 103
a42c55f0 104 $result = db_query("SELECT caption FROM ttrss_labels2
87d7e850
AD
105 WHERE id = '$id'");
106
107 $caption = db_fetch_result($result, 0, "caption");
108
a42c55f0 109 $result = db_query("DELETE FROM ttrss_labels2 WHERE id = '$id'
87d7e850
AD
110 AND owner_uid = " . $owner_uid);
111
a42c55f0 112 if (db_affected_rows($result) != 0 && $caption) {
87d7e850
AD
113
114 /* Remove access key for the label */
115
f822a8e5 116 $ext_id = LABEL_BASE_INDEX - 1 - $id;
87d7e850 117
a42c55f0 118 db_query("DELETE FROM ttrss_access_keys WHERE
87d7e850
AD
119 feed_id = '$ext_id' AND owner_uid = $owner_uid");
120
87d7e850
AD
121 /* Remove cached data */
122
a42c55f0 123 db_query("UPDATE ttrss_user_entries SET label_cache = ''
87d7e850
AD
124 WHERE label_cache LIKE '%$caption%' AND owner_uid = " . $owner_uid);
125
126 }
127
a42c55f0 128 db_query("COMMIT");
87d7e850
AD
129 }
130
a42c55f0 131 function label_create($caption, $fg_color = '', $bg_color = '', $owner_uid = false) {
87d7e850
AD
132
133 if (!$owner_uid) $owner_uid = $_SESSION['uid'];
134
a42c55f0 135 db_query("BEGIN");
87d7e850
AD
136
137 $result = false;
138
a42c55f0 139 $result = db_query("SELECT id FROM ttrss_labels2
87d7e850
AD
140 WHERE caption = '$caption' AND owner_uid = $owner_uid");
141
142 if (db_num_rows($result) == 0) {
6322ac79 143 $result = db_query(
87d7e850
AD
144 "INSERT INTO ttrss_labels2 (caption,owner_uid,fg_color,bg_color)
145 VALUES ('$caption', '$owner_uid', '$fg_color', '$bg_color')");
146
a42c55f0 147 $result = db_affected_rows($result) != 0;
87d7e850
AD
148 }
149
a42c55f0 150 db_query("COMMIT");
87d7e850
AD
151
152 return $result;
153 }