1
0
mirror of https://git.tt-rss.org/git/tt-rss.git synced 2026-01-04 21:19:16 +00:00

move label stuff to Labels class

fix some unresolved functions
This commit is contained in:
Andrew Dolgov
2017-05-04 15:57:40 +03:00
parent c2f0f24e4c
commit 7c9b5a3fe4
13 changed files with 57 additions and 57 deletions

View File

@@ -458,14 +458,14 @@ class API extends Handler {
$checked = false;
foreach ($article_labels as $al) {
if (feed_to_label_id($al[0]) == $line['id']) {
if (Labels::feed_to_label_id($al[0]) == $line['id']) {
$checked = true;
break;
}
}
array_push($rv, array(
"id" => (int)label_to_feed_id($line['id']),
"id" => (int)Labels::label_to_feed_id($line['id']),
"caption" => $line['caption'],
"fg_color" => $line['fg_color'],
"bg_color" => $line['bg_color'],
@@ -481,8 +481,8 @@ class API extends Handler {
$label_id = (int) $this->dbh->escape_string($_REQUEST['label_id']);
$assign = (bool) ($this->dbh->escape_string($_REQUEST['assign']) == "true");
$label = $this->dbh->escape_string(label_find_caption(
feed_to_label_id($label_id), $_SESSION["uid"]));
$label = $this->dbh->escape_string(Labels::find_caption(
Labels::feed_to_label_id($label_id), $_SESSION["uid"]));
$num_updated = 0;
@@ -491,9 +491,9 @@ class API extends Handler {
foreach ($article_ids as $id) {
if ($assign)
label_add_article($id, $label, $_SESSION["uid"]);
Labels::add_article($id, $label, $_SESSION["uid"]);
else
label_remove_article($id, $label, $_SESSION["uid"]);
Labels::remove_article($id, $label, $_SESSION["uid"]);
++$num_updated;

View File

@@ -154,7 +154,7 @@ class Article extends Handler_Protected {
if (count($labels) != 0) {
foreach ($labels as $label) {
label_add_article($ref_id, trim($label), $owner_uid);
Labels::add_article($ref_id, trim($label), $owner_uid);
}
}
@@ -179,7 +179,7 @@ class Article extends Handler_Protected {
if (count($labels) != 0) {
foreach ($labels as $label) {
label_add_article($ref_id, trim($label), $owner_uid);
Labels::add_article($ref_id, trim($label), $owner_uid);
}
}
@@ -344,7 +344,7 @@ class Article extends Handler_Protected {
$ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
$label_id = $this->dbh->escape_string($_REQUEST["lid"]);
$label = $this->dbh->escape_string(label_find_caption($label_id,
$label = $this->dbh->escape_string(Labels::find_caption($label_id,
$_SESSION["uid"]));
$reply["info-for-headlines"] = array();
@@ -354,9 +354,9 @@ class Article extends Handler_Protected {
foreach ($ids as $id) {
if ($assign)
label_add_article($id, $label, $_SESSION["uid"]);
Labels::add_article($id, $label, $_SESSION["uid"]);
else
label_remove_article($id, $label, $_SESSION["uid"]);
Labels::remove_article($id, $label, $_SESSION["uid"]);
$labels = $this->get_article_labels($id, $_SESSION["uid"]);
@@ -955,16 +955,16 @@ class Article extends Handler_Protected {
ORDER BY caption");
while ($line = db_fetch_assoc($result)) {
$rk = array(label_to_feed_id($line["label_id"]),
$rk = array(Labels::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);
Labels::update_cache($owner_uid, $id, $rv);
else
label_update_cache($owner_uid, $id, array("no-labels" => 1));
Labels::update_cache($owner_uid, $id, array("no-labels" => 1));
return $rv;
}

View File

@@ -870,7 +870,7 @@ class Feeds extends Handler_Protected {
$result = false;
if ($feed < LABEL_BASE_INDEX) {
$label_feed = feed_to_label_id($feed);
$label_feed = Labels::feed_to_label_id($feed);
$result = $this->dbh->query("SELECT id FROM ttrss_labels2 WHERE
id = '$label_feed' AND owner_uid = " . $_SESSION['uid']);
} else if (!$cat_view && is_numeric($feed) && $feed > 0) {
@@ -1354,7 +1354,7 @@ class Feeds extends Handler_Protected {
} else if ($feed < LABEL_BASE_INDEX) { // label
$label_id = feed_to_label_id($feed);
$label_id = Labels::feed_to_label_id($feed);
db_query("UPDATE ttrss_user_entries
SET unread = false, last_read = NOW() WHERE ref_id IN
@@ -1435,7 +1435,7 @@ class Feeds extends Handler_Protected {
} else if ($feed < LABEL_BASE_INDEX) {
$label_id = feed_to_label_id($feed);
$label_id = Labels::feed_to_label_id($feed);
return Feeds::getLabelUnread($label_id, $owner_uid);
@@ -1608,7 +1608,7 @@ class Feeds extends Handler_Protected {
} else if ($id == -6) {
return __("Recently read");
} else if ($id < LABEL_BASE_INDEX) {
$label_id = feed_to_label_id($id);
$label_id = Labels::feed_to_label_id($id);
$result = db_query("SELECT caption FROM ttrss_labels2 WHERE id = '$label_id'");
if (db_num_rows($result) == 1) {
return db_fetch_result($result, 0, "caption");
@@ -1931,7 +1931,7 @@ class Feeds extends Handler_Protected {
$query_strategy_part = "true";
$vfeed_query_part = "ttrss_feeds.title AS feed_title,";
} else if ($feed <= LABEL_BASE_INDEX) { // labels
$label_id = feed_to_label_id($feed);
$label_id = Labels::feed_to_label_id($feed);
$query_strategy_part = "label_id = '$label_id' AND
ttrss_labels2.id = ttrss_user_labels2.label_id AND

162
classes/labels.php Normal file
View File

@@ -0,0 +1,162 @@
<?php
class Labels
{
static function label_to_feed_id($label) {
return LABEL_BASE_INDEX - 1 - abs($label);
}
static function feed_to_label_id($feed) {
return LABEL_BASE_INDEX - 1 + abs($feed);
}
static function find_id($label, $owner_uid) {
$result = db_query(
"SELECT id FROM ttrss_labels2 WHERE caption = '$label'
AND owner_uid = '$owner_uid' LIMIT 1");
if (db_num_rows($result) == 1) {
return db_fetch_result($result, 0, "id");
} else {
return 0;
}
}
static function find_caption($label, $owner_uid) {
$result = db_query(
"SELECT caption FROM ttrss_labels2 WHERE id = '$label'
AND owner_uid = '$owner_uid' LIMIT 1");
if (db_num_rows($result) == 1) {
return db_fetch_result($result, 0, "caption");
} else {
return "";
}
}
static function get_all_labels($owner_uid) {
$rv = array();
$result = db_query("SELECT fg_color, bg_color, caption FROM ttrss_labels2 WHERE owner_uid = " . $owner_uid);
while ($line = db_fetch_assoc($result)) {
array_push($rv, $line);
}
return $rv;
}
static function update_cache($owner_uid, $id, $labels = false, $force = false) {
if ($force)
Labels::clear_cache($id);
if (!$labels)
$labels = Article::get_article_labels($id);
$labels = db_escape_string(json_encode($labels));
db_query("UPDATE ttrss_user_entries SET
label_cache = '$labels' WHERE ref_id = '$id' AND owner_uid = '$owner_uid'");
}
static function clear_cache($id) {
db_query("UPDATE ttrss_user_entries SET
label_cache = '' WHERE ref_id = '$id'");
}
static function remove_article($id, $label, $owner_uid) {
$label_id = Labels::find_id($label, $owner_uid);
if (!$label_id) return;
db_query(
"DELETE FROM ttrss_user_labels2
WHERE
label_id = '$label_id' AND
article_id = '$id'");
Labels::clear_cache($id);
}
static function add_article($id, $label, $owner_uid) {
$label_id = Labels::find_id($label, $owner_uid);
if (!$label_id) return;
$result = db_query(
"SELECT
article_id FROM ttrss_labels2, ttrss_user_labels2
WHERE
label_id = id AND
label_id = '$label_id' AND
article_id = '$id' AND owner_uid = '$owner_uid'
LIMIT 1");
if (db_num_rows($result) == 0) {
db_query("INSERT INTO ttrss_user_labels2
(label_id, article_id) VALUES ('$label_id', '$id')");
}
Labels::clear_cache($id);
}
static function remove($id, $owner_uid) {
if (!$owner_uid) $owner_uid = $_SESSION["uid"];
db_query("BEGIN");
$result = db_query("SELECT caption FROM ttrss_labels2
WHERE id = '$id'");
$caption = db_fetch_result($result, 0, "caption");
$result = db_query("DELETE FROM ttrss_labels2 WHERE id = '$id'
AND owner_uid = " . $owner_uid);
if (db_affected_rows($result) != 0 && $caption) {
/* Remove access key for the label */
$ext_id = LABEL_BASE_INDEX - 1 - $id;
db_query("DELETE FROM ttrss_access_keys WHERE
feed_id = '$ext_id' AND owner_uid = $owner_uid");
/* Remove cached data */
db_query("UPDATE ttrss_user_entries SET label_cache = ''
WHERE label_cache LIKE '%$caption%' AND owner_uid = " . $owner_uid);
}
db_query("COMMIT");
}
static function create($caption, $fg_color = '', $bg_color = '', $owner_uid = false) {
if (!$owner_uid) $owner_uid = $_SESSION['uid'];
db_query("BEGIN");
$result = db_query("SELECT id FROM ttrss_labels2
WHERE caption = '$caption' AND owner_uid = $owner_uid");
if (db_num_rows($result) == 0) {
$result = db_query(
"INSERT INTO ttrss_labels2 (caption,owner_uid,fg_color,bg_color)
VALUES ('$caption', '$owner_uid', '$fg_color', '$bg_color')");
$result = db_affected_rows($result) != 0;
}
db_query("COMMIT");
return $result;
}
}

View File

@@ -292,9 +292,9 @@ class Opml extends Handler_Protected {
$fg_color = $this->dbh->escape_string($attrs->getNamedItem('label-fg-color')->nodeValue);
$bg_color = $this->dbh->escape_string($attrs->getNamedItem('label-bg-color')->nodeValue);
if (!label_find_id($label_name, $_SESSION['uid'])) {
if (!Labels::find_id($label_name, $_SESSION['uid'])) {
$this->opml_notice(T_sprintf("Adding label %s", htmlspecialchars($label_name)));
label_create($label_name, $fg_color, $bg_color, $owner_uid);
Labels::create($label_name, $fg_color, $bg_color, $owner_uid);
} else {
$this->opml_notice(T_sprintf("Duplicate label: %s", htmlspecialchars($label_name)));
}

View File

@@ -171,7 +171,7 @@ class Pref_Feeds extends Handler_Protected {
while ($line = $this->dbh->fetch_assoc($result)) {
$label_id = label_to_feed_id($line['id']);
$label_id = Labels::label_to_feed_id($line['id']);
$feed = $this->feedlist_init_feed($label_id, false, 0);
@@ -1806,7 +1806,7 @@ class Pref_Feeds extends Handler_Protected {
CCache::remove($id, $owner_uid);
} else {
label_remove(feed_to_label_id($id), $owner_uid);
Labels::remove(Labels::feed_to_label_id($id), $owner_uid);
//CCache::remove($id, $owner_uid); don't think labels are cached
}
}

View File

@@ -136,7 +136,7 @@ class Pref_Labels extends Handler_Protected {
AND owner_uid = " . $_SESSION["uid"]);
}
$caption = $this->dbh->escape_string(label_find_caption($id, $_SESSION["uid"]));
$caption = $this->dbh->escape_string(Labels::find_caption($id, $_SESSION["uid"]));
/* Remove cached data */
@@ -156,7 +156,7 @@ class Pref_Labels extends Handler_Protected {
fg_color = '', bg_color = '' WHERE id = '$id'
AND owner_uid = " . $_SESSION["uid"]);
$caption = $this->dbh->escape_string(label_find_caption($id, $_SESSION["uid"]));
$caption = $this->dbh->escape_string(Labels::find_caption($id, $_SESSION["uid"]));
/* Remove cached data */
@@ -216,7 +216,7 @@ class Pref_Labels extends Handler_Protected {
$ids = explode(",", $this->dbh->escape_string($_REQUEST["ids"]));
foreach ($ids as $id) {
label_remove($id, $_SESSION["uid"]);
Labels::remove($id, $_SESSION["uid"]);
}
}
@@ -227,7 +227,7 @@ class Pref_Labels extends Handler_Protected {
if ($caption) {
if (label_create($caption)) {
if (Labels::create($caption)) {
if (!$output) {
print T_sprintf("Created label <b>%s</b>", htmlspecialchars($caption));
}