[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 4 /** 5 6 * Retour correction des devoirs et corrections 7 8 * @Version $Id: correction.php 8601 2015-03-16 20:17:16Z plouf $ 9 * @Auteurs Jean Gourdin 10 11 * @Projet LCS-SE3 12 * @Licence Distribue selon les termes de la licence GPL 13 14 */ 15 16 /** 17 18 * file: correction.php 19 * @Repertoire: echanges/ 20 */ 21 22 23 require_once ("lang.inc.php"); 24 bindtextdomain('se3-echange',"/var/www/se3/locale"); 25 textdomain ('se3-echange'); 26 27 28 require("entete.inc.php"); 29 require ("ldap.inc.php"); 30 require ("fonc_outils.inc.php"); 31 32 //aide 33 $_SESSION["pageaide"]="L%27interface_prof#Ressources_et_partages"; 34 35 // recuperer les parametres passes par POST 36 foreach ($_POST as $cle=>$val) { 37 $$cle = $val; 38 } 39 40 41 $login=isauth(); 42 $id_prof=$login; 43 $now =date("Y-m-d"); 44 $table="devoirs"; 45 $fichiers= array(); 46 47 48 // requete pour avoir le detail de ce devoir $id 49 $req = "SELECT * FROM $table WHERE id = '$id'"; 50 $resultat = mysql_query($req); 51 $ligne= mysql_fetch_array($resultat); 52 list($id,$id_prof,$id_devoir,$nom_devoir,$date_distrib,$date_retour,$description,$liste_distrib, $liste_retard) = $ligne; 53 54 // liste complete des eleves beneficiaires du devoir 55 $liste_distrib=preg_replace("/\|$/","",$liste_distrib); 56 $tab_distrib = liste_tab($liste_distrib); // tableau associatif : nom_classe --> uid1#uid2#.. 57 58 echo "<body > 59 <h1>".gettext("Correction du devoir")." <em>$id_devoir</em></h1> 60 <hr>\n"; 61 62 //// distribution CORRIGE du PROF pour TOUS les eleves //// 63 if ($global) { 64 // recuperation du fichier uploade 65 if (move_uploaded_file($_FILES['fich']['tmp_name'], $_FILES['fich']['name'])) { 66 // print_r ($_FILES); 67 if ($f = @fopen( $_FILES['fich']['name'], "r")) { 68 $taille=$_FILES['fich']['size']; 69 // echo "ouverture du fichier $fich de taille $taille"; 70 $contenu=fread($f, $taille); 71 $donnees=addslashes($contenu); 72 $nom_fichier = $_FILES['fich']['name'] ; 73 //$chemin="/tmp/$nom_fichier"; 74 system("mkdir -p /tmp/$login"); 75 $chemin="/tmp/$login/$nom_fichier"; 76 $f1 = fopen($chemin,"w"); 77 if ($f1) 78 echo "<h4>".gettext("Distribution du corrigé")." <em>$nom_fichier</em><br> ". 79 gettext("(renommé CORRIGE) aux élèves :")."</h4>\n"; 80 fputs($f1, $contenu); 81 fclose($f1); 82 83 foreach ($tab_distrib as $classe => $liste_distrib_classe) { 84 $liste_distrib_classe=preg_replace("/#$/","",$liste_distrib_classe); 85 $tab_eleves_classe=preg_split("/#/",$liste_distrib_classe); 86 $nb_eleves_classe=count($tab_eleves_classe); 87 $liste_classe_retard =""; // liste eleves en retard par classe 88 89 // boucle sur tous les eleves de la classe/groupe 90 for ($p=0; $p < $nb_eleves_classe; $p++) { 91 $uid_eleve = $tab_eleves_classe[$p]; 92 $param=params_eleve($uid_eleve); 93 $cla=classe_eleve($uid_eleve); // $cla est la VRAIE classe de l'eleve (# $classe si $classe désigne un groupe !) 94 95 $rep= "/var/se3/Classes/$cla/$uid_eleve/".inverse_login($id_devoir); 96 //$ch ="/usr/bin/sudo /usr/share/se3/scripts/copie_corrige_distrib.sh $uid_eleve $rep $nom_fichier $login"; 97 $ch ="/usr/bin/sudo /usr/share/se3/scripts/copie_corrige_distrib.sh $uid_eleve \"$rep\" \"$nom_fichier\" $login"; 98 //echo "<p>ch=$ch</p>"; 99 $cr=exec($ch); // echo "$ch --> $cr<br>"; 100 if ($cr) { 101 echo ($param["sexe"]=="F"?"<img src=\"../annu/images/gender_girl.gif\" width=14 height=14 hspace=3 border=0>": 102 "<img src=\"../annu/images/gender_boy.gif\" width=14 height=14 hspace=3 border=0>"); 103 echo $param["nom"]." - ".$param["classe"]."<br>\n"; 104 } else 105 echo "--> ".gettext(" échec pour")." $uid_eleve<br>"; 106 } 107 } 108 } 109 //Nettoyage en fin de distribution du corrige-type: 110 //echo "<p>Suppression du fichier $chemin</p>"; 111 if(file_exists("$chemin")){ 112 unlink("$chemin"); 113 } 114 } else 115 die (gettext("Pas de fichier-corrigé choisi (ou fichier vide ..)\nrecommencez ..")); // si aucun fichier n'a été choisi 116 } // fin corrige global --> if ($global) 117 118 //// CORRIGE PERSONNEL pour les eleves qui ont rendu leur devoir ;-) //// 119 if ($perso) { 120 $tab_eleves_corrige=array(); 121 122 /// recherche des eleves a jour 123 $tab_eleves_retard = array(); 124 $tab_eleves_retour = array(); 125 126 $liste_retard = preg_replace("/\|$/","",$liste_retard); 127 $tab_retard = liste_tab($liste_retard); // tableau associatif : nom_classe --> uid1#uid2#.. 128 129 $nb_eleves_retard=0; 130 $nb_eleves_retour=0; 131 132 foreach ($tab_distrib as $classe => $liste_distrib_classe) { 133 $liste_distrib_classe=preg_replace("/#$/","",$liste_distrib_classe); 134 $tab_eleves_classe=preg_split("/#/",$liste_distrib_classe); 135 $nb_eleves_classe=count($tab_eleves_classe); 136 137 for ($p=0; $p < $nb_eleves_classe; $p++) { 138 // $tab_eleves_classe[$p] se trouve t-il dans $tab_retard[$classe] ? 139 if (preg_match("/$tab_eleves_classe[$p]#/", $tab_retard[$classe])) { // --> OUI --> pas de corrige ! 140 $tab_eleves_retard[$classe][]=$tab_eleves_classe[$p]; 141 $nb_eleves_retard++; 142 } 143 else { // --> NON --> envoyer le corrige de leur devoir 144 $tab_eleves_retour[$classe][]=$tab_eleves_classe[$p]; 145 $nb_eleves_retour++; 146 } 147 } 148 } 149 150 if ($nb_eleves_retour == 0) 151 echo "<h4>".gettext("Aucun élève n'a rendu son devoir !")."</h4>\n"; 152 153 else { // des eleves ont rendu leur devoir ! 154 echo "<h4>".gettext("Distribution des corrigés personnels du devoir")." <em>$id_devoir</em><br>". 155 gettext("(sous le nom <em>DEVOIR-CORRIGE</em>) aux élèves :")."</h4>\n"; 156 157 // boucle sur la liste de TOUS les eleves qui ont rendu leur devoir ! 158 foreach ($tab_eleves_retour as $classe => $tab_eleves) { 159 if (preg_match("/^Classe_/", $classe)) 160 echo gettext("Classe")." <b>".$classe."</b><br>\n"; 161 else 162 echo gettext("Groupe")." <b>".$classe."</b><br>\n"; 163 for ($p=0; $p < count($tab_eleves); $p++) { 164 $uid_eleve=$tab_eleves[$p]; 165 $param=params_eleve($uid_eleve); 166 $cla=classe_eleve($uid_eleve); // $cla est la VRAIE classe de l'eleve (# $classe si $classe designe un groupe !) 167 //$ch ="/usr/bin/sudo /usr/share/se3/scripts/copie_corrige.sh $login $id_devoir $uid_eleve $cla "; 168 $ch ="/usr/bin/sudo /usr/share/se3/scripts/copie_corrige.sh $login \"$id_devoir\" ".inverse_login($uid_eleve)." $cla "; 169 //echo "<p>$ch</p>"; 170 $cr=exec($ch); 171 if ($cr) { 172 echo ($param["sexe"]=="F"?"<img src=\"../annu/images/gender_girl.gif\" width=14 height=14 hspace=3 border=0>": 173 "<img src=\"../annu/images/gender_boy.gif\" width=14 height=14 hspace=3 border=0>"); 174 echo $param["nom"]." - ".$param["classe"]."<br>\n"; 175 } 176 else 177 echo "--> ".gettext("échec de la remise du devoir de")." $uid_eleve<br>\n"; 178 } // fin boucle sur les eleves 179 } // fin boucle classes 180 } // fin else 181 } // fin corrige perso 182 include ("pdp.inc.php"); 183 ?> 184
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 |