[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/var/www/se3/echanges/ -> distribuer.php (source)

   1  <?php
   2  
   3      /** 
   4  
   5      * Deploie des devoirs ou documents aux utilisateur
   6      
   7      * @Version $Id: distribuer.php 8601 2015-03-16 20:17:16Z plouf $
   8         * @Projet LCS-SE3
   9     
  10         * @Auteurs Jean Gourdin
  11     
  12         * @Licence Distribue selon les termes de la licence GPL
  13      
  14          */
  15  
  16  
  17      /**
  18  
  19      * file: distribuer.php
  20      * @Repertoire: echanges
  21      */
  22  
  23  require_once  ("lang.inc.php");
  24  bindtextdomain('se3-echange',"/var/www/se3/locale");
  25  textdomain ('se3-echange');
  26  
  27  ?>
  28  
  29  <html>
  30    <head>
  31      <title><?php echo gettext("Distribution d'un texte aux &#233;l&#232;ves"); ?></title>
  32      <link href="style/style.css" type="text/css" rel="StyleSheet">
  33  
  34  <script language=javascript>
  35  
  36  /**
  37  * Test si un choix sur le nombre et le type de devoir a ete fait
  38  * @language Javascript
  39  * @Parametres
  40  * @Return true si le choix est fait
  41  * @Return false si pas de choix
  42  */
  43  
  44  function verif (f) {
  45   n = false; typ=false; dev=false; alerte="";
  46  for(i=1;i<f.nombre.length;i++)
  47  if (f.nombre[i].selected)
  48      n=true;
  49  if (! n) alerte += "<?php echo gettext("Choisir un nombre de fichiers &agrave; distribuer"); ?>\n";  
  50  for(i=0;i<f.type.length;i++)
  51  if (f.type[i].checked)
  52     typ=true;
  53  if (! typ) alerte += "<?php echo gettext("Choisir un type de distribution"); ?>\n";    
  54  for(i=0;i<f.devoir.length;i++)  
  55  if (f.devoir[i].checked)
  56     dev=true;
  57  if (! dev) alerte += "<?php echo gettext("Pr&#233;ciser s'il s'agit d'un devoir"); ?>\n";    
  58  
  59  if ( n && typ && dev)
  60    return true;
  61  else {
  62    alert(alerte);return false;
  63    }
  64  }
  65  
  66  
  67  /**
  68  * Test si un choix d'une classe a ete fait
  69  * @language Javascript
  70  * @Parametres
  71  * @Return true si le choix est fait
  72  * @Return false si pas de choix
  73  */
  74  
  75  function verif2(f) {
  76  // verif pour type = 2
  77  var liste_classe="";
  78  var indic =false;
  79  for (i=0 ;i< f.classes.length; i++)
  80  if( f.classes.options[i].selected) {
  81     indic=true;
  82     liste_classe += f.classes.options[i].value+"#";
  83   }
  84  if (liste_classe=='') {
  85    alert("<?php echo gettext("Choisir au moins une classe"); ?>");return false;
  86    }
  87  else
  88    f.liste_classe.value= liste_classe;  
  89  return indic;
  90  }
  91  
  92  /**
  93  * Test si un choix d'une classe  a ete fait
  94  * @language Javascript
  95  * @Parametres
  96  * @Return true si le choix est fait
  97  * @Return false si pas de choix
  98  */
  99  
 100  function verif1(f) {
 101  // verif pour type = 1 ET NON devoir
 102   var liste_classe="";
 103   c =false; d=false ; alerte="";
 104  for (i=0 ;i< f.classes.length; i++)
 105  if( f.classes.options[i].selected) {
 106     c=true;
 107     liste_classe += f.classes.options[i].value+"#";
 108    }
 109  if (liste_classe=="") 
 110    alerte += "<?php echo gettext("Choisir au moins une classe"); ?>\n"; 
 111  else
 112    f.liste_classe.value= liste_classe;  
 113  if ( c  )
 114    return true;
 115  else {
 116    alert(alerte);return false;
 117    }
 118  }
 119  
 120  /**
 121  * Test si identifiant, nom et date de retour sont corrects
 122  * @language Javascript
 123  * @Parametres
 124  * @Return true si le choix est fait
 125  * @Return false si pas de choix
 126  */
 127  
 128  function verif1d(f) {
 129  // verif pour type = 1 ET devoir
 130   var liste_classe="";
 131   var alerte = "";
 132   c =false; d=false ; r=false; 
 133  for (i=0 ;i< f.classes.length; i++)
 134  if( f.classes.options[i].selected) {
 135     c=true;
 136     liste_classe += f.classes.options[i].value+"#";
 137    }
 138  if (liste_classe=="") 
 139    alerte += "<?php echo gettext("Choisir au moins une classe"); ?>\n"; 
 140  else
 141    f.liste_classe.value= liste_classe;  
 142  
 143  if( f.id_devoir.value !='')
 144    d=true;
 145  if (! d) alerte += "<?php echo gettext("Choisir un identifiant pour le devoir"); ?>\n";  
 146  
 147  if( f.an_retour.value !='' || f.mois_retour.value !='' || f.jour_retour.value !='' )
 148    r=true;
 149  if (! r) alerte += "<?php echo gettext("Choisir une date de retour du devoir"); ?>\n";  
 150  
 151  if ( c && d && r )
 152    return true;
 153  else {
 154    alert(alerte);return false;
 155    }
 156  }
 157  
 158  /**
 159  * Test si le nom et la date du devoir sont corrects
 160  * @language Javascript
 161  * @Parametres
 162  * @Return true si le choix est fait
 163  * @Return false si pas de choix
 164  */
 165  
 166  function verif_devoir(f) {
 167  result=true;alerte='';
 168  reg=/[\s\W]/;
 169  if( f.id_devoir.value =='') { 
 170   result= false;
 171   alerte += "<?php echo gettext("Choisir un identifiant pour le devoir"); ?>\n";  
 172   }
 173  if (reg.test(f.id_devoir.value) ) {
 174    result= false;
 175     alerte += "<?php echo gettext("Identifiant de devoir sans espace, ni caract&egrave;res sp&#233;ciaux"); ?>\n";  
 176   }
 177  if( f.an_retour.value =='' || f.mois_retour.value =='' || f.jour_retour.value =='' ) {
 178    result= false;
 179    alerte += "<?php echo gettext("Choisir une date correcte de retour du devoir"); ?>\n";  
 180   }
 181   if (result==false) 
 182     alert(alerte);
 183   return result;
 184  }
 185  </script>
 186  </head>
 187  
 188  <?php
 189  
 190  require("entete.inc.php");
 191  require ("ldap.inc.php");
 192  require ("fonc_outils.inc.php");
 193  
 194  // recuperer les parametres passes par POST
 195  foreach ($_POST as $cle=>$val) {
 196    $$cle = $val;
 197  }
 198  
 199  
 200  
 201  //aide
 202  $_SESSION["pageaide"]="L%27interface_prof#Ressources_et_partages";
 203  
 204  $nbMax=5;
 205  $self="distribuer.php";
 206  $now =date("Y-m-d");
 207  $tab_mois =array(9=>gettext("Septembre"),10=>gettext("Octobre"),11=>gettext("Novembre"),12=>gettext("D&#233;cembre"),1=>gettext("Janvier"),2=>gettext("F&#233;vrier"),3=>gettext("Mars"),4=>gettext("Avril"),5=>gettext("Mai"),6=>gettext("Juin"),7=>gettext("Juillet"),8=>gettext("Ao&#251;t"));
 208  $lib_mois =array(9=>"Sept",10=>"Oct",11=>"Nov",12=>"D&#233;c",1=>"Jan",2=>"F&#233;v",3=>"Mars",4=>"Avr",5=>"Mai",6=>"Juin",7=>"Juil",8=>"Ao&#251;t");
 209  $nbjours=array("09"=>30,"10"=>31,"11"=>30,"12"=>31,"01"=>31,"02"=>28,"03"=>31,"04"=>30,"05"=>31,"06"=>30,"07"=>31,"08"=>31) ;
 210  
 211  // trouver les classes (et groupes) du prof
 212  $login=isauth();
 213  $classes=classes_prof($login);
 214  $nb_classes= count($classes);
 215  
 216  
 217  // affichage ECRAN 1 
 218  echo "<body >
 219      <h1>".gettext("Distribution de document(s)")." <font size=-2>(<em>".gettext("par")." $login, ".gettext("le ").affiche_date($now)."</em>)</font></h1>\n";
 220   if ($nb_classes==0) {
 221     echo gettext("Attention distribution impossible :")." $login ".gettext("n'a pas de classes !"); exit;
 222     }
 223   if (! $nombre ) {
 224      $form1="<h2>".gettext("Pr&#233;paration")."</h2>\n\n";
 225      $form1.="<form method=\"post\" name='formu' action=\"$self\">\n";
 226      $form1.="<table width='80%'>\n";
 227      $form1.="<tr><th align=\"left\"><h3>".gettext("Choisir le nombre de fichiers")."</h3></th>\n";
 228      $form1.="<td><select name='nombre' >";
 229      // onchange='if(verif(this.form)) formu.submit()'
 230      $form1.="<option value='0' checked>".gettext("Choisir")."</option>";
 231      for ($i=1; $i<= $nbMax; $i++)
 232           $form1.="<option value=$i>$i</option>";
 233      $form1.="</select></td></tr>\n";
 234  
 235      $form1.="<tr><td>&nbsp;</td><td>&nbsp;</td></tr>\n";
 236  
 237      $form1.="<tr><th align=\"left\" ><h3>".gettext("Choisir &#224; qui s'adressent les documents ")."<br>
 238      <ul><li>".gettext("classes enti&#232;res (ou sous-groupes)")."<br> 
 239      <li>".gettext("choix personnalis&#233; des &#233;l&#232;ves")."</ul></h3></th>\n";
 240      $form1.="<td><input type='radio' name='type' value=1 >".gettext("classe(s) enti&#232;re(s)")." <br>";
 241          // onclick='if(verif(this.form)) formu.submit()'>
 242      $form1.="<input type='radio' name='type' value=2 >".gettext("choix des &#233;l&#232;ves")."</td></tr>\n";
 243      $form1.="<tr><td>&nbsp;</td><td>&nbsp;</td></tr>\n";
 244  
 245      $form1.="<tr><th align=\"left\"><h3>".gettext("Distribution de documents :")."<br>
 246         <ul><li>".gettext("&#233;nonc&#233;s de devoir")." <br> 
 247         <li>".gettext("distribution sans retour ")."</ul></h3></th>\n";
 248      $form1.="<td><input type='radio' name='devoir' value=1 >".gettext("devoir")." <br>";
 249      $form1.="<input type='radio' name='devoir' value=0 >".gettext("simple distribution")."</td>\n";
 250  
 251          $form1.="<tr><td>&nbsp;</td><td>&nbsp;</td></tr>\n";    
 252      $form1.="<tr><th align=\"left\"><h3>".gettext("Valider ces choix")." </h3></th>\n";
 253      $form1.="<td><input type='button' name='valider' value='".gettext("Valider")."' onclick='if(verif(this.form)) formu.submit()'> </td>\n";
 254  
 255      $form1.="</tr></table></form>\n\n";
 256      echo $form1;
 257      }
 258  
 259  //////////////////////////   Debut traitement type = 1  --> Distrib classes entieres  //////////////////////////////
 260  
 261  if ( $type==1 ) {
 262  
 263  echo "<table width='100%'><tr><td>\n";  // debut tableau general
 264  
 265  echo "<form method=\"post\" name='formu3' action=\"distribution.php\" enctype=\"multipart/form-data\">";
 266  $form2 ="<h3>".gettext("Choisir les classes")."</h3>";
 267  $form2.="<table width='80%'><tr>\n";
 268  
 269  // $form2.="<td><select name='classes[]' multiple>";  <-- enlever les []
 270  $form2.="<td><select name='classes' multiple>";
 271  for ($c=0; $c< $nb_classes; $c++) {
 272     $form2.="<option value=".$classes[$c].">".$classes[$c]."</option>";
 273  }
 274  $form2.="</select></td>\n";
 275  $form2.="</tr></table><p>\n";
 276  echo $form2;
 277  
 278  echo "<h3>".gettext(" S&#233;lectionner ").($nombre==1?gettext("le fichier"):gettext("les")." $nombre ".gettext("fichiers"))."</h3>";
 279  echo "<table width='100%'>";
 280  for ($i=1; $i<= $nombre; $i++) {
 281      $f="fich$i";
 282      echo "<tr><td align='left'><font size='-2'>".gettext("Fichier")." $i</font></td>\n";
 283      echo "<td><input type=\"file\" name=\"$f\" size='20'></td></tr><p>\n";
 284      echo "<INPUT TYPE='hidden' name='MAX_FILE_SIZE' value=20000000>";
 285  }
 286  echo "</table><p></p>\n\n";
 287  
 288  // rangee de validation
 289   
 290  echo "<table align='center' width=100%><tr><td align='center'>\n";
 291  
 292  if ($devoir) {
 293    echo "<h3>".gettext("Validation des choix et envoi")."</h3>\n";
 294    echo "<input type=\"hidden\" name='devoir' value=$devoir>";
 295    }
 296   else 
 297    echo "<h3 align='center'>".gettext("Distribuer ").($nombre==1?gettext("le fichier"):gettext("les")." $nombre ".gettext("fichiers")).gettext(" aux &#233;l&#232;ves choisis")."</h3>\n";
 298  
 299  if ($devoir)
 300   //  echo "<input type=\"button\" value=\"Envoyer\" onClick='if (verif_devoir(this.form)) formu3.submit()'>";
 301    echo "<input type=\"button\" value=\"".gettext("Distribuer le devoir")."\" onClick='if (verif1d(this.form)) formu3.submit()'>\n";
 302  else
 303    echo "<input type=\"button\" value=\"".gettext("Envoyer")."\" onClick='if (verif1(this.form)) formu3.submit()'>\n";
 304    // <input type=\"submit\" value=\"Envoyer\"></td></tr>
 305  
 306  echo "
 307    <input type=\"hidden\" name='nombre' value=$nombre>
 308    <input type=\"hidden\" name='liste_classe'>
 309    <input type=\"hidden\" name='type' value=$type>
 310    </table>\n\n";
 311  
 312  // fin cellule de gauche
 313  echo "</td>\n";
 314  
 315  
 316  if ($devoir) {
 317    echo "<td>";
 318    echo "<h3>".gettext("Choisir les caract&#233;ristiques du devoir")."</h3>
 319    <table >
 320    <tr><td><font size='-1'>".gettext("Nom du devoir")."<br>".gettext("(identifiant unique)")."</font></td>  <td> <input type='text' name='id_devoir' value =''></td></tr>
 321    <tr><td><font size='-1'>".gettext("Fichier &#224; rendre")."<br>".gettext("(par d&#233;faut \"devoir\")")."</font></
 322    td>  <td> <input type='text' name='nom_devoir' value ='devoir'></td></tr>
 323    <tr><td><font size='-1'>".gettext("Date de retour")."</font></td> <td>";
 324  
 325    choix_date($now,"retour");   
 326     
 327    echo "</td></tr>
 328      <tr><td><font size='-1'>".gettext("Commentaire")."</font></td><td><textarea cols=30 rows=3 name=description ></textarea></td></tr>
 329      </table></td>";
 330   }  
 331    echo "</form></tr></td></table>";
 332  }
 333  ///////////////////////////   fin type = 1 , debut type = 2           //////////////////////////////
 334  //////////////////////////    Debut type = 2  -->  Choix des eleves   //////////////////////////////
 335  
 336  if ( $type==2 ) {
 337  
 338   // d'abord choix des classes concernees //
 339    if (! $choix and ! isset($choix) ) {
 340      $form3 ="<form method=\"post\" name='formu2' action=\"distribuer.php\">";
 341      $form3.="<h3>".gettext(" Choisir les ").($choix?gettext("&#233;l&#232;ves"):gettext("classes"))."</h3>";
 342      $form3.="<table width='100%'><tr>";
 343  
 344     if ($nb_classes==0 )
 345      $form3.= " $login ".gettext("n'a pas de classes !");
 346     else {
 347      $form3.="<td width='40%'><select name='classes' multiple>";
 348      for ($c=0; $c< $nb_classes; $c++) {
 349          $form3.="<option value=".$classes[$c].">".$classes[$c]."</option>";
 350       }
 351      $form3.="</select></td>";
 352      $form3 .="<td><input type=\"button\" value=\"".gettext("Valider")."\" onClick='if (verif2(this.form)) formu2.submit()'></td>
 353       <input type=\"hidden\" name='nombre' value=$nombre>
 354       <input type=\"hidden\" name='type' value=$type>
 355       <input type=\"hidden\" name='devoir' value=$devoir>
 356       <input type=\"hidden\" name='choix' value=1>
 357       <input type=\"hidden\" name='liste_classe'></td>";
 358      $form3.="<td width='40%'>&nbsp;</td></tr></table></form>";
 359      echo $form3;
 360      }
 361    }
 362    // les classes ont ete choisies
 363     else {
 364     if (! empty($liste_classe)) {
 365        $liste_classe=trim($liste_classe);
 366        $liste_classe=preg_replace("/#$/","",$liste_classe);
 367        $classes=preg_split("/#/",$liste_classe);
 368       }
 369      $n=sizeof($classes);
 370  
 371      $form3 = "<form method=\"post\" name='formu3' action=\"distribution.php\" enctype=\"multipart/form-data\">";
 372      $form3.="<h3>".gettext(" Choisir les &#233;l&#232;ves dans les classes")." </h3>";
 373      $form3.="<table width='100%'>";
 374      for ($g=0; $g<$n; $g++) {
 375              $filtres[$g]="cn=$classes[$g]";
 376          $eleves="eleves".$g."[]";
 377          $uids = search_uids ($filtres[$g]);
 378          $people = search_people_groups ($uids,"","group");
 379          $nb_people=sizeof($people);
 380          if ($g % 3==0) $form3.="<tr>";
 381          $form3.="<td align='center'>".$classes[$g]."<br>";
 382          $form3.="<select name=$eleves multiple size=8>";
 383            for ($p=0; $p < $nb_people; $p++) {
 384   
 385              /// ici filtrer les profs s'il ne s'agit pas d'une classe
 386                 if (! preg_match("/^Classe_/", $classes[$g])) {
 387              // echo $people[$p]["uid"]."-->".est_prof($people[$p]["uid"])."<br>";
 388                   if (est_prof($people[$p]["uid"])) continue;
 389                 }
 390             /// fin modif
 391                  $form3.="<option value=".$people[$p]["uid"].">".$people[$p]["fullname"]."</option>";
 392          }
 393          $form3.="</select></td>";
 394          if ($g % 3 == 2) $form3.="</tr>";
 395      }
 396      $form3.="</table><p>";
 397      echo $form3;
 398  
 399      // fin table haut , debut table a 2 colonnes
 400       echo "<table width='100%'><tr><td>";
 401  
 402      echo "<h3>".gettext(" S&#233;lectionner ").($nombre==1?gettext("le fichier"):gettext("les $nombre fichiers"))."</h3>";
 403      echo "<table width='80%'>";
 404      for ($i=1; $i<= $nombre; $i++) {
 405          $f="fich$i";
 406          echo "<tr><td align='left'<font size='-2'>Fichier $i</font></td> ";
 407          echo "<td><input type=\"file\" name=\"$f\" size='20'></td></tr><p>";
 408          echo "<INPUT TYPE='hidden' name='MAX_FILE_SIZE' value=20000000>";
 409      }
 410      echo "</table><p></p>";
 411  
 412  if ($devoir) {
 413    echo "<h3>".gettext("Validation des choix et envoi")."</h3>";
 414    echo "<input type=\"hidden\" name='devoir' value=$devoir>";
 415    }
 416   else 
 417    echo "<h3 align='center'>".gettext("Distribuer").($nombre==1?gettext("le fichier"):gettext("les")." $nombre ".gettext("fichiers")).gettext(" aux &#233;l&#232;ves choisis")."</h3>";
 418      
 419      echo "<table  width=80%><tr><td align='center'>";
 420     // echo "<input type=\"button\" value=\"Envoyer\" onClick='if (verif3(this.form)) formu3.submit()'></td>";
 421     if ($devoir) 
 422        echo "<input type=\"submit\" value=\"".gettext("Distribuer le devoir")."\"></td>";
 423     else
 424        echo "<input type=\"submit\" value=\"".gettext("Envoyer")."\"></td>";
 425      echo "<input type=\"hidden\" name='nombre' value=$nombre>
 426       <input type=\"hidden\" name='type' value=$type>
 427       <input type=\"hidden\" name='n' value=$n>
 428        <input type=\"hidden\" name='liste_classe' value=$liste_classe>";
 429      echo "</tr></table>";
 430       
 431  // fin cellule de gauche
 432  echo "</td>";
 433  if ($devoir) {
 434    echo "<td>";
 435    echo "<h3>".gettext("Choisir les caract&#233;ristiques du devoir")."</h3>
 436    <table >
 437    <tr><td><font size='-1'>".gettext("Nom du devoir")."<br>".gettext("(identifiant unique)")."</font></td>
 438        <td> <input type='text' name='id_devoir' value =''></td></tr>
 439    <tr><td><font size='-1'>".gettext("Fichier &#224; rendre")."<br>".gettext("(par d&#233;faut \"devoir\")")."</font></td>
 440        <td> <input type='text' name='nom_devoir' value ='".gettext("devoir")."'></td></tr>
 441    <tr><td><font size='-1'>".gettext("Date de retour")."</font></td> <td>";    
 442         choix_date($now,"retour");    
 443    echo "</td></tr> 
 444          <tr><td><font size='-1'>".gettext("Commentaire")."</font></td><td><textarea cols=30 rows=3 name=description ></textarea></td></tr></table>";
 445    } 
 446   echo "</td></tr></table></form>";
 447   } // fin du else 
 448  } // fin cas type =2
 449  
 450  include("pdp.inc.php");
 451  ?>


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1