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