} // Associations à retirer if (count($tab_base_affectation)) { foreach ($tab_base_affectation as $key => $bool) { list($user_id, $groupe_id) = explode('_', $key); $lignes_principal_del .= '<tr><th>Supprimer <input id="pp_' . $user_id . '_' . $groupe_id . '_0" name="pp_' . $user_id . '_' . $groupe_id . '_0" type="checkbox" checked /></th><td>' . html($tab_base_prof_identite[$user_id]) . '</td><td>' . html($tab_base_classe[$groupe_id]) . '</td></tr>' . NL; } } // //////////////////////////////////////////////////////////////////////////////////////////////////// // associations profs/matières // //////////////////////////////////////////////////////////////////////////////////////////////////// // On récupère le contenu de la base pour comparer : $tab_base_affectation[user_id_matiere_id]=TRUE + $tab_base_matiere[matiere_id]=matiere_nom + $tab_matiere_ref_TO_id_base[matiere_ref]=id_base // En deux requêtes sinon on ne récupère pas les matieres sans utilisateurs affectés. $tab_base_matiere = array(); $tab_matiere_ref_TO_id_base = array(); $DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_matieres_etablissement(TRUE); foreach ($DB_TAB as $DB_ROW) { $tab_base_matiere[$DB_ROW['matiere_id']] = $DB_ROW['matiere_nom']; $tab_matiere_ref_TO_id_base[$DB_ROW['matiere_ref']] = $DB_ROW['matiere_id']; } $tab_base_affectation = array(); $DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_jointure_professeurs_matieres(); foreach ($DB_TAB as $DB_ROW) { $tab_base_affectation[$DB_ROW['user_id'] . '_' . $DB_ROW['matiere_id']] = TRUE; } // Parcourir chaque entrée du fichier à la recherche d'affectations profs/matières foreach ($tab_users_fichier['matiere'] as $i_fichier => $tab_matieres) { if (count($tab_matieres)) { foreach ($tab_matieres as $matiere_code => $type_rattachement) { // On a trouvé une telle affectation ; comparer avec ce que contient la base if (isset($tab_i_fichier_TO_id_base[$i_fichier]) && isset($tab_matiere_ref_TO_id_base[$matiere_code])) {
<li><span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE ?>?fichier=referentiels_socle__calcul_scores_etats_acquisitions">DOC : Calcul des scores et des états d'acquisitions.</a></span></li> <li><span class="astuce">Profils autorisés par les administrateurs : <span class="u"><?php echo $texte ?></span>.</span></li> </ul> <form action="#" method="post"> <hr /> <?php // Séparé en plusieurs requêtes sinon on ne s'en sort pas (entre les matières sans coordonnateurs, sans référentiel, les deux à la fois...). // La recherche ne s'effectue que sur les matières et niveaux utilisés, sans débusquer des référentiels résiduels. $tab_matiere = array(); $tab_niveau = array(); $tab_colonne = array(); // On récupère la liste des matières utilisées par l'établissement $DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_matieres_etablissement( TRUE /*order_by_name*/ ); $nb_matieres = !empty($DB_TAB) ? count($DB_TAB) : 0 ; if(!$nb_matieres) { echo'<p><span class="danger">Aucune matière associée à l\'établissement !</span></p>'; } else { foreach($DB_TAB as $DB_ROW) { $tab_matiere[$DB_ROW['matiere_id']] = array( 'nom' => html($DB_ROW['matiere_nom']) , 'nb_demandes' => $DB_ROW['matiere_nb_demandes'] ); } // On récupère la liste des niveaux utilisés par l'établissement