{ foreach($tab_annuaire as $tab_infos) { /** * Exemples de valeurs trouvées pour { id ; libelle_long } : * 003800 / TRAITEMENT DES DIFFICULTES SCOLAIRES * 061300 / MATHEMATIQUES * 062300 / PHYSIQUE-CHIMIE * 100D00 / COURSE ORIENTATION * 030602 / ESPAGNOL LV2 */ if(ctype_digit($tab_infos['id'])) { $id = Clean::entier($tab_infos['id']); $matiere_id = ($id%100==0) ? $id/100 : NULL ; $matiere_libelle = Clean::texte($tab_infos['libelle_long']); $tab_matieres[$id] = array( 'matiere_id' => $matiere_id, 'matiere_libelle' => $matiere_libelle, ); } } } /**************************************************************************************************** * Récupérer les adresses mails des personnels et les affectations aux classes / groupes. ****************************************************************************************************/ $tab_annuaire = Laclasse::get_info_from_annuaire( $WS_uai , 'users' , TRUE /*exit_if_error*/ , TRUE /*with_details*/ ); if(!empty($tab_annuaire['data'])) {
* * 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...'); } $action = isset($_POST['f_action']) ? Clean::texte($_POST['f_action']) : ''; $logo = isset($_POST['f_logo']) ? Clean::texte($_POST['f_logo']) : ''; // inutilisé $adresse_web = isset($_POST['f_adresse_web']) ? Clean::url($_POST['f_adresse_web']) : ''; $message = isset($_POST['f_message']) ? Clean::texte($_POST['f_message']) : ''; $tab_ext_images = array('bmp', 'gif', 'jpg', 'jpeg', 'png'); // //////////////////////////////////////////////////////////////////////////////////////////////////// // Uploader un logo // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'upload_logo') { $result = FileSystem::recuperer_upload(CHEMIN_DOSSIER_IMPORT, NULL, $tab_ext_images, NULL, 100, NULL); if ($result !== TRUE) { exit('Erreur : ' . $result); } // vérifier la conformité du fichier image, récupérer les infos le concernant $tab_infos = @getimagesize(CHEMIN_DOSSIER_IMPORT . FileSystem::$file_saved_name); if ($tab_infos == FALSE) { FileSystem::supprimer_fichier(CHEMIN_DOSSIER_IMPORT . FileSystem::$file_saved_name); exit('Erreur : le fichier image ne semble pas valide !'); }
$horizontal_gauche = (isset($_POST['f_horizontal_gauche'])) ? Clean::entier($_POST['f_horizontal_gauche']) : 0; $horizontal_milieu = (isset($_POST['f_horizontal_milieu'])) ? Clean::entier($_POST['f_horizontal_milieu']) : 0; $horizontal_droite = (isset($_POST['f_horizontal_droite'])) ? Clean::entier($_POST['f_horizontal_droite']) : 0; $vertical_haut = (isset($_POST['f_vertical_haut'])) ? Clean::entier($_POST['f_vertical_haut']) : 0; $vertical_milieu = (isset($_POST['f_vertical_milieu'])) ? Clean::entier($_POST['f_vertical_milieu']) : 0; $vertical_bas = (isset($_POST['f_vertical_bas'])) ? Clean::entier($_POST['f_vertical_bas']) : 0; $nombre_exemplaires = (isset($_POST['f_nombre_exemplaires'])) ? Clean::texte($_POST['f_nombre_exemplaires']) : ''; $marge_gauche = (isset($_POST['f_marge_gauche'])) ? Clean::entier($_POST['f_marge_gauche']) : 0; $marge_droite = (isset($_POST['f_marge_droite'])) ? Clean::entier($_POST['f_marge_droite']) : 0; $marge_haut = (isset($_POST['f_marge_haut'])) ? Clean::entier($_POST['f_marge_haut']) : 0; $marge_bas = (isset($_POST['f_marge_bas'])) ? Clean::entier($_POST['f_marge_bas']) : 0; $archive_ajout_message_copie = (isset($_POST['f_archive_ajout_message_copie'])) ? Clean::entier($_POST['f_archive_ajout_message_copie']) : 0; $archive_retrait_tampon_signature = (isset($_POST['f_archive_retrait_tampon_signature'])) ? Clean::entier($_POST['f_archive_retrait_tampon_signature']) : 0; $tampon_signature = (isset($_POST['f_tampon_signature'])) ? Clean::texte($_POST['f_tampon_signature']) : ''; $user_id = (isset($_POST['f_user_id'])) ? Clean::entier($_POST['f_user_id']) : -1; $user_texte = (isset($_POST['f_user_texte'])) ? Clean::texte($_POST['f_user_texte']) : ''; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Traitement du formulaire form_mise_en_page, partie "coordonnees" // //////////////////////////////////////////////////////////////////////////////////////////////////// if($action=='coordonnees') { $tab_parametres = array(); $tab_parametres['officiel_infos_etablissement'] = implode(',',$tab_coordonnees); DB_STRUCTURE_COMMUN::DB_modifier_parametres($tab_parametres); // On modifie aussi la session $_SESSION['OFFICIEL']['INFOS_ETABLISSEMENT'] = implode(',',$tab_coordonnees) ; exit('ok'); }
* 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...');} $action = (isset($_POST['f_action'])) ? Clean::texte($_POST['f_action']) : ''; $id = (isset($_POST['f_id'])) ? Clean::entier($_POST['f_id']) : 0; $niveau = (isset($_POST['f_niveau'])) ? Clean::entier($_POST['f_niveau']) : 0; $ref = (isset($_POST['f_ref'])) ? Clean::ref($_POST['f_ref']) : ''; $nom = (isset($_POST['f_nom'])) ? Clean::texte($_POST['f_nom']) : ''; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Ajouter une nouvelle classe // //////////////////////////////////////////////////////////////////////////////////////////////////// if( ($action=='ajouter') && $niveau && $ref && $nom ) { // Vérifier que la référence de la classe est disponible if( DB_STRUCTURE_ADMINISTRATEUR::DB_tester_classe_reference($ref) ) { exit('Erreur : référence de classe déjà existante !'); } // Insérer l'enregistrement $groupe_id = DB_STRUCTURE_ADMINISTRATEUR::DB_ajouter_groupe_par_admin('classe',$ref,$nom,$niveau); // Afficher le retour echo'<tr id="id_'.$groupe_id.'" class="new">';
* 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/>. * */ 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...'); } $action = isset($_POST['f_action']) ? Clean::texte($_POST['f_action']) : ''; $motif = isset($_POST['f_motif']) ? Clean::texte($_POST['f_motif']) : ''; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Bloquer ou débloquer l'application // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'debloquer') { LockAcces::debloquer_application($_SESSION['USER_PROFIL_TYPE'], $_SESSION['BASE']); exit('<label class="valide">Application accessible.</label>'); } elseif ($action == 'bloquer') { LockAcces::bloquer_application($_SESSION['USER_PROFIL_TYPE'], $_SESSION['BASE'], $motif); exit('<label class="erreur">Application fermée : ' . html($motif) . '</label>'); } else { echo 'Erreur avec les données transmises !'; }
exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Actions complémentaires // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'action_complementaire') { // Récupération des données $action_groupe = isset($_POST['select_action_groupe']) ? Clean::texte($_POST['select_action_groupe']) : ''; $granulosite = isset($_POST['select_action_groupe_modifier_objet']) ? Clean::texte($_POST['select_action_groupe_modifier_objet']) : ''; $modifier_id = isset($_POST['select_action_groupe_modifier_id']) ? Clean::texte($_POST['select_action_groupe_modifier_id']) : ''; $modifier_coef = isset($_POST['select_action_groupe_modifier_coef']) ? Clean::entier($_POST['select_action_groupe_modifier_coef']) : -1; $modifier_cart = isset($_POST['select_action_groupe_modifier_cart']) ? Clean::entier($_POST['select_action_groupe_modifier_cart']) : -1; $deplacer_id_initial = isset($_POST['select_action_groupe_deplacer_id_initial']) ? Clean::texte($_POST['select_action_groupe_deplacer_id_initial']) : ''; $deplacer_id_final = isset($_POST['select_action_groupe_deplacer_id_final']) ? Clean::texte($_POST['select_action_groupe_deplacer_id_final']) : ''; $groupe_nom_initial = isset($_POST['groupe_nom_initial']) ? Clean::texte($_POST['groupe_nom_initial']) : ''; $groupe_nom_final = isset($_POST['groupe_nom_final']) ? Clean::texte($_POST['groupe_nom_final']) : ''; list($matiere_id, $parent_id, $objet_id, $objet_ordre) = Clean::map_entier(explode('_', $modifier_id)) + array(0, 0, 0, 0); list($matiere_id_initial, $parent_id_initial, $objet_id_initial, $objet_ordre_initial) = Clean::map_entier(explode('_', $deplacer_id_initial)) + array(0, 0, 0, 0); list($matiere_id_final, $parent_id_final, $objet_id_final, $objet_ordre_final) = Clean::map_entier(explode('_', $deplacer_id_final)) + array(0, 0, 0, 0); // Vérification des données $tab_action_groupe = array('modifier_coefficient', 'modifier_panier', 'deplacer_domaine', 'deplacer_theme'); $test1 = $action_groupe == 'modifier_coefficient' && in_array($granulosite, $tab_granulosite) && $matiere_id && $parent_id && $objet_id && $objet_ordre && $modifier_coef != -1 ? TRUE : FALSE; $test2 = $action_groupe == 'modifier_panier' && in_array($granulosite, $tab_granulosite) && $matiere_id && $objet_id && $objet_ordre && $modifier_cart != -1 ? TRUE : FALSE; $test3 = $action_groupe == 'deplacer_domaine' && $matiere_id_initial && $parent_id_initial && $objet_id_initial && $objet_ordre_initial && $parent_id_final && $matiere_id_final && $objet_id_final && $objet_ordre_final && $groupe_nom_initial && $groupe_nom_final ? TRUE : FALSE; $test4 = $action_groupe == 'deplacer_theme' && $matiere_id_initial && $parent_id_initial && $objet_id_initial && $objet_ordre_initial && $parent_id_final && $matiere_id_final && $objet_id_final && $objet_ordre_final && $groupe_nom_initial && $groupe_nom_final ? TRUE : FALSE; if (!in_array($action_groupe, $tab_action_groupe) || !$test1 && !$test2 && !$test3 && !$test4) { exit('Erreur avec les données transmises !'); } // cas 1/4 : modifier_coefficient if ($action_groupe == 'modifier_coefficient') { $test_modif = DB_STRUCTURE_REFERENTIEL::DB_modifier_referentiel_items($granulosite, $matiere_id, $objet_id, 'coef', $modifier_coef);
* * 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 !');} // //////////////////////////////////////////////////////////////////////////////////////////////////// // Récupération des valeurs transmises // //////////////////////////////////////////////////////////////////////////////////////////////////// $OBJET = (isset($_POST['f_objet'])) ? Clean::texte($_POST['f_objet']) : ''; $ACTION = (isset($_POST['f_action'])) ? Clean::texte($_POST['f_action']) : ''; $BILAN_TYPE = (isset($_POST['f_bilan_type'])) ? Clean::texte($_POST['f_bilan_type']) : ''; $mode = (isset($_POST['f_mode'])) ? Clean::texte($_POST['f_mode']) : ''; $periode_id = (isset($_POST['f_periode'])) ? Clean::entier($_POST['f_periode']) : 0; $classe_id = (isset($_POST['f_classe'])) ? Clean::entier($_POST['f_classe']) : 0; $groupe_id = (isset($_POST['f_groupe'])) ? Clean::entier($_POST['f_groupe']) : 0; $eleve_id = (isset($_POST['f_user'])) ? Clean::entier($_POST['f_user']) : 0; // Autres chaines spécifiques... $listing_piliers = (isset($_POST['f_listing_piliers'])) ? $_POST['f_listing_piliers'] : '' ; $tab_pilier_id = array_filter( Clean::map_entier( explode(',',$listing_piliers) ) , 'positif' ); $liste_pilier_id = implode(',',$tab_pilier_id); $is_sous_groupe = ($groupe_id) ? TRUE : FALSE ; $tab_action = array('initialiser','charger'); $tab_types = array (
unset($tab_lignes[0]); // Supprimer la 1e ligne $tab_nouvel_uai = array(); $tab_nouvel_id = array(); $nb_lignes_trouvees = 0; $tab_erreur = array('info' => array('nb' => 0, 'txt' => ' manquant d\'informations !'), 'geo' => array('nb' => 0, 'txt' => ' avec identifiant géographique incorrect !'), 'uai' => array('nb' => 0, 'txt' => ' avec UAI déjà présent ou en double ou incorrect !'), 'mail' => array('nb' => 0, 'txt' => ' avec adresse de courriel incorrecte !'), 'date' => array('nb' => 0, 'txt' => ' avec date d\'inscription incorrecte !'), 'fichier' => array('nb' => 0, 'txt' => ' avec nom de fichier de sauvegarde incorrect !'), 'id' => array('nb' => 0, 'txt' => ' avec identifiant de base déjà utilisé ou en double !')); foreach ($tab_lignes as $ligne_contenu) { $tab_elements = str_getcsv($ligne_contenu, $separateur); $tab_elements = array_slice($tab_elements, 0, 11); if (count($tab_elements) == 11) { $nb_lignes_trouvees++; list($export_id, $import_id, $geo_id, $localisation, $denomination, $uai, $contact_nom, $contact_prenom, $contact_courriel, $date, $fichier_nom) = $tab_elements; $import_id = Clean::entier($import_id); $geo_id = Clean::entier($geo_id); $localisation = Clean::texte($localisation); $denomination = Clean::texte($denomination); $uai = Clean::uai($uai); $contact_nom = Clean::nom($contact_nom); $contact_prenom = Clean::prenom($contact_prenom); $contact_courriel = Clean::courriel($contact_courriel); $_SESSION['tab_info'][$nb_lignes_trouvees] = array('import_id' => $import_id, 'geo_id' => $geo_id, 'localisation' => $localisation, 'denomination' => $denomination, 'uai' => $uai, 'contact_nom' => $contact_nom, 'contact_prenom' => $contact_prenom, 'contact_courriel' => $contact_courriel, 'date' => $date, 'fichier_nom' => $fichier_nom); // Vérifier la présence des informations if (!$geo_id || !$localisation || !$denomination || !$contact_nom || !$contact_prenom || !$contact_courriel || !$date || !$fichier_nom) { $tab_erreur['info']['nb']++; } // Vérifier que l'id géographique est correct if (!isset($tab_geo[$geo_id])) { $tab_erreur['geo']['nb']++; } // Vérifier que le n°UAI est disponible if ($uai) {
* * 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 !'); } $TITRE = "Identifiants perdus"; // Pas de traduction car pas de choix de langue à ce niveau. // Récupération du profil $PROFIL = isset($_GET['profil']) ? Clean::texte($_GET['profil']) : ''; if (!in_array($PROFIL, array('structure', 'webmestre', 'partenaire'))) { exit_error('Information manquante', 'Profil incorrect ou non transmis dans l\'adresse.'); } // Récupération du numéro de base $BASE = isset($_GET['base']) ? Clean::entier($_GET['base']) : 0; if ($PROFIL == 'structure' && HEBERGEUR_INSTALLATION == 'multi-structures' && !$BASE) { exit_error('Information manquante', 'Numéro de base incorrect ou non transmis dans l\'adresse.'); } // Récupérer la dénomination de l'établissement if ($PROFIL == 'structure') { if (HEBERGEUR_INSTALLATION == 'multi-structures') { $structure_denomination = DB_WEBMESTRE_PUBLIC::DB_recuperer_structure_nom_for_Id($BASE); if ($structure_denomination === NULL) { exit_error('Établissement manquant', 'Établissement non trouvé dans la base d\'administration !'); }
* 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/>. * */ if (!defined('SACoche')) { exit('Ce fichier ne peut être appelé directement !'); } $action = isset($_POST['f_action']) ? Clean::texte($_POST['f_action']) : ''; $BASE = isset($_POST['f_base']) ? Clean::entier($_POST['f_base']) : 0; $profil = isset($_POST['f_profil']) ? Clean::texte($_POST['f_profil']) : ''; // structure | webmestre | partenaire $login = isset($_POST['f_login']) ? Clean::login($_POST['f_login']) : ''; $password = isset($_POST['f_password']) ? Clean::password($_POST['f_password']) : ''; $partenaire = isset($_POST['f_partenaire']) ? Clean::entier($_POST['f_partenaire']) : 0; $courriel = isset($_POST['f_courriel']) ? Clean::courriel($_POST['f_courriel']) : ''; /* * Afficher le formulaire de choix des établissements (installation multi-structures) */ function afficher_formulaire_etablissement($BASE, $profil) { $affichage = ''; $options_structures = HtmlForm::afficher_select(DB_WEBMESTRE_SELECT::DB_OPT_structures_sacoche(), FALSE, FALSE, $BASE, 'zones_geo'); $affichage .= '<label class="tab" for="f_base">Établissement :</label><select id="f_base" name="f_base" tabindex="1" class="t9">' . $options_structures . '</select><br />' . NL; $affichage .= '<span class="tab"></span><button id="f_choisir" type="button" tabindex="2" class="valider">Choisir cet établissement.</button><label id="ajax_msg"> </label><br />' . NL; $affichage .= '<input id="f_profil" name="f_profil" type="hidden" value="' . $profil . '" />' . NL;
* 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...'); } $action = isset($_POST['f_action']) ? Clean::texte($_POST['f_action']) : ''; $selection_id = isset($_POST['f_id']) ? Clean::entier($_POST['f_id']) : 0; $selection_nom = isset($_POST['f_nom']) ? Clean::texte($_POST['f_nom']) : ''; $origine = isset($_POST['f_origine']) ? Clean::texte($_POST['f_origine']) : ''; // Contrôler la liste des items transmis $tab_items = isset($_POST['f_compet_liste']) ? explode('_', $_POST['f_compet_liste']) : array(); $tab_items = Clean::map_entier($tab_items); $tab_items = array_filter($tab_items, 'positif'); $nb_items = count($tab_items); // Contrôler la liste des profs transmis $tab_profs = array(); $tab_droits = array('v' => 'voir', 'm' => 'modifier'); $profs_liste = isset($_POST['f_prof_liste']) ? $_POST['f_prof_liste'] : ''; $tmp_tab = $profs_liste ? explode('_', $profs_liste) : array(); foreach ($tmp_tab as $valeur) { $droit = $valeur[0]; $id_prof = (int) substr($valeur, 1); if (isset($tab_droits[$droit]) && $id_prof > 0 && ($action != 'dupliquer' || $id_prof != $_SESSION['USER_ID'])) { $tab_profs[$id_prof] = $tab_droits[$droit];
$contact_nom = isset($_POST['f_contact_nom']) ? Clean::nom($_POST['f_contact_nom']) : ''; $contact_prenom = isset($_POST['f_contact_prenom']) ? Clean::prenom($_POST['f_contact_prenom']) : ''; $contact_courriel = isset($_POST['f_contact_courriel']) ? Clean::courriel($_POST['f_contact_courriel']) : ''; $sesamath_id = isset($_POST['f_sesamath_id']) ? Clean::entier($_POST['f_sesamath_id']) : 0; $sesamath_uai = isset($_POST['f_sesamath_uai']) ? Clean::uai($_POST['f_sesamath_uai']) : ''; $sesamath_type_nom = isset($_POST['f_sesamath_type_nom']) ? Clean::texte($_POST['f_sesamath_type_nom']) : ''; $sesamath_key = isset($_POST['f_sesamath_key']) ? Clean::texte($_POST['f_sesamath_key']) : ''; $etablissement_denomination = isset($_POST['f_etablissement_denomination']) ? Clean::texte($_POST['f_etablissement_denomination']) : ''; $etablissement_adresse1 = isset($_POST['f_etablissement_adresse1']) ? Clean::texte($_POST['f_etablissement_adresse1']) : ''; $etablissement_adresse2 = isset($_POST['f_etablissement_adresse2']) ? Clean::texte($_POST['f_etablissement_adresse2']) : ''; $etablissement_adresse3 = isset($_POST['f_etablissement_adresse3']) ? Clean::texte($_POST['f_etablissement_adresse3']) : ''; $etablissement_telephone = isset($_POST['f_etablissement_telephone']) ? Clean::texte($_POST['f_etablissement_telephone']) : ''; $etablissement_fax = isset($_POST['f_etablissement_fax']) ? Clean::texte($_POST['f_etablissement_fax']) : ''; $etablissement_courriel = isset($_POST['f_etablissement_courriel']) ? Clean::texte($_POST['f_etablissement_courriel']) : ''; $etablissement_url = isset($_POST['f_etablissement_url']) ? Clean::url($_POST['f_etablissement_url']) : ''; $etablissement_langue = isset($_POST['f_etablissement_langue']) ? Clean::texte($_POST['f_etablissement_langue']) : ''; $mois_bascule_annee_scolaire = isset($_POST['f_mois_bascule_annee_scolaire']) ? Clean::entier($_POST['f_mois_bascule_annee_scolaire']) : 0; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Mettre à jour le formulaire f_geo1 et le renvoyer en HTML // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'Afficher_form_geo1') { exit(ServeurCommunautaire::Sesamath_afficher_formulaire_geo1()); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Mettre à jour le formulaire f_geo2 et le renvoyer en HTML // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'Afficher_form_geo2' && $geo1 > 0) { exit(ServeurCommunautaire::Sesamath_afficher_formulaire_geo2($geo1)); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Mettre à jour le formulaire f_geo3 et le renvoyer en HTML
* */ if (!defined('SACoche')) { exit('Ce fichier ne peut être appelé directement !'); } if ($_SESSION['SESAMATH_ID'] == ID_DEMO && $_POST['f_action'] != 'Afficher_evaluations' && $_POST['f_action'] != 'Voir_notes') { exit('Action désactivée pour la démo...'); } $action = isset($_POST['f_action']) ? Clean::texte($_POST['f_action']) : ''; $eleve_id = isset($_POST['f_eleve']) ? Clean::entier($_POST['f_eleve']) : 0; $date_debut = isset($_POST['f_date_debut']) ? Clean::date_fr($_POST['f_date_debut']) : ''; $date_fin = isset($_POST['f_date_fin']) ? Clean::date_fr($_POST['f_date_fin']) : ''; $devoir_id = isset($_POST['f_devoir']) ? Clean::entier($_POST['f_devoir']) : 0; $msg_data = isset($_POST['f_msg_data']) ? Clean::texte($_POST['f_msg_data']) : ''; $msg_url = isset($_POST['f_msg_url']) ? Clean::texte($_POST['f_msg_url']) : ''; $msg_autre = isset($_POST['f_msg_autre']) ? Clean::texte($_POST['f_msg_autre']) : ''; $chemin_devoir = CHEMIN_DOSSIER_DEVOIR . $_SESSION['BASE'] . DS; $url_dossier_devoir = URL_DIR_DEVOIR . $_SESSION['BASE'] . '/'; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Afficher une liste d'évaluations // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'Afficher_evaluations' && $eleve_id && $date_debut && $date_fin) { // Formater les dates $date_debut_mysql = convert_date_french_to_mysql($date_debut); $date_fin_mysql = convert_date_french_to_mysql($date_fin); // Vérifier que la date de début est antérieure à la date de fin if ($date_debut_mysql > $date_fin_mysql) { exit('Erreur : la date de début est postérieure à la date de fin !'); } // Lister les évaluations $script = '';
// Récupération des valeurs transmises // //////////////////////////////////////////////////////////////////////////////////////////////////// $OBJET = (isset($_POST['f_objet'])) ? Clean::texte($_POST['f_objet']) : ''; $ACTION = (isset($_POST['f_action'])) ? Clean::texte($_POST['f_action']) : ''; $BILAN_TYPE = (isset($_POST['f_bilan_type'])) ? Clean::texte($_POST['f_bilan_type']) : ''; $mode = (isset($_POST['f_mode'])) ? Clean::texte($_POST['f_mode']) : ''; $periode_id = (isset($_POST['f_periode'])) ? Clean::entier($_POST['f_periode']) : 0; $classe_id = (isset($_POST['f_classe'])) ? Clean::entier($_POST['f_classe']) : 0; $groupe_id = (isset($_POST['f_groupe'])) ? Clean::entier($_POST['f_groupe']) : 0; $eleve_id = (isset($_POST['f_user'])) ? Clean::entier($_POST['f_user']) : 0; $rubrique_id = (isset($_POST['f_rubrique'])) ? Clean::entier($_POST['f_rubrique']) : 0; $prof_id = (isset($_POST['f_prof'])) ? Clean::entier($_POST['f_prof']) : 0; // id du prof dont on corrige l'appréciation $appreciation = (isset($_POST['f_appreciation'])) ? Clean::appreciation($_POST['f_appreciation']) : ''; $moyenne = (isset($_POST['f_moyenne'])) ? Clean::decimal($_POST['f_moyenne']) : -1; $import_info = (isset($_POST['f_import_info'])) ? Clean::texte($_POST['f_import_info']) : ''; // Autres chaines spécifiques... $listing_matieres = (isset($_POST['f_listing_matieres'])) ? $_POST['f_listing_matieres'] : '' ; $listing_piliers = (isset($_POST['f_listing_piliers'])) ? $_POST['f_listing_piliers'] : '' ; $tab_matiere_id = array_filter( Clean::map_entier( explode(',',$listing_matieres) ) , 'positif' ); $tab_pilier_id = array_filter( Clean::map_entier( explode(',',$listing_piliers) ) , 'positif' ); $liste_matiere_id = implode(',',$tab_matiere_id); $liste_pilier_id = implode(',',$tab_pilier_id); $is_sous_groupe = ($groupe_id) ? TRUE : FALSE ; $groupe_id = ($groupe_id) ? $groupe_id : $classe_id ; // Le groupe = le groupe transmis ou sinon la classe (cas le plus fréquent). $tab_objet = array('modifier','tamponner','voir'); // "voir" car on peut corriger une appréciation dans ce mode $tab_action = array('initialiser','charger','enregistrer_appr','corriger_faute','enregistrer_note','supprimer_appr','supprimer_note','recalculer_note'); $tab_mode = array('texte','graphique');
* 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 ($_SESSION['SESAMATH_ID'] == ID_DEMO) { exit('Action désactivée pour la démo...'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Récupération des informations transmises // //////////////////////////////////////////////////////////////////////////////////////////////////// $f_objet = isset($_POST['f_objet']) ? Clean::texte($_POST['f_objet']) : ''; $f_profils = isset($_POST['f_profils']) ? Clean::texte($_POST['f_profils']) : 'erreur'; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Vérification des informations transmises // //////////////////////////////////////////////////////////////////////////////////////////////////// // Tableau avec les sigles des profils pouvant être proposés $tab_profils_possibles = array(); $tab_profils_possibles['dir_pers_pp'] = array('DIR', 'ENS', 'IEX', 'ONLY_PP', 'DOC', 'EDU', 'AED', 'SUR', 'ORI', 'MDS', 'ADF'); $tab_profils_possibles['dir_pers_lv'] = array('DIR', 'ENS', 'IEX', 'ONLY_LV', 'DOC', 'EDU', 'AED', 'SUR', 'ORI', 'MDS', 'ADF'); $tab_profils_possibles['pers_coord'] = array('ENS', 'IEX', 'DOC', 'EDU', 'AED', 'SUR', 'ORI', 'MDS', 'ADF', 'ONLY_COORD'); $tab_profils_possibles['tous'] = array('ELV', 'TUT', 'AVS', 'DIR', 'ENS', 'IEX', 'DOC', 'EDU', 'AED', 'SUR', 'ORI', 'MDS', 'ADF'); $tab_profils_possibles['parent_eleve'] = array('ELV', 'TUT', 'AVS'); $tab_objet_profils = array(); $tab_objet_profils['droit_affecter_langue'] = $tab_profils_possibles['dir_pers_lv']; $tab_objet_profils['droit_validation_entree'] = $tab_profils_possibles['dir_pers_pp']; $tab_objet_profils['droit_validation_pilier'] = $tab_profils_possibles['dir_pers_pp']; $tab_objet_profils['droit_annulation_pilier'] = $tab_profils_possibles['dir_pers_pp'];
* * 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 !'); } $TITRE = "Génération d'un nouveau mot de passe"; // Pas de traduction car pas de choix de langue à ce niveau. // Récupération du code $code_mdp = isset($_GET['code_mdp']) ? Clean::texte($_GET['code_mdp']) : ''; if (!$code_mdp) { exit_error($TITRE, 'Absence de code transmis dans l\'adresse.'); } // Vérification de la structure du code list($user_pass_key, $BASE) = explode('g', $code_mdp) + array_fill(0, 2, NULL); // Evite des NOTICE en initialisant les valeurs manquantes $BASE = (int) $BASE; if (!$user_pass_key || $BASE == 0 && HEBERGEUR_INSTALLATION == 'multi-structures') { exit_error($TITRE, 'Le code transmis est incohérent (format inattendu).'); } // En cas de multi-structures, il faut charger les paramètres de connexion à la base concernée if (HEBERGEUR_INSTALLATION == 'multi-structures') { $result = charger_parametres_mysql_supplementaires($BASE, FALSE); if (!$result) { exit_error($TITRE, 'Le code transmis est invalide ou périmé (base inexistante).');
* * 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 !');} $type_export = (isset($_POST['f_type'])) ? Clean::texte($_POST['f_type']) : ''; $groupe_type = (isset($_POST['f_groupe_type'])) ? Clean::texte($_POST['f_groupe_type']) : ''; $groupe_nom = (isset($_POST['f_groupe_nom'])) ? Clean::texte($_POST['f_groupe_nom']) : ''; $groupe_id = (isset($_POST['f_groupe_id'])) ? Clean::entier($_POST['f_groupe_id']) : 0; $matiere_id = (isset($_POST['f_matiere'])) ? Clean::entier($_POST['f_matiere']) : 0; $matiere_nom = (isset($_POST['f_matiere_nom'])) ? Clean::texte($_POST['f_matiere_nom']) : ''; $palier_id = (isset($_POST['f_palier'])) ? Clean::entier($_POST['f_palier']) : 0; $palier_nom = (isset($_POST['f_palier_nom'])) ? Clean::texte($_POST['f_palier_nom']) : ''; $tab_types = array('d'=>'all' , 'n'=>'niveau' , 'c'=>'classe' , 'g'=>'groupe' , 'b'=>'besoin'); // //////////////////////////////////////////////////////////////////////////////////////////////////// // Export CSV des données des élèves d'un regroupement // //////////////////////////////////////////////////////////////////////////////////////////////////// if( ($type_export=='listing_eleves') && $groupe_id && isset($tab_types[$groupe_type]) && $groupe_nom ) { // Préparation de l'export CSV $separateur = ';'; // ajout du préfixe 'SACOCHE_' pour éviter un bug avec M$ Excel « SYLK : Format de fichier non valide » (http://support.microsoft.com/kb/323626/fr). $export_csv = 'SACOCHE_ID'.$separateur.'LOGIN'.$separateur.'GENRE'.$separateur.'NOM'.$separateur.'PRENOM'.$separateur.'GROUPE'."\r\n\r\n"; // Préparation de l'export HTML $export_html = '<table class="p"><thead>'.NL.'<tr><th>Id</th><th>Login</th><th>Genre</th><th>Nom</th><th>Prénom</th><th>Groupe</th></tr>'.NL.'</thead><tbody>'.NL;
* */ 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...'); } $action = isset($_POST['f_action']) ? Clean::texte($_POST['f_action']) : ''; $matiere_id = isset($_POST['f_matiere_id']) ? Clean::entier($_POST['f_matiere_id']) : 0; $item_id = isset($_POST['f_item_id']) ? Clean::entier($_POST['f_item_id']) : 0; $prof_id = isset($_POST['f_prof_id']) ? Clean::entier($_POST['f_prof_id']) : -1; $score = isset($_POST['f_score']) ? Clean::entier($_POST['f_score']) : -2; // normalement entier entre 0 et 100 ou -1 si non évalué $message = isset($_POST['f_message']) ? Clean::texte($_POST['f_message']) : ''; $document_nom = isset($_POST['f_doc_nom']) ? Clean::texte($_POST['f_doc_nom']) : ''; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Lister les profs associés à l'élève et à une matière // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'lister_profs' && $matiere_id) { $DB_TAB = DB_STRUCTURE_DEMANDE::DB_recuperer_professeurs_eleve_matiere($_SESSION['USER_ID'], $_SESSION['ELEVE_CLASSE_ID'], $matiere_id); if (empty($DB_TAB)) { exit('Aucun de vos professeurs n\'étant rattaché à cette matière, personne ne pourrait traiter votre demande.'); } else { $options = count($DB_TAB) == 1 ? '' : '<option value="0">Tous les enseignants concernés</option>'; foreach ($DB_TAB as $DB_ROW) { $options .= '<option value="' . $DB_ROW['user_id'] . '">' . html(afficher_identite_initiale($DB_ROW['user_nom'], FALSE, $DB_ROW['user_prenom'], TRUE, $DB_ROW['user_genre'])) . '</option>'; } exit($options); } }
} // //////////////////////////////////////////////////////////////////////////////////////////////////// // Récupération des valeurs transmises // //////////////////////////////////////////////////////////////////////////////////////////////////// $OBJET = isset($_POST['f_objet']) ? Clean::texte($_POST['f_objet']) : ''; $ACTION = isset($_POST['f_action']) ? Clean::texte($_POST['f_action']) : ''; $mode = isset($_POST['f_mode']) ? Clean::texte($_POST['f_mode']) : ''; $classe_id = isset($_POST['f_classe']) ? Clean::entier($_POST['f_classe']) : 0; $groupe_id = isset($_POST['f_groupe']) ? Clean::entier($_POST['f_groupe']) : 0; $eleve_id = isset($_POST['f_user']) ? Clean::entier($_POST['f_user']) : 0; $serie_ref = isset($_POST['f_serie']) ? Clean::texte($_POST['f_serie']) : ''; $epreuve_id = isset($_POST['f_epreuve']) ? Clean::entier($_POST['f_epreuve']) : 0; $prof_id = isset($_POST['f_prof']) ? Clean::entier($_POST['f_prof']) : 0; // id du prof dont on corrige l'appréciation $avis_conseil = isset($_POST['f_avis_conseil']) ? Clean::texte($_POST['f_avis_conseil']) : ''; $appreciation = isset($_POST['f_appreciation']) ? Clean::texte($_POST['f_appreciation']) : ''; // Autres chaines spécifiques... $listing_matieres = isset($_POST['f_listing_matieres']) ? $_POST['f_listing_matieres'] : ''; $tab_matiere_id = array_filter(Clean::map_entier(explode(',', $listing_matieres)), 'positif'); $liste_matiere_id = implode(',', $tab_matiere_id); $is_sous_groupe = $groupe_id ? TRUE : FALSE; $tab_objet = array('modifier', 'tamponner', 'voir'); // "voir" car on peut corriger une appréciation dans ce mode $tab_action = array('initialiser', 'charger', 'enregistrer_appr', 'corriger_faute', 'supprimer_appr'); $tab_mode = array('texte', 'graphique'); // On vérifie les paramètres principaux if (!in_array($ACTION, $tab_action) || !in_array($OBJET, $tab_objet) || !in_array($mode, $tab_mode) || !$classe_id || !$eleve_id && $ACTION != 'initialiser') { exit('Erreur avec les données transmises !'); } // On vérifie que la fiche brevet est bien accessible en modification et on récupère les infos associées (nom de la classe, id des élèves concernés avec lesquels l'intersection est faite ultérieurement). $DB_ROW = DB_STRUCTURE_BREVET::DB_recuperer_brevet_classe_infos($classe_id);
* 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...'); } $BASE = isset($_POST['f_base']) ? Clean::entier($_POST['f_base']) : 0; $courriel = isset($_POST['f_courriel']) ? Clean::courriel($_POST['f_courriel']) : ''; $captcha = isset($_POST['f_captcha']) ? Clean::texte($_POST['f_captcha']) : ''; $user_id = isset($_POST['f_user']) ? Clean::entier($_POST['f_user']) : 0; if (!$courriel || !$user_id || HEBERGEUR_INSTALLATION == 'multi-structures' && !$BASE) { exit_json(FALSE, 'Erreur avec les données transmises !'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Première soumission : rechercher le courriel et lister les utilisateurs correspondants // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($user_id == -1) { // Protection contre les attaques par force brute des robots (piratage compte ou envoi intempestif de courriels) if (!isset($_SESSION['FORCEBRUTE'][$PAGE])) { exit_json(FALSE, 'Session perdue ou absence de cookie : merci d\'actualiser la page.'); } else { if ($_SERVER['REQUEST_TIME'] - $_SESSION['FORCEBRUTE'][$PAGE]['TIME'] < $_SESSION['FORCEBRUTE'][$PAGE]['DELAI']) { $_SESSION['FORCEBRUTE'][$PAGE]['TIME'] = $_SERVER['REQUEST_TIME']; exit_json(FALSE, 'Sécurité : patienter ' . $_SESSION['FORCEBRUTE'][$PAGE]['DELAI'] . 's avant une nouvelle tentative.');
exit('Ce fichier ne peut être appelé directement !'); } if ($_SESSION['SESAMATH_ID'] == ID_DEMO) { } $type = isset($_POST['f_type']) ? Clean::texte($_POST['f_type']) : ''; $mode = isset($_POST['f_mode']) ? Clean::texte($_POST['f_mode']) : ''; $palier_id = isset($_POST['f_palier']) ? Clean::entier($_POST['f_palier']) : 0; $palier_nom = isset($_POST['f_palier_nom']) ? Clean::texte($_POST['f_palier_nom']) : ''; $groupe_id = isset($_POST['f_groupe']) ? Clean::entier($_POST['f_groupe']) : 0; $groupe_nom = isset($_POST['f_groupe_nom']) ? Clean::texte($_POST['f_groupe_nom']) : ''; $groupe_type = isset($_POST['f_groupe_type']) ? Clean::texte($_POST['f_groupe_type']) : ''; $couleur = isset($_POST['f_couleur']) ? Clean::texte($_POST['f_couleur']) : ''; $fond = isset($_POST['f_fond']) ? Clean::texte($_POST['f_fond']) : ''; $legende = isset($_POST['f_legende']) ? Clean::texte($_POST['f_legende']) : ''; $marge_min = isset($_POST['f_marge_min']) ? Clean::entier($_POST['f_marge_min']) : 0; $eleves_ordre = isset($_POST['f_eleves_ordre']) ? Clean::texte($_POST['f_eleves_ordre']) : ''; // Normalement ce sont des tableaux qui sont transmis, mais au cas où... $tab_pilier_id = isset($_POST['f_pilier']) ? is_array($_POST['f_pilier']) ? $_POST['f_pilier'] : explode(',', $_POST['f_pilier']) : array(); $tab_eleve_id = isset($_POST['f_eleve']) ? is_array($_POST['f_eleve']) ? $_POST['f_eleve'] : explode(',', $_POST['f_eleve']) : array(); $tab_matiere_id = isset($_POST['f_matiere']) ? is_array($_POST['f_matiere']) ? $_POST['f_matiere'] : explode(',', $_POST['f_matiere']) : array(); $tab_pilier_id = array_filter(Clean::map_entier($tab_pilier_id), 'positif'); $tab_eleve_id = array_filter(Clean::map_entier($tab_eleve_id), 'positif'); $tab_matiere_id = array_filter(Clean::map_entier($tab_matiere_id), 'positif'); $memo_demande = count($tab_pilier_id) > 1 ? 'palier' : 'pilier'; $liste_eleve = implode(',', $tab_eleve_id); if (!$palier_id || !$palier_nom || !$groupe_id || !$groupe_nom || !$groupe_type || !count($tab_eleve_id) || !count($tab_pilier_id) || !in_array($type, array('pourcentage', 'validation')) || !in_array($mode, array('auto', 'manuel')) || !$couleur || !$fond || !$legende || !$marge_min || !$eleves_ordre) { exit('Erreur avec les données transmises !'); } Form::save_choix('releve_synthese_socle'); Erreur500::prevention_et_gestion_erreurs_fatales(TRUE, FALSE); $tab_pilier = array();
* 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/>. * */ if(!defined('SACoche')) {exit('Ce fichier ne peut être appelé directement !');} $send_notification = (isset($_POST['f_send'])) ? Clean::texte($_POST['f_send']) : ''; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Enregistrer le choix effectué // //////////////////////////////////////////////////////////////////////////////////////////////////// if( in_array( $send_notification , array('oui','non') ) ) { FileSystem::fabriquer_fichier_hebergeur_info( array( 'COURRIEL_NOTIFICATION' => $send_notification ) ); exit('ok'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // On ne devrait pas en arriver là... // ////////////////////////////////////////////////////////////////////////////////////////////////////
* 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 !');} // //////////////////////////////////////////////////////////////////////////////////////////////////// // Récupération des valeurs transmises // //////////////////////////////////////////////////////////////////////////////////////////////////// $OBJET = (isset($_POST['f_objet'])) ? Clean::texte($_POST['f_objet']) : ''; $ACTION = (isset($_POST['f_action'])) ? Clean::texte($_POST['f_action']) : ''; $BILAN_TYPE = (isset($_POST['f_bilan_type'])) ? Clean::texte($_POST['f_bilan_type']) : ''; $periode_id = (isset($_POST['f_periode'])) ? Clean::entier($_POST['f_periode']) : 0; $classe_id = (isset($_POST['f_classe'])) ? Clean::entier($_POST['f_classe']) : 0; $groupe_id = (isset($_POST['f_groupe'])) ? Clean::entier($_POST['f_groupe']) : 0; $etape = (isset($_POST['f_etape'])) ? Clean::entier($_POST['f_etape']) : 0; $page_parite = (isset($_POST['f_parite'])) ? Clean::entier($_POST['f_parite']) : 0; // Autres chaines spécifiques... $listing_piliers = (isset($_POST['f_listing_piliers'])) ? $_POST['f_listing_piliers'] : '' ; $tab_pilier_id = array_filter( Clean::map_entier( explode(',',$listing_piliers) ) , 'positif' ); $liste_pilier_id = implode(',',$tab_pilier_id); $listing_eleves = (isset($_POST['f_listing_eleves'])) ? $_POST['f_listing_eleves'] : '' ; $tab_eleve_id = array_filter( Clean::map_entier( explode(',',$listing_eleves) ) , 'positif' ); $liste_eleve_id = implode(',',$tab_eleve_id); $is_sous_groupe = ($groupe_id) ? TRUE : FALSE ;
* 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/>. * */ if(!defined('SACoche')) {exit('Ce fichier ne peut être appelé directement !');} $action = (isset($_POST['f_action'])) ? Clean::texte($_POST['f_action']) : '' ; $umask = (isset($_POST['f_umask'])) ? Clean::texte($_POST['f_umask']) : '' ; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Droits du système de fichiers - Choix UMASK // //////////////////////////////////////////////////////////////////////////////////////////////////// if($action=='choix_umask') { $tab_chmod = array( '000' => '777 / 666', '002' => '775 / 664', '022' => '755 / 644', '026' => '751 / 640', ); if(!isset($tab_chmod[$umask])) {
*/ 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...'); } $action = isset($_POST['f_action']) ? Clean::texte($_POST['f_action']) : ''; $check = isset($_POST['f_check']) ? Clean::entier($_POST['f_check']) : 0; $id = isset($_POST['f_id']) ? Clean::entier($_POST['f_id']) : 0; $id_ent = isset($_POST['f_id_ent']) ? Clean::texte($_POST['f_id_ent']) : ''; $id_gepi = isset($_POST['f_id_gepi']) ? Clean::texte($_POST['f_id_gepi']) : ''; $sconet_id = isset($_POST['f_sconet_id']) ? Clean::entier($_POST['f_sconet_id']) : 0; $reference = isset($_POST['f_reference']) ? Clean::ref($_POST['f_reference']) : ''; $profil = isset($_POST['f_profil']) ? Clean::texte($_POST['f_profil']) : ''; $genre = isset($_POST['f_genre']) ? Clean::texte($_POST['f_genre']) : ''; $nom = isset($_POST['f_nom']) ? Clean::nom($_POST['f_nom']) : ''; $prenom = isset($_POST['f_prenom']) ? Clean::prenom($_POST['f_prenom']) : ''; $login = isset($_POST['f_login']) ? Clean::login($_POST['f_login']) : ''; $password = isset($_POST['f_password']) ? Clean::password($_POST['f_password']) : ''; $sortie_date = isset($_POST['f_sortie_date']) ? Clean::date_fr($_POST['f_sortie_date']) : ''; $box_login = isset($_POST['box_login']) ? Clean::entier($_POST['box_login']) : 0; $box_password = isset($_POST['box_password']) ? Clean::entier($_POST['box_password']) : 0; $box_date = isset($_POST['box_date']) ? Clean::entier($_POST['box_date']) : 0; $courriel = isset($_POST['f_courriel']) ? Clean::courriel($_POST['f_courriel']) : ''; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Ajouter un nouveau personnel // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($action == 'ajouter' && $profil && isset(Html::$tab_genre['adulte'][$genre]) && $nom && $prenom && ($box_login || $login) && ($box_password || $password) && ($box_date || $sortie_date)) { // Vérifier le profil if (!isset($_SESSION['TAB_PROFILS_ADMIN']['TYPE'][$profil]) || !in_array($_SESSION['TAB_PROFILS_ADMIN']['TYPE'][$profil], array('professeur', 'directeur'))) {
$bulletin_legende = isset($_POST['f_bulletin_legende']) ? Clean::texte($_POST['f_bulletin_legende']) : ''; $socle_appreciation_rubrique_longueur = isset($_POST['f_socle_appreciation_rubrique_longueur']) ? Clean::entier($_POST['f_socle_appreciation_rubrique_longueur']) : 0; $socle_appreciation_rubrique_report = isset($_POST['f_socle_appreciation_rubrique_report']) ? 1 : 0; $socle_appreciation_rubrique_modele = isset($_POST['f_socle_appreciation_rubrique_modele']) ? Clean::texte($_POST['f_socle_appreciation_rubrique_modele']) : ''; $socle_appreciation_generale_longueur = isset($_POST['f_socle_appreciation_generale_longueur']) ? Clean::entier($_POST['f_socle_appreciation_generale_longueur']) : 0; $socle_appreciation_generale_report = isset($_POST['f_socle_appreciation_generale_report']) ? 1 : 0; $socle_appreciation_generale_modele = isset($_POST['f_socle_appreciation_generale_modele']) ? Clean::texte($_POST['f_socle_appreciation_generale_modele']) : ''; $socle_ligne_supplementaire = isset($_POST['f_socle_check_supplementaire']) ? Clean::texte($_POST['f_socle_ligne_supplementaire']) : ''; $socle_assiduite = isset($_POST['f_socle_assiduite']) ? 1 : 0; $socle_prof_principal = isset($_POST['f_socle_prof_principal']) ? 1 : 0; $socle_only_presence = isset($_POST['f_socle_only_presence']) ? 1 : 0; $socle_pourcentage_acquis = isset($_POST['f_socle_pourcentage_acquis']) ? 1 : 0; $socle_etat_validation = isset($_POST['f_socle_etat_validation']) ? 1 : 0; $socle_couleur = isset($_POST['f_socle_couleur']) ? Clean::texte($_POST['f_socle_couleur']) : ''; $socle_fond = isset($_POST['f_socle_fond']) ? Clean::texte($_POST['f_socle_fond']) : ''; $socle_legende = isset($_POST['f_socle_legende']) ? Clean::texte($_POST['f_socle_legende']) : ''; // Liste de matières transmises $tab_matieres = isset($_POST['f_matiere_liste']) ? explode('_', $_POST['f_matiere_liste']) : array(); $tab_matieres = Clean::map_entier($tab_matieres); $tab_matieres = array_filter($tab_matieres, 'positif'); $bulletin_moyenne_exception_matieres = implode(',', $tab_matieres); // //////////////////////////////////////////////////////////////////////////////////////////////////// // Traitement des formulaires "Relevé d'évaluations" + "Bulletin scolaire" + "État de maîtrise du socle" // //////////////////////////////////////////////////////////////////////////////////////////////////// $tab_variables = array('releve' => array('appreciation_rubrique_longueur', 'appreciation_rubrique_report', 'appreciation_rubrique_modele', 'appreciation_generale_longueur', 'appreciation_generale_report', 'appreciation_generale_modele', 'ligne_supplementaire', 'assiduite', 'prof_principal', 'retroactif', 'only_socle', 'etat_acquisition', 'moyenne_scores', 'pourcentage_acquis', 'conversion_sur_20', 'cases_nb', 'aff_coef', 'aff_socle', 'aff_domaine', 'aff_theme', 'couleur', 'fond', 'legende', 'pages_nb'), 'bulletin' => array('appreciation_rubrique_longueur', 'appreciation_rubrique_report', 'appreciation_rubrique_modele', 'appreciation_generale_longueur', 'appreciation_generale_report', 'appreciation_generale_modele', 'ligne_supplementaire', 'assiduite', 'prof_principal', 'retroactif', 'only_socle', 'fusion_niveaux', 'barre_acquisitions', 'acquis_texte_code', 'acquis_texte_nombre', 'moyenne_scores', 'conversion_sur_20', 'moyenne_classe', 'moyenne_generale', 'moyenne_exception_matieres', 'couleur', 'fond', 'legende'), 'socle' => array('appreciation_rubrique_longueur', 'appreciation_rubrique_report', 'appreciation_rubrique_modele', 'appreciation_generale_longueur', 'appreciation_generale_report', 'appreciation_generale_modele', 'ligne_supplementaire', 'assiduite', 'prof_principal', 'only_presence', 'pourcentage_acquis', 'etat_validation', 'couleur', 'fond', 'legende')); if (isset($tab_variables[$objet])) { $tab_parametres = array(); foreach ($tab_variables[$objet] as $option) { $variable_nom = $objet . '_' . $option; $variable_valeur = ${$variable_nom}; // On modifie la session
$profils_appreciation_generale = afficher_profils_droit_specifique($_SESSION['DROIT_FICHE_BREVET_APPRECIATION_GENERALE'], 'br'); // Indication des profils ayant accès à l'impression PDF $profils_impression_pdf = 'administrateurs (de l\'établissement)<br />' . afficher_profils_droit_specifique($_SESSION['DROIT_FICHE_BREVET_IMPRESSION_PDF'], 'br'); // Indication des profils ayant accès aux copies des impressions PDF $profils_archives_pdf = 'administrateurs (de l\'établissement)<br />' . afficher_profils_droit_specifique($_SESSION['DROIT_FICHE_BREVET_VOIR_ARCHIVE'], 'br'); // Droit de modifier le statut d'une fiche brevet (dans le cas PP, restera à affiner classe par classe...). $affichage_formulaire_statut = $_SESSION['USER_PROFIL_TYPE'] == 'administrateur' || test_user_droit_specifique($_SESSION['DROIT_FICHE_BREVET_MODIFIER_STATUT']); $tab_etats = array('1vide' => 'Vide (fermé)', '2rubrique' => 'Saisies Profs', '3mixte' => 'Saisies Mixtes', '4synthese' => 'Saisie Synthèse', '5complet' => 'Complet (fermé)'); $annee_session_brevet = annee_session_brevet(); // //////////////////////////////////////////////////////////////////////////////////////////////////// // Récupération et traitement des données postées, si formulaire soumis // Pas de passage par la page ajax.php => protection contre attaques type CSRF ajoutée ici // //////////////////////////////////////////////////////////////////////////////////////////////////// if ($affichage_formulaire_statut && $_SESSION['SESAMATH_ID'] != ID_DEMO) { $tab_ids = isset($_POST['classe_ids']) ? explode(',', $_POST['classe_ids']) : array(); $new_etat = isset($_POST['etat']) ? Clean::texte($_POST['etat']) : ''; $discret = isset($_POST['mode_discret']) ? TRUE : FALSE; $tab_ids = array_intersect(array_filter(Clean::map_entier($tab_ids), 'positif'), $tab_classes_concernees); if (count($tab_ids) && isset($tab_etats[$new_etat])) { Session::verifier_jeton_anti_CSRF($PAGE); // Concernant les notifications, on liste déjà s'il y a des utilisateurs qui s'y seraient abonnés $abonnement_ref = 'fiche_brevet_statut'; $abonnes_nb = 0; if (!$discret && in_array($new_etat, array('2rubrique', '3mixte', '4synthese'))) { $DB_TAB = DB_STRUCTURE_NOTIFICATION::DB_lister_destinataires_avec_informations($abonnement_ref); $abonnes_nb = count($DB_TAB); if ($abonnes_nb) { $tab_abonnes = array(); $tab_profils = array(); // On récupère les infos au passage foreach ($DB_TAB as $DB_ROW) {
* 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 && !in_array($_POST['f_action'], array('import_sconet', 'import_siecle', 'import_gepi', 'import_pronote', 'afficher_formulaire_manuel'))) { exit('Action désactivée pour la démo...'); } $action = isset($_POST['f_action']) ? $_POST['f_action'] : ''; $periode_id = isset($_POST['f_periode']) ? Clean::entier($_POST['f_periode']) : 0; $groupe_id = isset($_POST['f_groupe']) ? Clean::entier($_POST['f_groupe']) : 0; $datas = isset($_POST['f_data']) ? Clean::texte($_POST['f_data']) : ''; $test_gepi = mb_strpos($action, 'gepi') !== FALSE ? TRUE : FALSE; $tab_extensions_autorisees = $test_gepi ? array('txt', 'csv') : array('zip', 'xml'); $extension_fichier_dest = $test_gepi ? 'txt' : 'xml'; $fichier_dest = 'absences_import_' . $_SESSION['BASE'] . '_' . session_id() . '.' . $extension_fichier_dest; $fichier_memo = 'absences_import_' . $_SESSION['BASE'] . '_' . session_id() . '_extraction.' . $extension_fichier_dest; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Réception et analyse d'un fichier d'import issu de Sconet Absences ou de Siècle Vie Scolaire // //////////////////////////////////////////////////////////////////////////////////////////////////// if (($action == 'import_siecle' || $action == 'import_sconet') && $periode_id) { // Récupération du fichier (zip ou pas) $result = FileSystem::recuperer_upload(CHEMIN_DOSSIER_IMPORT, $fichier_dest, $tab_extensions_autorisees, NULL, NULL, 'SIECLE_exportAbsence.xml'); if ($result !== TRUE) { exit('Erreur : ' . $result); } // Vérification du fichier
* 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/>. * */ 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...');} $action = (isset($_POST['f_action'])) ? Clean::texte($_POST['f_action']) : ''; $notification_id = (isset($_POST['f_id'])) ? Clean::entier($_POST['f_id']) : 0; // //////////////////////////////////////////////////////////////////////////////////////////////////// // Mémoriser qu'une notification a été consultée // //////////////////////////////////////////////////////////////////////////////////////////////////// if( ($action=='memoriser_consultation') && $notification_id ) { $is_modif = DB_STRUCTURE_NOTIFICATION::DB_modifier_statut( $notification_id , $_SESSION['USER_ID'] , 'consultée' ); // Afficher le retour if($is_modif) { exit_json( TRUE ); } else
* 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...'); } $action = isset($_POST['f_action']) ? Clean::texte($_POST['f_action']) : ''; $groupe_id = isset($_POST['f_id']) ? Clean::entier($_POST['f_id']) : 0; $niveau = isset($_POST['f_niveau']) ? Clean::entier($_POST['f_niveau']) : 0; $groupe_nom = isset($_POST['f_nom']) ? Clean::texte($_POST['f_nom']) : ''; // Contrôler la liste des élèves transmis $tab_eleves = isset($_POST['f_eleve_liste']) ? explode('_', $_POST['f_eleve_liste']) : array(); $tab_eleves = Clean::map_entier($tab_eleves); $tab_eleves = array_filter($tab_eleves, 'positif'); $nb_eleves = count($tab_eleves); // Contrôler la liste des profs transmis $tab_profs = isset($_POST['f_prof_liste']) ? explode('_', $_POST['f_prof_liste']) : array(); $tab_profs = Clean::map_entier($tab_profs); $tab_profs = array_filter($tab_profs, 'positif'); $nb_profs = count($tab_profs); // Si profs transmis, en retirer le responsable (si le responsable est le seul prof, rien n'est transmis) $indice = NULL; if (count($tab_profs)) { $indice = array_search($_SESSION['USER_ID'], $tab_profs); if ($indice === FALSE) {