aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/category_cats.inc.php39
-rw-r--r--include/category_default.inc.php10
-rw-r--r--include/functions_category.inc.php20
-rwxr-xr-xinclude/menubar.inc.php37
4 files changed, 77 insertions, 29 deletions
diff --git a/include/category_cats.inc.php b/include/category_cats.inc.php
index 83f4b7209..36f19ca49 100644
--- a/include/category_cats.inc.php
+++ b/include/category_cats.inc.php
@@ -54,7 +54,14 @@ SELECT
FROM '.CATEGORIES_TABLE.' INNER JOIN '.USER_CACHE_CATEGORIES_TABLE.'
ON id = cat_id and user_id = '.$user['id'].'
WHERE id_uppercat '.
- (!isset($page['category']) ? 'is NULL' : '= '.$page['category']).'
+ (!isset($page['category']) ? 'is NULL' : '= '.$page['category']);
+ if ($page['filter_mode'])
+ {
+ $query.= '
+ AND max_date_last > SUBDATE(
+ CURRENT_DATE,INTERVAL '.$user['recent_period'].' DAY)';
+ }
+ $query.= '
ORDER BY rank
;';
}
@@ -77,9 +84,22 @@ while ($row = mysql_fetch_assoc($result))
$query = '
SELECT image_id
FROM '.CATEGORIES_TABLE.' AS c INNER JOIN '.IMAGE_CATEGORY_TABLE.' AS ic
- ON ic.category_id = c.id
+ ON ic.category_id = c.id';
+ if ($page['filter_mode'])
+ {
+ $query.= '
+ INNER JOIN '.IMAGES_TABLE.' AS i on ic.image_id = i.id ';
+ }
+ $query.= '
WHERE uppercats REGEXP \'(^|,)'.$row['id'].'(,|$)\'
- AND c.id NOT IN ('.$user['forbidden_categories'].')
+ AND c.id NOT IN ('.$user['forbidden_categories'].')';
+ if ($page['filter_mode'])
+ {
+ $query.= '
+ AND i.date_available > SUBDATE(
+ CURRENT_DATE,INTERVAL '.$user['recent_period'].' DAY)';
+ }
+ $query.= '
ORDER BY RAND()
LIMIT 0,1
;';
@@ -93,10 +113,17 @@ SELECT image_id
{ // searching a random representant among representant of sub-categories
$query = '
SELECT representative_picture_id
- FROM '.CATEGORIES_TABLE.'
+ FROM '.CATEGORIES_TABLE.' INNER JOIN '.USER_CACHE_CATEGORIES_TABLE.'
+ ON id = cat_id and user_id = '.$user['id'].'
WHERE uppercats REGEXP \'(^|,)'.$row['id'].'(,|$)\'
- AND id NOT IN ('.$user['forbidden_categories'].')
- AND representative_picture_id IS NOT NULL
+ AND representative_picture_id IS NOT NULL';
+ if ($page['filter_mode'])
+ {
+ $query.= '
+ AND max_date_last > SUBDATE(
+ CURRENT_DATE,INTERVAL '.$user['recent_period'].' DAY)';
+ }
+ $query.= '
ORDER BY RAND()
LIMIT 0,1
;';
diff --git a/include/category_default.inc.php b/include/category_default.inc.php
index b1f7bc46a..ae2dc4dce 100644
--- a/include/category_default.inc.php
+++ b/include/category_default.inc.php
@@ -46,8 +46,14 @@ if (count($selection) > 0)
$query = '
SELECT *
FROM '.IMAGES_TABLE.'
- WHERE id IN ('.implode(',', $selection).')
-;';
+ WHERE id IN ('.implode(',', $selection).')';
+ if ($page['filter_mode'])
+ {
+ $query.= '
+ AND date_available > SUBDATE(
+ CURRENT_DATE,INTERVAL '.$user['recent_period'].' DAY)';
+ }
+ $query.= ';';
$result = pwg_query($query);
while ($row = mysql_fetch_assoc($result))
{
diff --git a/include/functions_category.inc.php b/include/functions_category.inc.php
index 706d9c401..8113064d6 100644
--- a/include/functions_category.inc.php
+++ b/include/functions_category.inc.php
@@ -67,15 +67,25 @@ SELECT ';
$query.= '
FROM '.CATEGORIES_TABLE.' INNER JOIN '.USER_CACHE_CATEGORIES_TABLE.'
ON id = cat_id and user_id = '.$user['id'];
- if (!$user['expand'])
+ if ($page['filter_mode'])
{
$query.= '
- WHERE (id_uppercat is NULL';
- if (isset($page['category']))
+where max_date_last > SUBDATE(
+ CURRENT_DATE,INTERVAL '.$user['recent_period'].' DAY)';
+ }
+ else
+ {
+ // Always expand when filter_mode is activated
+ if (!$user['expand'])
{
- $query.= ' OR id_uppercat IN ('.$page['uppercats'].')';
+ $query.= '
+ WHERE (id_uppercat is NULL';
+ if (isset($page['category']))
+ {
+ $query.= ' OR id_uppercat IN ('.$page['uppercats'].')';
+ }
+ $query.= ')';
}
- $query.= ')';
}
$query.= '
;';
diff --git a/include/menubar.inc.php b/include/menubar.inc.php
index b84d9f09e..79643ba26 100755
--- a/include/menubar.inc.php
+++ b/include/menubar.inc.php
@@ -167,22 +167,27 @@ $template->assign_block_vars(
'TITLE' => $lang['random_cat_hint'],
'NAME' => $lang['random_cat']
));
-// recent pics
-$template->assign_block_vars(
- 'special_cat',
- array(
- 'URL' => make_index_url(array('section' => 'recent_pics')),
- 'TITLE' => $lang['recent_pics_cat_hint'],
- 'NAME' => $lang['recent_pics_cat']
- ));
-// recent cats
-$template->assign_block_vars(
- 'special_cat',
- array(
- 'URL' => make_index_url(array('section' => 'recent_cats')),
- 'TITLE' => $lang['recent_cats_cat_hint'],
- 'NAME' => $lang['recent_cats_cat']
- ));
+
+// Not recent menu when filter is activated
+if (!$page['filter_mode'])
+{
+ // recent pics
+ $template->assign_block_vars(
+ 'special_cat',
+ array(
+ 'URL' => make_index_url(array('section' => 'recent_pics')),
+ 'TITLE' => $lang['recent_pics_cat_hint'],
+ 'NAME' => $lang['recent_pics_cat']
+ ));
+ // recent cats
+ $template->assign_block_vars(
+ 'special_cat',
+ array(
+ 'URL' => make_index_url(array('section' => 'recent_cats')),
+ 'TITLE' => $lang['recent_cats_cat_hint'],
+ 'NAME' => $lang['recent_cats_cat']
+ ));
+}
// calendar
$template->assign_block_vars(