[Affelio-cvs 1169] CVS update: affelio/lib/Affelio/Managing

Back to archive index

Tadashi Okoshi slash****@users*****
2006年 3月 22日 (水) 18:15:27 JST


Index: affelio/lib/Affelio/Managing/MessageManager.pm
diff -u affelio/lib/Affelio/Managing/MessageManager.pm:1.14 affelio/lib/Affelio/Managing/MessageManager.pm:1.15
--- affelio/lib/Affelio/Managing/MessageManager.pm:1.14	Tue Mar  7 23:39:10 2006
+++ affelio/lib/Affelio/Managing/MessageManager.pm	Wed Mar 22 18:15:27 2006
@@ -14,7 +14,7 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
-# $Id: MessageManager.pm,v 1.14 2006/03/07 14:39:10 slash5234 Exp $
+# $Id: MessageManager.pm,v 1.15 2006/03/22 09:15:27 slash5234 Exp $
 
 package Affelio::Managing::MessageManager;
 {
@@ -47,7 +47,6 @@
 	debug_print("MessageManager::new: end.");
 	return $self;
     }
-
     #MessageManager looks up each application directory
     #to get the whole list of message types.
 
@@ -79,17 +78,19 @@
 	return($count);
     }
 
-
     ########################################################################
-    #mark_as_read
+    #mark_as_read (mid, folder)
     ########################################################################
     sub mark_as_read{
 	my $self = shift;
-	my $mid  =shift;
-
 	my $af = $self->{af};
 
-	my $query = "update $af->{site__dbtbl_prefix}_CORE_message set readflag = 1 where mid = $mid";
+	my %param = @_;
+	my $mid  = $param{mid};
+	my $folder = $param{folder};
+	if ($folder eq ""){ $folder = "inbox"; }
+
+	my $query = "update $af->{site__dbtbl_prefix}_CORE_message set readflag = 1 where mid = $mid and folder = '$folder'";
 	my $sth;
 	eval{
 	    $sth = $af->getDB->prepare($query);
@@ -103,14 +104,17 @@
 	return();
     }
 
-
     ########################################################################
-    #retrieve_all_messages
+    #retrieve_all_messages (folder)
     ########################################################################
     #sub SQL_result get_all_group_list
     #  result (mid,timestamp,msg_title,msg_type,msg_from,msg_body,readflag)
     sub retrieve_all_messages{
 	my $self = shift;
+	my %param = @_;
+
+	my $folder = $param{folder};
+	if ($folder eq ""){ $folder = "inbox"; }
 
 	debug_print("MM::retrieve_all: start");
 	my $af = $self->{af};
@@ -119,7 +123,7 @@
 	#retrieve all friend records from DB
 	my $sth;
 	eval{
-	    $sth = $af->getDB->prepare("SELECT * FROM $af->{site__dbtbl_prefix}_CORE_message order by timestamp desc");
+	    $sth = $af->getDB->prepare("SELECT mid, timestamp, msgtitle, msgtype, msgfrom, msgbody, readflag FROM $af->{site__dbtbl_prefix}_CORE_message where folder = '$folder' order by timestamp desc");
 	    $sth->execute;
 	};
 	if($@){
@@ -131,22 +135,24 @@
     }
 
     ########################################################################
-    #retrieve_message
+    #retrieve_message (mid, folder)
     ########################################################################
     #sub SQL_result get_all_group_list
-    #  result (mid,timestamp,msg_title,msg_type,msg_from,msg_body,readflag)
+    #  result (mid,timestamp,msg_title,msg_type,msg_from,msg_body,readflag,folder)
     sub retrieve_message{
 	my $self = shift;
-	my $mid = shift;
-
-	debug_print("MM::retrieve: start");
 	my $af = $self->{af};
 
+	my %param = @_;
+	my $mid  = $param{mid};
+
+	debug_print("MM::retrieve: start [$mid]");
+
 	##############################
 	#retrieve all friend records from DB
 	my $sth;
 	eval{
-	    $sth = $af->getDB->prepare("SELECT * FROM $af->{site__dbtbl_prefix}_CORE_message where mid = $mid");
+	    $sth = $af->getDB->prepare("SELECT mid, timestamp, msgtitle, msgtype, msgfrom, msgbody, readflag, folder FROM $af->{site__dbtbl_prefix}_CORE_message where mid = $mid");
 	    $sth->execute;
 	};
 	if($@){
@@ -165,21 +171,34 @@
     }
 
     #######################################################################
-    #post_message 
-    #  arg1 SenderName:   (app_name)
-    #  arg2 Title: (UTF-8)
-    #  arg3 Type: (Ascii)
-    #  arg4 Body: (free text including URL)
+    #post_message( 
+    #  folder  Folder
+    #  from    SenderName:   (app_name)
+    #  title   Title: (UTF-8)
+    #  type    Type: (Ascii)
+    #  body    Body: (free text including URL)
+    # )
     #######################################################################
     sub post_message{
 	my $self = shift;
-	my $from = shift;    #1
-	my $title = shift;   #2
-	my $type = shift;    #3
-	my $body = shift;    #4
-
 	my $af = $self->{af};
 
+	my %param = @_;
+	#folder
+	my $folder = $param{folder};
+	if ($folder eq ""){ $folder = "inbox"; }
+	#from
+	my $from = $param{from};
+	#title
+	my $title = $param{title};
+	#type
+	my $type = $param{type};
+	#body
+	my $body = $param{body};
+	#readflag
+	my $readflag = $param{readflag};
+	if ($readflag eq ""){ $readflag =0;}
+
 	Affelio::misc::Debug::debug_print("MM::post_message: start.");
 
 	##############################
@@ -212,7 +231,7 @@
 
 	##############################
 	#Insert a new record
-	my $str10 = "insert into $af->{site__dbtbl_prefix}_CORE_message(msgbody, mid, timestamp, msgtitle, msgtype, msgfrom, readflag) values ('$body', $newid, '$cur_time', '$title', '$type', '$from', 0)";
+	my $str10 = "insert into $af->{site__dbtbl_prefix}_CORE_message(msgbody, mid, timestamp, msgtitle, msgtype, msgfrom, readflag, folder) values ('$body', $newid, '$cur_time', '$title', '$type', '$from', $readflag, '$folder')";
 	eval{
 	    $sth = $af->getDB->prepare($str10);
 	    $sth->execute;
@@ -222,22 +241,80 @@
 	}
 	undef($sth);
 
-
 	my $from_onlyname = $from;
 	$from_onlyname =~ s|<A HREF=".*">(.*)</A>|$1|;
 
 	##############################
 	#Email notification if needed
 	if($af->{userpref__mesging__emailflg} eq "yes"){
-	    my $abs_URL = $af->{site__user_afid} . "/admin.cgi?mode=messages&action=show&mid=$newid";
-	    Affelio::NetLib::Email::send_email($af->{cmd__sendmail}, "$af->{user__email1}", "Your Affelio", $af->{user__email1}, "Message from $from_onlyname", "Click this URL.\n$abs_URL");
-
-	    Affelio::misc::Debug::debug_print("MM::post_message: Email sent!");
+	    if($folder eq "inbox"){
+		my $abs_URL = $af->{site__user_afid} . "/admin.cgi?mode=messages&action=show&mid=$newid";
+		Affelio::NetLib::Email::send_email($af->{cmd__sendmail}, "$af->{user__email1}", "Your Affelio", $af->{user__email1}, "Message from $from_onlyname", "Click this URL.\n$abs_URL");
+		
+		Affelio::misc::Debug::debug_print("MM::post_message: Email sent!");
+	    }
 	}
 
 	Affelio::misc::Debug::debug_print("MM::post_message: end.");
-	return("");
+
+	return($newid);
+    }
+
+    ########################################################################
+    #move_message
+    ########################################################################
+    sub move_message{
+	debug_print("MM::move_message: start");
+
+	my $self = shift;
+	my $af = $self->{af};
+
+	my %param = @_;
+	#mid
+	my $mid = $param{mid};
+	#folder
+	my $folder = $param{folder};
+	if ($folder eq ""){ $folder = "inbox"; }
+
+	my $sth;
+	eval{
+	    $sth = $af->getDB->prepare("UPDATE $af->{site__dbtbl_prefix}_CORE_message set folder = '$folder' where mid = $mid");
+	    $sth->execute;
+	};
+	if($@){
+	    throw Affelio::exception::DBException($af->getDB->errstr);
+	}
+
+	debug_print("MM::move_message: end");
+	return();
+    }
+
+    ########################################################################
+    #delete_message 
+    ########################################################################
+    sub delete_message{
+	debug_print("MM::delete_message: start");
+
+	my $self = shift;
+	my $af = $self->{af};
+
+	my %param = @_;
+	#mid
+	my $mid = $param{mid};
+
+	my $sth;
+	eval{
+	    $sth = $af->getDB->prepare("DELETE FROM $af->{site__dbtbl_prefix}_CORE_message where mid = $mid");
+	    $sth->execute;
+	};
+	if($@){
+	    throw Affelio::exception::DBException($af->getDB->errstr);
+	}
+
+	debug_print("MM::delete_message: end");
+	return();
     }
 
+
 }#package
 1;


Affelio-cvs メーリングリストの案内
Back to archive index