$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");
?>