$val) { $$cle = $val; } $login=isauth(); $id_prof=$login; $now =date("Y-m-d"); $table="devoirs"; $fichiers= array(); // requete pour avoir le detail de ce devoir $id $req = "SELECT * FROM $table WHERE id = '$id'"; $resultat = mysql_query($req); $ligne= mysql_fetch_array($resultat); list($id,$id_prof,$id_devoir,$nom_devoir,$date_distrib,$date_retour,$description,$liste_distrib, $liste_retard) = $ligne; // liste complete des eleves beneficiaires du devoir $liste_distrib=preg_replace("/\|$/","",$liste_distrib); $tab_distrib = liste_tab($liste_distrib); // tableau associatif : nom_classe --> uid1#uid2#.. echo "

".gettext("Correction du devoir")." $id_devoir


\n"; //// distribution CORRIGE du PROF pour TOUS les eleves //// if ($global) { // recuperation du fichier uploade if (move_uploaded_file($_FILES['fich']['tmp_name'], $_FILES['fich']['name'])) { // print_r ($_FILES); if ($f = @fopen( $_FILES['fich']['name'], "r")) { $taille=$_FILES['fich']['size']; // echo "ouverture du fichier $fich de taille $taille"; $contenu=fread($f, $taille); $donnees=addslashes($contenu); $nom_fichier = $_FILES['fich']['name'] ; //$chemin="/tmp/$nom_fichier"; system("mkdir -p /tmp/$login"); $chemin="/tmp/$login/$nom_fichier"; $f1 = fopen($chemin,"w"); if ($f1) echo "

".gettext("Distribution du corrigé")." $nom_fichier
". gettext("(renommé CORRIGE) aux élèves :")."

\n"; fputs($f1, $contenu); fclose($f1); foreach ($tab_distrib as $classe => $liste_distrib_classe) { $liste_distrib_classe=preg_replace("/#$/","",$liste_distrib_classe); $tab_eleves_classe=preg_split("/#/",$liste_distrib_classe); $nb_eleves_classe=count($tab_eleves_classe); $liste_classe_retard =""; // liste eleves en retard par classe // boucle sur tous les eleves de la classe/groupe for ($p=0; $p < $nb_eleves_classe; $p++) { $uid_eleve = $tab_eleves_classe[$p]; $param=params_eleve($uid_eleve); $cla=classe_eleve($uid_eleve); // $cla est la VRAIE classe de l'eleve (# $classe si $classe désigne un groupe !) $rep= "/var/se3/Classes/$cla/$uid_eleve/".inverse_login($id_devoir); //$ch ="/usr/bin/sudo /usr/share/se3/scripts/copie_corrige_distrib.sh $uid_eleve $rep $nom_fichier $login"; $ch ="/usr/bin/sudo /usr/share/se3/scripts/copie_corrige_distrib.sh $uid_eleve \"$rep\" \"$nom_fichier\" $login"; //echo "

ch=$ch

"; $cr=exec($ch); // echo "$ch --> $cr
"; if ($cr) { echo ($param["sexe"]=="F"?"": ""); echo $param["nom"]." - ".$param["classe"]."
\n"; } else echo "--> ".gettext(" échec pour")." $uid_eleve
"; } } } //Nettoyage en fin de distribution du corrige-type: //echo "

Suppression du fichier $chemin

"; if(file_exists("$chemin")){ unlink("$chemin"); } } else die (gettext("Pas de fichier-corrigé choisi (ou fichier vide ..)\nrecommencez ..")); // si aucun fichier n'a été choisi } // fin corrige global --> if ($global) //// CORRIGE PERSONNEL pour les eleves qui ont rendu leur devoir ;-) //// if ($perso) { $tab_eleves_corrige=array(); /// recherche des eleves a jour $tab_eleves_retard = array(); $tab_eleves_retour = array(); $liste_retard = preg_replace("/\|$/","",$liste_retard); $tab_retard = liste_tab($liste_retard); // tableau associatif : nom_classe --> uid1#uid2#.. $nb_eleves_retard=0; $nb_eleves_retour=0; foreach ($tab_distrib as $classe => $liste_distrib_classe) { $liste_distrib_classe=preg_replace("/#$/","",$liste_distrib_classe); $tab_eleves_classe=preg_split("/#/",$liste_distrib_classe); $nb_eleves_classe=count($tab_eleves_classe); for ($p=0; $p < $nb_eleves_classe; $p++) { // $tab_eleves_classe[$p] se trouve t-il dans $tab_retard[$classe] ? if (preg_match("/$tab_eleves_classe[$p]#/", $tab_retard[$classe])) { // --> OUI --> pas de corrige ! $tab_eleves_retard[$classe][]=$tab_eleves_classe[$p]; $nb_eleves_retard++; } else { // --> NON --> envoyer le corrige de leur devoir $tab_eleves_retour[$classe][]=$tab_eleves_classe[$p]; $nb_eleves_retour++; } } } if ($nb_eleves_retour == 0) echo "

".gettext("Aucun élève n'a rendu son devoir !")."

\n"; else { // des eleves ont rendu leur devoir ! echo "

".gettext("Distribution des corrigés personnels du devoir")." $id_devoir
". gettext("(sous le nom DEVOIR-CORRIGE) aux élèves :")."

\n"; // boucle sur la liste de TOUS les eleves qui ont rendu leur devoir ! foreach ($tab_eleves_retour as $classe => $tab_eleves) { if (preg_match("/^Classe_/", $classe)) echo gettext("Classe")." ".$classe."
\n"; else echo gettext("Groupe")." ".$classe."
\n"; for ($p=0; $p < count($tab_eleves); $p++) { $uid_eleve=$tab_eleves[$p]; $param=params_eleve($uid_eleve); $cla=classe_eleve($uid_eleve); // $cla est la VRAIE classe de l'eleve (# $classe si $classe designe un groupe !) //$ch ="/usr/bin/sudo /usr/share/se3/scripts/copie_corrige.sh $login $id_devoir $uid_eleve $cla "; $ch ="/usr/bin/sudo /usr/share/se3/scripts/copie_corrige.sh $login \"$id_devoir\" ".inverse_login($uid_eleve)." $cla "; //echo "

$ch

"; $cr=exec($ch); if ($cr) { echo ($param["sexe"]=="F"?"": ""); echo $param["nom"]." - ".$param["classe"]."
\n"; } else echo "--> ".gettext("échec de la remise du devoir de")." $uid_eleve
\n"; } // fin boucle sur les eleves } // fin boucle classes } // fin else } // fin corrige perso include ("pdp.inc.php"); ?>