Rev 2309 | Blame | Compare with Previous | Last modification | View Log | RSS feed
# Variable calculations should be done in this file.
# It is read and interpreted by wims for all valid calls to the module.
wims_prefix=mb user
!read adm/class/limits
titlelim=30
desclim=512
max_title=$titlelim
min_title=4
wims_form_method=post
wims_helper=chapter=3&open=3_creat#creat
!if $toomany=$empty
n=!recordcnt wimshome/log/forums/.index
!if $n>=$wims_forum_limit
toomany=yes
!exit
!endif
toomany=no
!endif
today=!char 1 to 8 of $wims_now
thisyear=!char 1 to 4 of $today
thismonth=!char 5,6 of $today
thisday=!char 7,8 of $today
!default exp_day=15
!default exp_month=08
!if $thismonth>7
!default exp_year=$[$thisyear+1]
!else
!default exp_year=$thisyear
!endif
!if $step=$empty or $step=0
code=
password=
passsup=
!endif
!if $step=1
code=
!for i in title,description,supervisor,email,password,passsup
$i=!translate internal ,"!$$<> to $ $ in $($i)
$i=!singlespace $($i)
$i=!trim $($i)
!if $($i)=$empty
error=has_empty
!exit
!endif
n=!charcnt $($i)
!if $n<$(min_$i)
error=too_short
error_subject=$i
!exit
!endif
!if $n>$(max_$i)
$i=!char 1 to $(max_$i) of $($i)
warn=too_long
warn_subject=$i
!endif
!next i
!for i in password,passsup
test=!text select $char_passwd in $($i)
!if $test!=$($i)
error=bad_pass
error_subject=$i
!exit
!endif
!next i
temoin=!tolower $title
existing=!recordcnt wimshome/log/forums/.index
!for i=1 to $existing
test=!record $i of wimshome/log/forums/.index
test=!item 3 to -1 of $test
test=!replace , $ by , in $test
test=!tolower $test
!if $test=$temoin
error=existing
!exit
!endif
!next i
!if $password isin $title $description $supervisor or\
$passsup isin $title $description $supervisor
error=apparent_password
!exit
!endif
exp_day=!char 2,3 of $[100+abs(floor($exp_day))]
exp_month=!char 2,3 of $[100+abs(floor($exp_month))]
exp_year=!char 1 to 4 of $[abs(floor($exp_year))]
!if N isin $exp_day$exp_month$exp_year or \
$exp_day<1 or $exp_month<1 or $exp_year<$thisyear or \
$exp_day>31 or $exp_month>12 or $exp_year>$thisyear+1
error=bad_date
!exit
!endif
expiration=$exp_year$exp_month$exp_day
!if $expiration<=$today
error=anti_date
!exit
!endif
email=!word -1 of $email
email=!translate internal !$$"<>,;% to $ $ in $email
!if @ notin $email
error=bad_email
!exit
!endif
mailtest=!translate @ to $\
$ in $email
mailtest=!line 2 of $mailtest
!if . notin $mailtest
error=bad_email
!exit
!endif
pword=$password
psup=$passsup
password=
passsup=
!exit
!endif
!if $step=2
!if $password!=$pword or $passsup!=$psup
error=pass_discord
!exit
!endif
:newcode
code=!randint 11111,10^7-1
mb_defined=
!defread wimshome/log/forums/$code/.def
!if $mb_defined=yes
!goto newcode
!endif
!read lang/mail.proc.$modu_lang
typecode=
!exit
!endif
!if $step=3
!if $code=$empty or $code!=$typecode
error=bad_code
!exit
!endif
mb_defined=
!defread wimshome/log/forums/$code/.def
!if $mb_defined=yes
error=duplicate
!exit
!endif
lastname=!word -1 of $supervisor
firstname=!word 1 to -2 of $supervisor
lastname=!char 1 to 30 of $lastname
firstname=!char 1 to 50 of $firstname
!mexec mkforum
!writefile wimshome/log/forums/$code/.def !set mb_password=$pword\
!set mb_supervisor=$supervisor\
!set mb_title=$title\
!set mb_description=$description\
!set mb_email=$email\
!set mb_lang=$lang\
!set mb_readpolicy=user\
!set mb_sendpolicy=user\
!set mb_creation=$today\
!set mb_defined=yes
psup=!passcrypt $psup
!writefile wimshome/log/forums/$code/.users/supervisor !set user_lastname=$lastname\
!set user_firstname=$firstname\
!set user_password=$psup\
!set user_email=$email\
!set user_exists=yes
!writefile wimshome/log/forums/$code/.userlist
mb_defined=
!defread wimshome/log/forums/$code/.def
!if $mb_defined!=yes
error=define_fail
!exit
!endif
!appendfile wimshome/log/forums/.index :$code,$lang,$title
wims_module_log=created $code by $email
!exit
!endif