Ignore:
Timestamp:
Jul 22, 2008, 12:32:25 PM (16 years ago)
Author:
rvelices
Message:
  • add #user_cache.cache_update_time - useful for plugins or the filter when it is not possible/desirable to cache/calculate data specific to the user when pwg core does it; note that this opens the possibility to implement a data cache (file/shared mem/ etc...) for every user (for very large databases)
Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk

    • Property svn:ignore
      •  

        old new  
        1 local
        2 gal2
        3 feed.xml
        4 testmail
        5 phpmv2
        61map.php
        72upgrade65.log
        8 fstats
        93_data
  • trunk/include

    • Property svn:ignore
      •  

        old new  
        11mysql.inc.php
        22config_local.inc.php
        3 config_local.inc.bak.php
  • trunk/include/filter.inc.php

    r2299 r2448  
    2323
    2424// $filter['enabled']: Filter is enabled
    25 // $filter['check_key']: Check key to valitade computed filter data
    2625// $filter['recent_period']: Recent period used to computed filter data
    2726// $filter['categories']: Computed data of filtered categories
     
    3534  {
    3635    $filter['matches'] = array();
    37     $filter['enabled'] = 
     36    $filter['enabled'] =
    3837      preg_match('/^start-recent-(\d+)$/', $_GET['filter'], $filter['matches']) === 1;
    3938  }
     
    5049if ($filter['enabled'])
    5150{
     51  $filter_key = pwg_get_session_var('filter_check_key', array('user'=>0,'recent_period'=>-1, 'time'=>0, 'date'=> '') );
     52
    5253  if (isset($filter['matches']))
    5354  {
     
    5657  else
    5758  {
    58     $filter['recent_period'] = pwg_get_session_var('filter_recent_period', $user['recent_period']);
     59    $filter['recent_period'] = $filter_key['recent_period']>0 ? $filter_key['recent_period'] : $user['recent_period'];
    5960  }
    6061
     
    6364      !pwg_get_session_var('filter_enabled', false) or
    6465      // Cache data updated
    65       $user['need_update_done'] or
     66      $filter_key['time'] <= $user['cache_update_time'] or
    6667      // Date, period, user are changed
    67       (pwg_get_session_var('filter_check_key', '') != get_filter_check_key())
     68      $filter_key['user'] != $user['id'] or
     69      $filter_key['recent_period'] != $filter['recent_period'] or
     70      $filter_key['date'] != date('Ymd')
    6871    )
    6972  {
    7073    // Need to compute dats
    71     $filter['check_key'] = get_filter_check_key();
     74    $filter_key = array(
     75      'user'=>(int)$user['id'],'recent_period'=>(int)$filter['recent_period'], 'time'=>time(), 'date'=> date('Ymd')
     76     );
     77
    7278    $filter['categories'] = get_computed_categories($user, (int)$filter['recent_period']);
    7379
     
    104110    // Save filter data on session
    105111    pwg_set_session_var('filter_enabled', $filter['enabled']);
    106     pwg_set_session_var('filter_check_key', $filter['check_key']);
    107     pwg_set_session_var('filter_recent_period', $filter['recent_period']);
     112    pwg_set_session_var('filter_check_key', $filter_key);
    108113    pwg_set_session_var('filter_categories', serialize($filter['categories']));
    109114    pwg_set_session_var('filter_visible_categories', $filter['visible_categories']);
    110115    pwg_set_session_var('filter_visible_images', $filter['visible_images']);
    111 
    112116  }
    113117  else
    114118  {
    115119    // Read only data
    116     $filter['check_key'] = pwg_get_session_var('filter_check_key', '');
    117120    $filter['categories'] = unserialize(pwg_get_session_var('filter_categories', serialize(array())));
    118121    $filter['visible_categories'] = pwg_get_session_var('filter_visible_categories', '');
    119122    $filter['visible_images'] = pwg_get_session_var('filter_visible_images', '');
    120123  }
    121 
     124  unset($filter_key);
    122125  if (get_filter_page_value('add_notes'))
    123126  {
     
    131134    pwg_unset_session_var('filter_enabled');
    132135    pwg_unset_session_var('filter_check_key');
    133     pwg_unset_session_var('filter_recent_period');
    134136    pwg_unset_session_var('filter_categories');
    135137    pwg_unset_session_var('filter_visible_categories');
Note: See TracChangeset for help on using the changeset viewer.