Example #1
0
{
  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);
Example #7
0
 * 
 * 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 !');
        }
Example #10
0
 * 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">&nbsp;</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
Example #13
0
 * 
 */
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 = '';
Example #14
0
// 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'];
Example #16
0
 * 
 * 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).');
Example #17
0
 * 
 * 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à...
// ////////////////////////////////////////////////////////////////////////////////////////////////////
Example #23
0
 * 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
Example #27
0
$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) {