[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

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

   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&#233;")." <em>$nom_fichier</em><br> ".
  79              gettext("(renomm&#233; CORRIGE) aux &#233;l&#232;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&#233;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(" &#233;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&#233; choisi (ou fichier vide ..)\nrecommencez .."));     // si aucun fichier n'a &#233;t&#233; 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 &#233;l&#232;ve n'a rendu son devoir !")."</h4>\n";
 152      
 153  else {  // des eleves ont rendu leur devoir !
 154    echo "<h4>".gettext("Distribution des corrig&#233;s personnels du devoir")." <em>$id_devoir</em><br>".
 155    gettext("(sous le nom <em>DEVOIR-CORRIGE</em>) aux &#233;l&#232;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("&#233;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  


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