fixed rating bugs introduced with commit c32a4b06

This commit is contained in:
following
2012-08-27 14:15:16 +02:00
parent 9fb4322bfc
commit 9bc361c3e3
6 changed files with 15 additions and 6 deletions

View File

@ -668,11 +668,14 @@
INSERT IGNORE INTO `removed_objects` (`localId`, `uuid`, `type`, `node`) VALUES (OLD.`id`, OLD.`uuid`, 1, OLD.`node`);
END;");
// IF condition is defined to work with both, rating_date field may be NULL or not
sql_dropTrigger('cacheRatingBeforeInsert');
sql("CREATE TRIGGER `cacheRatingBeforeInsert` BEFORE INSERT ON `cache_rating`
FOR EACH ROW
BEGIN
SET NEW.`rating_date` = NOW();
IF ISNULL(NEW.`rating_date`) OR NEW.`rating_date` < '2000' THEN
SET NEW.`rating_date` = NOW();
END IF;
END;");
sql_dropTrigger('cacheRatingAfterInsert');

View File

@ -212,6 +212,8 @@
//store?
if (isset($_POST['submitform']) && $date_ok && $logtype_ok && $pw_ok)
{
$log_date = date('Y-m-d', mktime(0, 0, 0, $log_date_month, $log_date_day, $log_date_year));
//store changed data
sql("UPDATE `cache_logs` SET `type`='&1',
`date`='&2',
@ -220,7 +222,7 @@
`text_htmledit`='&5'
WHERE `id`='&6'",
$log_type,
date('Y-m-d', mktime(0, 0, 0, $log_date_month, $log_date_day, $log_date_year)),
$log_date,
(($descMode != 1) ? $log_text : nl2br($log_text)),
(($descMode != 1) ? 1 : 0),
(($descMode == 3) ? 1 : 0),
@ -237,7 +239,10 @@
// update top-list
if ($top_option)
if ($top_cache)
sql("INSERT IGNORE INTO `cache_rating` (`user_id`, `cache_id`) VALUES('&1', '&2')", $usr['userid'], $log_record['cache_id']);
sql("INSERT INTO `cache_rating` (`user_id`, `cache_id`, `rating_date`)
VALUES('&1', '&2','&3')
ON DUPLICATE KEY UPDATE `rating_date`='&3'",
$usr['userid'], $log_record['cache_id'], $log_date);
else
sql("DELETE FROM `cache_rating` WHERE `user_id`='&1' AND `cache_id`='&2'", $usr['userid'], $log_record['cache_id']);

View File

@ -120,7 +120,7 @@
`cache_location`.`adm4`
FROM `cache_rating`
INNER JOIN `caches` ON `caches`.`cache_id`=`cache_rating`.`cache_id`
INNER JOIN `user` ON `user`.`user_id`=`cache_rating`.`user_id`
INNER JOIN `user` ON `user`.`user_id`=`caches`.`user_id`
LEFT JOIN `cache_location` ON `cache_rating`.`cache_id`=`cache_location`.`cache_id`
WHERE `caches`.`country`='&1' AND
`cache_rating`.`rating_date`>DATE_SUB(NOW(), INTERVAL 30 DAY) AND

View File

@ -419,6 +419,7 @@ class cache
}
function addRecommendation($nUserId)
{
// rating_date will be set to NOW() by Insert-trigger
sql("INSERT IGNORE INTO `cache_rating` (`cache_id`, `user_id`) VALUES ('&1', '&2')", $this->nCacheId, $nUserId);
}
function removeRecommendation($nUserId)

View File

@ -219,7 +219,7 @@
// update top-list
if ($top_option)
if ($top_cache)
sql("INSERT IGNORE INTO `cache_rating` (`user_id`, `cache_id`) VALUES('&1', '&2')", $usr['userid'], $cache_id);
sql("INSERT IGNORE INTO `cache_rating` (`user_id`, `cache_id`, `rating_date`) VALUES('&1', '&2', '&3')", $usr['userid'], $cache_id, $log_date);
else
sql("DELETE FROM `cache_rating` WHERE `user_id`='&1' AND `cache_id`='&2'", $usr['userid'], $cache_id);

View File

@ -4,7 +4,7 @@
*
* Unicode Reminder メモ
*
* Publish new geocaches that are marked for timed publish
* Update top rating statistics
***************************************************************************/
checkJob(new rating_tops());