diff options
-rw-r--r-- | include/functions_user.inc.php | 17 | ||||
-rw-r--r-- | install/db/135-database.php | 47 | ||||
-rw-r--r-- | install/piwigo_structure-mysql.sql | 5 |
3 files changed, 63 insertions, 6 deletions
diff --git a/include/functions_user.inc.php b/include/functions_user.inc.php index d6250c582..439c91b3e 100644 --- a/include/functions_user.inc.php +++ b/include/functions_user.inc.php @@ -459,12 +459,14 @@ DELETE FROM '.USER_CACHE_TABLE.' $query = ' INSERT IGNORE INTO '.USER_CACHE_TABLE.' (user_id, need_update, cache_update_time, forbidden_categories, nb_total_images, + last_photo_date, image_access_type, image_access_list) VALUES ('.$userdata['id'].',\''.boolean_to_string($userdata['need_update']).'\',' .$userdata['cache_update_time'].',\'' - .$userdata['forbidden_categories'].'\','.$userdata['nb_total_images'].',\'' - .$userdata['image_access_type'].'\',\''.$userdata['image_access_list'].'\')'; + .$userdata['forbidden_categories'].'\','.$userdata['nb_total_images'].','. + (empty($userdata['last_photo_date']) ? 'NULL': '\''.$userdata['last_photo_date'].'\''). + ',\''.$userdata['image_access_type'].'\',\''.$userdata['image_access_list'].'\')'; pwg_query($query); } } @@ -678,7 +680,7 @@ function compute_categories_data(&$cats) * @param int filter_days number of recent days to filter on or null * @return array */ -function get_computed_categories($userdata, $filter_days=null) +function get_computed_categories(&$userdata, $filter_days=null) { $query = 'SELECT c.id AS cat_id, global_rank'; // Count by date_available to avoid count null @@ -702,10 +704,11 @@ FROM '.CATEGORIES_TABLE.' as c } $query.= ' - GROUP BY c.id, c.global_rank'; + GROUP BY c.id'; $result = pwg_query($query); + $userdata['last_photo_date'] = null; $cats = array(); while ($row = pwg_db_fetch_assoc($result)) { @@ -713,6 +716,10 @@ FROM '.CATEGORIES_TABLE.' as c $row['count_categories'] = 0; $row['count_images'] = (int)$row['nb_images']; $row['max_date_last'] = $row['date_last']; + if ($row['date_last'] > $userdata['last_photo_date']) + { + $userdata['last_photo_date'] = $row['date_last']; + } $cats += array($row['cat_id'] => $row); } @@ -1515,7 +1522,7 @@ function get_sql_condition_FandF( { $sql_list[]=$table_prefix.'level<='.$user['level']; } - else if ( !empty($user['image_access_list']) and !empty($user['image_access_type']) ) + elseif ( !empty($user['image_access_list']) and !empty($user['image_access_type']) ) { $sql_list[]=$field_name.' '.$user['image_access_type'] .' ('.$user['image_access_list'].')'; diff --git a/install/db/135-database.php b/install/db/135-database.php new file mode 100644 index 000000000..ec782142e --- /dev/null +++ b/install/db/135-database.php @@ -0,0 +1,47 @@ +<?php +// +-----------------------------------------------------------------------+ +// | Piwigo - a PHP based photo gallery | +// +-----------------------------------------------------------------------+ +// | Copyright(C) 2008-2013 Piwigo Team http://piwigo.org | +// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net | +// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick | +// +-----------------------------------------------------------------------+ +// | 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. | +// +-----------------------------------------------------------------------+ + +defined('PHPWG_ROOT_PATH') or die('Hacking attempt!'); + +$upgrade_description = 'add nb available comments/tags'; + +$query = 'ALTER TABLE '.USER_INFOS_TABLE.' +ADD PRIMARY KEY (`user_id`) +, DROP INDEX `user_infos_ui1`'; +pwg_query($query); + +$query = 'ALTER TABLE '.USER_CACHE_TABLE.' + ADD COLUMN `last_photo_date` datetime DEFAULT NULL AFTER `nb_total_images`'; +pwg_query($query); +invalidate_user_cache(); + +$query = 'ALTER TABLE '.USER_CACHE_TABLE.' + ADD COLUMN `nb_available_tags` INT(5) DEFAULT NULL AFTER `last_photo_date`'; +pwg_query($query); + +$query = 'ALTER TABLE '.USER_CACHE_TABLE.' + ADD COLUMN `nb_available_comments` INT(5) DEFAULT NULL AFTER `nb_available_tags`'; +pwg_query($query); + +echo "\n".$upgrade_description."\n"; +?>
\ No newline at end of file diff --git a/install/piwigo_structure-mysql.sql b/install/piwigo_structure-mysql.sql index 0a0d9e611..657f6f4d3 100644 --- a/install/piwigo_structure-mysql.sql +++ b/install/piwigo_structure-mysql.sql @@ -352,6 +352,9 @@ CREATE TABLE `piwigo_user_cache` ( `cache_update_time` integer unsigned NOT NULL default 0, `forbidden_categories` mediumtext, `nb_total_images` mediumint(8) unsigned default NULL, + `last_photo_date` datetime DEFAULT NULL, + `nb_available_tags` INT(5) DEFAULT NULL, + `nb_available_comments` INT(5) DEFAULT NULL `image_access_type` enum('NOT IN','IN') NOT NULL default 'NOT IN', `image_access_list` mediumtext default NULL, PRIMARY KEY (`user_id`) @@ -416,7 +419,7 @@ CREATE TABLE `piwigo_user_infos` ( `enabled_high` enum('true','false') NOT NULL default 'true', `level` tinyint unsigned NOT NULL default '0', `activation_key` char(20) default NULL, - UNIQUE KEY `user_infos_ui1` (`user_id`) + PRIMARY KEY (`user_id`) ) ENGINE=MyISAM; -- |