mirror of
https://git.tt-rss.org/fox/tt-rss.git
synced 2025-11-12 09:40:59 +01:00
switch filters _get_rules_list() to ORM
This commit is contained in:
parent
c23b76eb72
commit
64d9a77fde
@ -188,60 +188,49 @@ class Pref_Filters extends Handler_Protected {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function _get_rules_list(int $filter_id): string {
|
private function _get_rules_list(int $filter_id): string {
|
||||||
$sth = $this->pdo->prepare("SELECT reg_exp,
|
$rules = ORM::for_table('ttrss_filters2_rules')
|
||||||
inverse,
|
->table_alias('r')
|
||||||
match_on,
|
->join('ttrss_filter_types', ['r.filter_type', '=', 't.id'], 't')
|
||||||
feed_id,
|
->where('filter_id', $filter_id)
|
||||||
cat_id,
|
->select_many_expr('r.*, t.description AS field')
|
||||||
cat_filter,
|
->find_many();
|
||||||
ttrss_filter_types.description AS field
|
|
||||||
FROM
|
|
||||||
ttrss_filters2_rules, ttrss_filter_types
|
|
||||||
WHERE
|
|
||||||
filter_id = ? AND filter_type = ttrss_filter_types.id
|
|
||||||
ORDER BY reg_exp");
|
|
||||||
$sth->execute([$filter_id]);
|
|
||||||
|
|
||||||
$rv = "";
|
$rv = "";
|
||||||
|
|
||||||
while ($line = $sth->fetch()) {
|
foreach ($rules as $rule) {
|
||||||
|
if ($rule->match_on) {
|
||||||
|
$feeds = json_decode($rule->match_on, true);
|
||||||
|
$feeds_fmt = [];
|
||||||
|
|
||||||
if ($line["match_on"]) {
|
foreach ($feeds as $feed_id) {
|
||||||
$feeds = json_decode($line["match_on"], true);
|
|
||||||
$feeds_fmt = [];
|
|
||||||
|
|
||||||
foreach ($feeds as $feed_id) {
|
if (strpos($feed_id, "CAT:") === 0) {
|
||||||
|
$feed_id = (int)substr($feed_id, 4);
|
||||||
|
array_push($feeds_fmt, Feeds::_get_cat_title($feed_id));
|
||||||
|
} else {
|
||||||
|
if ($feed_id)
|
||||||
|
array_push($feeds_fmt, Feeds::_get_title((int)$feed_id));
|
||||||
|
else
|
||||||
|
array_push($feeds_fmt, __("All feeds"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (strpos($feed_id, "CAT:") === 0) {
|
$where = implode(", ", $feeds_fmt);
|
||||||
$feed_id = (int)substr($feed_id, 4);
|
|
||||||
array_push($feeds_fmt, Feeds::_get_cat_title($feed_id));
|
|
||||||
} else {
|
|
||||||
if ($feed_id)
|
|
||||||
array_push($feeds_fmt, Feeds::_get_title((int)$feed_id));
|
|
||||||
else
|
|
||||||
array_push($feeds_fmt, __("All feeds"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$where = implode(", ", $feeds_fmt);
|
} else {
|
||||||
|
$where = $rule->cat_filter ?
|
||||||
|
Feeds::_get_cat_title($rule->cat_id ?? 0) :
|
||||||
|
($rule->feed_id ?
|
||||||
|
Feeds::_get_title($rule->feed_id) : __("All feeds"));
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
$inverse_class = $rule->inverse ? "inverse" : "";
|
||||||
|
|
||||||
$where = $line["cat_filter"] ?
|
$rv .= "<li class='$inverse_class'>" . T_sprintf("%s on %s in %s %s",
|
||||||
Feeds::_get_cat_title($line["cat_id"] ?? 0) :
|
htmlspecialchars($rule->reg_exp),
|
||||||
($line["feed_id"] ?
|
$rule->field,
|
||||||
Feeds::_get_title($line["feed_id"]) : __("All feeds"));
|
|
||||||
}
|
|
||||||
|
|
||||||
# $where = $line["cat_id"] . "/" . $line["feed_id"];
|
|
||||||
|
|
||||||
$inverse = $line["inverse"] ? "inverse" : "";
|
|
||||||
|
|
||||||
$rv .= "<li class='$inverse'>" . T_sprintf("%s on %s in %s %s",
|
|
||||||
htmlspecialchars($line["reg_exp"]),
|
|
||||||
$line["field"],
|
|
||||||
$where,
|
$where,
|
||||||
$line["inverse"] ? __("(inverse)") : "") . "</li>";
|
$rule->inverse ? __("(inverse)") : "") . "</li>";
|
||||||
}
|
}
|
||||||
|
|
||||||
return $rv;
|
return $rv;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user