[LON-CAPA-cvs] cvs: loncom /interface lonannounce.pm lonchat.pm lonchatfetch.pm lonparmset.pm mydesk.tab
www
lon-capa-cvs@mail.lon-capa.org
Thu, 08 Aug 2002 13:44:17 -0000
This is a MIME encoded message
--www1028814257
Content-Type: text/plain
www Thu Aug 8 09:44:17 2002 EDT
Added files:
/loncom/interface lonchatfetch.pm
Modified files:
/loncom/interface lonannounce.pm lonchat.pm lonparmset.pm
mydesk.tab
Log:
Routines for chat, explanation of option in parmset, chat function kind of
works
--www1028814257
Content-Type: text/plain
Content-Disposition: attachment; filename="www-20020808094417.txt"
Index: loncom/interface/lonannounce.pm
diff -u loncom/interface/lonannounce.pm:1.2 loncom/interface/lonannounce.pm:1.3
--- loncom/interface/lonannounce.pm:1.2 Wed Jul 24 16:40:58 2002
+++ loncom/interface/lonannounce.pm Thu Aug 8 09:44:17 2002
@@ -1,20 +1,81 @@
# The LearningOnline Network
# Announce
#
-# (Internal Server Error Handler
+# $Id: lonannounce.pm,v 1.3 2002/08/08 13:44:17 www Exp $
#
-# (Login Screen
-# 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14,
-# 1/14/00,5/29,5/30,6/1,6/29,7/1,11/9 Gerd Kortemeyer)
+# Copyright Michigan State University Board of Trustees
#
-# 3/1/1 Gerd Kortemeyer)
+# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
#
-# 3/1 Gerd Kortemeyer
+# LON-CAPA is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
#
+# LON-CAPA is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LON-CAPA; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# /home/httpd/html/adm/gpl.txt
+#
+# http://www.lon-capa.org/
+#
+
package Apache::lonannounce;
use strict;
use Apache::Constants qw(:common);
+use Apache::loncommon;
+
+sub readcalendar {
+ my $courseid=shift;
+ my $coursenum=$ENV{'course.'.$courseid.'.num'};
+ my $coursedom=$ENV{'course.'.$courseid.'.domain'};
+ my %thiscal=&Apache::lonnet::dump('calendar',$coursedom,$coursenum);
+ my %returnhash=();
+ foreach (keys %thiscal) {
+ unless (($_=~/^error\:/) || ($thiscal{$_}=~/^error\:/)) {
+ $returnhash{$courseid.'@'.$_}=$thiscal{$_};
+ }
+ }
+ return %returnhash;
+}
+
+sub emptycell {
+ return '<td bgcolor="#AAAAAA"> </td>';
+}
+
+sub normalcell {
+ my ($day,$text)=@_;
+ return '<td><b>'.$day.'</b><br>'.$text.'</td>';
+}
+
+sub nextday {
+ my %th=@_;
+ $th{'day'}++;
+ return (&Apache::loncommon::maketime(%th),$th{'month'});
+}
+
+sub showday {
+ my ($tk,%allcal)=@_;
+ my %th=&Apache::loncommon::timehash($tk);
+ my ($nextday,$nextmonth)=&nextday(%th);
+ my $outp='';
+ foreach (keys %allcal) {
+ my ($course,$startdate,$enddate)=($_=~/^(\w+)\@(\d+)\_(\d+)$/);
+ print $course.' '.localtime($startdate).' '.localtime($enddate).
+ localtime($tk).' '.localtime($nextday).'<br>';
+ if (($startdate>$tk) && ($enddate<$nextday)) {
+ $outp.='___&&&___'.$course.'@'.$allcal{$_};
+ }
+ }
+ return ($nextday,$nextmonth,&normalcell($th{'day'},$outp));
+}
sub handler {
my $r = shift;
@@ -22,18 +83,180 @@
$r->send_http_header;
return OK if $r->header_only;
-# --------------------------------------------------- Print login screen header
+# ---------------------------------------------------------- Get time right now
+ my $today=time;
+ my %todayhash=&Apache::loncommon::timehash($today);
+
+# ---------------------------------------------------------- Get month and year
+ &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
+ ['month','year']);
+# ----------------------------------------------------- Summarize all calendars
+ my %allcal=();
+ foreach (&Apache::loncommon::findallcourses()) {
+ %allcal=(%allcal,&readcalendar($_));
+ }
+# --------------------------------------------------- Decide what month to show
+ my $year=$todayhash{'year'};
+ if ($ENV{'form.year'}) { $year=$ENV{'form.year'}; }
+ my $month=$todayhash{'month'};
+ if ($ENV{'form.month'}) { $month=$ENV{'form.month'}; }
+# --------------------------------------------- Find out first day of the month
+
+ my %firstday=&Apache::loncommon::timehash(
+ &Apache::loncommon::maketime( 'day' => 1, 'month'=> $month,
+ 'year' => $year, 'hours' => 0,
+ 'minutes' => 0, 'seconds' => 0,
+ 'dlsav' => $todayhash{'dlsav'} ));
+ my $weekday=$firstday{'weekday'};
+# ------------------------------------------------------------ Print the screen
$r->print(<<ENDDOCUMENT);
<html>
<head>
<title>The LearningOnline Network with CAPA</title>
+<script>
+ function pclose() {
+ parmwin=window.open("/adm/rat/empty.html","LONCAPAparms",
+ "height=350,width=350,scrollbars=no,menubar=no");
+ parmwin.close();
+ }
+
+ function pjump(type,dis,value,marker,ret,call) {
+ parmwin=window.open("/adm/rat/parameter.html?type="+escape(type)
+ +"&value="+escape(value)+"&marker="+escape(marker)
+ +"&return="+escape(ret)
+ +"&call="+escape(call)+"&name="+escape(dis),"LONCAPAparms",
+ "height=350,width=350,scrollbars=no,menubar=no");
+
+ }
+
+ function dateset() {
+ if (document.anno.pres_marker.value=='end') {
+ document.anno.enddate.value=
+ document.anno.pres_value.value;
+ }
+ if (document.anno.pres_marker.value=='start') {
+ document.anno.startdate.value=
+ document.anno.pres_value.value;
+ }
+ pclose();
+ }
+
+ function trysubmit() {
+ if (document.anno.startdate.value=='') {
+ alert("Announcements must have a starting date");
+ return '';
+ }
+ if (document.anno.enddate.value=='') {
+ alert("Announcements must have a starting date");
+ return '';
+ }
+ if (document.anno.startdate.value>document.anno.enddate.value) {
+ alert("Starting date is later than ending date");
+ return '';
+ }
+ document.anno.action.value="new";
+ document.anno.submit();
+ }
+
+ function removesub() {
+ document.anno.action.value="del";
+ document.anno.submit();
+ }
+</script>
</head>
<body bgcolor="#FFFFFF">
-<h1>Printout</h1>
-<img src="/adm/lonKaputt/lonconstruct.gif">
-</body>
-</html>
+<h1>Announcements</h1>
ENDDOCUMENT
+
+# does this user have privileges to post, etc?
+ my $allowed=0;
+ if ($ENV{'request.course.id'}) {
+ $allowed=&Apache::lonnet::allowed('srm',$ENV{'request.course.id'});
+ }
+
+ if ($allowed) {
+ my $coursenum=$ENV{'course.'.$ENV{'request.course.id'}.'.num'};
+ my $coursedom=$ENV{'course.'.$ENV{'request.course.id'}.'.domain'};
+# ----------------------------------------------------- Store new submitted one
+ if ($ENV{'form.action'} eq 'new') {
+ &Apache::lonnet::put('calendar',{
+ $ENV{'form.startdate'}.'_'.$ENV{'form.enddate'} =>
+ $ENV{'form.msg'} },$coursedom,$coursenum);
+ }
+# ---------------------------------------------------------------- Remove items
+ if ($ENV{'form.action'} eq 'del') {
+ my @delwhich=();
+ foreach (keys %ENV) {
+ if ($_=~/^form\.remove\_(.+)$/) {
+ push(@delwhich,$1);
+ }
+ }
+ &Apache::lonnet::del('calendar',\@delwhich,$coursedom,$coursenum);
+ }
+# -------------------------------------------------------- Form to post new one
+ my %tomorrowhash=%todayhash;
+ $tomorrowhash{'day'}++;
+ my $tomorrow=&Apache::loncommon::maketime(%tomorrowhash);
+
+ $r->print(<<ENDFORM);
+<form name="anno" method="post">
+<input type="hidden" value='' name="action" >
+<input type="hidden" value='' name="pres_value" >
+<input type="hidden" value='' name="pres_type" >
+<input type="hidden" value='' name="pres_marker" >
+<input type="hidden" value='$today' name="startdate" >
+<input type="hidden" value='$tomorrow' name="enddate" >
+<a
+ href="javascript:pjump('date_start','Starting Date',document.anno.startdate.value,'start','anno.pres','dateset');"
+>Set Starting Date</a>
+<a
+ href="javascript:pjump('date_end','Ending Date',document.anno.enddate.value,'end','anno.pres','dateset');"
+>Set Ending Date</a><p>
+<textarea name="msg" rows="4" cols="60">
+</textarea>
+<input type="button" onClick="trysubmit()" value="Post Announcement"><hr>
+<input type="button" onClick="removesub()" value="Remove Marked"><hr>
+ENDFORM
+ }
+ my ($pm,$py,$fm,$fy)=($month-1,$year,$month+1,$year);
+ if ($pm<1) { ($pm,$py)=(12,$year-1); }
+ if ($fm>12){ ($fm,$fy)=(1,$year+1); }
+ $r->print('<h1>'.('','January','February','March','April','May',
+ 'June','July','August','September','October',
+ 'November','December')[$month].' '.$year.'</h1>'.
+ '<a href="/adm/announcements?month='.$pm.'&year='.$py.'">Previous Month</a> '.
+ '<a href="/adm/announcements?month='.$fm.'&year='.$fy.'">Next Month</a><p>'.
+ '<table border="2" cols="7" rows="5"><tr><th>Sun</th><th>Mon</th>'.
+ '<th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th>');
+
+ my $tk=&Apache::loncommon::maketime(%firstday);
+ my $outp;
+ my $nm;
+
+# ---------------------------------------------------------------- Actual table
+ $r->print('<tr>');
+ for (my $i=0;$i<$weekday;$i++) { $r->print(&emptycell); }
+ for (my $i=$weekday;$i<=6;$i++) {
+ ($tk,$nm,$outp)=&showday($tk,%allcal);
+ $r->print($outp);
+ }
+ $r->print('</tr>');
+
+ for (my $k=0;$k<=3;$k++) {
+ $r->print('<tr>');
+ for (my $i=0;$i<=6;$i++) {
+ ($tk,$nm,$outp)=&showday($tk,%allcal);
+ if ($month!=$nm) { $outp=&emptycell; }
+ $r->print($outp);
+ }
+ $r->print('</tr>');
+ }
+# ------------------------------------------------------------------- End table
+ if ($allowed) { $r->print('</form>'); }
+ $r->print('</table><p>'.
+ '<a href="/adm/announcements?month='.$pm.'&year='.$py.'">Previous Month</a> '.
+ '<a href="/adm/announcements?month='.$fm.'&year='.$fy.'">Next Month</a><p>'.
+ '</body></html>');
return OK;
}
Index: loncom/interface/lonchat.pm
diff -u loncom/interface/lonchat.pm:1.2 loncom/interface/lonchat.pm:1.3
--- loncom/interface/lonchat.pm:1.2 Wed Jul 24 16:40:58 2002
+++ loncom/interface/lonchat.pm Thu Aug 8 09:44:17 2002
@@ -1,16 +1,31 @@
# The LearningOnline Network
# Chat
#
-# (Internal Server Error Handler
+# $Id: lonchat.pm,v 1.3 2002/08/08 13:44:17 www Exp $
#
-# (Login Screen
-# 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14,
-# 1/14/00,5/29,5/30,6/1,6/29,7/1,11/9 Gerd Kortemeyer)
+# Copyright Michigan State University Board of Trustees
#
-# 3/1/1 Gerd Kortemeyer)
+# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
#
-# 3/1 Gerd Kortemeyer
+# LON-CAPA is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
#
+# LON-CAPA is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LON-CAPA; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# /home/httpd/html/adm/gpl.txt
+#
+# http://www.lon-capa.org/
+#
+
package Apache::lonchat;
use strict;
@@ -22,6 +37,9 @@
$r->send_http_header;
return OK if $r->header_only;
+ if ($ENV{'form.newentry'}) {
+ &Apache::lonnet::chatsend($ENV{'form.newchat'},$ENV{'form.anonymous'});
+ }
# --------------------------------------------------- Print login screen header
$r->print(<<ENDDOCUMENT);
<html>
@@ -29,8 +47,11 @@
<title>The LearningOnline Network with CAPA</title>
</head>
<body bgcolor="#FFFFFF">
-<h1>Printout</h1>
-<img src="/adm/lonKaputt/lonconstruct.gif">
+<form method="post">
+<input type="text" size="60" name="newchat">
+<input type="checkbox" name="anonymous">
+<input value="Post" name="newentry" type="submit">
+</form>
</body>
</html>
ENDDOCUMENT
Index: loncom/interface/lonparmset.pm
diff -u loncom/interface/lonparmset.pm:1.55 loncom/interface/lonparmset.pm:1.56
--- loncom/interface/lonparmset.pm:1.55 Mon Jul 22 10:23:29 2002
+++ loncom/interface/lonparmset.pm Thu Aug 8 09:44:17 2002
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.55 2002/07/22 14:23:29 bowersj2 Exp $
+# $Id: lonparmset.pm,v 1.56 2002/08/08 13:44:17 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -757,9 +757,11 @@
'pageseparators' => '<b>Visibly Separate Items on Pages</b><br>'.
'("<tt>yes</tt>" for visible separation)',
'pch.roles.denied'=> '<b>Disallow Resource Discussion for '.
- 'Roles</b> ' .
- Apache::loncommon::help_open_topic("Course_Disable_Discussion")
- ,
+ 'Roles</b><br>"<tt>st</tt>": '.
+ 'student, "<tt>ta</tt>": '.
+ 'TA, "<tt>in</tt>": '.
+ 'instructor;<br><tt>role,role,...</tt>) '.
+ Apache::loncommon::help_open_topic("Course_Disable_Discussion"),
'pch.users.denied' =>
'<b>Disallow Resource Discussion for Users</b><br>'.
'(<tt>user:domain,user:domain,...</tt>)',
Index: loncom/interface/mydesk.tab
diff -u loncom/interface/mydesk.tab:1.22 loncom/interface/mydesk.tab:1.23
--- loncom/interface/mydesk.tab:1.22 Tue Jul 30 16:26:48 2002
+++ loncom/interface/mydesk.tab Thu Aug 8 09:44:17 2002
@@ -8,47 +8,47 @@
# pro = author prt = rca and user is a co-author
# pro = author prt = any
# pro = p??? allowed if the user has the permissions given in ???
-1:1:smp:any:courses.gif:choose:course:go('/adm/roles');
-1:1:smp:rst:courses.gif:switch:course:go('/adm/roles');
-1:1:adv:any:roles.gif:switch:role:go('/adm/roles');
-1:1:adv:rcm:roles.gif:choose:role:go('/adm/roles');
-1:2:any:any:com.gif:commu-:nication:go('/adm/communicate');
+1:1:smp:any:courses.gif:choose:course:go('/adm/roles');:Choose Course
+1:1:smp:rst:courses.gif:switch:course:go('/adm/roles');:Switch Course
+1:1:adv:any:roles.gif:switch:role:go('/adm/roles');:Switch Role
+1:1:adv:rcm:roles.gif:choose:role:go('/adm/roles');:Choose Role
+1:2:any:any:com.gif:commu-:nication:go('/adm/communicate');:Communicate/Messages
2:1:clear
2:2:clear
-2:2:pbre:$crs:nav.gif:navigate:contents:gopost('/adm/navmaps',currentURL);
+2:2:pbre:$crs:nav.gif:navigate:contents:gopost('/adm/navmaps',currentURL);:Navigate Contents
2:3:clear
3:1:clear
4:1:clear
-4:1:pbre:$crs:grds.gif:my:grades:go('/adm/studentcalc');
-4:1:pvgr:$crs:sprs.gif:course:grades:go('/adm/classcalc');
+4:1:pbre:$crs:grds.gif:my:grades:go('/adm/studentcalc');:Check My Grades
+4:1:pvgr:$crs:sprs.gif:course:grades:go('/adm/classcalc');:Check Course Grades
4:2:clear
-4:2:pvgr:$crs:chrt.gif:course:chart:gopost('/adm/statistics','Student Assessment');
+4:2:pvgr:$crs:chrt.gif:course:chart:gopost('/adm/statistics','Student Assessment');:Course Assessment Chart
4:3:clear
-4:3:pvgr:$crs:stat.gif:course:stats:go('/adm/statistics');
+4:3:pvgr:$crs:stat.gif:course:stats:go('/adm/statistics');:Course Assessment Statistics
5:1:clear
-5:1:pcst:$crs:enrl.gif:course:enroll:go('/adm/dropadd');
+5:1:pcst:$crs:enrl.gif:course:enroll:go('/adm/dropadd');:Drop/Add Students
5:2:clear
-5:2:pcst:$crs:cprv.gif:user:roles:go('/adm/createuser');
-5:2:pcca:$udom:cprv.gif:user:roles:go('/adm/createuser');
-5:2:pmau:$udom:cprv.gif:user:roles:go('/adm/createuser');
+5:2:pcst:$crs:cprv.gif:user:roles:go('/adm/createuser');:Change User Roles
+5:2:pcca:$udom:cprv.gif:user:roles:go('/adm/createuser');:Change User Roles
+5:2:pmau:$udom:cprv.gif:user:roles:go('/adm/createuser');:Change User Roles
5:3:clear
-5:3:pccc:$udom:ccrs.gif:create:course:go('/adm/createcourse');
-5:3:popa:$crs:parm.gif:course:parms:go('/adm/parmset');
+5:3:pccc:$udom:ccrs.gif:create:course:go('/adm/createcourse');:Create New Course
+5:3:popa:$crs:parm.gif:course:parms:go('/adm/parmset');:Set Parameters/Deadlines/etc
6:1:clear
-6:1:author:any:cstr.gif:con-:struct:cstrgo(currentURL,'/priv/$uname/');
-6:1:author:rca:cstr.gif:co con-:struct:cstrgo(currentURL,'/priv/$uname/');
+6:1:author:any:cstr.gif:con-:struct:cstrgo(currentURL,'/priv/$uname/');:Enter Construction Space
+6:1:author:rca:cstr.gif:co con-:struct:cstrgo(currentURL,'/priv/$uname/');:Enter Co-Construction Space
6:2:clear
-6:2:author:any:res.gif:resource:space:go('/res/$udom/$uname/?launch=1');
-6:2:author:rca:res.gif:co res:space:go('/res/$udom/$uname/?launch=1');
+6:2:author:any:res.gif:resource:space:go('/res/$udom/$uname/?launch=1');:Browse Published Resources
+6:2:author:rca:res.gif:co res:space:go('/res/$udom/$uname/?launch=1');:Browse Published Resources
6:3:clear
7:2:clear
-7:2:adv:rcm:egrd.gif:enter:grades:go('/adm/grades');
+7:2:adv:rcm:egrd.gif:enter:grades:go('/adm/grades');:Enter Grades
10:1:clear
-10:1:pbre:$crs:anno.gif:calendar:announce:go('/adm/announcements');
+10:1:any:any:anno.gif:calendar:announce:go('/adm/announcements');:Announcements and Calendar
10:2:clear
-10:2:pbre:$crs:docs.gif:course:docs:go('/adm/coursedocs');
+10:2:pbre:$crs:docs.gif:course:docs:go('/adm/coursedocs');:Course Documents
10:3:clear
-10:3:pbre:$crs:bchat.gif:course:chat:go('/adm/chat');
-11:1:any:any:src.gif:search:library:go('/adm/searchcat');
-11:2:any:any:pref.gif:prefer-:ences:go('/adm/preferences');
-11:3:any:any:logout.gif:exit::go('/adm/logout');
+10:3:pbre:$crs:bchat.gif:course:chat:go('/res/adm/pages/chatroom.html');:Chat
+11:1:any:any:src.gif:search:library:go('/adm/searchcat');:Search Published Resources
+11:2:any:any:pref.gif:prefer-:ences:go('/adm/preferences');:Set Preferences
+11:3:any:any:logout.gif:exit::go('/adm/logout');:Exit
Index: loncom/interface/lonchatfetch.pm
+++ loncom/interface/lonchatfetch.pm
# The LearningOnline Network
# Chat Fetching
#
# $Id: lonchatfetch.pm,v 1.1 2002/08/08 13:44:17 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
#
# LON-CAPA is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# LON-CAPA is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LON-CAPA; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# /home/httpd/html/adm/gpl.txt
#
# http://www.lon-capa.org/
#
package Apache::lonchatfetch;
use strict;
use Apache::Constants qw(:common);
use Apache::lontexconvert;
sub handler {
my $r = shift;
$r->content_type('text/html');
$r->send_http_header;
return OK if $r->header_only;
# ------------------------------------------------------------ retrieve entries
my $cnum=$ENV{'course.'.$ENV{'request.course.id'}.'.num'};
my $cdom=$ENV{'course.'.$ENV{'request.course.id'}.'.domain'};
my $chome=$ENV{'course.'.$ENV{'request.course.id'}.'.home'};
my @entries=split(/\:/,
&Apache::lonnet::reply("chatretr:$cdom:$cnum",$chome));
my ($lastid)=($entries[$#entries]=~/^(\w+)/);
my ($thentime,$idnum)=split(/\_/,$lastid);
# -------------------------------------------------------- see which ones apply
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['lastid']);
my $include=0;
my $newstuff='';
unless ($ENV{'form.lastid'}) { $include=1; }
foreach (@entries) {
if ($include) {
my ($id,$msg)=split(/\:/,&Apache::lonnet::unescape($_));
chomp($msg);
my ($msgtime,$msgnum)=split(/\_/,$id);
my ($sdom,$snum,$anon,$contrib)=split(/\:/,
&Apache::lonnet::unescape($msg));
$contrib=&Apache::lonnet::unescape($contrib);
$contrib=~s/\n/\<br \/\>/g;
$contrib=&Apache::lontexconvert::msgtexconverted($contrib);
$contrib=~s/\n/ /g;
$contrib=~s/\'/\&\#39\;/g;
my $sender=$snum.' at '.$sdom;
if ($anon) {
}
$newstuff.='<b>'.$sender.'</b> ('.localtime($msgtime).'): '.
$contrib."<br>";
} else {
$_=~/^(\w+)/;
if ($1 eq $ENV{'form.lastid'}) { $include=1; }
}
}
$r->print(<<ENDDOCUMENT);
<html>
<head>
<title>The LearningOnline Network with CAPA</title>
<meta HTTP-EQUIV="Refresh" CONTENT="5; url=/adm/chatfetch?lastid=$lastid">
</head>
<body bgcolor="#FFFFFF">
<script>
parent.chatout.document.writeln('$newstuff');
</script>
</body>
</html>
ENDDOCUMENT
return OK;
}
1;
__END__
--www1028814257--