]>
Commit | Line | Data |
---|---|---|
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 | } |