]> git.wh0rd.org - tt-rss.git/blame - include/labels.php
remove $link
[tt-rss.git] / include / labels.php
CommitLineData
87d7e850 1<?php
6322ac79
AD
2 function label_find_id( $label, $owner_uid) {
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
6322ac79 14 function get_article_labels( $id, $owner_uid = false) {
87d7e850
AD
15 $rv = array();
16
17 if (!$owner_uid) $owner_uid = $_SESSION["uid"];
18
6322ac79 19 $result = db_query( "SELECT label_cache FROM
87d7e850
AD
20 ttrss_user_entries WHERE ref_id = '$id' AND owner_uid = " .
21 $owner_uid);
22
23 if (db_num_rows($result) > 0) {
24 $label_cache = db_fetch_result($result, 0, "label_cache");
25
26 if ($label_cache) {
27 $label_cache = json_decode($label_cache, true);
28
29 if ($label_cache["no-labels"] == 1)
30 return $rv;
31 else
32 return $label_cache;
33 }
34 }
35
6322ac79 36 $result = db_query(
87d7e850
AD
37 "SELECT DISTINCT label_id,caption,fg_color,bg_color
38 FROM ttrss_labels2, ttrss_user_labels2
39 WHERE id = label_id
40 AND article_id = '$id'
41 AND owner_uid = ". $owner_uid . "
42 ORDER BY caption");
43
44 while ($line = db_fetch_assoc($result)) {
45 $rk = array($line["label_id"], $line["caption"], $line["fg_color"],
46 $line["bg_color"]);
47 array_push($rv, $rk);
48 }
49
50 if (count($rv) > 0)
6322ac79 51 label_update_cache( $owner_uid, $id, $rv);
87d7e850 52 else
6322ac79 53 label_update_cache( $owner_uid, $id, array("no-labels" => 1));
87d7e850
AD
54
55 return $rv;
56 }
57
58
6322ac79
AD
59 function label_find_caption( $label, $owner_uid) {
60 $result = db_query(
87d7e850
AD
61 "SELECT caption FROM ttrss_labels2 WHERE id = '$label'
62 AND owner_uid = '$owner_uid' LIMIT 1");
63
64 if (db_num_rows($result) == 1) {
65 return db_fetch_result($result, 0, "caption");
66 } else {
67 return "";
68 }
69 }
70
6322ac79 71 function get_all_labels( $owner_uid) {
87d7e850
AD
72 $rv = array();
73
6322ac79 74 $result = db_query( "SELECT fg_color, bg_color, caption FROM ttrss_labels2 WHERE owner_uid = " . $owner_uid);
87d7e850
AD
75
76 while ($line = db_fetch_assoc($result)) {
77 array_push($rv, $line);
78 }
79
80 return $rv;
81 }
82
6322ac79 83 function label_update_cache( $owner_uid, $id, $labels = false, $force = false) {
87d7e850
AD
84
85 if ($force)
6322ac79 86 label_clear_cache( $id);
87d7e850
AD
87
88 if (!$labels)
6322ac79 89 $labels = get_article_labels( $id);
87d7e850 90
6322ac79 91 $labels = db_escape_string( json_encode($labels));
87d7e850 92
6322ac79 93 db_query( "UPDATE ttrss_user_entries SET
87d7e850
AD
94 label_cache = '$labels' WHERE ref_id = '$id' AND owner_uid = '$owner_uid'");
95
96 }
97
6322ac79 98 function label_clear_cache( $id) {
87d7e850 99
6322ac79 100 db_query( "UPDATE ttrss_user_entries SET
87d7e850
AD
101 label_cache = '' WHERE ref_id = '$id'");
102
103 }
104
6322ac79 105 function label_remove_article( $id, $label, $owner_uid) {
87d7e850 106
6322ac79 107 $label_id = label_find_id( $label, $owner_uid);
87d7e850
AD
108
109 if (!$label_id) return;
110
6322ac79 111 $result = db_query(
87d7e850
AD
112 "DELETE FROM ttrss_user_labels2
113 WHERE
114 label_id = '$label_id' AND
115 article_id = '$id'");
116
6322ac79 117 label_clear_cache( $id);
87d7e850
AD
118 }
119
6322ac79 120 function label_add_article( $id, $label, $owner_uid) {
87d7e850 121
6322ac79 122 $label_id = label_find_id( $label, $owner_uid);
87d7e850
AD
123
124 if (!$label_id) return;
125
6322ac79 126 $result = db_query(
87d7e850
AD
127 "SELECT
128 article_id FROM ttrss_labels2, ttrss_user_labels2
129 WHERE
130 label_id = id AND
131 label_id = '$label_id' AND
132 article_id = '$id' AND owner_uid = '$owner_uid'
133 LIMIT 1");
134
135 if (db_num_rows($result) == 0) {
6322ac79 136 db_query( "INSERT INTO ttrss_user_labels2
87d7e850
AD
137 (label_id, article_id) VALUES ('$label_id', '$id')");
138 }
139
6322ac79 140 label_clear_cache( $id);
87d7e850
AD
141
142 }
143
6322ac79 144 function label_remove( $id, $owner_uid) {
87d7e850
AD
145 if (!$owner_uid) $owner_uid = $_SESSION["uid"];
146
6322ac79 147 db_query( "BEGIN");
87d7e850 148
6322ac79 149 $result = db_query( "SELECT caption FROM ttrss_labels2
87d7e850
AD
150 WHERE id = '$id'");
151
152 $caption = db_fetch_result($result, 0, "caption");
153
6322ac79 154 $result = db_query( "DELETE FROM ttrss_labels2 WHERE id = '$id'
87d7e850
AD
155 AND owner_uid = " . $owner_uid);
156
6322ac79 157 if (db_affected_rows( $result) != 0 && $caption) {
87d7e850
AD
158
159 /* Remove access key for the label */
160
f822a8e5 161 $ext_id = LABEL_BASE_INDEX - 1 - $id;
87d7e850 162
6322ac79 163 db_query( "DELETE FROM ttrss_access_keys WHERE
87d7e850
AD
164 feed_id = '$ext_id' AND owner_uid = $owner_uid");
165
87d7e850
AD
166 /* Remove cached data */
167
6322ac79 168 db_query( "UPDATE ttrss_user_entries SET label_cache = ''
87d7e850
AD
169 WHERE label_cache LIKE '%$caption%' AND owner_uid = " . $owner_uid);
170
171 }
172
6322ac79 173 db_query( "COMMIT");
87d7e850
AD
174 }
175
6322ac79 176 function label_create( $caption, $fg_color = '', $bg_color = '', $owner_uid = false) {
87d7e850
AD
177
178 if (!$owner_uid) $owner_uid = $_SESSION['uid'];
179
6322ac79 180 db_query( "BEGIN");
87d7e850
AD
181
182 $result = false;
183
6322ac79 184 $result = db_query( "SELECT id FROM ttrss_labels2
87d7e850
AD
185 WHERE caption = '$caption' AND owner_uid = $owner_uid");
186
187 if (db_num_rows($result) == 0) {
6322ac79 188 $result = db_query(
87d7e850
AD
189 "INSERT INTO ttrss_labels2 (caption,owner_uid,fg_color,bg_color)
190 VALUES ('$caption', '$owner_uid', '$fg_color', '$bg_color')");
191
6322ac79 192 $result = db_affected_rows( $result) != 0;
87d7e850
AD
193 }
194
6322ac79 195 db_query( "COMMIT");
87d7e850
AD
196
197 return $result;
198 }
199
200?>