aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--category.php2
-rw-r--r--include/functions_category.inc.php20
-rw-r--r--include/functions_user.inc.php12
-rw-r--r--install/db/15-database.php50
-rw-r--r--install/phpwebgallery_structure.sql1
5 files changed, 62 insertions, 23 deletions
diff --git a/category.php b/category.php
index da71dfc7f..2bc078598 100644
--- a/category.php
+++ b/category.php
@@ -212,7 +212,7 @@ else
$template->assign_vars(
array(
- 'NB_PICTURE' => count_user_total_images(),
+ 'NB_PICTURE' => $user['nb_total_images'],
'TITLE' => $template_title,
'USERNAME' => $user['username'],
'TOP_NUMBER'=>$conf['top_number'],
diff --git a/include/functions_category.inc.php b/include/functions_category.inc.php
index 0214656bc..2bc455775 100644
--- a/include/functions_category.inc.php
+++ b/include/functions_category.inc.php
@@ -104,26 +104,6 @@ SELECT name,id,date_last,nb_images,global_rank
}
/**
- * returns the total number of elements viewable in the gallery by the
- * connected user
- *
- * @return int
- */
-function count_user_total_images()
-{
- global $user;
-
- $query = '
-SELECT COUNT(DISTINCT(image_id)) as total
- FROM '.IMAGE_CATEGORY_TABLE.'
- WHERE category_id NOT IN ('.$user['forbidden_categories'].')
-;';
- list($total) = mysql_fetch_array(pwg_query($query));
-
- return $total;
-}
-
-/**
* Retrieve informations about a category in the database
*
* Returns an array with following keys :
diff --git a/include/functions_user.inc.php b/include/functions_user.inc.php
index ea2cfbfbe..44f1a1cf7 100644
--- a/include/functions_user.inc.php
+++ b/include/functions_user.inc.php
@@ -188,6 +188,13 @@ SELECT ui.*, uc.*
$userdata['forbidden_categories'] =
calculate_permissions($userdata['id'], $userdata['status']);
+ $query = '
+SELECT COUNT(DISTINCT(image_id)) as total
+ FROM '.IMAGE_CATEGORY_TABLE.'
+ WHERE category_id NOT IN ('.$userdata['forbidden_categories'].')
+;';
+ list($userdata['nb_total_images']) = mysql_fetch_array(pwg_query($query));
+
// update user cache
$query = '
DELETE FROM '.USER_CACHE_TABLE.'
@@ -197,9 +204,10 @@ DELETE FROM '.USER_CACHE_TABLE.'
$query = '
INSERT INTO '.USER_CACHE_TABLE.'
- (user_id,need_update,forbidden_categories)
+ (user_id,need_update,forbidden_categories,nb_total_images)
VALUES
- ('.$userdata['id'].',\'false\',\''.$userdata['forbidden_categories'].'\')
+ ('.$userdata['id'].',\'false\',\''
+ .$userdata['forbidden_categories'].'\','.$userdata['nb_total_images'].')
;';
pwg_query($query);
}
diff --git a/install/db/15-database.php b/install/db/15-database.php
new file mode 100644
index 000000000..b5ff23a7c
--- /dev/null
+++ b/install/db/15-database.php
@@ -0,0 +1,50 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | PhpWebGallery - a PHP based picture gallery |
+// | Copyright (C) 2002-2003 Pierrick LE GALL - pierrick@phpwebgallery.net |
+// | Copyright (C) 2003-2005 PhpWebGallery Team - http://phpwebgallery.net |
+// +-----------------------------------------------------------------------+
+// | branch : BSF (Best So Far)
+// | file : $RCSfile$
+// | last update : $Date: 2005-09-21 00:04:57 +0200 (mer, 21 sep 2005) $
+// | last modifier : $Author: plg $
+// | revision : $Revision: 870 $
+// +-----------------------------------------------------------------------+
+// | This program is free software; you can redistribute it and/or modify |
+// | it under the terms of the GNU General Public License as published by |
+// | the Free Software Foundation |
+// | |
+// | This program is distributed in the hope that it will be useful, but |
+// | WITHOUT ANY WARRANTY; without even the implied warranty of |
+// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
+// | General Public License for more details. |
+// | |
+// | You should have received a copy of the GNU General Public License |
+// | along with this program; if not, write to the Free Software |
+// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
+// | USA. |
+// +-----------------------------------------------------------------------+
+
+if (!defined('PHPWG_ROOT_PATH'))
+{
+ die('Hacking attempt!');
+}
+
+$upgrade_description = '#user_cache, add column nb_total_pictures (feature 262)';
+
+$query = "
+ALTER TABLE ".PREFIX_TABLE."user_cache ADD COLUMN `nb_total_images` MEDIUMINT(8) UNSIGNED;";
+pwg_query($query);
+
+$query = "
+UPDATE ".PREFIX_TABLE."user_cache SET need_update='true'";
+pwg_query($query);
+
+
+echo
+"\n"
+.'"'.$upgrade_description.'"'.' ended'
+."\n"
+;
+
+?>
diff --git a/install/phpwebgallery_structure.sql b/install/phpwebgallery_structure.sql
index b4cf1d4b0..9e5c4a49f 100644
--- a/install/phpwebgallery_structure.sql
+++ b/install/phpwebgallery_structure.sql
@@ -260,6 +260,7 @@ CREATE TABLE `phpwebgallery_user_cache` (
`user_id` smallint(5) NOT NULL default '0',
`need_update` enum('true','false') NOT NULL default 'true',
`forbidden_categories` text,
+ `nb_total_images` mediumint(8),
PRIMARY KEY (`user_id`)
) TYPE=MyISAM;