webgui/lib/WebGUI/MessageLog.pm
2001-12-31 23:34:00 +00:00

48 lines
2.1 KiB
Perl

package WebGUI::MessageLog;
#-------------------------------------------------------------------
# WebGUI is Copyright 2001 Plain Black Software.
#-------------------------------------------------------------------
# Please read the legal notices (docs/legal.txt) and the license
# (docs/license.txt) that came with this distribution before using
# this software.
#-------------------------------------------------------------------
# http://www.plainblack.com info@plainblack.com
#-------------------------------------------------------------------
use strict;
use WebGUI::Session;
use WebGUI::SQL;
#-------------------------------------------------------------------
sub addEntry {
my ($user, %userLanguage, $messageLogId, %message);
$messageLogId = getNextId("messageLogId");
if ($_[0] ne "") {
($userLanguage{$_[0]}) = WebGUI::SQL->quickArray("select language from users where userId=$_[0]");
}
if ($_[1] ne "") {
%userLanguage = (WebGUI::SQL->buildHash("select users.userId,users.language from groupings,users where groupings.groupId=$_[1] and groupings.userId=users.userId"),%userLanguage);
}
%message = WebGUI::SQL->buildHash("select language,message from international where internationalId=$_[3] and namespace='$_[4]'");
foreach $user (keys %userLanguage) {
WebGUI::SQL->write("insert into messageLog values ($messageLogId,$user,".quote($message{$userLanguage{$user}}).",".quote($_[2]).",".time().")");
# here is where we'll trigger communication with external systems like email
}
}
#-------------------------------------------------------------------
sub completeEntry {
my ($sth, @data, $completeMessage);
$completeMessage = WebGUI::International::get(350);
# unfortunately had to loop through reading and writing because I couldn't
# find a concatination function that worked the same in all DB servers
$sth = WebGUI::SQL->read("select message,userId from messageLog where messageLogId=$_[0]");
while (@data = $sth->array) {
WebGUI::SQL->write("update messageLog set message=".quote($completeMessage.": ".$data[0]).", dateOfEntry=".time()." where messageLogId='$_[0]' and userId=$data[1]");
}
$sth->finish;
}
1;