diff options
Diffstat (limited to '')
-rw-r--r-- | category.php | 2 | ||||
-rw-r--r-- | include/functions_category.inc.php | 20 | ||||
-rw-r--r-- | include/functions_user.inc.php | 12 | ||||
-rw-r--r-- | install/db/15-database.php | 50 | ||||
-rw-r--r-- | install/phpwebgallery_structure.sql | 1 |
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; |