function OPT_langues($tab_langues) { $tab_optgroup = $tab_matiere_nom = array(); // pour array_multisort() $tab_matieres_enseignées = explode(',', DB_STRUCTURE_COMMUN::DB_recuperer_matieres_etabl()); foreach ($tab_langues as $id => $tab) { $tab_langues[$id]['optgroup'] = $id == 100 ? 0 : (count(array_intersect($tab_langues[$id]['tab_matiere_id'], $tab_matieres_enseignées)) ? 1 : 2); $tab_optgroup[$id] = $tab_langues[$id]['optgroup']; $tab_matiere_nom[$id] = $tab_langues[$id]['texte']; } array_multisort($tab_optgroup, SORT_ASC, $tab_matiere_nom, SORT_ASC, $tab_langues); return $tab_langues; }
{ $tab_eleve_infos[0] = array( 'eleve_nom' => '', 'eleve_prenom' => '', ); } $eleve_nb = count( $tab_eleve_infos , COUNT_NORMAL ); // //////////////////////////////////////////////////////////////////////////////////////////////////// // Récupération de la liste des résultats // //////////////////////////////////////////////////////////////////////////////////////////////////// if($besoin_notes) { // Récupération de calcul_methode ; calcul_limite ; calcul_retroactif $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_referentiels_infos_details_matieres_niveaux( $matiere_id , $niveau_id ); $calcul_methode = $DB_TAB[0]['referentiel_calcul_methode']; $calcul_limite = $DB_TAB[0]['referentiel_calcul_limite']; $calcul_retroactif = $DB_TAB[0]['referentiel_calcul_retroactif']; // Détermination de la date de départ $retroactif = ($retroactif=='auto') ? $calcul_retroactif : $retroactif ; // Ne peut plus valoir que "oui" | "non" | "annuel" à présent $date_mysql_debut_annee_scolaire = jour_debut_annee_scolaire('mysql'); if($retroactif=='non') { $date_mysql_start = $date_mysql_debut; } elseif($retroactif=='annuel') { $date_mysql_start = $date_mysql_debut_annee_scolaire; } else { $date_mysql_start = FALSE; } // forcément 'oui' puisque le cas 'auto' a déjà été écarté (possible car un unique référentiel est considéré ici) $DB_TAB = DB_STRUCTURE_BILAN::DB_lister_result_eleves_items( $liste_eleve , $liste_item , $matiere_id , $date_mysql_start , $date_mysql_fin , $_SESSION['USER_PROFIL_TYPE'] , FALSE /*onlyprof*/ , FALSE /*onlynote*/ ) ; if(!empty($DB_TAB)) { foreach($DB_TAB as $DB_ROW) { $user_id = ($_SESSION['USER_PROFIL_TYPE']=='eleve') ? $_SESSION['USER_ID'] : $DB_ROW['eleve_id'] ;
* * SACoche est distribué dans l’espoir qu’il vous sera utile, mais SANS AUCUNE GARANTIE : * sans même la garantie implicite de COMMERCIALISABILITÉ ni d’ADÉQUATION À UN OBJECTIF PARTICULIER. * Consultez la Licence Publique Générale GNU Affero pour plus de détails. * * 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) { exit('Action désactivée pour la démo...'); } $daltonisme = isset($_POST['daltonisme']) ? Clean::entier($_POST['daltonisme']) : -1; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Mettre à jour la session + la base + le css perso // //////////////////////////////////////////////////////////////////////////////////////////////////// if (in_array($daltonisme, array(0, 1))) { $_SESSION['USER_DALTONISME'] = $daltonisme; DB_STRUCTURE_COMMUN::DB_modifier_user_parametre($_SESSION['USER_ID'], 'user_daltonisme', $daltonisme); // Enregistrer en session le CSS personnalisé SessionUser::adapter_daltonisme(); SessionUser::actualiser_style(); exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // On ne devrait pas en arriver là ! // //////////////////////////////////////////////////////////////////////////////////////////////////// exit('Erreur avec les données transmises !');
<form action="#" method="post" id="cadre_statut"> <h3>Accès / Statut : <img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Pour les cases cochées du tableau (classes uniquement)." /></h3> <div>' . implode('</div><div>', $tab_radio) . '</div> <p><label for="mode_discret"><input id="mode_discret" name="mode_discret" type="checkbox" value="1" /> Mode discret <img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Cocher pour éviter l\'envoi de notifications aux abonnés." /></label></p> <p><input id="classe_ids" name="classe_ids" type="hidden" value="" /><input id="csrf" name="csrf" type="hidden" value="" /><button id="bouton_valider" type="button" class="valider">Valider</button><label id="ajax_msg_gestion"> </label></p> </form> '; } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Formulaire de choix des épreuves pour une recherche de saisies manquantes. -> zone_chx_rubriques // Paramètres supplémentaires envoyés pour éviter d'avoir à les retrouver à chaque fois. -> form_hidden // //////////////////////////////////////////////////////////////////////////////////////////////////// $form_hidden = ''; $tab_checkbox_rubriques = array(); // Lister les matières rattachées au prof $listing_matieres_id = $_SESSION['USER_PROFIL_TYPE'] == 'professeur' ? DB_STRUCTURE_COMMUN::DB_recuperer_matieres_professeur($_SESSION['USER_ID']) : ''; $form_hidden .= '<input type="hidden" id="f_listing_matieres" name="f_listing_matieres" value="' . $listing_matieres_id . '" />'; $tab_matieres_id = explode(',', $listing_matieres_id); // Lister les épreuves par série de Brevet en place dans l'établissement foreach ($tab_brevet_series as $brevet_serie_ref => $brevet_serie_nom) { $tab_checkbox_rubriques[$brevet_serie_ref] = '<h3>' . $brevet_serie_nom . '</h3>'; $DB_TAB = DB_STRUCTURE_BREVET::DB_lister_brevet_epreuves($brevet_serie_ref); foreach ($DB_TAB as $DB_ROW) { $checked = $_SESSION['USER_PROFIL_TYPE'] != 'professeur' || count(array_intersect(explode(',', $DB_ROW['brevet_epreuve_choix_matieres']), $tab_matieres_id)) ? ' checked' : ''; $tab_checkbox_rubriques[$brevet_serie_ref] .= '<label for="rubrique_' . $brevet_serie_ref . '_' . $DB_ROW['brevet_epreuve_code'] . '"><input type="checkbox" name="f_rubrique[]" id="rubrique_' . $brevet_serie_ref . '_' . $DB_ROW['brevet_epreuve_code'] . '" value="' . $brevet_serie_ref . '_' . $DB_ROW['brevet_epreuve_code'] . '"' . $checked . ' /> ' . html($DB_ROW['brevet_epreuve_nom']) . '</label><br />'; } $tab_checkbox_rubriques[$brevet_serie_ref] .= '<label for="rubrique_' . $brevet_serie_ref . '_' . CODE_BREVET_EPREUVE_TOTAL . '"><input type="checkbox" name="f_rubrique[]" id="rubrique_' . $brevet_serie_ref . '_' . CODE_BREVET_EPREUVE_TOTAL . '" value="' . $brevet_serie_ref . '_' . CODE_BREVET_EPREUVE_TOTAL . '" /> <i>Avis de synthèse</i></label><br />'; } ?> <form action="#" method="post" id="zone_chx_rubriques" class="hide">
* Logiciel placé sous la licence libre Affero GPL 3 <https://www.gnu.org/licenses/agpl-3.0.html>. * **************************************************************************************************** * * Ce fichier est une partie de SACoche. * * SACoche est un logiciel libre ; vous pouvez le redistribuer ou le modifier suivant les termes * de la “GNU Affero General Public License” telle que publiée par la Free Software Foundation : * soit la version 3 de cette licence, soit (à votre gré) toute version ultérieure. * * SACoche est distribué dans l’espoir qu’il vous sera utile, mais SANS AUCUNE GARANTIE : * sans même la garantie implicite de COMMERCIALISABILITÉ ni d’ADÉQUATION À UN OBJECTIF PARTICULIER. * Consultez la Licence Publique Générale GNU Affero pour plus de détails. * * 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/>. * */ // Mettre à jour l'élément de formulaire "select_eleves" et le renvoyer en HTML if (!defined('SACoche')) { exit('Ce fichier ne peut être appelé directement !'); } if ($_SESSION['SESAMATH_ID'] == ID_DEMO) { } $matiere_id = isset($_POST['f_matiere']) ? Clean::entier($_POST['f_matiere']) : 0; $niveau_id = isset($_POST['f_niveau']) ? Clean::entier($_POST['f_niveau']) : 0; if (!$matiere_id || !$niveau_id) { exit('Erreur avec les données transmises !'); } // Affichage du retour. exit(HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_arborescence($matiere_id, $niveau_id), FALSE, '', FALSE, 'referentiel', FALSE));
* Consultez la Licence Publique Générale GNU Affero pour plus de détails. * * 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 !'); } $TITRE = html(Lang::_("Affecter les périodes aux classes & groupes")); ?> <?php // Fabrication des éléments select du formulaire $select_periodes = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_periodes_etabl(TRUE), 'select_periodes', FALSE, FALSE, '', $multiple = TRUE); $select_classes_groupes = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_classes_groupes_etabl(), 'select_classes_groupes', FALSE, FALSE, 'regroupements', $multiple = TRUE); ?> <p><span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE; ?> ?fichier=support_administrateur__gestion_periodes">DOC : Gestion des périodes</a></span></p> <hr /> <form action="#" method="post" id="form_select"> <table><tr> <td class="nu" style="width:25em"> <b>Périodes :</b><span class="check_multiple"><q class="cocher_tout" title="Tout cocher."></q><q class="cocher_rien" title="Tout décocher."></q></span><br /> <span id="select_periodes" class="select_multiple"><?php echo $select_periodes;
$eleves_ordre = 'alpha'; $tab_eleve = $tab_eleve_id; $liste_eleve = $liste_eleve_id; $tab_matiere_id = array(); require(CHEMIN_DOSSIER_INCLUDE.'noyau_items_synthese.php'); $nom_bilan_html = 'releve_HTML'; } elseif(in_array($BILAN_TYPE,array('palier1','palier2','palier3'))) { $palier_id = (int)substr($BILAN_TYPE,-1); $palier_nom = 'Palier '.$palier_id; $only_presence = $_SESSION['OFFICIEL']['SOCLE_ONLY_PRESENCE']; $aff_socle_PA = $_SESSION['OFFICIEL']['SOCLE_POURCENTAGE_ACQUIS']; $aff_socle_EV = $_SESSION['OFFICIEL']['SOCLE_ETAT_VALIDATION']; $groupe_id = (!$is_sous_groupe) ? $classe_id : $groupe_id ; // Le groupe = la classe (par défaut) ou le groupe transmis $groupe_nom = (!$is_sous_groupe) ? $classe_nom : $classe_nom.' - '.DB_STRUCTURE_COMMUN::DB_recuperer_groupe_nom($groupe_id) ; $groupe_type = (!$is_sous_groupe) ? 'Classe' : 'Groupe' ; $mode = 'auto'; $aff_coef = 0; // Sans objet, l'élève & sa famille n'ayant accès qu'à l'archive pdf $aff_socle = 0; // Sans objet, l'élève & sa famille n'ayant accès qu'à l'archive pdf $aff_lien = 0; // Sans objet, l'élève & sa famille n'ayant accès qu'à l'archive pdf $aff_start = 0; // Sans objet, l'élève & sa famille n'ayant accès qu'à l'archive pdf $couleur = $_SESSION['OFFICIEL']['SOCLE_COULEUR']; $fond = $_SESSION['OFFICIEL']['SOCLE_FOND']; $legende = $_SESSION['OFFICIEL']['SOCLE_LEGENDE']; $marge_gauche = $_SESSION['OFFICIEL']['MARGE_GAUCHE']; $marge_droite = $_SESSION['OFFICIEL']['MARGE_DROITE']; $marge_haut = $_SESSION['OFFICIEL']['MARGE_HAUT']; $marge_bas = $_SESSION['OFFICIEL']['MARGE_BAS']; $eleves_ordre = 'alpha'; $tab_pilier_id = $tab_pilier_id;
$is_select_multiple = 0; $socle_PA = test_user_droit_specifique($_SESSION['DROIT_SOCLE_POURCENTAGE_ACQUIS']) ? $socle_PA : '<del>Pourcentage d\'items acquis</del>' ; $socle_EV = test_user_droit_specifique($_SESSION['DROIT_SOCLE_ETAT_VALIDATION']) ? $socle_EV : '<del>État de validation</del>' ; } elseif($_SESSION['USER_PROFIL_TYPE']=='eleve') { $tab_groupes = array(0=>array('valeur'=>$_SESSION['ELEVE_CLASSE_ID'],'texte'=>$_SESSION['ELEVE_CLASSE_NOM'],'optgroup'=>'classe')); $of_g = FALSE; $sel_g = TRUE; $class_form_eleve = 'hide'; $class_option_groupe = 'show'; $class_option_mode = 'hide'; $select_eleves = '<select id="f_eleve" name="f_eleve[]"><option value="'.$_SESSION['USER_ID'].'" selected>'.html($_SESSION['USER_NOM'].' '.$_SESSION['USER_PRENOM']).'</option></select>'; $is_select_multiple = 0; $socle_PA = test_user_droit_specifique($_SESSION['DROIT_SOCLE_POURCENTAGE_ACQUIS']) ? $socle_PA : '<del>Pourcentage d\'items acquis</del>' ; $socle_EV = test_user_droit_specifique($_SESSION['DROIT_SOCLE_ETAT_VALIDATION']) ? $socle_EV : '<del>État de validation</del>' ; } $tab_paliers = DB_STRUCTURE_COMMUN::DB_OPT_paliers_etabl(); $tab_matieres = DB_STRUCTURE_COMMUN::DB_OPT_matieres_etabl(); $of_p = (count($tab_paliers)<2) ? FALSE : '' ; $select_palier = HtmlForm::afficher_select($tab_paliers , 'f_palier' /*select_nom*/ , $of_p /*option_first*/ , Form::$tab_choix['palier_id'] /*selection*/ , '' /*optgroup*/); $select_groupe = HtmlForm::afficher_select($tab_groupes , 'f_groupe' /*select_nom*/ , $of_g /*option_first*/ , $sel_g /*selection*/ , 'regroupements' /*optgroup*/); $select_eleves_ordre = HtmlForm::afficher_select(Form::$tab_select_eleves_ordre , 'f_eleves_ordre' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['eleves_ordre'] /*selection*/ , '' /*optgroup*/); $select_matiere = HtmlForm::afficher_select($tab_matieres , 'f_matiere' /*select_nom*/ , FALSE /*option_first*/ , TRUE /*selection*/ , '' /*optgroup*/ , TRUE /*multiple*/); $select_marge_min = HtmlForm::afficher_select(Form::$tab_select_marge_min , 'f_marge_min' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['marge_min'] /*selection*/ , '' /*optgroup*/); $select_couleur = HtmlForm::afficher_select(Form::$tab_select_couleur , 'f_couleur' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['couleur'] /*selection*/ , '' /*optgroup*/); $select_fond = HtmlForm::afficher_select(Form::$tab_select_fond , 'f_fond' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['fond'] /*selection*/ , '' /*optgroup*/); $select_legende = HtmlForm::afficher_select(Form::$tab_select_legende , 'f_legende' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['legende'] /*selection*/ , '' /*optgroup*/); // Javascript Layout::add( 'js_inline_before' , 'var is_multiple = '.$is_select_multiple.';' ); ?>
$tab_objet_profils['droit_officiel_bulletin_corriger_appreciation'] = $tab_profils_possibles['dir_pers_pp']; $tab_objet_profils['droit_officiel_bulletin_appreciation_generale'] = $tab_profils_possibles['dir_pers_pp']; $tab_objet_profils['droit_officiel_bulletin_impression_pdf'] = $tab_profils_possibles['dir_pers_pp']; $tab_objet_profils['droit_officiel_socle_modifier_statut'] = $tab_profils_possibles['dir_pers_pp']; $tab_objet_profils['droit_officiel_socle_corriger_appreciation'] = $tab_profils_possibles['dir_pers_pp']; $tab_objet_profils['droit_officiel_socle_appreciation_generale'] = $tab_profils_possibles['dir_pers_pp']; $tab_objet_profils['droit_officiel_socle_impression_pdf'] = $tab_profils_possibles['dir_pers_pp']; $tab_objet_profils['droit_fiche_brevet_modifier_statut'] = $tab_profils_possibles['dir_pers_pp']; $tab_objet_profils['droit_fiche_brevet_corriger_appreciation'] = $tab_profils_possibles['dir_pers_pp']; $tab_objet_profils['droit_fiche_brevet_appreciation_generale'] = $tab_profils_possibles['dir_pers_pp']; $tab_objet_profils['droit_fiche_brevet_impression_pdf'] = $tab_profils_possibles['dir_pers_pp']; $tab_objet_profils['droit_officiel_releve_voir_archive'] = $tab_profils_possibles['tous']; $tab_objet_profils['droit_officiel_bulletin_voir_archive'] = $tab_profils_possibles['tous']; $tab_objet_profils['droit_officiel_socle_voir_archive'] = $tab_profils_possibles['tous']; $tab_objet_profils['droit_fiche_brevet_voir_archive'] = $tab_profils_possibles['tous']; if (!isset($tab_objet_profils[$f_objet])) { exit('Droit inconnu !'); } $tab_profils_transmis = $f_profils ? explode(',', $f_profils) : array(); $tab_profils_possibles = $tab_objet_profils[$f_objet]; $tab_profils_inconnus = array_diff($tab_profils_transmis, $tab_profils_possibles); if (count($tab_profils_inconnus)) { exit('Profils incohérents !'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Appliquer la modification demandée // //////////////////////////////////////////////////////////////////////////////////////////////////// DB_STRUCTURE_COMMUN::DB_modifier_parametres(array($f_objet => $f_profils)); // ne pas oublier de mettre aussi à jour la session $_SESSION[strtoupper($f_objet)] = $f_profils; exit('ok');
} else { $lignes_ko .= '<tr><td>' . html($eleve_nom . ' ' . $eleve_prenom) . '</td><td colspan="4" class="r">Homonymes trouvés dans la base.</td></tr>'; } } } } } // affichage du retour exit($lignes_ok . $lignes_ko); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Afficher le formulaire de saisie manuel // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'afficher_formulaire_manuel' && $periode_id && $groupe_id) { // liste des élèves $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement('eleve', 1, 'classe', $groupe_id, 'alpha'); if (empty($DB_TAB)) { exit('Aucun élève trouvé dans ce regroupement !'); } $tab_eleves = array(); foreach ($DB_TAB as $DB_ROW) { $tab_eleves[$DB_ROW['user_id']] = $DB_ROW['user_nom'] . ' ' . $DB_ROW['user_prenom']; } // liste des saisies $tab_assiduite = array(); $DB_TAB = DB_STRUCTURE_OFFICIEL::DB_lister_officiel_assiduite($periode_id, array_keys($tab_eleves)); foreach ($DB_TAB as $DB_ROW) { $tab_assiduite[$DB_ROW['user_id']] = array('absence' => $DB_ROW['assiduite_absence'], 'absence_nj' => $DB_ROW['assiduite_absence_nj'], 'retard' => $DB_ROW['assiduite_retard'], 'retard_nj' => $DB_ROW['assiduite_retard_nj']); } // affichage du tableau $lignes = '';
?> <br /> <label class="tab">Évaluations :</label>cases de largeur <?php echo $select_cases_larg; ?> </div> <p><span class="tab"></span><button id="bouton_valider" type="submit" class="generer">Générer.</button><label id="ajax_msg"> </label></p> </fieldset></form> <form action="#" method="post" id="zone_matieres_items" class="arbre_dynamique arbre_check hide"> <div>Tout déployer / contracter :<q class="deployer_m1"></q><q class="deployer_m2"></q><q class="deployer_n1"></q><q class="deployer_n2"></q><q class="deployer_n3"></q></div> <p>Cocher ci-dessous (<span class="astuce">cliquer sur un intitulé pour déployer son contenu</span>) :</p> <?php // Affichage de la liste des items pour toutes les matières d'un professeur ou toutes les matières de l'établissement si directeur ou PP, sur tous les niveaux $user_id = $_SESSION['USER_PROFIL_TYPE'] == 'professeur' && !DB_STRUCTURE_PROFESSEUR::DB_tester_prof_principal($_SESSION['USER_ID'], 0) ? $_SESSION['USER_ID'] : 0; $DB_TAB = DB_STRUCTURE_COMMUN::DB_recuperer_arborescence($user_id, 0, 0, FALSE, FALSE, FALSE); if (empty($DB_TAB)) { echo '<p class="danger">Vous n\'êtes rattaché à aucune matière, ou des matières ne comportant aucun référentiel !</p>'; } else { $arborescence = HtmlArborescence::afficher_matiere_from_SQL($DB_TAB, TRUE, TRUE, FALSE, FALSE, 'texte', FALSE, TRUE); echo strpos($arborescence, '<input') ? $arborescence : '<p class="danger">Vous êtes rattaché à des matières dont les référentiels ne comportent aucun item !</p>'; } ?> <p><span class="tab"></span><button id="valider_compet" type="button" class="valider">Valider la sélection</button> <button id="annuler_compet" type="button" class="annuler">Annuler / Retour</button></p> <hr /> <p> <label class="tab" for="f_selection_items"><img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Pour choisir un regroupement d'items mémorisé." /> Initialisation</label><?php echo $select_selection_items; ?> <br /> <label class="tab" for="f_liste_items_nom"><img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Pour enregistrer le groupe d'items cochés." /> Mémorisation</label><input id="f_liste_items_nom" name="f_liste_items_nom" size="30" type="text" value="" maxlength="60" /> <button id="f_enregistrer_items" type="button" class="fichier_export">Enregistrer</button><label id="ajax_msg_memo"> </label>
/** * analyser_et_reparer_tables_base_etablissement * Sans lien direct avec la sauvegarde, mais tout de même rangé dans ce fichier... * * @param void * @return array un code de niveau d'alerte + un message */ function analyser_et_reparer_tables_base_etablissement() { // Lister les tables $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_tables(); $listing_tables = implode(',', array_keys($DB_TAB)); // Analyser les tables $niveau_alerte = 0; $tab_messages = array(); $DB_TAB = DB_STRUCTURE_COMMUN::DB_analyser_tables($listing_tables); foreach ($DB_TAB as $key => $DB_ROW) { if ($DB_ROW['Msg_text'] != 'OK' && $DB_ROW['Msg_text'] != 'Not checked') { $niveau_alerte = max($niveau_alerte, 1); $tab_messages[$key] = $DB_ROW['Table'] . ' → ' . $DB_ROW['Msg_text']; // Réparer une table $DB_ROW2 = DB_STRUCTURE_COMMUN::DB_reparer_table($DB_ROW['Table']); $tab_messages[$key] .= ' → Réparation → ' . $DB_ROW2['Msg_text']; if ($DB_ROW2['Msg_text'] != 'OK') { $niveau_alerte = 2; } } elseif (HEBERGEUR_INSTALLATION == 'mono-structure') { $tab_messages[$key] = $DB_ROW['Table'] . ' → ' . $DB_ROW['Msg_text']; } } // Retour if (!count($tab_messages)) { $tab_messages[] = count($DB_TAB) . ' tables OK'; } return array($niveau_alerte, implode('<br />', $tab_messages)); }
// Contenu du fichier à supprimer $lignes_del = ''; if(count($tab_groupes_base['ref'])) { foreach($tab_groupes_base['ref'] as $id_base => $ref) { $lignes_del .= '<tr><th>'.html($ref).'</th><td>Supprimer <input id="del_'.$id_base.'" name="del_'.$id_base.'" type="checkbox" /> '.html($tab_groupes_base['nom'][$id_base]).'</td></tr>'.NL; } } // Contenu du fichier à ajouter $lignes_add = ''; if(count($tab_groupes_fichier['ref'])) { $select_niveau = '<option value=""> </option>'; $tab_niveau_ref = array(); $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_niveaux_etablissement(FALSE /*with_particuliers*/); foreach($DB_TAB as $DB_ROW) { $select_niveau .= '<option value="'.$DB_ROW['niveau_id'].'">'.html($DB_ROW['niveau_nom']).'</option>'; $key = ( ($import_origine=='sconet') && ($import_profil=='eleve') ) ? $DB_ROW['code_mef'] : $DB_ROW['niveau_ref'] ; $tab_niveau_ref[$key] = $DB_ROW['niveau_id']; } foreach($tab_groupes_fichier['ref'] as $i_groupe => $ref) { // On préselectionne un niveau : // - pour sconet_eleves on compare avec un masque d'expression régulière // - pour base_eleves_eleves on compare avec les niveaux de SACoche // - pour sconet_professeurs_directeurs on compare avec le début de la référence du groupe // - pour tableur_eleves on compare avec le début de la référence du groupe $id_checked = ''; foreach($tab_niveau_ref as $masque_recherche => $niveau_id)
$test_uai = $_SESSION['WEBMESTRE_UAI'] ? TRUE : FALSE; $test_cnil = intval(CNIL_NUMERO) && CNIL_DATE_ENGAGEMENT && CNIL_DATE_RECEPISSE ? TRUE : FALSE; $test_id_sconet = !$nb_eleves_sans_sconet ? TRUE : FALSE; $test_key_sesamath = $_SESSION['SESAMATH_KEY'] && $_SESSION['SESAMATH_ID'] ? TRUE : FALSE; $webmestre_menu_uai = HEBERGEUR_INSTALLATION == 'multi-structures' ? '[Gestion des inscriptions] [Gestion des établissements]' : '[Paramétrages installation] [Identité de l\'installation]'; $webmestre_menu_cnil = '[Paramétrages installation] [Identité de l\'installation]'; $msg_uai = $test_uai ? '<label class="valide">Référence ' . html($_SESSION['WEBMESTRE_UAI']) . '</label>' : '<label class="erreur">Référence non renseignée par le webmestre.</label> <span class="manuel"><a class="pop_up" href="' . SERVEUR_DOCUMENTAIRE . '?fichier=support_webmestre__identite_installation">DOC</a></span> ' . HtmlMail::to(WEBMESTRE_COURRIEL, 'SACoche - référence UAI', 'contact', 'Bonjour. La référence UAI de notre établissement (base n°' . $_SESSION['BASE'] . ') n\'est pas renseignée. Pouvez-vous faire le nécessaire depuis votre menu ' . $webmestre_menu_uai . ' ?'); $msg_cnil = $test_cnil ? '<label class="valide">Déclaration n°' . html(CNIL_NUMERO) . ' - demande effectuée le ' . html(CNIL_DATE_ENGAGEMENT) . ' - récépissé reçu le ' . html(CNIL_DATE_RECEPISSE) . '</label>' : '<label class="erreur">Déclaration non renseignée par le webmestre.</label> <span class="manuel"><a class="pop_up" href="' . SERVEUR_DOCUMENTAIRE . '?fichier=support_webmestre__identite_installation">DOC</a></span> ' . HtmlMail::to(WEBMESTRE_COURRIEL, 'SACoche - Informations CNIL', 'contact', 'Bonjour. Les informations CNIL de l\'installation ' . URL_INSTALL_SACOCHE . ' ne sont pas renseignées. Pouvez-vous faire le nécessaire depuis votre menu ' . $webmestre_menu_cnil . ' ?'); $msg_id_sconet = $test_id_sconet ? '<label class="valide">Identifiants élèves présents.</label>' : '<label class="alerte">' . $nb_eleves_sans_sconet . ' élève' . $s . ' trouvé' . $s . ' sans identifiant Sconet.</label> <span class="manuel"><a class="pop_up" href="' . SERVEUR_DOCUMENTAIRE . '?fichier=support_administrateur__import_users_sconet">DOC</a></span>'; $msg_key_sesamath = $test_key_sesamath ? '<label class="valide">Etablissement identifié sur le serveur communautaire.</label>' : '<label class="erreur">Identification non effectuée par un administrateur.</label> <span class="manuel"><a class="pop_up" href="' . SERVEUR_DOCUMENTAIRE . '?fichier=support_administrateur__gestion_informations_structure">DOC</a></span>'; $bouton_export_lpc = $test_uai && $test_cnil && $test_key_sesamath ? 'id="bouton_export" class="fichier_export enabled"' : 'id="disabled_export" class="fichier_export" disabled'; ?> <?php // Fabrication des éléments select du formulaire $select_f_groupes = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_regroupements_etabl(), 'f_groupe', '', FALSE, 'regroupements'); ?> <p><span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE; ?> ?fichier=referentiels_socle__socle_export_import">DOC : Import / Export de validations du socle</a></span></p> <hr /> <form action="#" method="post"> <fieldset> <label class="tab" for="f_choix_principal">Procédure :</label> <select id="f_choix_principal" name="f_choix_principal"> <option value=""> </option>
<p> <span class="tab"></span><input type="hidden" id="f_highlight_id" name="f_highlight_id" value="<?php echo $auto_highlight_item_id ?>" /><button id="bouton_valider" type="submit" class="generer">Générer.</button><label id="ajax_msg"> </label> </p> </fieldset></form> <form action="#" method="post" id="zone_matieres_items" class="arbre_dynamique arbre_check hide"> <div>Tout déployer / contracter :<q class="deployer_m1"></q><q class="deployer_m2"></q><q class="deployer_n1"></q><q class="deployer_n2"></q><q class="deployer_n3"></q></div> <p>Cocher ci-dessous (<span class="astuce">cliquer sur un intitulé pour déployer son contenu</span>) :</p> <?php if(!in_array($_SESSION['USER_PROFIL_TYPE'],array('parent','eleve'))) { // Affichage de la liste des items pour toutes les matières d'un professeur ou toutes les matières de l'établissement si directeur ou PP, sur tous les niveaux $user_id = ( ($_SESSION['USER_PROFIL_TYPE']=='professeur') && !DB_STRUCTURE_PROFESSEUR::DB_tester_prof_principal($_SESSION['USER_ID'],0) ) ? $_SESSION['USER_ID'] : 0 ; $DB_TAB = DB_STRUCTURE_COMMUN::DB_recuperer_arborescence( $user_id , 0 /*matiere_id*/ , 0 /*niveau_id*/, FALSE /*only_socle*/ , FALSE /*only_item*/ , FALSE /*socle_nom*/ ); if(empty($DB_TAB)) { echo'<p class="danger">Vous n\'êtes rattaché à aucune matière, ou des matières ne comportant aucun référentiel !</p>' ; } else { $arborescence = HtmlArborescence::afficher_matiere_from_SQL( $DB_TAB , TRUE /*dynamique*/ , TRUE /*reference*/ , FALSE /*aff_coef*/ , FALSE /*aff_cart*/ , 'texte' /*aff_socle*/ , FALSE /*aff_lien*/ , TRUE /*aff_input*/ ); echo strpos($arborescence,'<input') ? $arborescence : '<p class="danger">Vous êtes rattaché à des matières dont les référentiels ne comportent aucun item !</p>' ; } } ?> <p><span class="tab"></span><button id="valider_compet" type="button" class="valider">Valider la sélection</button> <button id="annuler_compet" type="button" class="annuler">Annuler / Retour</button></p> <hr /> <p> <label class="tab" for="f_selection_items"><img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Pour choisir un regroupement d'items mémorisé." /> Initialisation</label><?php echo $select_selection_items ?><br />
$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 = 0; // (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( ($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'] ); } } // 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']) ; $DB_TAB = DB_STRUCTURE_OFFICIEL::DB_recuperer_bilan_officiel_saisies_eleves( $BILAN_TYPE , $periode_id , $eleve_id , 0 /*prof_id*/ , FALSE /*with_rubrique_nom*/ , FALSE /*with_periodes_avant*/ , FALSE /*only_synthese_generale*/ );
{ echo'<p><button id="choisir_rechercher" type="button" class="rechercher">Rechercher parmi les référentiels partagés sur le serveur communautaire.</button></p>'.NL; echo'<p><button id="choisir_importer" type="button" value="id_x" class="valider">Démarrer avec ce référentiel : <b id="reporter"></b></button></p>'.NL; } ?> <p><button id="choisir_annuler" type="button" class="annuler">Annuler la création d'un référentiel.</button></p> </div> </form> <form action="#" method="post" id="form_communautaire" class="hide"> <?php // Fabrication des éléments select du formulaire, pour pouvoir prendre un référentiel d'une autre matière ou d'un autre niveau (demandé...). $select_famille_matiere = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_familles_matieres() , 'f_famille_matiere' /*select_nom*/ , '' /*option_first*/ , FALSE /*selection*/ , 'familles_matieres' /*optgroup*/); $select_famille_niveau = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_familles_niveaux() , 'f_famille_niveau' /*select_nom*/ , '' /*option_first*/ , FALSE /*selection*/ , 'familles_niveaux' /*optgroup*/); ?> <div id="choisir_referentiel_communautaire"> <h2>Rechercher un référentiel partagé sur le serveur communautaire</h2> <p> <label class="tab" for="f_famille_matiere">Famille de matières :</label><?php echo $select_famille_matiere ?><label id="ajax_maj_matiere"> </label><br /> <label class="tab" for="f_matiere">Matières :</label><select id="f_matiere" name="f_matiere"><option value="0">Toutes les matières</option></select> </p> <p> <label class="tab" for="f_famille_niveau">Famille de niveaux :</label><?php echo $select_famille_niveau ?><label id="ajax_maj_niveau"> </label><br /> <label class="tab" for="f_niveau">Niveau :</label><select id="f_niveau" name="f_niveau"><option value="0">Tous les niveaux</option></select> </p> <fieldset> <label class="tab" for="f_structure"><img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Seules les structures partageant au moins un référentiel apparaissent." /> Structure :</label><select id="f_structure" name="f_structure"><option></option></select><br /> <span class="tab"></span><button id="rechercher" type="button" class="rechercher">Lancer / Actualiser la recherche.</button><label id="ajax_msg"> </label><br />
$of_g = ''; } else // Ne passent ici que les professeurs { if(test_droit_specifique_restreint($_SESSION['DROIT_VALIDATION_PILIER'],'ONLY_PP')) { $tab_groupes = DB_STRUCTURE_COMMUN::DB_OPT_classes_prof_principal($_SESSION['USER_ID']); $of_g = FALSE; } else { $tab_groupes = DB_STRUCTURE_COMMUN::DB_OPT_groupes_professeur($_SESSION['USER_ID']); $of_g = ''; } } $tab_paliers = DB_STRUCTURE_COMMUN::DB_OPT_paliers_etabl(); $of_p = (count($tab_paliers)<2) ? FALSE : '' ; $select_palier = HtmlForm::afficher_select($tab_paliers , 'f_palier' /*select_nom*/ , $of_p /*option_first*/ , Form::$tab_choix['palier_id'] /*selection*/ , '' /*optgroup*/); $select_groupe = HtmlForm::afficher_select($tab_groupes , 'f_groupe' /*select_nom*/ , $of_g /*option_first*/ , FALSE /*selection*/ , 'regroupements' /*optgroup*/); $select_eleves_ordre = HtmlForm::afficher_select(Form::$tab_select_eleves_ordre , 'f_eleves_ordre' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['eleves_ordre'] /*selection*/ , '' /*optgroup*/); ?> <ul class="puce"> <li><span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE ?>?fichier=referentiels_socle__socle_valider_pilier">DOC : Valider des compétences du socle.</a></span></li> </ul> <hr /> <form action="#" method="post" id="zone_choix"><fieldset> <label class="tab" for="f_palier">Palier :</label><?php echo $select_palier ?><label id="ajax_maj_pilier"> </label><br />
case 'eleve': $DB_TAB = array(0 => array('groupe_id' => $_SESSION['ELEVE_CLASSE_ID'], 'groupe_nom' => $_SESSION['ELEVE_CLASSE_NOM'])); } if (!empty($DB_TAB)) { foreach ($DB_TAB as $DB_ROW) { $tab_groupe[$DB_ROW['groupe_id']] = '<th>' . html($DB_ROW['groupe_nom']) . '</th>'; } // Récupérer la liste des périodes, dans l'ordre choisi par l'admin $DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_periodes(); if (!empty($DB_TAB)) { foreach ($DB_TAB as $DB_ROW) { $tab_periode[$DB_ROW['periode_id']] = '<th>' . html($DB_ROW['periode_nom']) . '</th>'; } // Récupérer la liste des jointures $listing_groupes_id = implode(',', array_keys($tab_groupe)); $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_jointure_groupe_periode($listing_groupes_id); $memo_groupe_id = 0; if (!empty($DB_TAB)) { foreach ($DB_TAB as $DB_ROW) { $date_affich_debut = convert_date_mysql_to_french($DB_ROW['jointure_date_debut']); $date_affich_fin = convert_date_mysql_to_french($DB_ROW['jointure_date_fin']); $tab_jointure[$DB_ROW['groupe_id']][$DB_ROW['periode_id']] = html($date_affich_debut) . ' ~ ' . html($date_affich_fin); } } // Fabrication du tableau résultant foreach ($tab_groupe as $groupe_id => $groupe_text) { foreach ($tab_periode as $periode_id => $periode_text) { $tab_groupe[$groupe_id] .= isset($tab_jointure[$groupe_id][$periode_id]) ? '<td>' . $tab_jointure[$groupe_id][$periode_id] . '</td>' : '<td class="hc">-</td>'; } } // Affichage du tableau résultant
?> </form> <form action="#" method="post" id="zone_elaboration_referentiel" onsubmit="return false;" class="arbre_dynamique"> </form> <div id="zone_socle_item" class="arbre_dynamique hide"> <h2>Relation au socle commun</h2> <form action="#" method="post"> <p> <label class="tab">Item disciplinaire :</label><span class="f_nom i"></span><br /> <label class="tab">Socle commun :</label>Cocher ci-dessous (<span class="astuce">cliquer sur un intitulé pour déployer son contenu</span>).<br /> <span class="tab"></span><button id="choisir_socle_valider" type="button" class="valider">Valider le choix effectué.</button> <button id="choisir_socle_annuler" type="button" class="annuler">Annuler.</button> </p> <ul class="ul_n1 p"><li class="li_n3"><label for="socle_0"><input id="socle_0" name="f_socle" type="radio" value="0" /> Hors-socle.</label></li></ul> <?php // Affichage de la liste des items du socle pour chaque palier $DB_TAB = DB_STRUCTURE_COMMUN::DB_recuperer_arborescence_palier(); if(!empty($DB_TAB)) { echo HtmlArborescence::afficher_socle_from_SQL( $DB_TAB , TRUE /*dynamique*/ , FALSE /*reference*/ , TRUE /*aff_input*/ , FALSE /*ids*/ ); } else { echo'<span class="danger"> Aucun palier du socle n\'est associé à l\'établissement ! L\'administrateur doit préalablement choisir les paliers évalués...</span>'.NL; } ?> </form> </div>
<th>Profs</th> <th class="nu"><q class="ajouter" title="Ajouter une évaluation."></q></th> </tr> </thead> <tbody> <tr><td class="nu" colspan="7"></td></tr> </tbody> </table> </form> <form action="#" method="post" id="zone_matieres_items" class="arbre_dynamique arbre_check hide"> <div>Tout déployer / contracter : <a href="m1" class="all_extend"><img alt="m1" src="./_img/deploy_m1.gif" /></a> <a href="m2" class="all_extend"><img alt="m2" src="./_img/deploy_m2.gif" /></a> <a href="n1" class="all_extend"><img alt="n1" src="./_img/deploy_n1.gif" /></a> <a href="n2" class="all_extend"><img alt="n2" src="./_img/deploy_n2.gif" /></a> <a href="n3" class="all_extend"><img alt="n3" src="./_img/deploy_n3.gif" /></a></div> <p>Cocher ci-dessous (<span class="astuce">cliquer sur un intitulé pour déployer son contenu</span>) :</p> <?php // Affichage de la liste des items pour toutes les matières d'un professeur, sur tous les niveaux $DB_TAB = DB_STRUCTURE_COMMUN::DB_recuperer_arborescence($_SESSION['USER_ID'],$matiere_id=0,$niveau_id=0,$only_socle=false,$only_item=false,$socle_nom=false); echo afficher_arborescence_matiere_from_SQL($DB_TAB,$dynamique=true,$reference=true,$aff_coef=false,$aff_cart=false,$aff_socle='texte',$aff_lien=false,$aff_input=true); ?> <p class="danger">Une évaluation dont la saisie a commencé ne devrait pas voir ses items modifiés.<br />En particulier, retirer des items d'une évaluation efface les scores correspondants déjà saisis !</p> <div><span class="tab"></span><button id="valider_compet" type="button" class="valider">Valider la sélection</button> <button id="annuler_compet" type="button" class="annuler">Annuler / Retour</button></div> <hr /> <p> <label class="tab" for="f_selection_items"><img alt="" src="./_img/bulle_aide.png" title="Pour choisir un regroupement d'items mémorisé." /> Initialisation</label><?php echo $select_selection_items ?><br /> <label class="tab" for="f_liste_items_nom"><img alt="" src="./_img/bulle_aide.png" title="Pour enregistrer le groupe d'items cochés." /> Mémorisation</label><input id="f_liste_items_nom" name="f_liste_items_nom" size="30" type="text" value="" maxlength="60" /> <button id="f_enregistrer_items" type="button" class="fichier_export">Enregistrer</button><label id="ajax_msg_memo"> </label> </p> </form> <form action="#" method="post" id="zone_profs" class="hide"> <div class="astuce">Vous pouvez permettre à des collègues de co-saisir les notes de ce devoir (et de le dupliquer).</div> <?php echo afficher_form_element_checkbox_collegues() ?> <div style="clear:both"><button id="valider_profs" type="button" class="valider">Valider la sélection</button> <button id="annuler_profs" type="button" class="annuler">Annuler / Retour</button></div>
* Consultez la Licence Publique Générale GNU Affero pour plus de détails. * * 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/>. * */ // Mettre à jour l'élément de formulaire "f_eleve" et le renvoyer en HTML if(!defined('SACoche')) {exit('Ce fichier ne peut être appelé directement !');} if($_SESSION['SESAMATH_ID']==ID_DEMO) {} $groupe = (isset($_POST['f_groupe'])) ? Clean::entier($_POST['f_groupe']) : 0; $matiere = (isset($_POST['f_matiere'])) ? Clean::entier($_POST['f_matiere']) : 0; $multiple = (empty($_POST['f_multiple'])) ? FALSE : TRUE ; if(!$groupe) { exit('Erreur avec les données transmises !'); } $select_nom = ($multiple) ? 'f_matiere' : FALSE ; $option_first = ($multiple) ? FALSE : '' ; $selection = ($multiple) ? TRUE : $matiere ; // Affichage du retour. exit( HtmlForm::afficher_select( DB_STRUCTURE_COMMUN::DB_OPT_matieres_groupe($groupe) , $select_nom , $option_first , $selection , '' /*optgroup*/ , $multiple ) ); ?>
if (!$aff_lien) { $texte_lien_apres = ''; } $toggle_class = $aff_start ? 'toggle_moins' : 'toggle_plus'; $toggle_etat = $aff_start ? '' : ' class="hide"'; $avec_texte_nombre = !$make_officiel || $_SESSION['OFFICIEL']['BULLETIN_ACQUIS_TEXTE_NOMBRE'] ? TRUE : FALSE; $avec_texte_code = !$make_officiel || $_SESSION['OFFICIEL']['BULLETIN_ACQUIS_TEXTE_CODE'] ? TRUE : FALSE; } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Période concernée // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($periode_id == 0) { $date_mysql_debut = convert_date_french_to_mysql($date_debut); $date_mysql_fin = convert_date_french_to_mysql($date_fin); } else { $DB_ROW = DB_STRUCTURE_COMMUN::DB_recuperer_dates_periode($groupe_id, $periode_id); if (empty($DB_ROW)) { exit('La classe et la période ne sont pas reliées !'); } $date_mysql_debut = $DB_ROW['jointure_date_debut']; $date_mysql_fin = $DB_ROW['jointure_date_fin']; $date_debut = convert_date_mysql_to_french($date_mysql_debut); $date_fin = convert_date_mysql_to_french($date_mysql_fin); } if ($date_mysql_debut > $date_mysql_fin) { exit('La date de début est postérieure à la date de fin !'); } $tab_precision_retroactif = array('auto' => 'notes antérieures selon référentiels', 'oui' => 'avec notes antérieures', 'non' => 'sans notes antérieures', 'annuel' => 'notes antérieures de l\'année scolaire'); $precision_socle = $only_socle ? ', restriction au socle' : ''; $precision_niveau = $only_niveau ? ', restriction au niveau de l\'élève' : ''; $texte_periode = 'Du ' . $date_debut . ' au ' . $date_fin . '.';
$nb_items = count($tab_item_id); $tab_types = array('Classes'=>'classe' , 'Groupes'=>'groupe' , 'Besoins'=>'groupe'); $tab_qui = array('groupe','select'); $tab_suite = array('changer','retirer'); list($devoir_id,$devoir_groupe_id) = (substr_count($devoir_ids,'_')==1) ? explode('_',$devoir_ids) : array(0,0); // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // Afficher une liste de demandes // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - if( ($action=='Afficher_demandes') && $matiere_id && $matiere_nom && $groupe_id && (isset($tab_types[$groupe_type])) && $groupe_nom ) { $retour = ''; // Récupérer la liste des élèves concernés $DB_TAB = DB_STRUCTURE_COMMUN::DB_OPT_eleves_regroupement($tab_types[$groupe_type],$groupe_id,$user_statut=1); if(!is_array($DB_TAB)) { exit($DB_TAB); // Erreur : aucun élève de ce regroupement n\'est enregistré ! } $tab_eleves = array(); $tab_autres = array(); foreach($DB_TAB as $DB_ROW) { $tab_eleves[$DB_ROW['valeur']] = $DB_ROW['texte']; $tab_autres[$DB_ROW['valeur']] = $DB_ROW['texte']; } $listing_user_id = implode(',', array_keys($tab_eleves) ); // Lister les demandes $tab_demandes = array(); $DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_demandes_prof($matiere_id,$listing_user_id);
if (mb_strlen($password) < $_SESSION['TAB_PROFILS_ADMIN']['MDP_LONGUEUR_MINI'][$profil]) { exit('Erreur : mot de passe trop court pour ce profil !'); } } // Vérifier le domaine du serveur mail seulement en mode multi-structures car ce peut être sinon une installation sur un serveur local non ouvert sur l'extérieur. if ($courriel) { if (HEBERGEUR_INSTALLATION == 'multi-structures') { list($mail_domaine, $is_domaine_valide) = tester_domaine_courriel_valide($courriel); if (!$is_domaine_valide) { exit('Erreur avec le domaine "' . $mail_domaine . '" !'); } } } $user_email_origine = $courriel ? 'admin' : ''; // Insérer l'enregistrement $user_id = DB_STRUCTURE_COMMUN::DB_ajouter_utilisateur($sconet_id, 0, $reference, $profil, $genre, $nom, $prenom, NULL, $courriel, $user_email_origine, $login, crypter_mdp($password), 0, $id_ent, $id_gepi); // Pour les professeurs et directeurs, abonnement obligatoire aux signalements d'un souci pour une appréciation d'un bilan officiel DB_STRUCTURE_NOTIFICATION::DB_ajouter_abonnement($user_id, 'bilan_officiel_appreciation', 'accueil'); // Il peut (déjà !) falloir lui affecter une date de sortie... if ($box_date) { $sortie_date = '-'; $sortie_date_mysql = SORTIE_DEFAUT_MYSQL; } else { $sortie_date_mysql = convert_date_french_to_mysql($sortie_date); DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_user($user_id, array(':sortie_date' => $sortie_date_mysql)); } // Afficher le retour echo '<tr id="id_' . $user_id . '" class="new">'; echo '<td class="nu"><input type="checkbox" name="f_ids" value="' . $user_id . '" /></td>'; echo '<td class="label">' . html($id_ent) . '</td>'; echo '<td class="label">' . html($id_gepi) . '</td>';
.'<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']
DB_STRUCTURE_COMMUN::DB_modifier_parametres($tab_parametres); // On modifie aussi la session $_SESSION['OFFICIEL']['ARCHIVE_AJOUT_MESSAGE_COPIE'] = $archive_ajout_message_copie ; $_SESSION['OFFICIEL']['ARCHIVE_RETRAIT_TAMPON_SIGNATURE'] = $archive_retrait_tampon_signature ; exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Traitement du formulaire form_mise_en_page, partie "signature" // //////////////////////////////////////////////////////////////////////////////////////////////////// if( ($action=='signature') && $tampon_signature ) { $tab_parametres = array(); $tab_parametres['officiel_tampon_signature'] = $tampon_signature; DB_STRUCTURE_COMMUN::DB_modifier_parametres($tab_parametres); // On modifie aussi la session $_SESSION['OFFICIEL']['TAMPON_SIGNATURE'] = $tampon_signature ; exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Traitement du formulaire form_tampon (upload d'un fichier image) // //////////////////////////////////////////////////////////////////////////////////////////////////// if( ($action=='upload_signature') && ($user_id>=0) && ($user_texte!='') ) { $fichier_nom = 'signature_'.$_SESSION['BASE'].'_'.$user_id.'_'.fabriquer_fin_nom_fichier__date_et_alea().'.<EXT>'; $result = FileSystem::recuperer_upload( CHEMIN_DOSSIER_IMPORT /*fichier_chemin*/ , $fichier_nom /*fichier_nom*/ , array('gif','jpg','jpeg','png') /*tab_extensions_autorisees*/ , NULL /*tab_extensions_interdites*/ , 100 /*taille_maxi*/ , NULL /*filename_in_zip*/ ); if($result!==TRUE) {
} } } } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Lister des référentiels ou domaines ou thèmes auquel un prof a accès (pour un formulaire select) // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'lister_options' && in_array($granulosite, $tab_granulosite)) { $listing_id_matieres_autorisees = isset($_POST['id_matieres']) ? implode(',', Clean::map_entier(explode(',', $_POST['id_matieres']))) : '0'; exit(HtmlForm::afficher_select(DB_STRUCTURE_REFERENTIEL::DB_OPT_lister_elements_referentiels_prof($_SESSION['USER_ID'], $granulosite, $listing_id_matieres_autorisees), FALSE, '', FALSE, '')); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Afficher les référentiels d'une matière // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'Voir' && $matiere_id) { $DB_TAB = DB_STRUCTURE_COMMUN::DB_recuperer_arborescence(0, $matiere_id, 0, FALSE, FALSE, TRUE); $tab_niveau = array(); $tab_domaine = array(); $tab_theme = array(); $tab_item = array(); $niveau_id = 0; foreach ($DB_TAB as $DB_ROW) { if (!is_null($DB_ROW['niveau_id']) && $DB_ROW['niveau_id'] != $niveau_id) { $niveau_id = $DB_ROW['niveau_id']; $tab_niveau[$niveau_id] = $DB_ROW['niveau_nom']; $domaine_id = 0; $theme_id = 0; $item_id = 0; } if (!is_null($DB_ROW['domaine_id']) && $DB_ROW['domaine_id'] != $domaine_id) { $domaine_id = $DB_ROW['domaine_id'];
} if( ($_SESSION['USER_PROFIL_TYPE']=='parent') && ($_SESSION['NB_ENFANTS']==1) ) { $tab_groupes = array(0=>array('valeur'=>$_SESSION['ELEVE_CLASSE_ID'],'texte'=>$_SESSION['ELEVE_CLASSE_NOM'],'optgroup'=>'classe')); $of_g = FALSE; $sel_g = TRUE; $class_form_option = 'hide'; $class_form_eleve = 'hide'; $class_form_periode = 'show'; $select_eleves = '<select id="f_eleve" name="f_eleve[]"><option value="'.$_SESSION['OPT_PARENT_ENFANTS'][0]['valeur'].'" selected>'.html($_SESSION['OPT_PARENT_ENFANTS'][0]['texte']).'</option></select>'; $is_select_multiple = 0; } if($_SESSION['USER_PROFIL_TYPE']=='eleve') { $tab_groupes = array(0=>array('valeur'=>$_SESSION['ELEVE_CLASSE_ID'],'texte'=>$_SESSION['ELEVE_CLASSE_NOM'],'optgroup'=>'classe')); $of_g = FALSE; $sel_g = TRUE; $class_form_option = 'hide'; $class_form_eleve = 'hide'; $class_form_periode = 'show'; $select_eleves = '<select id="f_eleve" name="f_eleve[]"><option value="'.$_SESSION['USER_ID'].'" selected>'.html($_SESSION['USER_NOM'].' '.$_SESSION['USER_PRENOM']).'</option></select>'; $is_select_multiple = 0; } $tab_periodes = DB_STRUCTURE_COMMUN::DB_OPT_periodes_etabl(); $select_individuel_format = HtmlForm::afficher_select(Form::$tab_select_individuel_format , 'f_individuel_format' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['releve_individuel_format'] /*selection*/ , '' /*optgroup*/); $select_groupe = HtmlForm::afficher_select($tab_groupes , 'f_groupe' /*select_nom*/ , $of_g /*option_first*/ , $sel_g /*selection*/ , 'regroupements' /*optgroup*/); $select_eleves_ordre = HtmlForm::afficher_select(Form::$tab_select_eleves_ordre , 'f_eleves_ordre' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['eleves_ordre'] /*selection*/ , '' /*optgroup*/); $select_periode = HtmlForm::afficher_select($tab_periodes , 'f_periode' /*select_nom*/ , 'periode_personnalisee' /*option_first*/ , FALSE /*selection*/ , '' /*optgroup*/); $select_orientation = HtmlForm::afficher_select(Form::$tab_select_orientation , 'f_orientation' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['orientation'] /*selection*/ , '' /*optgroup*/); $select_marge_min = HtmlForm::afficher_select(Form::$tab_select_marge_min , 'f_marge_min' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['marge_min'] /*selection*/ , '' /*optgroup*/); $select_pages_nb = HtmlForm::afficher_select(Form::$tab_select_pages_nb , 'f_pages_nb' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['pages_nb'] /*selection*/ , '' /*optgroup*/); $select_couleur = HtmlForm::afficher_select(Form::$tab_select_couleur , 'f_couleur' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['couleur'] /*selection*/ , '' /*optgroup*/); $select_fond = HtmlForm::afficher_select(Form::$tab_select_fond , 'f_fond' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['fond'] /*selection*/ , '' /*optgroup*/); $select_legende = HtmlForm::afficher_select(Form::$tab_select_legende , 'f_legende' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['legende'] /*selection*/ , '' /*optgroup*/); $select_cases_nb = HtmlForm::afficher_select(Form::$tab_select_cases_nb , 'f_cases_nb' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['cases_nb'] /*selection*/ , '' /*optgroup*/); $select_cases_larg = HtmlForm::afficher_select(Form::$tab_select_cases_size , 'f_cases_larg' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['cases_largeur'] /*selection*/ , '' /*optgroup*/); // Javascript
// //////////////////////////////////////////////////////////////////////////////////////////////////// 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>';