[pLog-svn] r5615 - plog/trunk/class/dao

mark at devel.lifetype.net mark at devel.lifetype.net
Thu Jul 5 05:43:42 EDT 2007


Author: mark
Date: 2007-07-05 05:43:41 -0400 (Thu, 05 Jul 2007)
New Revision: 5615

Modified:
   plog/trunk/class/dao/daocacheconstants.properties.php
   plog/trunk/class/dao/privatemessages.php
Log:
1. Add delete related method to private messages
2. Add private message cache constant to dao/daocacheconstants.properties.php

Modified: plog/trunk/class/dao/daocacheconstants.properties.php
===================================================================
--- plog/trunk/class/dao/daocacheconstants.properties.php	2007-07-05 07:46:04 UTC (rev 5614)
+++ plog/trunk/class/dao/daocacheconstants.properties.php	2007-07-05 09:43:41 UTC (rev 5615)
@@ -124,4 +124,11 @@
      * friends
      */
     define( "CACHE_FRIENDS", "friends" );
+
+    /**
+     * private messages
+     */
+    define( "CACHE_PRIVATE_MESSAGES", "cache_private_messages" );
+    define( "CACHE_PRIVATE_MESSAGES_BY_RECEIVER_ID", "cache_private_messages_by_receiver_id" );
+    define( "CACHE_PRIVATE_MESSAGES_BY_SENDER_ID", "cache_private_messages_by_sender_id" );
 ?>
\ No newline at end of file

Modified: plog/trunk/class/dao/privatemessages.php
===================================================================
--- plog/trunk/class/dao/privatemessages.php	2007-07-05 07:46:04 UTC (rev 5614)
+++ plog/trunk/class/dao/privatemessages.php	2007-07-05 09:43:41 UTC (rev 5615)
@@ -187,6 +187,70 @@
 				return false;
 		}
 
+        /**
+         * Removes a private message object from the database.
+         *
+         * @param messageId The private message identifier.
+         * @param receiverId The receiver identifier.
+         * @return True if successful or false otherwise.
+         */
+        function deletePrivateMessage( $messageId, $receiverId )
+        {
+        	$privateMessage = $this->getPrivateMessage( $$messageId, $receiverId );
+        	if( $privateMessage ) {
+        		$this->delete( "id", $$messageId );
+                $this->_cache->removeData( $privateMessage->getId(), CACHE_PRIVATE_MESSAGES );
+                $this->_cache->removeData( $privateMessage->getReceiverId(), CACHE_PRIVATE_MESSAGES_BY_RECEIVER_ID );
+                $this->_cache->removeData( $privateMessage->getSenderId(), CACHE_PRIVATE_MESSAGES_BY_SENDER_ID );
+
+			    // update corresponding counters
+				$receiver = $privateMessage->getReceiverInfo();
+				$receiver->setNumPrivateMessages( $receiver->geNumPrivateMessages() - 1 );
+				if( $privateMessage->getStatus() == PRIVATE_MESSAGE_UNREAD ) 
+				{
+					$receiver->setNumUnreadPrivateMessages( $receiver->getNumUnreadPrivateMessages() - 1 );
+					lt_include( PLOG_CLASS_PATH."class/dao/users.class.php" );
+					$users = new Users();
+					$users->updateUser( $receiver );
+				}
+				lt_include( PLOG_CLASS_PATH."class/dao/users.class.php" );
+				$users = new Users();
+				$users->updateUser( $receiver );
+				
+				return true;
+        	}
+        	else
+        		return false;
+        }
+
+        /**
+         * Removes all the private messages from the given receiver id
+         *
+         * @param receiverId The receiver identifier
+         */
+        function deletePrivateMessagesByReceiverId( $receiverId )
+        {
+        	if( $this->delete( "receiver_id", $receiverId )) {
+	        	return( $this->_cache->removeData( $receiverId, CACHE_PRIVATE_MESSAGES_BY_RECEIVER_ID ));
+        	}
+        	else
+        		return false;
+        }
+
+        /**
+         * Removes all the private messages from the given sender id
+         *
+         * @param senderId The sender identifier
+         */
+        function deletePrivateMessagesBySenderId( $senderId )
+        {
+        	if( $this->delete( "sender_id", $senderId )) {
+	        	return( $this->_cache->removeData( $senderId, CACHE_PRIVATE_MESSAGES_BY_SENDER_ID ));
+        	}
+        	else
+        		return false;
+        }
+
 		/**
 		 * @see Model::getSearchConditions
 		 */



More information about the pLog-svn mailing list