From 7dce8da850d2b266ffc196a9e9c0aa9ee9314fe3 Mon Sep 17 00:00:00 2001 From: Shish Date: Sat, 18 Jun 2016 01:19:34 +0100 Subject: [PATCH] caching for autocomplete --- ext/tag_list/main.php | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/ext/tag_list/main.php b/ext/tag_list/main.php index ad1d3509..5322f5b4 100644 --- a/ext/tag_list/main.php +++ b/ext/tag_list/main.php @@ -49,20 +49,27 @@ class TagList extends Extension { if(!isset($_GET["s"])) return; //$limit = 0; + $cache_key = "autocomplete-" . strtolower($_GET["s"]); $limitSQL = ""; $SQLarr = array("search"=>$_GET["s"]."%"); if(isset($_GET["limit"]) && $_GET["limit"] !== 0){ $limitSQL = "LIMIT :limit"; $SQLarr['limit'] = $_GET["limit"]; + $cache_key .= "-" . $_GET["limit"]; } - $res = $database->get_col($database->scoreql_to_sql(" - SELECT tag - FROM tags - WHERE SCORE_STRNORM(tag) LIKE SCORE_STRNORM(:search) - AND count > 0 - $limitSQL - "), $SQLarr); + $res = null; + $database->cache->get($cache_key); + if(!$res) { + $res = $database->get_col($database->scoreql_to_sql(" + SELECT tag + FROM tags + WHERE SCORE_STRNORM(tag) LIKE SCORE_STRNORM(:search) + AND count > 0 + $limitSQL + "), $SQLarr); + $database->cache->set($cache_key, $res, 600); + } $page->set_mode("data"); $page->set_type("text/plain");