diff options
author | Max Kostikov <max@kostikov.co> | 2020-10-25 11:28:40 +0100 |
---|---|---|
committer | Mario <mario@mariovavti.com> | 2020-10-25 11:28:40 +0100 |
commit | 7008cf326903ea6f1887011fca1e5fa8ca626d28 (patch) | |
tree | 64b3e380192bbc0f02669f2ce2a7869ec9990561 /include/contact_widgets.php | |
parent | c38fc0b9067382b91dcd26b4da9742fd9d650f6c (diff) | |
download | volse-hubzilla-7008cf326903ea6f1887011fca1e5fa8ca626d28.tar.gz volse-hubzilla-7008cf326903ea6f1887011fca1e5fa8ca626d28.tar.bz2 volse-hubzilla-7008cf326903ea6f1887011fca1e5fa8ca626d28.zip |
Add results caching on public tag and profile categories fetching
Diffstat (limited to 'include/contact_widgets.php')
-rw-r--r-- | include/contact_widgets.php | 49 |
1 files changed, 31 insertions, 18 deletions
diff --git a/include/contact_widgets.php b/include/contact_widgets.php index 6ad276b00..626a825b2 100644 --- a/include/contact_widgets.php +++ b/include/contact_widgets.php @@ -1,6 +1,6 @@ <?php /** @file */ - +use Zotlabs\Lib\Cache; function findpeople_widget() { @@ -59,6 +59,7 @@ function fileas_widget($baseurl,$selected = '') { )); } + function categories_widget($baseurl,$selected = '') { if(! feature_enabled(App::$profile['profile_uid'],'categories')) @@ -70,25 +71,36 @@ function categories_widget($baseurl,$selected = '') { $item_normal = item_normal(); + $key = __FUNCTION__ . "-" . App::$profile['profile_uid']; + $content = Cache::get($key, '5 MINUTE'); + + if (! $content) { + $r = q("select distinct(term.term) from term join item on term.oid = item.id + where item.uid = %d + and term.uid = item.uid + and term.ttype = %d + and term.otype = %d + and item.owner_xchan = '%s' + and item.item_wall = 1 + and item.verb != '%s' + $item_normal + $sql_extra + order by term.term asc", + intval(App::$profile['profile_uid']), + intval(TERM_CATEGORY), + intval(TERM_OBJ_POST), + dbesc(App::$profile['channel_hash']), + dbesc(ACTIVITY_UPDATE) + ); + } + else + $r = unserialize($content); + $terms = array(); - $r = q("select distinct(term.term) from term join item on term.oid = item.id - where item.uid = %d - and term.uid = item.uid - and term.ttype = %d - and term.otype = %d - and item.owner_xchan = '%s' - and item.item_wall = 1 - and item.verb != '%s' - $item_normal - $sql_extra - order by term.term asc", - intval(App::$profile['profile_uid']), - intval(TERM_CATEGORY), - intval(TERM_OBJ_POST), - dbesc(App::$profile['channel_hash']), - dbesc(ACTIVITY_UPDATE) - ); if($r && count($r)) { + + Cache::set($key, serialize($r)); + foreach($r as $rr) $terms[] = array('name' => $rr['term'], 'selected' => (($selected == $rr['term']) ? 'selected' : '')); @@ -104,6 +116,7 @@ function categories_widget($baseurl,$selected = '') { return ''; } + function cardcategories_widget($baseurl,$selected = '') { if(! feature_enabled(App::$profile['profile_uid'],'categories')) |