Subversion Repositories wimsdev

Rev

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

!if robot isin $session or _ isin $session
 !exit
!endif

!read adm/class/classlang names.phtml

listlim=100
wims_prefix=class user tmp
wims_module_log=$type $keyword
wims_helper=chapter=3
wims_form_method=post
wims_ref_otherlangs=yes
!default class_bgcolor=$wims_bgcolor
!default class_bgimg=$wims_bgimg
!default class_css=$wims_css

!if $class!=$empty
## output auth_method_list, aut_idp_method_list, auth_method, aut_idp_method
  !read adm/class/initclass $class,auth
!endif
!!useful ! if $class=$empty
superclass=!text remove . in $superclass
!if $wims_superclass!=$empty
 superclass=$wims_superclass
!endif

!default superclass2=$superclass
!read tabletheme
!if $auth_method=$empty and $class!=$empty
 !bound type within supervisor,participant,example,\
        authsupervisor,authparticipant,forgetpwd default example
!else
 !bound type within supervisor,participant,example,\
        authsupervisor,authparticipant default example
!endif
!if $type=example
 superclass=
!endif

!if $type=forgetpwd
 !changeto forgetpwd.proc
!endif

!if $superclass=$empty
 indf=wimshome/log/classes/.index
 limited=yes
!else
 indf=wimshome/log/classes/$superclass/.subclasses
 keyword=
!endif
keyword=!items2words $keyword
keyword=!trim $keyword
kw=!words2items $keyword
kw=!deaccent $kw
kw=!tolower $kw
ccnt=!recordcnt $indf
!if $wims_class!=$empty
 !read var.direct
 !if $error!=$empty
  !exit
 !endif
!endif

clcnt=0
encnt=0
lacnt=0
excnt=0
listla=
!if $type=example
 !for i=1 to $ccnt
  l=!record $i of $indf
  c=!item 1 of $l
  !if NaN notin $[$c] and $c<10000
   ltest=!defof class_lang in wimshome/log/classes/$c/.def
   !advance excnt
   !if $ltest=$module_language
    laclasses=!append line $l to $laclasses
    !advance lacnt
   !else
    listla=!append item $ltest to $listla
    !if $ltest=en
     enclasses=!append line $l to $enclasses
     !advance encnt
    !endif
   !endif
  !endif
 !next i
 !if $lacnt>0
  clcnt=$lacnt
  classes=$laclasses
 !else
  clcnt=$encnt
  classes=$enclasses
 !endif
 listla=!listuniq $listla
 listla=!replace internal , by </tt>, <tt> in <tt>$listla</tt>
 othercnt=$[$excnt-$lacnt]
!endif

!if $type iswordof supervisor participant
 sccnt=0
 !if $wims_class!=$empty
  !defread wimshome/log/classes/$wims_class/.def
  !default class_type=0
  !if $class_type>=2
   !read adm/class/userdef classes,$wims_class,$wims_user
   supervisable=!defof user_supervisable in $userdef
   super_type=!defof class_type in wimshome/log/classes/$wims_superclass/.def
   !ifval $super_type=4
    stype=$[$super_type]
    sp=!translate internal / to , in $superclass2
    splevel=!itemcnt $sp
    sparent=!item 1 to -2 of $sp
    sparent=!translate internal , to / in $sparent
    sparent=!nospace $sparent
    !if $splevel=1
     classes1=!record 0 of wimshome/log/classes/$superclass2/levels
    !endif
    !if $splevel=2
     classes1=!record 0 of wimshome/log/classes/$superclass2/classes
     classes2=!record 0 of wimshome/log/classes/$superclass2/programs
     !!classes1=!append line $classes2 to $classes1
    !endif
    !if $splevel=3
     classes1=!record 0 of wimshome/log/classes/$superclass2/courses
    !endif
    clcnt=!linecnt $classes1
    clcnt_pr=!linecnt $classes2
    classes=
    classes_pr=
    !for i=1 to $clcnt
     l=!line $i of $classes1
     !distribute items $l into code,Sup,name,sup
     classes=!append line $wims_superclass/$code,,,$name to $classes
    !next i
    !for i=1 to $clcnt_pr
     l=!line $i of $classes2
     !distribute items $l into code,Sup,name,sup
     classes_pr=!append line $wims_superclass/$code,,,$name to $classes_pr
    !next i
    !exit
   !endif
  !endif
 !endif
 !for i=1 to $ccnt
  l=!record $i of $indf
  !distribute items $l into code,expire,inst,cl,la,ty
  l1=!deaccent $l
  l1=!tolower $l1
  c1=!text extract 0123456789 in $code
  k=yes
  !for w in $kw
   !if $w notin $l1
    k=no
    !break
   !endif
  !next w
  !!delete condition on language in a superclass
  !if (/ isin $code or $c1>9999) and ($la=$module_language or $class_type!=) and\
   ($code!=$wims_class or ($wims_user!=supervisor and $type=supervisor)) and \
   $k = yes
    !if $ty isin 24
      sclasses=!append line $l to $sclasses
      !advance sccnt
    !else
      classes=!append line $l to $classes
      !advance clcnt
    !endif
  !endif
  !if $limited = yes and $clcnt+$sccnt > $listlim
   overflow=yes
   !break
  !endif
 !next i
 !if $wims_user!=$empty and $wims_supertype iswordof 2 4
  sccnt=0
 !endif
!endif

!if $type iswordof authparticipant authsupervisor
 !reset class_defined
 class=!text remove . in $class
 !defread wimshome/log/classes/$class/.def
 !!#### la seconde condition pour entrer dans la classe en tant que supervisor :
 !!#### le user est supervisor de cette classe, ou wims_realuser est supervisor ou vide (cas de l'administrateur) ou la classe est la classe test
 

 !if $type=authsupervisor and ($class isitemof $wims_supervise or $wims_realuser=$empty or $wims_realuser=supervisor or /0/ isin $class/)
  !default auth_user=supervisor
 !endif

 !if $save_logincgu!=$empty
   auth_user=$save_logincgu
 !endif

 superclass=!defof class_superclass in wimshome/log/classes/$class/.def
 !default superclass=$class

 !if $class_defined=yes and ($auth_user!=$empty or $auth_method isitemof $auth_method_list)
   !changeto var.auth
 !endif
!endif