summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLulu.com <lulu_com@users.sourceforge.net>2005-10-31 15:12:46 +0000
committerLulu.com <lulu_com@users.sourceforge.net>2005-10-31 15:12:46 +0000
commit8540b36b5d3f08107f312cc33281200cda2da2ca (patch)
tree217676ac86a0ff70a813600074ff3f6d7411c433
parent3d585d9232c8f259e3222cf923a5ef961f04fed5 (diff)
downloadmessages-8540b36b5d3f08107f312cc33281200cda2da2ca.tar.gz
messages-8540b36b5d3f08107f312cc33281200cda2da2ca.tar.bz2
messages-8540b36b5d3f08107f312cc33281200cda2da2ca.zip
Fix for unread messages count function
-rw-r--r--messu_lib.php9
1 files changed, 6 insertions, 3 deletions
diff --git a/messu_lib.php b/messu_lib.php
index 580dc53..61d2461 100644
--- a/messu_lib.php
+++ b/messu_lib.php
@@ -3,7 +3,7 @@
* message package modules
*
* @author
-* @version $Revision: 1.8 $
+* @version $Revision: 1.9 $
* @package messages
*/
@@ -378,9 +378,12 @@ class Messu extends BitBase {
/*shared*/
function user_unread_messages( $pUserId ) {
+ // Standard user to user messages
$normalCount = $this->mDb->getOne( "select count( * ) from `".BIT_DB_PREFIX."messu_messages` where `to_user_id`=? and `is_read`=?",array( $pUserId,'n' ) );
- $broadcastCount = $this->mDb->getOne("SELECT COUNT(mm.`msg_id`) FROM `".BIT_DB_PREFIX."messu_messages` mm INNER JOIN `".BIT_DB_PREFIX."messu_system_message_map` msm ON (mm.`msg_id` = msm.`msg_id` AND msm.`is_read` <> 'y' AND `is_hidden` <> 'y' AND msm.`to_user_id`= ?) WHERE mm.`to_user_id` = ?", array($pUserId, ROOT_USER_ID));
- $broadcastCount2 = $this->mDb->getOne("SELECT COUNT(mm.`msg_id`) FROM `".BIT_DB_PREFIX."messu_messages` mm WHERE mm.`to_user_id` = ? AND NOT EXISTS ( SELECT msm.`msg_id` FROM `".BIT_DB_PREFIX."messu_system_message_map` msm WHERE msm.`msg_id` = mm.`msg_id` AND msm.`to_user_id` = ?)", array(ROOT_USER_ID, $pUserId));
+ // Broadcast messages where they have a messu_system_message_map row but is_read is not yet set
+ $broadcastCount = $this->mDb->getOne("SELECT COUNT(mm.`msg_id`) FROM `".BIT_DB_PREFIX."messu_messages` mm INNER JOIN `".BIT_DB_PREFIX."messu_system_message_map` msm ON (mm.`msg_id` = msm.`msg_id` AND msm.`is_read` <> 'y' AND `is_hidden` <> 'y' AND msm.`to_user_id`= ?) WHERE mm.`to_user_id` = ? AND mm.`group_id` IN (SELECT `group_id` FROM `".BIT_DB_PREFIX."users_groups_map` WHERE `user_id`= ?) ", array($pUserId, ROOT_USER_ID, $pUserId));
+ // Broadcast messages where they do not yet have a messu_system_message_map row
+ $broadcastCount2 = $this->mDb->getOne("SELECT COUNT(mm.`msg_id`) FROM `".BIT_DB_PREFIX."messu_messages` mm WHERE mm.`to_user_id` = ? AND mm.`group_id` IN (SELECT `group_id` FROM `".BIT_DB_PREFIX."users_groups_map` WHERE `user_id` = ?) AND NOT EXISTS ( SELECT msm.`msg_id` FROM `".BIT_DB_PREFIX."messu_system_message_map` msm WHERE msm.`msg_id` = mm.`msg_id` AND msm.`to_user_id` = ?)", array(ROOT_USER_ID, $pUserId, $pUserId));
return $normalCount + $broadcastCount + $broadcastCount2;
}
}