Subversion Repositories wimsdev

Rev

Rev 4733 | Rev 13679 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed


!if $send_right<2
 !if $s_hidecode=$empty
  !if $c_smail=$empty
   error=email_required
   !exit
  !endif
  !if @ notin $c_smail or . notin $c_smail or , isin $c_smail
   error=bad_email
   !exit
  !endif
  s_hidecode=!randint 10^5,10^8-1
  !read scripts/mail.proc
  s_status=ask
  !exit
 !else
  s_code=!nospace $s_code
  !if $s_code!=$s_hidecode
   s_hidecode=
   error=bad_sendcode
   !exit
  !endif
  s_hidecode=
 !endif
!endif

c_subject=!trim $c_subject
!if $c_subject=$empty
 error=no_subject
 job=compose
 !exit
!endif

 now=!date +%Y%m%d%H%M%S
 month=!char 1 to 6 of $now
 day=!char 7,8 of $now
 hour=!char 9,10 of $now
 min=!char 11,12 of $now
 sec=!char 13,14 of $now
 time=$hour:$min:$sec
 !default c_sender=Anonymous
 !if @ notin $c_smail or . notin $c_smail or , isin $c_smail
  c_smail=
 !endif
 !for n in sender,subject
  c_$n=!replace internal ! by &#33; in $(c_$n)
 !next n
 t=!recordcnt $forumdir/$month/.msglist
 ident=$[$t+1]
 !if $c_prec!=$empty
  :recheck
  o_=!translate / to _ in $c_orig
  t_=!record 0 of $forumdir/.threads/$o_
  n_=!linecnt $t_
  !if $n_>$thread_lim 
   !if $c_prec!=$c_orig
    c_orig=$c_prec
    !goto recheck
   !else
    !if $n_>1.5*$thread_lim
     c_orig=
    !endif
   !endif
  !endif
  !if $c_orig=$empty
   !goto new
  !endif
  !appendfile $forumdir/.threads/$o_ $month/$ident $c_prec
  prec=$c_prec
  orig=$c_orig
  c_prec=$(c_prec)O$c_orig
 !else
  :new
  c_prec=O$month/$ident
  prec=$c_prec
  orig=$c_prec
 !endif

 
 content=$month,$day,$time,$ident,$c_prec,$c_sender,$c_smail,$c_subject
 n_=!charcnt $content
 !if $n_>130
  c_=!char 1 to 129 of $content
  content=$c_...
 !endif

 m_supervisor=!getdef user_email in wimshome/log/classes/$wims_class$for_level/supervisor
 c_desc=!getdef class_description in wimshome/log/classes/$wims_class$for_level/.def
 c_super=!getdef class_superclass in wimshome/log/classes/$wims_class$for_level/.def
 !if $c_super!=$empty
   m_add=participant
 !else
   m_add=supervisor
   c_super=$wims_class
 !endif

 msg=!mexec scripts/msgsrc.sh
 
 !for a in $prohibited_words
   !if $a isin $msg
     error=prohibited
     !exit
   !endif
 !next
 list_mail=$m_supervisor
 !if $c_super!=$wims_class$for_level
  !set other_teachers=!record 0 of wimshome/log/classes/$wims_class$for_level/.teacherlist
  !set other_teachers=!column 3 of $other_teachers
  !for ot in $other_teachers
   m_ot=!getdef user_email in wimshome/log/classes/$c_super/.users/$ot
   !if $m_ot !=$empty
    list_mail=!append item $m_ot to $list_mail
   !endif
  !next
 !endif
 list_mail=!listuniq $list_mail
 !for m_ in $list_mail
   !mailto $m_\
 "WIMS $n_forum $c_desc"\
 $n_warning\
 $c_subject\
 $msg\
 \
 \
 \
 <a href="$wims_ref_name?module=adm/class/classes&+type=auth$m_add&+class=$c_super">\
 class=$c_super - $wims_class$for_level</a>
 !next
 !mexec scripts/send.sh
 !appendfile $forumdir/$month/.msglist : $content
 !appendfile $forumdir/.msglist :$month $ident $prec $orig
 new=!record 0 of $forumdir/.newlist
 n_=!linecnt $new
 !if $n_>=$list_lim
  new=!line $n_-($list_lim)+2 to -1 of $new
 !endif
 new=!append line $month $ident to $new
 !writefile $forumdir/.newlist $new
 !if $month notitemof $archlist
  arch=!items2lines $archlist
  arch=!append line $month to $arch
  arch=!sort line $arch
  !writefile $forumdir/.archives $arch
 !endif