diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/config_default.inc.php | 6 | ||||
-rw-r--r-- | include/filter.inc.php | 143 |
2 files changed, 81 insertions, 68 deletions
diff --git a/include/config_default.inc.php b/include/config_default.inc.php index 497c2d4f1..2f61f5584 100644 --- a/include/config_default.inc.php +++ b/include/config_default.inc.php @@ -573,8 +573,10 @@ $conf['enable_plugins']=true; // Array of basename without file extention $conf['filter_pages'] = array ( - 'comments', 'index', 'picture', 'qsearch', - 'random', 'search', 'tags', 'upload' + 'about', 'action', 'admin', 'comments', + 'index', 'picture', 'popuphelp', 'profile', + 'qsearch', 'random', 'register', 'search', + 'search_rules', 'tags', 'upload' ); ?> diff --git a/include/filter.inc.php b/include/filter.inc.php index 46edd3039..f67a63386 100644 --- a/include/filter.inc.php +++ b/include/filter.inc.php @@ -32,86 +32,97 @@ $filter = array(); // $filter['visible_categories']: List of visible categories (count(visible) < count(forbidden) more often) // $filter['visible_images']: List of visible images -$filter['enabled'] = false; - if (in_array(script_basename(), $conf['filter_pages'])) -{ // valid only on certain pages +{ if (isset($_GET['filter'])) { $filter['enabled'] = ($_GET['filter'] == 'start'); - if ( !$filter['enabled'] ) - { - pwg_unset_session_var('filter_enabled'); - pwg_unset_session_var('filter_check_key'); - pwg_unset_session_var('filter_categories'); - pwg_unset_session_var('filter_visible_categories'); - pwg_unset_session_var('filter_visible_images'); - } } else { $filter['enabled'] = pwg_get_session_var('filter_enabled', false); } +} +else +{ + $filter['enabled'] = false; +} - if ($filter['enabled']) +if ($filter['enabled']) +{ + if ( + // New filter + !pwg_get_session_var('filter_enabled', false) or + // Cache data updated + $user['need_update_done'] or + // Date, period, user are changed + (pwg_get_session_var('filter_check_key', '') != get_filter_check_key()) + ) { - if ( - // New filter - !pwg_get_session_var('filter_enabled', false) or - // Cache data updated - $user['need_update_done'] or - // Date, period, user are changed - (pwg_get_session_var('filter_check_key', '') != get_filter_check_key()) - ) - { - // Need to compute dats - $filter['check_key'] = get_filter_check_key(); - $filter['categories'] = get_computed_categories($user['id'], $user['forbidden_categories'], true, $user['recent_period']); - - $filter['visible_categories'] = implode(',', array_keys($filter['categories'])); - if (empty($filter['visible_categories'])) - { - // Must be not empty - $filter['visible_categories'] = -1; - } + // Need to compute dats + $filter['check_key'] = get_filter_check_key(); + $filter['categories'] = get_computed_categories($user['id'], $user['forbidden_categories'], true, $user['recent_period']); - $query =' -SELECT DISTINCT(image_id) - FROM '. - IMAGE_CATEGORY_TABLE.' INNER JOIN '.IMAGES_TABLE.' ON image_id = id - WHERE '; - if (!empty($filter['visible_categories'])) - { - $query.= ' - category_id IN ('.$filter['visible_categories'].') AND'; - } - $query.= ' - date_available > SUBDATE( - CURRENT_DATE,INTERVAL '.$user['recent_period'].' DAY)'; + $filter['visible_categories'] = implode(',', array_keys($filter['categories'])); + if (empty($filter['visible_categories'])) + { + // Must be not empty + $filter['visible_categories'] = -1; + } - $filter['visible_images'] = implode(',', array_from_query($query, 'image_id')); + $query =' +SELECT + distinct image_id +FROM '. + IMAGE_CATEGORY_TABLE.' INNER JOIN '.IMAGES_TABLE.' ON image_id = id +WHERE '; + if (!empty($filter['visible_categories'])) + { + $query.= ' + category_id IN ('.$filter['visible_categories'].') and'; + } + $query.= ' + date_available > SUBDATE( + CURRENT_DATE,INTERVAL '.$user['recent_period'].' DAY)'; - if (empty($filter['visible_images'])) - { - // Must be not empty - $filter['visible_images'] = -1; - } + $filter['visible_images'] = implode(',', array_from_query($query, 'image_id')); - pwg_set_session_var('filter_enabled', $filter['enabled']); - pwg_set_session_var('filter_check_key', $filter['check_key']); - pwg_set_session_var('filter_categories', serialize($filter['categories'])); - pwg_set_session_var('filter_visible_categories', $filter['visible_categories']); - pwg_set_session_var('filter_visible_images', $filter['visible_images']); - } - else + if (empty($filter['visible_images'])) { - // Read only data - $filter['check_key'] = pwg_get_session_var('filter_check_key', ''); - $filter['categories'] = unserialize(pwg_get_session_var('filter_categories', serialize(array()))); - $filter['visible_categories'] = pwg_get_session_var('filter_visible_categories', ''); - $filter['visible_images'] = pwg_get_session_var('filter_visible_images', ''); + // Must be not empty + $filter['visible_images'] = -1; } - $header_notes[] = l10n_dec('note_filter_day', 'note_filter_days', $user['recent_period']); - } // end if filter enabled -} // end if script_basename ... -?>
\ No newline at end of file + + // Save filter data on session + pwg_set_session_var('filter_enabled', $filter['enabled']); + pwg_set_session_var('filter_check_key', $filter['check_key']); + pwg_set_session_var('filter_categories', serialize($filter['categories'])); + pwg_set_session_var('filter_visible_categories', $filter['visible_categories']); + pwg_set_session_var('filter_visible_images', $filter['visible_images']); + + } + else + { + // Read only data + $filter['check_key'] = pwg_get_session_var('filter_check_key', ''); + $filter['categories'] = unserialize(pwg_get_session_var('filter_categories', serialize(array()))); + $filter['visible_categories'] = pwg_get_session_var('filter_visible_categories', ''); + $filter['visible_images'] = pwg_get_session_var('filter_visible_images', ''); + } + + $header_notes[] = l10n_dec('note_filter_day', 'note_filter_days', $user['recent_period']); +} +else +{ + if (pwg_get_session_var('filter_enabled', false)) + { + pwg_unset_session_var('filter_enabled'); + pwg_unset_session_var('filter_check_key'); + pwg_unset_session_var('filter_categories'); + pwg_unset_session_var('filter_visible_categories'); + pwg_unset_session_var('filter_visible_images'); + } +} + + +?> |