Diff for /loncom/interface/lonmsg.pm between versions 1.214 and 1.215

version 1.214, 2008/11/04 04:18:22 version 1.215, 2008/11/19 17:38:26
Line 53  with <recipient username="$uname:$udom"> Line 53  with <recipient username="$uname:$udom">
 Domain Coordinator e-mail for the storage of information about  Domain Coordinator e-mail for the storage of information about
 recipients of the message/e-mail.  recipients of the message/e-mail.
   
 =head1 FUNCTIONS  =head1 SUBROUTINES
   
 =over 4  =over
   
   =pod
   
   =item packagemsg()
   
   Package
   
   =item get_course_context()
   
   =item unpackagemsg()
   
   Unpack message into a hash
   
   =item buildmsgid()
   
   Get info out of msgid
   
   =item unpackmsgid()
   
   =item sendemail()
   
   =item sendnotification()
   
   Send notification emails
   
   =item newmail()
   
   Check for email
   
   =item author_res_msg()
   
   Automated message to the author of a resource
   
   =item * B<author_res_msg($filename, $message)>: Sends message $message to the owner
       of the resource with the URI $filename.
   
   =item retrieve_author_res_msg()
   
   Retrieve author resource messages
   
   =item del_url_author_res_msg()
   
   Delete all author messages related to one URL
   
   =item clear_author_res_msg()
   
   Clear out all author messages in URL path
   
   =item all_url_author_res_msg()
   
   Return hash with URLs for which there is a resource message
   
   =item store_instructor_comment()
   
   Add a comment to the User Notes screen
   
   =item user_crit_msg_raw()
   
   Critical message to a user
   
   =item user_crit_msg()
   
   New routine that respects "forward" and calls old routine
   
   =item * B<user_crit_msg($user, $domain, $subject, $message, $sendback, $nosentstore,$recipid,$attachmenturl)>: 
       Sends a critical message $message to the $user at $domain.  If $sendback
       is true,  a receipt will be sent to the current user when $user receives 
       the message.
   
       Additionally it will check if the user has a Forwarding address
       set, and send the message to that address instead
   
       returns 
         - in array context a list of results for each message that was sent
         - in scalar context a space seperated list of results for each 
              message sent
   
   
   =item user_crit_received()
   
   Critical message received
   
   =item user_normal_msg_raw()
   
   Normal communication
   
   =item user_normal_msg()
   
   New routine that respects "forward" and calls old routine
   
   =item * B<user_normal_msg($user, $domain, $subject, $message, $citation,
          $baseurl, $attachmenturl, $toperm, $sentmessage, $symb, $restitle,
          $error,$nosentstore,$recipid)>:
    Sends a message to the  $user at $domain, with subject $subject and message $message.
   
       Additionally it will check if the user has a Forwarding address
       set, and send the message to that address instead
   
       returns
         - in array context a list of results for each message that was sent
         - in scalar context a space seperated list of results for each
              message sent
   
   =item store_sent_mail()
   
   =item store_recipients()
   
   =item foldersuffix()
   
   =item get_user_folders()
   
   User-defined folders 
   
   =item secapply()
   
   =item B<decide_receiver($feedurl,$author,$question,$course,$policy,$defaultflag)>:
   
   Arguments
     $feedurl - /res/ url of resource (only need if $author is true)
     $author,$question,$course,$policy - all true/false parameters
       if true will attempt to find the addresses of user that should receive
       this type of feedback (author - feedback to author of resource $feedurl,
       $question 'Resource Content Questions', $course 'Course Content Question',
       $policy 'Course Policy')
       (Additionally it also checks $env for whether the corresponding form.<name>
       element exists, for ease of use in a html response context)
      
     $defaultflag - (internal should be left blank) if true gather addresses 
                    that aren't for a section even if I have a section
                    (used for reccursion internally, first we look for
                    addresses for our specific section then we recurse
                    and look for non section addresses)
   
   Returns
     $typestyle - string of html text, describing what addresses were found
     %to - a hash, which keys are addresses of users to send messages to
           the keys will look like   name:domain
   
   =item user_lang()
   
   =back
   
 =cut  =cut
   
Line 74  use LONCAPA qw(:DEFAULT :match); Line 215  use LONCAPA qw(:DEFAULT :match);
     }      }
 }  }
   
 # ===================================================================== Package  
   
 sub packagemsg {  sub packagemsg {
     my ($subject,$message,$citation,$baseurl,$attachmenturl,      my ($subject,$message,$citation,$baseurl,$attachmenturl,
Line 209  sub get_course_context { Line 350  sub get_course_context {
     return $course_context;      return $course_context;
 }  }
   
 # ================================================== Unpack message into a hash  
   
 sub unpackagemsg {  sub unpackagemsg {
     my ($message,$notoken,$noattachmentlink)=@_;      my ($message,$notoken,$noattachmentlink)=@_;
Line 247  sub unpackagemsg { Line 387  sub unpackagemsg {
     return %content;      return %content;
 }  }
   
 # ======================================================= Get info out of msgid  
   
 sub buildmsgid {  sub buildmsgid {
     my ($now,$subject,$uname,$udom,$msgcount,$course_context,$symb,$error,$pid) = @_;      my ($now,$subject,$uname,$udom,$msgcount,$course_context,$symb,$error,$pid) = @_;
Line 393  to access the full message.',$url); Line 532  to access the full message.',$url);
         &sendemail($to,$subject,$body,$touname,$toudom,$user_lh);          &sendemail($to,$subject,$body,$touname,$toudom,$user_lh);
     }      }
 }  }
 # ============================================================= Check for email  
   
 sub newmail {  sub newmail {
     if ((time-$env{'user.mailcheck.time'})>300) {      if ((time-$env{'user.mailcheck.time'})>300) {
Line 404  sub newmail { Line 543  sub newmail {
     return 0;      return 0;
 }  }
   
 # =============================== Automated message to the author of a resource  
   
 =pod  
   
 =item * B<author_res_msg($filename, $message)>: Sends message $message to the owner  
     of the resource with the URI $filename.  
   
 =cut  
   
 sub author_res_msg {  sub author_res_msg {
     my ($filename,$message)=@_;      my ($filename,$message)=@_;
Line 433  sub author_res_msg { Line 565  sub author_res_msg {
     return 'no_host';      return 'no_host';
 }  }
   
 # =========================================== Retrieve author resource messages  
   
 sub retrieve_author_res_msg {  sub retrieve_author_res_msg {
     my $url=shift;      my $url=shift;
Line 453  sub retrieve_author_res_msg { Line 585  sub retrieve_author_res_msg {
 }  }
   
   
 # =============================== Delete all author messages related to one URL  
   
   
 sub del_url_author_res_msg {  sub del_url_author_res_msg {
     my $url=shift;      my $url=shift;
Line 467  sub del_url_author_res_msg { Line 600  sub del_url_author_res_msg {
     }      }
     return &Apache::lonnet::del('nohist_res_msgs',\@delmsgs,$domain,$author);      return &Apache::lonnet::del('nohist_res_msgs',\@delmsgs,$domain,$author);
 }  }
 # =================================== Clear out all author messages in URL path  
   
 sub clear_author_res_msg {  sub clear_author_res_msg {
     my $url=shift;      my $url=shift;
Line 481  sub clear_author_res_msg { Line 614  sub clear_author_res_msg {
     }      }
     return &Apache::lonnet::del('nohist_res_msgs',\@delmsgs,$domain,$author);      return &Apache::lonnet::del('nohist_res_msgs',\@delmsgs,$domain,$author);
 }  }
 # ================= Return hash with URLs for which there is a resource message  
   
   
 sub all_url_author_res_msg {  sub all_url_author_res_msg {
     my ($author,$domain)=@_;      my ($author,$domain)=@_;
Line 493  sub all_url_author_res_msg { Line 627  sub all_url_author_res_msg {
     return %returnhash;      return %returnhash;
 }  }
   
 # ====================================== Add a comment to the User Notes screen  
   
 sub store_instructor_comment {  sub store_instructor_comment {
     my ($msg,$uname,$udom) = @_;      my ($msg,$uname,$udom) = @_;
Line 508  sub store_instructor_comment { Line 641  sub store_instructor_comment {
     return $result;      return $result;
 }  }
   
 # ================================================== Critical message to a user  
   
 sub user_crit_msg_raw {  sub user_crit_msg_raw {
     my ($user,$domain,$subject,$message,$sendback,$toperm,$sentmessage,      my ($user,$domain,$subject,$message,$sendback,$toperm,$sentmessage,
Line 562  sub user_crit_msg_raw { Line 694  sub user_crit_msg_raw {
     return $status;      return $status;
 }  }
   
 # New routine that respects "forward" and calls old routine  
   
 =pod  
   
 =item * B<user_crit_msg($user, $domain, $subject, $message, $sendback, $nosentstore,$recipid,$attachmenturl)>:   
     Sends a critical message $message to the $user at $domain.  If $sendback  
     is true,  a receipt will be sent to the current user when $user receives   
     the message.  
   
     Additionally it will check if the user has a Forwarding address  
     set, and send the message to that address instead  
   
     returns   
       - in array context a list of results for each message that was sent  
       - in scalar context a space seperated list of results for each   
            message sent  
   
 =cut  
   
 sub user_crit_msg {  sub user_crit_msg {
     my ($user,$domain,$subject,$message,$sendback,$toperm,$sentmessage,      my ($user,$domain,$subject,$message,$sendback,$toperm,$sentmessage,
Line 608  sub user_crit_msg { Line 723  sub user_crit_msg {
     return join(' ',@status);      return join(' ',@status);
 }  }
   
 # =================================================== Critical message received  
   
 sub user_crit_received {  sub user_crit_received {
     my $msgid=shift;      my $msgid=shift;
Line 644  sub user_crit_received { Line 758  sub user_crit_received {
     return $status;      return $status;
 }  }
   
 # ======================================================== Normal communication  
   
   
 sub user_normal_msg_raw {  sub user_normal_msg_raw {
     my ($user,$domain,$subject,$message,$citation,$baseurl,$attachmenturl,      my ($user,$domain,$subject,$message,$citation,$baseurl,$attachmenturl,
Line 705  sub user_normal_msg_raw { Line 820  sub user_normal_msg_raw {
     return $status;      return $status;
 }  }
   
 # New routine that respects "forward" and calls old routine  
   
 =pod  
   
 =item * B<user_normal_msg($user, $domain, $subject, $message, $citation,  
        $baseurl, $attachmenturl, $toperm, $sentmessage, $symb, $restitle,  
        $error,$nosentstore,$recipid)>:  
  Sends a message to the  $user at $domain, with subject $subject and message $message.  
   
     Additionally it will check if the user has a Forwarding address  
     set, and send the message to that address instead  
   
     returns  
       - in array context a list of results for each message that was sent  
       - in scalar context a space seperated list of results for each  
            message sent  
   
 =cut  
   
 sub user_normal_msg {  sub user_normal_msg {
     my ($user,$domain,$subject,$message,$citation,$baseurl,$attachmenturl,      my ($user,$domain,$subject,$message,$citation,$baseurl,$attachmenturl,
  $toperm,$sentmessage,$symb,$restitle,$error,$nosentstore,$recipid)=@_;   $toperm,$sentmessage,$symb,$restitle,$error,$nosentstore,$recipid)=@_;
Line 807  sub store_recipients { Line 903  sub store_recipients {
     }      }
 }  }
   
 # =============================================================== Folder suffix  
   
 sub foldersuffix {  sub foldersuffix {
     my $folder=shift;      my $folder=shift;
Line 822  sub foldersuffix { Line 917  sub foldersuffix {
     return $suffix;      return $suffix;
 }  }
   
 # ========================================================= User-defined folders   
   
 sub get_user_folders {  sub get_user_folders {
     my ($folder) = @_;      my ($folder) = @_;
Line 863  sub secapply { Line 957  sub secapply {
     return '';      return '';
 }  }
   
 =pod   
   
 =item * B<decide_receiver($feedurl,$author,$question,$course,$policy,$defaultflag)>:  
   
 Arguments  
   $feedurl - /res/ url of resource (only need if $author is true)  
   $author,$question,$course,$policy - all true/false parameters  
     if true will attempt to find the addresses of user that should receive  
     this type of feedback (author - feedback to author of resource $feedurl,  
     $question 'Resource Content Questions', $course 'Course Content Question',  
     $policy 'Course Policy')  
     (Additionally it also checks $env for whether the corresponding form.<name>  
     element exists, for ease of use in a html response context)  
      
   $defaultflag - (internal should be left blank) if true gather addresses   
                  that aren't for a section even if I have a section  
                  (used for reccursion internally, first we look for  
                  addresses for our specific section then we recurse  
                  and look for non section addresses)  
   
 Returns  
   $typestyle - string of html text, describing what addresses were found  
   %to - a hash, which keys are addresses of users to send messages to  
         the keys will look like   name:domain  
   
 =cut  
   
 sub decide_receiver {  sub decide_receiver {
     my ($feedurl,$author,$question,$course,$policy,$defaultflag) = @_;      my ($feedurl,$author,$question,$course,$policy,$defaultflag) = @_;
     &Apache::lonenc::check_decrypt(\$feedurl);      &Apache::lonenc::check_decrypt(\$feedurl);
Line 951  sub user_lang { Line 1018  sub user_lang {
     return $user_lh;      return $user_lh;
 }  }
   
 =pod  
   
 =back  
   
 =cut  
   
 1;  1;
 __END__  __END__
   

Removed from v.1.214  
changed lines
  Added in v.1.215


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>