summaryrefslogtreecommitdiff
path: root/functions.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2010-01-20 12:29:28 +0300
committerAndrew Dolgov <[email protected]>2010-01-20 12:29:28 +0300
commitb8ffa322a824afeb28d7dc448644d594c9aab780 (patch)
tree03a1825389c4de2960d22da9fc8cd9d3d7205e89 /functions.php
parent641444d3d742c1cf31f76b746eb6be35746ea4c9 (diff)
load_filters: use memcache
Diffstat (limited to 'functions.php')
-rw-r--r--functions.php65
1 files changed, 39 insertions, 26 deletions
diff --git a/functions.php b/functions.php
index c7bf4eaa3..24abdf016 100644
--- a/functions.php
+++ b/functions.php
@@ -5854,34 +5854,47 @@
function load_filters($link, $feed, $owner_uid, $action_id = false) {
$filters = array();
- if ($action_id) $ftype_query_part = "action_id = '$action_id' AND";
-
- $result = db_query($link, "SELECT reg_exp,
- ttrss_filter_types.name AS name,
- ttrss_filter_actions.name AS action,
- inverse,
- action_param,
- filter_param
- FROM ttrss_filters,ttrss_filter_types,ttrss_filter_actions WHERE
- enabled = true AND
- $ftype_query_part
- owner_uid = $owner_uid AND
- ttrss_filter_types.id = filter_type AND
- ttrss_filter_actions.id = action_id AND
- (feed_id IS NULL OR feed_id = '$feed') ORDER BY reg_exp");
+ global $memcache;
- while ($line = db_fetch_assoc($result)) {
- if (!$filters[$line["name"]]) $filters[$line["name"]] = array();
- $filter["reg_exp"] = $line["reg_exp"];
- $filter["action"] = $line["action"];
- $filter["action_param"] = $line["action_param"];
- $filter["filter_param"] = $line["filter_param"];
- $filter["inverse"] = sql_bool_to_bool($line["inverse"]);
-
- array_push($filters[$line["name"]], $filter);
- }
+ if ($memcache && $obj = $memcache->get($obj_id)) {
+
+ print_r($obj);
+
+ return $obj;
+
+ } else {
- return $filters;
+ if ($action_id) $ftype_query_part = "action_id = '$action_id' AND";
+
+ $result = db_query($link, "SELECT reg_exp,
+ ttrss_filter_types.name AS name,
+ ttrss_filter_actions.name AS action,
+ inverse,
+ action_param,
+ filter_param
+ FROM ttrss_filters,ttrss_filter_types,ttrss_filter_actions WHERE
+ enabled = true AND
+ $ftype_query_part
+ owner_uid = $owner_uid AND
+ ttrss_filter_types.id = filter_type AND
+ ttrss_filter_actions.id = action_id AND
+ (feed_id IS NULL OR feed_id = '$feed') ORDER BY reg_exp");
+
+ while ($line = db_fetch_assoc($result)) {
+ if (!$filters[$line["name"]]) $filters[$line["name"]] = array();
+ $filter["reg_exp"] = $line["reg_exp"];
+ $filter["action"] = $line["action"];
+ $filter["action_param"] = $line["action_param"];
+ $filter["filter_param"] = $line["filter_param"];
+ $filter["inverse"] = sql_bool_to_bool($line["inverse"]);
+
+ array_push($filters[$line["name"]], $filter);
+ }
+
+ if ($memcache) $memcache->add($obj_id, $filters, 0, 3600*8);
+
+ return $filters;
+ }
}
function get_score_pic($score) {