aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrvelices <rv-github@modusoptimus.com>2013-03-23 10:02:04 +0000
committerrvelices <rv-github@modusoptimus.com>2013-03-23 10:02:04 +0000
commit19d831bfe1cf60e150bada8a98c10966862d2ecf (patch)
tree442da6ccac562891fb6ef842e54d7678aae4f222
parentc523eec16366d39a14823ab6935aca2254834ef8 (diff)
db changes for feature 2836 display # of comments/tags in menubar and feature 2557 recent photos should never be empty
git-svn-id: http://piwigo.org/svn/trunk@21801 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r--include/functions_user.inc.php17
-rw-r--r--install/db/135-database.php47
-rw-r--r--install/piwigo_structure-mysql.sql5
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;
--