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;