[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
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 élè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 à 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é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ères spé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écembre"),1=>gettext("Janvier"),2=>gettext("Février"),3=>gettext("Mars"),4=>gettext("Avril"),5=>gettext("Mai"),6=>gettext("Juin"),7=>gettext("Juillet"),8=>gettext("Août")); 208 $lib_mois =array(9=>"Sept",10=>"Oct",11=>"Nov",12=>"Déc",1=>"Jan",2=>"Fév",3=>"Mars",4=>"Avr",5=>"Mai",6=>"Juin",7=>"Juil",8=>"Aoû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é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> </td><td> </td></tr>\n"; 236 237 $form1.="<tr><th align=\"left\" ><h3>".gettext("Choisir à qui s'adressent les documents ")."<br> 238 <ul><li>".gettext("classes entières (ou sous-groupes)")."<br> 239 <li>".gettext("choix personnalisé des élèves")."</ul></h3></th>\n"; 240 $form1.="<td><input type='radio' name='type' value=1 >".gettext("classe(s) entière(s)")." <br>"; 241 // onclick='if(verif(this.form)) formu.submit()'> 242 $form1.="<input type='radio' name='type' value=2 >".gettext("choix des élèves")."</td></tr>\n"; 243 $form1.="<tr><td> </td><td> </td></tr>\n"; 244 245 $form1.="<tr><th align=\"left\"><h3>".gettext("Distribution de documents :")."<br> 246 <ul><li>".gettext("énoncé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> </td><td> </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é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 élè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é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 à rendre")."<br>".gettext("(par dé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("élè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%'> </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 élè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é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 élè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é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 à rendre")."<br>".gettext("(par dé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 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |