// //////////////////////////////////////////////////////////////////////////////////////////////////// if ($ACTION == 'supprimer_appr') { if ($BILAN_ETAT == '2rubrique' && $epreuve_id == CODE_BREVET_EPREUVE_TOTAL) { exit('Erreur avec les données transmises !'); } DB_STRUCTURE_BREVET::DB_modifier_brevet_appreciation($serie_ref, $epreuve_id, $eleve_id, 0, ''); $ACTION = $epreuve_id != CODE_BREVET_EPREUVE_TOTAL ? '<button type="button" class="ajouter">Ajouter l\'appréciation.</button>' : '<button type="button" class="ajouter">Ajouter l\'avis de synthèse.</button>'; exit('<div class="hc">' . $ACTION . '</div>'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Cas 3 & 4 : affichage des données d'un élève (le premier si initialisation ; l'élève indiqué sinon) // //////////////////////////////////////////////////////////////////////////////////////////////////// // Si besoin, fabriquer le formulaire avec la liste des élèves concernés : soit d'une classe (en général) soit d'une classe ET d'un sous-groupe pour un prof affecté à un groupe d'élèves $groupe_nom = !$is_sous_groupe ? $classe_nom : $classe_nom . ' - ' . DB_STRUCTURE_COMMUN::DB_recuperer_groupe_nom($groupe_id); if ($ACTION == 'initialiser') { $DB_TAB = !$is_sous_groupe ? DB_STRUCTURE_COMMUN::DB_lister_users_regroupement('eleve', 1, 'classe', $classe_id, 'alpha') : DB_STRUCTURE_COMMUN::DB_lister_eleves_classe_et_groupe($classe_id, $groupe_id); if (empty($DB_TAB)) { exit('Aucun élève trouvé dans ce regroupement !'); } $tab_eleve_id = array(); $form_choix_eleve = '<form action="#" method="post" id="form_choix_eleve"><div><b>' . html($classe_nom) . ' :</b> <button id="go_premier_eleve" type="button" class="go_premier">Premier</button> <button id="go_precedent_eleve" type="button" class="go_precedent">Précédent</button> <select id="go_selection_eleve" name="go_selection" class="b">'; foreach ($DB_TAB as $DB_ROW) { if (in_array($DB_ROW['user_id'], $tab_id_eleves_avec_notes)) { $form_choix_eleve .= '<option value="' . $DB_ROW['user_id'] . '">' . html($DB_ROW['user_nom'] . ' ' . $DB_ROW['user_prenom']) . '</option>'; $tab_eleve_id[] = $DB_ROW['user_id']; } } if (empty($tab_eleve_id)) { exit('Aucun élève concerné dans ce regroupement !'); } $form_choix_eleve .= '</select> <button id="go_suivant_eleve" type="button" class="go_suivant">Suivant</button> <button id="go_dernier_eleve" type="button" class="go_dernier">Dernier</button> <button id="fermer_zone_action_eleve" type="button" class="retourner">Retour</button>';
{ $tab_eleve_id[] = $DB_ROW['user_id']; $tab_eleve_td[$DB_ROW['user_id']] = html($DB_ROW['user_nom'].' '.$DB_ROW['user_prenom']); } // (re)calculer les moyennes des élèves (matières et générales), ainsi que les moyennes de classe (matières et générales). if( ($OBJET=='imprimer') && ($BILAN_TYPE=='bulletin') && $_SESSION['OFFICIEL']['BULLETIN_MOYENNE_SCORES'] ) { // Attention ! On doit calculer des moyennes de classe, pas de groupe ! if(!$is_sous_groupe) { $liste_eleve_id = implode(',',$tab_eleve_id); } else { $tab_eleve_id_tmp = array(); $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement( 'eleve' /*profil_type*/ , 1 /*statut*/ , 'classe' , $classe_id , 'alpha' /*eleves_ordre*/ ); foreach($DB_TAB as $DB_ROW) { $tab_eleve_id_tmp[] = $DB_ROW['user_id']; } $liste_eleve_id = implode(',',$tab_eleve_id_tmp); } calculer_et_enregistrer_moyennes_eleves_bulletin( $periode_id , $classe_id , $liste_eleve_id , '' /*liste_matiere_id*/ , $_SESSION['OFFICIEL']['BULLETIN_ONLY_SOCLE'] , $_SESSION['OFFICIEL']['BULLETIN_RETROACTIF'] , $_SESSION['OFFICIEL']['BULLETIN_MOYENNE_CLASSE'] , $_SESSION['OFFICIEL']['BULLETIN_MOYENNE_GENERALE'] ); } // lister les bilans officiels archivés de l'année courante, affichage du retour $DB_TAB = DB_STRUCTURE_OFFICIEL::DB_lister_bilan_officiel_fichiers( $BILAN_TYPE , $periode_id , $tab_eleve_id ); $_SESSION['tmp_droit_voir_archive'] = array(); // marqueur mis en session pour vérifier que c'est bien cet utilisateur qui veut voir (et à donc le droit de voir) le fichier, car il n'y a pas d'autre vérification de droit ensuite foreach($tab_eleve_id as $eleve_id) { if($OBJET=='imprimer') {
foreach ($DB_TAB as $DB_ROW) { $tab_eleve_id[] = $DB_ROW['user_id']; } $liste_eleve_id = implode(',', $tab_eleve_id); // Il ne s'agit pas de simplement récupérer ce qui est présent dans la table sacoche_officiel_saisie ; en effet : // - pour un relevé de notes ou un bulletin il faut se restreindre à ce qui est vraiment évalué pour l'élève // - pour une maîtrise du socle on peut se restreindre à ce qui contient des éléments // Du coup le plus simple est de simuler la génération du document, sans sortie html / pdf, mais en notant au fur et à mesure ce qui manque // (re)calculer les moyennes des élèves if ($BILAN_TYPE == 'bulletin' && $_SESSION['OFFICIEL']['BULLETIN_MOYENNE_SCORES']) { // Attention ! On doit calculer des moyennes de classe, pas de groupe ! if (!$is_sous_groupe) { $liste_eleve_id_tmp = $liste_eleve_id; } else { $tab_eleve_id_tmp = array(); $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement('eleve', 1, 'classe', $classe_id, 'alpha'); foreach ($DB_TAB as $DB_ROW) { $tab_eleve_id_tmp[] = $DB_ROW['user_id']; } $liste_eleve_id_tmp = implode(',', $tab_eleve_id_tmp); } calculer_et_enregistrer_moyennes_eleves_bulletin($periode_id, $classe_id, $liste_eleve_id_tmp, $liste_rubrique_id, $_SESSION['OFFICIEL']['BULLETIN_RETROACTIF'], FALSE, FALSE); } // Récupérer les saisies déjà effectuées pour le bilan officiel concerné $tab_saisie = array(); // [eleve_id][rubrique_id][prof_id] => array(prof_info,appreciation,note); $tab_moyenne_exception_matieres = $BILAN_TYPE != 'bulletin' || !$_SESSION['OFFICIEL']['BULLETIN_MOYENNE_EXCEPTION_MATIERES'] ? array() : explode(',', $_SESSION['OFFICIEL']['BULLETIN_MOYENNE_EXCEPTION_MATIERES']); // sert plus tard $DB_TAB = DB_STRUCTURE_OFFICIEL::DB_recuperer_bilan_officiel_saisies_eleves($BILAN_TYPE, $periode_id, $liste_eleve_id, 0, FALSE, FALSE, FALSE); foreach ($DB_TAB as $DB_ROW) { $prof_info = $DB_ROW['prof_id'] ? afficher_identite_initiale($DB_ROW['user_nom'], FALSE, $DB_ROW['user_prenom'], TRUE, $DB_ROW['user_genre']) : '';
.'<th>Id. Sconet</th>' .'<th>Num. Sconet</th>' .'<th>Référence</th>' .'<th>Login</th>' .'<th>Civilité</th>' .'<th>Nom</th>' .'<th>Prénom</th>' .'<th>Profil</th>' .'</tr>'.NL.'</thead><tbody>'.NL; // Récupérer les données des professeurs et des personnels $tab_profil = array('professeur','personnel'); $champs = 'user_id, user_id_ent, user_id_gepi, user_sconet_id, user_sconet_elenoet, user_reference, user_genre, user_nom, user_prenom, user_login, user_profil_sigle' ; foreach($tab_profil as $profil) { $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement( $profil /*profil_type*/ , 1 /*statut*/ , $tab_types[$groupe_type] , $groupe_id , 'alpha' /*eleves_ordre*/ , $champs ); if(!empty($DB_TAB)) { foreach($DB_TAB as $DB_ROW) { $export_csv .= $DB_ROW['user_id'] .$separateur.$DB_ROW['user_id_ent'] .$separateur.$DB_ROW['user_id_gepi'] .$separateur.$DB_ROW['user_sconet_id'] .$separateur.$DB_ROW['user_sconet_elenoet'] .$separateur.$DB_ROW['user_reference'] .$separateur.$DB_ROW['user_login'] .$separateur.Html::$tab_genre['adulte'][$DB_ROW['user_genre']] .$separateur.$DB_ROW['user_nom'] .$separateur.$DB_ROW['user_prenom'] .$separateur.$DB_ROW['user_profil_sigle']
$form_choix_eleve .= '</select> <button id="go_suivant_eleve" type="button" class="go_suivant">Suivant</button> <button id="go_dernier_eleve" type="button" class="go_dernier">Dernier</button> <button id="fermer_zone_action_eleve" type="button" class="retourner">Retour</button>'; $form_choix_eleve .= ($BILAN_TYPE=='bulletin') ? ( ($mode=='texte') ? ' <button id="change_mode" type="button" class="stats">Interface graphique</button>' : ' <button id="change_mode" type="button" class="texte">Interface détaillée</button>' ) : '' ; $form_choix_eleve .= '</div></form><hr />'; $eleve_id = $tab_eleve_id[0]; // (re)calculer les moyennes des élèves, ainsi que les moyennes de classe et générales (mises dans $_SESSION['tmp_moyenne_classe'][$periode_id][$classe_id][$matiere_id] et $_SESSION['tmp_moyenne_generale'][$periode_id][$classe_id][$eleve_id]) if( ($BILAN_TYPE=='bulletin') && $_SESSION['OFFICIEL']['BULLETIN_MOYENNE_SCORES'] ) { // Attention ! On doit calculer des moyennes de classe, pas de groupe ! if(!$is_sous_groupe) { $liste_eleve_id = implode(',',$tab_eleve_id); } else { $tab_eleve_id_tmp = array(); $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement( 'eleve' , 1 /*statut*/ , 'classe' , $classe_id ); foreach($DB_TAB as $DB_ROW) { $tab_eleve_id_tmp[] = $DB_ROW['user_id']; } $liste_eleve_id = implode(',',$tab_eleve_id_tmp); } calculer_et_enregistrer_moyennes_eleves_bulletin( $periode_id , $classe_id , $liste_eleve_id , '' /*liste_matiere_id*/ , $_SESSION['OFFICIEL']['BULLETIN_MOYENNE_CLASSE'] , $_SESSION['OFFICIEL']['BULLETIN_MOYENNE_GENERALE'] ); } } // Récupérer les saisies déjà effectuées pour le bilan officiel concerné $tab_saisie = array(); // [eleve_id][rubrique_id][prof_id] => array(prof_info,appreciation,note,info); $DB_TAB = DB_STRUCTURE_OFFICIEL::DB_recuperer_bilan_officiel_saisies( $BILAN_TYPE , $periode_id , $eleve_id , 0 /*prof_id*/ ); foreach($DB_TAB as $DB_ROW)
exit('Fiche brevet introuvable !'); } if(!in_array($BILAN_ETAT,array('2rubrique','3mixte','4synthese'))) { exit('Fiche brevet interdite d\'accès pour cette action !'); } if(!$DB_ROW['listing_user_id']) { exit('Aucun élève concerné dans cette classe !'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Lister les élèves concernés : soit d'une classe (en général) soit d'une classe ET d'un sous-groupe pour un prof affecté à un groupe d'élèves // //////////////////////////////////////////////////////////////////////////////////////////////////// $DB_TAB = (!$is_sous_groupe) ? DB_STRUCTURE_COMMUN::DB_lister_users_regroupement( 'eleve' /*profil_type*/ , 1 /*statut*/ , 'classe' , $classe_id , 'alpha' /*eleves_ordre*/ ) : DB_STRUCTURE_COMMUN::DB_lister_eleves_classe_et_groupe($classe_id,$groupe_id) ; if(empty($DB_TAB)) { exit('Aucun élève trouvé dans ce regroupement !'); } $tab_eleve_id = array(); foreach($DB_TAB as $DB_ROW) { if(in_array($DB_ROW['user_id'],$tab_id_eleves_avec_notes)) { $tab_eleve_id[] = $DB_ROW['user_id']; } } if(empty($tab_eleve_id)) { exit('Aucun élève concerné dans ce regroupement !');
<th>Mot de passe</th> <th>Courriel</th> <th>Date sortie</th> <th class="nu"><q class="ajouter" title="Ajouter un élève."></q></th> </tr> </thead> <tbody> <?php // Lister les élèves $tab_types = array('d' => 'Divers', 'n' => 'niveau', 'c' => 'classe', 'g' => 'groupe'); $groupe_type = $tab_types[$groupe_type]; if ($groupe_type == 'Divers') { $groupe_type = $groupe_id == 1 ? 'sdf' : 'all'; } $champs = 'user_id, user_id_ent, user_id_gepi, user_sconet_id, user_sconet_elenoet, user_reference, user_genre, user_nom, user_prenom, user_naissance_date, user_login, user_email, user_sortie_date'; $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement('eleve', $statut, $groupe_type, $groupe_id, 'alpha', $champs); if (!empty($DB_TAB)) { foreach ($DB_TAB as $DB_ROW) { // Formater les dates $date_mysql = $DB_ROW['user_sortie_date']; $date_affich = $date_mysql != SORTIE_DEFAUT_MYSQL ? convert_date_mysql_to_french($date_mysql) : '-'; $date_naissance = $DB_ROW['user_naissance_date'] ? convert_date_mysql_to_french($DB_ROW['user_naissance_date']) : '-'; // Afficher une ligne du tableau echo '<tr id="id_' . $DB_ROW['user_id'] . '">'; echo '<td class="nu"><input type="checkbox" name="f_ids" value="' . $DB_ROW['user_id'] . '" /></td>'; echo '<td class="label">' . html($DB_ROW['user_id_ent']) . '</td>'; echo '<td class="label">' . html($DB_ROW['user_id_gepi']) . '</td>'; echo '<td class="label">' . html($DB_ROW['user_sconet_id']) . '</td>'; echo '<td class="label">' . html($DB_ROW['user_sconet_elenoet']) . '</td>'; echo '<td class="label">' . html($DB_ROW['user_reference']) . '</td>'; echo '<td class="label">' . Html::$tab_genre['enfant'][$DB_ROW['user_genre']] . '</td>';
<th>Courriel</th> <th>Date sortie</th> <th class="nu"><q class="ajouter" title="Ajouter un élève."></q></th> </tr> </thead> <tbody> <?php // Lister les élèves $tab_types = array('d'=>'Divers' , 'n'=>'niveau' , 'c'=>'classe' , 'g'=>'groupe'); $groupe_type = $tab_types[$groupe_type]; if($groupe_type=='Divers') { $groupe_type = ($groupe_id==1) ? 'sdf' : 'all' ; } $champs = 'user_id, user_id_ent, user_id_gepi, user_sconet_id, user_sconet_elenoet, user_reference, user_genre, user_nom, user_prenom, user_naissance_date, user_login, user_email, user_sortie_date' ; $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement( 'eleve' /*profil_type*/ , $statut /*statut*/ , $groupe_type , $groupe_id , 'alpha' /*eleves_ordre*/ , $champs ); if(!empty($DB_TAB)) { foreach($DB_TAB as $DB_ROW) { // Formater les dates $date_mysql = $DB_ROW['user_sortie_date']; $date_affich = ($date_mysql!=SORTIE_DEFAUT_MYSQL) ? convert_date_mysql_to_french($date_mysql) : '-' ; $date_naissance = ($DB_ROW['user_naissance_date']) ? convert_date_mysql_to_french($DB_ROW['user_naissance_date']) : '-' ; // Afficher une ligne du tableau echo'<tr id="id_'.$DB_ROW['user_id'].'">'; echo '<td class="nu"><input type="checkbox" name="f_ids" value="'.$DB_ROW['user_id'].'" /></td>'; echo '<td class="label">'.html($DB_ROW['user_id_ent']).'</td>'; echo '<td class="label">'.html($DB_ROW['user_id_gepi']).'</td>'; echo '<td class="label">'.html($DB_ROW['user_sconet_id']).'</td>'; echo '<td class="label">'.html($DB_ROW['user_sconet_elenoet']).'</td>';
exit('<ok>'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Imprimer un cartouche d'une évaluation // //////////////////////////////////////////////////////////////////////////////////////////////////// if( ($action=='imprimer_cartouche') && $devoir_id && $groupe_id && $date_fr && $description && $cart_detail && in_array($cart_cases_nb,array(1,5)) && $cart_contenu && $orientation && $marge_min && $couleur && $fond && in_array($eleves_ordre,array('alpha','classe')) ) { Form::save_choix('evaluation_cartouche'); $with_nom = (substr($cart_contenu,0,8)=='AVEC_nom') ? TRUE : FALSE ; $with_result = (substr($cart_contenu,9)=='AVEC_result') ? TRUE : FALSE ; // liste des items $DB_TAB_COMP = DB_STRUCTURE_PROFESSEUR::DB_lister_devoir_items( $devoir_id , FALSE /*with_lien*/ , TRUE /*with_coef*/ ); // liste des élèves $DB_TAB_USER = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement( 'eleve' /*profil_type*/ , 1 /*statut*/ , $groupe_type , $groupe_id , $eleves_ordre ); // Let's go if(empty($DB_TAB_COMP)) { exit('Aucun item n\'est associé à cette évaluation !'); } if(empty($DB_TAB_USER)) { exit('Aucun élève n\'est associé à cette évaluation !'); } $tab_result = array(); // tableau bi-dimensionnel [n°ligne=id_item][n°colonne=id_user] $tab_user_id = array(); // pas indispensable, mais plus lisible $tab_comp_id = array(); // pas indispensable, mais plus lisible $tab_user_nb_req = array(); // pour retenir le nb d'items par utilisateur : variable et utile uniquement si cartouche avec les demandes d'évaluations $tab_user_comm = array(); // pour retenir les commentaires écrits pour par élève // enregistrer noms prénoms des élèves
$tab_types = array('d' => 'all', 'n' => 'niveau', 'c' => 'classe', 'g' => 'groupe', 'b' => 'besoin'); if (!$critere_valide || !$groupe_id || !$groupe_nom || !isset($tab_types[$groupe_type]) || !in_array($mode, array('auto', 'manuel'))) { exit('Erreur avec les données transmises !'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Variables pour récupérer les données // //////////////////////////////////////////////////////////////////////////////////////////////////// $tab_eleve = array(); // [i] => array(eleve_id,eleve_nom,eleve_prenom) // Tableau des langues require CHEMIN_DOSSIER_INCLUDE . 'tableau_langues_socle.php'; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Récupération de la liste des élèves // //////////////////////////////////////////////////////////////////////////////////////////////////// $champs = 'user_id, user_nom, user_prenom, eleve_langue'; $tab_eleve = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement('eleve', TRUE, $tab_types[$groupe_type], $groupe_id, 'alpha', $champs); $eleve_nb = count($tab_eleve); if (!$eleve_nb) { exit('Aucun élève trouvé dans le regroupement indiqué !'); } $tab_eleve_id = array(); $tab_eleve_langue = array(); foreach ($tab_eleve as $DB_ROW) { $tab_eleve_id[] = $DB_ROW['user_id']; $tab_eleve_langue[$DB_ROW['user_id']] = $DB_ROW['eleve_langue']; } $liste_eleve = implode(',', $tab_eleve_id); // //////////////////////////////////////////////////////////////////////////////////////////////////// // Suite du code un peu en vrac avec des reprises et des adaptations de morceaux existants... // //////////////////////////////////////////////////////////////////////////////////////////////////// $affichage_checkbox = $_SESSION['USER_PROFIL_TYPE'] == 'professeur' && SACoche != 'webservices' ? TRUE : FALSE;
* Vous devriez avoir reçu une copie de la Licence Publique Générale GNU Affero avec SACoche ; * si ce n’est pas le cas, consultez : <http://www.gnu.org/licenses/>. * */ if (!defined('SACoche')) { exit('Ce fichier ne peut être appelé directement !'); } if ($_SESSION['SESAMATH_ID'] == ID_DEMO) { } $profil = isset($_POST['f_profil']) ? Clean::texte($_POST['f_profil']) : ''; // professeur personnel directeur eleve parent $groupe_type = isset($_POST['f_groupe_type']) ? Clean::texte($_POST['f_groupe_type']) : ''; // d n c g b $groupe_id = isset($_POST['f_groupe_id']) ? Clean::entier($_POST['f_groupe_id']) : 0; $tab_types = array('d' => 'all', 'n' => 'niveau', 'c' => 'classe', 'g' => 'groupe', 'b' => 'besoin'); if (!$profil || !$groupe_id || !isset($tab_types[$groupe_type])) { exit('Erreur avec les données transmises !'); } $champs = $profil != 'parent' ? 'CONCAT(user_nom," ",user_prenom) AS user_identite , user_connexion_date AS connexion_date' : 'CONCAT(parent.user_nom," ",parent.user_prenom," (",enfant.user_nom," ",enfant.user_prenom,")") AS user_identite , parent.user_connexion_date AS connexion_date'; $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement($profil, TRUE, $tab_types[$groupe_type], $groupe_id, 'alpha', $champs); foreach ($DB_TAB as $DB_ROW) { // Formater la date (dont on ne garde que le jour) $date_mysql = $DB_ROW['connexion_date'] === NULL ? '0' : substr($DB_ROW['connexion_date'], 0, 10); $date_affich = $DB_ROW['connexion_date'] === NULL ? '' : convert_date_mysql_to_french($date_mysql); // Afficher une ligne du tableau echo '<tr>'; echo '<td>' . html($DB_ROW['user_identite']) . '</td>'; echo '<td>' . $date_affich . '</td>'; echo '</tr>'; } exit;
<th>Login</th> <th>Mot de passe</th> <th>Date sortie</th> <th class="nu"><q class="ajouter" title="Ajouter un élève."></q></th> </tr> </thead> <tbody> <?php // Lister les élèves $tab_types = array('d'=>'Divers' , 'n'=>'niveau' , 'c'=>'classe' , 'g'=>'groupe'); $groupe_type = $tab_types[$groupe_type]; if($groupe_type=='Divers') { $groupe_type = ($groupe_id==1) ? 'sdf' : 'all' ; } $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement( 'eleve' /*profil*/ , $statut /*statut*/ , $groupe_type , $groupe_id , 'user_id,user_id_ent,user_id_gepi,user_sconet_id,user_sconet_elenoet,user_reference,user_nom,user_prenom,user_login,user_sortie_date' ); if(!empty($DB_TAB)) { foreach($DB_TAB as $DB_ROW) { // Formater la date (dont on ne garde que le jour) $date_mysql = $DB_ROW['user_sortie_date']; $date_affich = ($date_mysql!=SORTIE_DEFAUT_MYSQL) ? convert_date_mysql_to_french($date_mysql) : '-' ; // Afficher une ligne du tableau echo'<tr id="id_'.$DB_ROW['user_id'].'">'; echo '<td class="nu"><input type="checkbox" name="f_ids" value="'.$DB_ROW['user_id'].'" /></td>'; echo '<td class="label">'.html($DB_ROW['user_id_ent']).'</td>'; echo '<td class="label">'.html($DB_ROW['user_id_gepi']).'</td>'; echo '<td class="label">'.html($DB_ROW['user_sconet_id']).'</td>'; echo '<td class="label">'.html($DB_ROW['user_sconet_elenoet']).'</td>'; echo '<td class="label">'.html($DB_ROW['user_reference']).'</td>';
/** * recuperer_user_id_from_destinataires * * @param array $tab_destinataires * @return array */ public static function DB_recuperer_user_id_from_destinataires( $tab_destinataires ) { $tab_user_id = array(); foreach($tab_destinataires as $destinataire_infos) { list( $user_profil_type , $destinataire_type , $destinataire_id ) = explode('_',$destinataire_infos); if($destinataire_type=='user') { $tab_user_id[$destinataire_id] = $destinataire_id; } else { $champs = ($user_profil_type!='parent') ? 'user_id AS destinataire_id' : 'parent.user_id AS destinataire_id' ; $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement( $user_profil_type /*profil_type*/ , 1 /*statut*/ , $destinataire_type , $destinataire_id , 'alpha' /*eleves_ordre*/ , $champs ) ; foreach($DB_TAB as $DB_ROW) { $tab_user_id[$DB_ROW['destinataire_id']] = $DB_ROW['destinataire_id']; } } return $tab_user_id; } }
} // Mise à jour dans la base DB_STRUCTURE_PROFESSEUR::DB_modifier_ordre_item($devoir_id, $tab_id); exit('<ok>'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Imprimer un cartouche d'une évaluation // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'imprimer_cartouche' && $devoir_id && $groupe_id && $date_fr && $description && $cart_detail && in_array($cart_cases_nb, array(1, 5)) && $cart_contenu && $orientation && $marge_min && $couleur && $fond && in_array($eleves_ordre, array('alpha', 'classe'))) { Form::save_choix('evaluation_cartouche'); $with_nom = substr($cart_contenu, 0, 8) == 'AVEC_nom' ? TRUE : FALSE; $with_result = substr($cart_contenu, 9) == 'AVEC_result' ? TRUE : FALSE; // liste des items $DB_TAB_COMP = DB_STRUCTURE_PROFESSEUR::DB_lister_devoir_items($devoir_id, FALSE, TRUE); // liste des élèves $DB_TAB_USER = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement('eleve', TRUE, $groupe_type, $groupe_id, $eleves_ordre); // Let's go if (empty($DB_TAB_COMP)) { exit('Aucun item n\'est associé à cette évaluation !'); } if (empty($DB_TAB_USER)) { exit('Aucun élève n\'est associé à cette évaluation !'); } $tab_result = array(); // tableau bi-dimensionnel [n°ligne=id_item][n°colonne=id_user] $tab_user_id = array(); // pas indispensable, mais plus lisible $tab_comp_id = array(); // pas indispensable, mais plus lisible $tab_user_nb_req = array(); // pour retenir le nb d'items par utilisateur : variable et utile uniquement si cartouche avec les demandes d'évaluations
exit('Erreur : masque des noms de fichiers contenus dans l\'archive non conforme !'); } // Créer ou vider le dossier temporaire FileSystem::creer_ou_vider_dossier($dossier_temp); // Dezipper dans le dossier temporaire $code_erreur = FileSystem::unzip(CHEMIN_DOSSIER_IMPORT . $fichier_nom, $dossier_temp, FALSE); FileSystem::supprimer_fichier(CHEMIN_DOSSIER_IMPORT . $fichier_nom); if ($code_erreur) { FileSystem::supprimer_dossier($dossier_temp); // Pas seulement vider, au cas où il y aurait des sous-dossiers créés par l'archive. exit('Erreur : votre archive ZIP n\'a pas pu être ouverte (' . FileSystem::$tab_zip_error[$code_erreur] . ') !'); } // Récupérer la liste des élèves et fabriquer le nom de fichier attendu correspondant à chacun $tab_bad = array('[sconet_id]', '[sconet_num]', '[reference]', '[nom]', '[prenom]', '[login]', '[ent_id]'); $champs = 'user_id, user_id_ent, user_sconet_id, user_sconet_elenoet, user_reference, user_nom, user_prenom, user_login'; $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement('eleve', 1, 'all', 0, 'alpha', $champs); if (!empty($DB_TAB)) { foreach ($DB_TAB as $DB_ROW) { $tab_bon = array($DB_ROW['user_sconet_id'], $DB_ROW['user_sconet_elenoet'], Clean::fichier($DB_ROW['user_reference']), Clean::fichier($DB_ROW['user_nom']), Clean::fichier($DB_ROW['user_prenom']), Clean::fichier($DB_ROW['user_login']), Clean::fichier($DB_ROW['user_id_ent'])); $tab_fichier_masque[$DB_ROW['user_id']] = Clean::fichier(str_replace($tab_bad, $tab_bon, $masque)); } } // Pour l'affichage du retour $thead = '<tr><td colspan="2">Import d\'un fichier de photos zippées le ' . date('d/m/Y H:i:s') . '</td></tr>'; $tbody = ''; // Traiter les fichier un à un $tab_fichier = FileSystem::lister_contenu_dossier($dossier_temp); foreach ($tab_fichier as $fichier_nom) { // echo'*'.$fichier_nom; $tab_user_id = array_keys($tab_fichier_masque, $fichier_nom); $nb_user_find = count($tab_user_id);