function OPT_langues($tab_langues)
{
    $tab_optgroup = $tab_matiere_nom = array();
    // pour array_multisort()
    $tab_matieres_enseignées = explode(',', DB_STRUCTURE_COMMUN::DB_recuperer_matieres_etabl());
    foreach ($tab_langues as $id => $tab) {
        $tab_langues[$id]['optgroup'] = $id == 100 ? 0 : (count(array_intersect($tab_langues[$id]['tab_matiere_id'], $tab_matieres_enseignées)) ? 1 : 2);
        $tab_optgroup[$id] = $tab_langues[$id]['optgroup'];
        $tab_matiere_nom[$id] = $tab_langues[$id]['texte'];
    }
    array_multisort($tab_optgroup, SORT_ASC, $tab_matiere_nom, SORT_ASC, $tab_langues);
    return $tab_langues;
}
{
  $tab_eleve_infos[0] = array(
    'eleve_nom'    => '',
    'eleve_prenom' => '',
  );
}
$eleve_nb = count( $tab_eleve_infos , COUNT_NORMAL );

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Récupération de la liste des résultats
// ////////////////////////////////////////////////////////////////////////////////////////////////////

if($besoin_notes)
{
  // Récupération de calcul_methode ; calcul_limite ; calcul_retroactif
  $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_referentiels_infos_details_matieres_niveaux( $matiere_id , $niveau_id );
  $calcul_methode    = $DB_TAB[0]['referentiel_calcul_methode'];
  $calcul_limite     = $DB_TAB[0]['referentiel_calcul_limite'];
  $calcul_retroactif = $DB_TAB[0]['referentiel_calcul_retroactif'];
  // Détermination de la date de départ
  $retroactif = ($retroactif=='auto') ? $calcul_retroactif : $retroactif ; // Ne peut plus valoir que "oui" | "non" | "annuel" à présent
  $date_mysql_debut_annee_scolaire = jour_debut_annee_scolaire('mysql');
      if($retroactif=='non')    { $date_mysql_start = $date_mysql_debut; }
  elseif($retroactif=='annuel') { $date_mysql_start = $date_mysql_debut_annee_scolaire; }
  else                          { $date_mysql_start = FALSE; } // forcément 'oui' puisque le cas 'auto' a déjà été écarté (possible car un unique référentiel est considéré ici)
  $DB_TAB = DB_STRUCTURE_BILAN::DB_lister_result_eleves_items( $liste_eleve , $liste_item , $matiere_id , $date_mysql_start , $date_mysql_fin , $_SESSION['USER_PROFIL_TYPE'] , FALSE /*onlyprof*/ , FALSE /*onlynote*/ ) ;
  if(!empty($DB_TAB))
  {
    foreach($DB_TAB as $DB_ROW)
    {
      $user_id = ($_SESSION['USER_PROFIL_TYPE']=='eleve') ? $_SESSION['USER_ID'] : $DB_ROW['eleve_id'] ;
 * 
 * SACoche est distribué dans l’espoir qu’il vous sera utile, mais SANS AUCUNE GARANTIE :
 * sans même la garantie implicite de COMMERCIALISABILITÉ ni d’ADÉQUATION À UN OBJECTIF PARTICULIER.
 * Consultez la Licence Publique Générale GNU Affero pour plus de détails.
 * 
 * Vous devriez avoir reçu une copie de la Licence Publique Générale GNU Affero avec SACoche ;
 * si ce n’est pas le cas, consultez : <http://www.gnu.org/licenses/>.
 * 
 */
if (!defined('SACoche')) {
    exit('Ce fichier ne peut être appelé directement !');
}
if ($_SESSION['SESAMATH_ID'] == ID_DEMO) {
    exit('Action désactivée pour la démo...');
}
$daltonisme = isset($_POST['daltonisme']) ? Clean::entier($_POST['daltonisme']) : -1;
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Mettre à jour la session + la base + le css perso
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if (in_array($daltonisme, array(0, 1))) {
    $_SESSION['USER_DALTONISME'] = $daltonisme;
    DB_STRUCTURE_COMMUN::DB_modifier_user_parametre($_SESSION['USER_ID'], 'user_daltonisme', $daltonisme);
    // Enregistrer en session le CSS personnalisé
    SessionUser::adapter_daltonisme();
    SessionUser::actualiser_style();
    exit('ok');
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// On ne devrait pas en arriver là !
// ////////////////////////////////////////////////////////////////////////////////////////////////////
exit('Erreur avec les données transmises !');
Exemple #4
0
    <form action="#" method="post" id="cadre_statut">
      <h3>Accès / Statut : <img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Pour les cases cochées du tableau (classes uniquement)." /></h3>
      <div>' . implode('</div><div>', $tab_radio) . '</div>
      <p><label for="mode_discret"><input id="mode_discret" name="mode_discret" type="checkbox" value="1" /> Mode discret <img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Cocher pour éviter l\'envoi de notifications aux abonnés." /></label></p>
      <p><input id="classe_ids" name="classe_ids" type="hidden" value="" /><input id="csrf" name="csrf" type="hidden" value="" /><button id="bouton_valider" type="button" class="valider">Valider</button><label id="ajax_msg_gestion">&nbsp;</label></p>
    </form>
  ';
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Formulaire de choix des épreuves pour une recherche de saisies manquantes. -> zone_chx_rubriques
// Paramètres supplémentaires envoyés pour éviter d'avoir à les retrouver à chaque fois. -> form_hidden
// ////////////////////////////////////////////////////////////////////////////////////////////////////
$form_hidden = '';
$tab_checkbox_rubriques = array();
// Lister les matières rattachées au prof
$listing_matieres_id = $_SESSION['USER_PROFIL_TYPE'] == 'professeur' ? DB_STRUCTURE_COMMUN::DB_recuperer_matieres_professeur($_SESSION['USER_ID']) : '';
$form_hidden .= '<input type="hidden" id="f_listing_matieres" name="f_listing_matieres" value="' . $listing_matieres_id . '" />';
$tab_matieres_id = explode(',', $listing_matieres_id);
// Lister les épreuves par série de Brevet en place dans l'établissement
foreach ($tab_brevet_series as $brevet_serie_ref => $brevet_serie_nom) {
    $tab_checkbox_rubriques[$brevet_serie_ref] = '<h3>' . $brevet_serie_nom . '</h3>';
    $DB_TAB = DB_STRUCTURE_BREVET::DB_lister_brevet_epreuves($brevet_serie_ref);
    foreach ($DB_TAB as $DB_ROW) {
        $checked = $_SESSION['USER_PROFIL_TYPE'] != 'professeur' || count(array_intersect(explode(',', $DB_ROW['brevet_epreuve_choix_matieres']), $tab_matieres_id)) ? ' checked' : '';
        $tab_checkbox_rubriques[$brevet_serie_ref] .= '<label for="rubrique_' . $brevet_serie_ref . '_' . $DB_ROW['brevet_epreuve_code'] . '"><input type="checkbox" name="f_rubrique[]" id="rubrique_' . $brevet_serie_ref . '_' . $DB_ROW['brevet_epreuve_code'] . '" value="' . $brevet_serie_ref . '_' . $DB_ROW['brevet_epreuve_code'] . '"' . $checked . ' /> ' . html($DB_ROW['brevet_epreuve_nom']) . '</label><br />';
    }
    $tab_checkbox_rubriques[$brevet_serie_ref] .= '<label for="rubrique_' . $brevet_serie_ref . '_' . CODE_BREVET_EPREUVE_TOTAL . '"><input type="checkbox" name="f_rubrique[]" id="rubrique_' . $brevet_serie_ref . '_' . CODE_BREVET_EPREUVE_TOTAL . '" value="' . $brevet_serie_ref . '_' . CODE_BREVET_EPREUVE_TOTAL . '" /> <i>Avis de synthèse</i></label><br />';
}
?>

<form action="#" method="post" id="zone_chx_rubriques" class="hide">
 * Logiciel placé sous la licence libre Affero GPL 3 <https://www.gnu.org/licenses/agpl-3.0.html>.
 * ****************************************************************************************************
 * 
 * Ce fichier est une partie de SACoche.
 * 
 * SACoche est un logiciel libre ; vous pouvez le redistribuer ou le modifier suivant les termes 
 * de la “GNU Affero General Public License” telle que publiée par la Free Software Foundation :
 * soit la version 3 de cette licence, soit (à votre gré) toute version ultérieure.
 * 
 * SACoche est distribué dans l’espoir qu’il vous sera utile, mais SANS AUCUNE GARANTIE :
 * sans même la garantie implicite de COMMERCIALISABILITÉ ni d’ADÉQUATION À UN OBJECTIF PARTICULIER.
 * Consultez la Licence Publique Générale GNU Affero pour plus de détails.
 * 
 * Vous devriez avoir reçu une copie de la Licence Publique Générale GNU Affero avec SACoche ;
 * si ce n’est pas le cas, consultez : <http://www.gnu.org/licenses/>.
 * 
 */
// Mettre à jour l'élément de formulaire "select_eleves" et le renvoyer en HTML
if (!defined('SACoche')) {
    exit('Ce fichier ne peut être appelé directement !');
}
if ($_SESSION['SESAMATH_ID'] == ID_DEMO) {
}
$matiere_id = isset($_POST['f_matiere']) ? Clean::entier($_POST['f_matiere']) : 0;
$niveau_id = isset($_POST['f_niveau']) ? Clean::entier($_POST['f_niveau']) : 0;
if (!$matiere_id || !$niveau_id) {
    exit('Erreur avec les données transmises !');
}
// Affichage du retour.
exit(HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_arborescence($matiere_id, $niveau_id), FALSE, '', FALSE, 'referentiel', FALSE));
 * Consultez la Licence Publique Générale GNU Affero pour plus de détails.
 * 
 * Vous devriez avoir reçu une copie de la Licence Publique Générale GNU Affero avec SACoche ;
 * si ce n’est pas le cas, consultez : <http://www.gnu.org/licenses/>.
 * 
 */
if (!defined('SACoche')) {
    exit('Ce fichier ne peut être appelé directement !');
}
$TITRE = html(Lang::_("Affecter les périodes aux classes & groupes"));
?>

<?php 
// Fabrication des éléments select du formulaire
$select_periodes = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_periodes_etabl(TRUE), 'select_periodes', FALSE, FALSE, '', $multiple = TRUE);
$select_classes_groupes = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_classes_groupes_etabl(), 'select_classes_groupes', FALSE, FALSE, 'regroupements', $multiple = TRUE);
?>

<p><span class="manuel"><a class="pop_up" href="<?php 
echo SERVEUR_DOCUMENTAIRE;
?>
?fichier=support_administrateur__gestion_periodes">DOC : Gestion des périodes</a></span></p>

<hr />

<form action="#" method="post" id="form_select">
  <table><tr>
    <td class="nu" style="width:25em">
      <b>Périodes :</b><span class="check_multiple"><q class="cocher_tout" title="Tout cocher."></q><q class="cocher_rien" title="Tout décocher."></q></span><br />
      <span id="select_periodes" class="select_multiple"><?php 
echo $select_periodes;
  $eleves_ordre    = 'alpha';
  $tab_eleve       = $tab_eleve_id;
  $liste_eleve     = $liste_eleve_id;
  $tab_matiere_id  = array();
  require(CHEMIN_DOSSIER_INCLUDE.'noyau_items_synthese.php');
  $nom_bilan_html  = 'releve_HTML';
}
elseif(in_array($BILAN_TYPE,array('palier1','palier2','palier3')))
{
  $palier_id      = (int)substr($BILAN_TYPE,-1);
  $palier_nom     = 'Palier '.$palier_id;
  $only_presence  = $_SESSION['OFFICIEL']['SOCLE_ONLY_PRESENCE'];
  $aff_socle_PA   = $_SESSION['OFFICIEL']['SOCLE_POURCENTAGE_ACQUIS'];
  $aff_socle_EV   = $_SESSION['OFFICIEL']['SOCLE_ETAT_VALIDATION'];
  $groupe_id      = (!$is_sous_groupe) ? $classe_id  : $groupe_id ; // Le groupe = la classe (par défaut) ou le groupe transmis
  $groupe_nom     = (!$is_sous_groupe) ? $classe_nom : $classe_nom.' - '.DB_STRUCTURE_COMMUN::DB_recuperer_groupe_nom($groupe_id) ;
  $groupe_type    = (!$is_sous_groupe) ? 'Classe'  : 'Groupe' ;
  $mode           = 'auto';
  $aff_coef       = 0; // Sans objet, l'élève & sa famille n'ayant accès qu'à l'archive pdf
  $aff_socle      = 0; // Sans objet, l'élève & sa famille n'ayant accès qu'à l'archive pdf
  $aff_lien       = 0; // Sans objet, l'élève & sa famille n'ayant accès qu'à l'archive pdf
  $aff_start      = 0; // Sans objet, l'élève & sa famille n'ayant accès qu'à l'archive pdf
  $couleur        = $_SESSION['OFFICIEL']['SOCLE_COULEUR'];
  $fond           = $_SESSION['OFFICIEL']['SOCLE_FOND'];
  $legende        = $_SESSION['OFFICIEL']['SOCLE_LEGENDE'];
  $marge_gauche   = $_SESSION['OFFICIEL']['MARGE_GAUCHE'];
  $marge_droite   = $_SESSION['OFFICIEL']['MARGE_DROITE'];
  $marge_haut     = $_SESSION['OFFICIEL']['MARGE_HAUT'];
  $marge_bas      = $_SESSION['OFFICIEL']['MARGE_BAS'];
  $eleves_ordre   = 'alpha';
  $tab_pilier_id  = $tab_pilier_id;
Exemple #8
0
  $is_select_multiple = 0;
  $socle_PA = test_user_droit_specifique($_SESSION['DROIT_SOCLE_POURCENTAGE_ACQUIS']) ? $socle_PA : '<del>Pourcentage d\'items acquis</del>' ;
  $socle_EV = test_user_droit_specifique($_SESSION['DROIT_SOCLE_ETAT_VALIDATION'])    ? $socle_EV : '<del>État de validation</del>' ;
}

elseif($_SESSION['USER_PROFIL_TYPE']=='eleve')
{
  $tab_groupes  = array(0=>array('valeur'=>$_SESSION['ELEVE_CLASSE_ID'],'texte'=>$_SESSION['ELEVE_CLASSE_NOM'],'optgroup'=>'classe'));
  $of_g = FALSE; $sel_g = TRUE;  $class_form_eleve = 'hide'; $class_option_groupe = 'show'; $class_option_mode = 'hide';
  $select_eleves = '<select id="f_eleve" name="f_eleve[]"><option value="'.$_SESSION['USER_ID'].'" selected>'.html($_SESSION['USER_NOM'].' '.$_SESSION['USER_PRENOM']).'</option></select>';
  $is_select_multiple = 0;
  $socle_PA = test_user_droit_specifique($_SESSION['DROIT_SOCLE_POURCENTAGE_ACQUIS']) ? $socle_PA : '<del>Pourcentage d\'items acquis</del>' ;
  $socle_EV = test_user_droit_specifique($_SESSION['DROIT_SOCLE_ETAT_VALIDATION'])    ? $socle_EV : '<del>État de validation</del>' ;
}
$tab_paliers  = DB_STRUCTURE_COMMUN::DB_OPT_paliers_etabl();
$tab_matieres = DB_STRUCTURE_COMMUN::DB_OPT_matieres_etabl();
$of_p = (count($tab_paliers)<2) ? FALSE : '' ;

$select_palier       = HtmlForm::afficher_select($tab_paliers                   , 'f_palier'       /*select_nom*/ , $of_p /*option_first*/ , Form::$tab_choix['palier_id']    /*selection*/ ,              '' /*optgroup*/);
$select_groupe       = HtmlForm::afficher_select($tab_groupes                   , 'f_groupe'       /*select_nom*/ , $of_g /*option_first*/ , $sel_g                           /*selection*/ , 'regroupements' /*optgroup*/);
$select_eleves_ordre = HtmlForm::afficher_select(Form::$tab_select_eleves_ordre , 'f_eleves_ordre' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['eleves_ordre'] /*selection*/ ,              '' /*optgroup*/);
$select_matiere      = HtmlForm::afficher_select($tab_matieres                  , 'f_matiere'      /*select_nom*/ , FALSE /*option_first*/ , TRUE                             /*selection*/ ,              '' /*optgroup*/ , TRUE /*multiple*/);
$select_marge_min    = HtmlForm::afficher_select(Form::$tab_select_marge_min    , 'f_marge_min'    /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['marge_min']    /*selection*/ ,              '' /*optgroup*/);
$select_couleur      = HtmlForm::afficher_select(Form::$tab_select_couleur      , 'f_couleur'      /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['couleur']      /*selection*/ ,              '' /*optgroup*/);
$select_fond         = HtmlForm::afficher_select(Form::$tab_select_fond         , 'f_fond'         /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['fond']         /*selection*/ ,              '' /*optgroup*/);
$select_legende      = HtmlForm::afficher_select(Form::$tab_select_legende      , 'f_legende'      /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['legende']      /*selection*/ ,              '' /*optgroup*/);

// Javascript
Layout::add( 'js_inline_before' , 'var is_multiple = '.$is_select_multiple.';' );
?>
$tab_objet_profils['droit_officiel_bulletin_corriger_appreciation'] = $tab_profils_possibles['dir_pers_pp'];
$tab_objet_profils['droit_officiel_bulletin_appreciation_generale'] = $tab_profils_possibles['dir_pers_pp'];
$tab_objet_profils['droit_officiel_bulletin_impression_pdf'] = $tab_profils_possibles['dir_pers_pp'];
$tab_objet_profils['droit_officiel_socle_modifier_statut'] = $tab_profils_possibles['dir_pers_pp'];
$tab_objet_profils['droit_officiel_socle_corriger_appreciation'] = $tab_profils_possibles['dir_pers_pp'];
$tab_objet_profils['droit_officiel_socle_appreciation_generale'] = $tab_profils_possibles['dir_pers_pp'];
$tab_objet_profils['droit_officiel_socle_impression_pdf'] = $tab_profils_possibles['dir_pers_pp'];
$tab_objet_profils['droit_fiche_brevet_modifier_statut'] = $tab_profils_possibles['dir_pers_pp'];
$tab_objet_profils['droit_fiche_brevet_corriger_appreciation'] = $tab_profils_possibles['dir_pers_pp'];
$tab_objet_profils['droit_fiche_brevet_appreciation_generale'] = $tab_profils_possibles['dir_pers_pp'];
$tab_objet_profils['droit_fiche_brevet_impression_pdf'] = $tab_profils_possibles['dir_pers_pp'];
$tab_objet_profils['droit_officiel_releve_voir_archive'] = $tab_profils_possibles['tous'];
$tab_objet_profils['droit_officiel_bulletin_voir_archive'] = $tab_profils_possibles['tous'];
$tab_objet_profils['droit_officiel_socle_voir_archive'] = $tab_profils_possibles['tous'];
$tab_objet_profils['droit_fiche_brevet_voir_archive'] = $tab_profils_possibles['tous'];
if (!isset($tab_objet_profils[$f_objet])) {
    exit('Droit inconnu !');
}
$tab_profils_transmis = $f_profils ? explode(',', $f_profils) : array();
$tab_profils_possibles = $tab_objet_profils[$f_objet];
$tab_profils_inconnus = array_diff($tab_profils_transmis, $tab_profils_possibles);
if (count($tab_profils_inconnus)) {
    exit('Profils incohérents !');
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Appliquer la modification demandée
// ////////////////////////////////////////////////////////////////////////////////////////////////////
DB_STRUCTURE_COMMUN::DB_modifier_parametres(array($f_objet => $f_profils));
// ne pas oublier de mettre aussi à jour la session
$_SESSION[strtoupper($f_objet)] = $f_profils;
exit('ok');
                    } else {
                        $lignes_ko .= '<tr><td>' . html($eleve_nom . ' ' . $eleve_prenom) . '</td><td colspan="4" class="r">Homonymes trouvés dans la base.</td></tr>';
                    }
                }
            }
        }
    }
    // affichage du retour
    exit($lignes_ok . $lignes_ko);
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Afficher le formulaire de saisie manuel
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($action == 'afficher_formulaire_manuel' && $periode_id && $groupe_id) {
    // liste des élèves
    $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement('eleve', 1, 'classe', $groupe_id, 'alpha');
    if (empty($DB_TAB)) {
        exit('Aucun élève trouvé dans ce regroupement !');
    }
    $tab_eleves = array();
    foreach ($DB_TAB as $DB_ROW) {
        $tab_eleves[$DB_ROW['user_id']] = $DB_ROW['user_nom'] . ' ' . $DB_ROW['user_prenom'];
    }
    // liste des saisies
    $tab_assiduite = array();
    $DB_TAB = DB_STRUCTURE_OFFICIEL::DB_lister_officiel_assiduite($periode_id, array_keys($tab_eleves));
    foreach ($DB_TAB as $DB_ROW) {
        $tab_assiduite[$DB_ROW['user_id']] = array('absence' => $DB_ROW['assiduite_absence'], 'absence_nj' => $DB_ROW['assiduite_absence_nj'], 'retard' => $DB_ROW['assiduite_retard'], 'retard_nj' => $DB_ROW['assiduite_retard_nj']);
    }
    // affichage du tableau
    $lignes = '';
?>
<br />
    <label class="tab">Évaluations :</label>cases de largeur <?php 
echo $select_cases_larg;
?>
  </div>
  <p><span class="tab"></span><button id="bouton_valider" type="submit" class="generer">Générer.</button><label id="ajax_msg">&nbsp;</label></p>
</fieldset></form>

<form action="#" method="post" id="zone_matieres_items" class="arbre_dynamique arbre_check hide">
  <div>Tout déployer / contracter :<q class="deployer_m1"></q><q class="deployer_m2"></q><q class="deployer_n1"></q><q class="deployer_n2"></q><q class="deployer_n3"></q></div>
  <p>Cocher ci-dessous (<span class="astuce">cliquer sur un intitulé pour déployer son contenu</span>) :</p>
  <?php 
// Affichage de la liste des items pour toutes les matières d'un professeur ou toutes les matières de l'établissement si directeur ou PP, sur tous les niveaux
$user_id = $_SESSION['USER_PROFIL_TYPE'] == 'professeur' && !DB_STRUCTURE_PROFESSEUR::DB_tester_prof_principal($_SESSION['USER_ID'], 0) ? $_SESSION['USER_ID'] : 0;
$DB_TAB = DB_STRUCTURE_COMMUN::DB_recuperer_arborescence($user_id, 0, 0, FALSE, FALSE, FALSE);
if (empty($DB_TAB)) {
    echo '<p class="danger">Vous n\'êtes rattaché à aucune matière, ou des matières ne comportant aucun référentiel !</p>';
} else {
    $arborescence = HtmlArborescence::afficher_matiere_from_SQL($DB_TAB, TRUE, TRUE, FALSE, FALSE, 'texte', FALSE, TRUE);
    echo strpos($arborescence, '<input') ? $arborescence : '<p class="danger">Vous êtes rattaché à des matières dont les référentiels ne comportent aucun item !</p>';
}
?>
  <p><span class="tab"></span><button id="valider_compet" type="button" class="valider">Valider la sélection</button>&nbsp;&nbsp;&nbsp;<button id="annuler_compet" type="button" class="annuler">Annuler / Retour</button></p>
  <hr />
  <p>
    <label class="tab" for="f_selection_items"><img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Pour choisir un regroupement d'items mémorisé." /> Initialisation</label><?php 
echo $select_selection_items;
?>
<br />
    <label class="tab" for="f_liste_items_nom"><img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Pour enregistrer le groupe d'items cochés." /> Mémorisation</label><input id="f_liste_items_nom" name="f_liste_items_nom" size="30" type="text" value="" maxlength="60" /> <button id="f_enregistrer_items" type="button" class="fichier_export">Enregistrer</button><label id="ajax_msg_memo">&nbsp;</label>
Exemple #12
0
/**
 * analyser_et_reparer_tables_base_etablissement
 * Sans lien direct avec la sauvegarde, mais tout de même rangé dans ce fichier...
 *
 * @param void
 * @return array   un code de niveau d'alerte + un message
 */
function analyser_et_reparer_tables_base_etablissement()
{
    // Lister les tables
    $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_tables();
    $listing_tables = implode(',', array_keys($DB_TAB));
    // Analyser les tables
    $niveau_alerte = 0;
    $tab_messages = array();
    $DB_TAB = DB_STRUCTURE_COMMUN::DB_analyser_tables($listing_tables);
    foreach ($DB_TAB as $key => $DB_ROW) {
        if ($DB_ROW['Msg_text'] != 'OK' && $DB_ROW['Msg_text'] != 'Not checked') {
            $niveau_alerte = max($niveau_alerte, 1);
            $tab_messages[$key] = $DB_ROW['Table'] . ' &rarr; ' . $DB_ROW['Msg_text'];
            // Réparer une table
            $DB_ROW2 = DB_STRUCTURE_COMMUN::DB_reparer_table($DB_ROW['Table']);
            $tab_messages[$key] .= ' &rarr; Réparation &rarr; ' . $DB_ROW2['Msg_text'];
            if ($DB_ROW2['Msg_text'] != 'OK') {
                $niveau_alerte = 2;
            }
        } elseif (HEBERGEUR_INSTALLATION == 'mono-structure') {
            $tab_messages[$key] = $DB_ROW['Table'] . ' &rarr; ' . $DB_ROW['Msg_text'];
        }
    }
    // Retour
    if (!count($tab_messages)) {
        $tab_messages[] = count($DB_TAB) . ' tables OK';
    }
    return array($niveau_alerte, implode('<br />', $tab_messages));
}
// Contenu du fichier à supprimer
$lignes_del = '';
if(count($tab_groupes_base['ref']))
{
  foreach($tab_groupes_base['ref'] as $id_base => $ref)
  {
    $lignes_del .= '<tr><th>'.html($ref).'</th><td>Supprimer <input id="del_'.$id_base.'" name="del_'.$id_base.'" type="checkbox" /> '.html($tab_groupes_base['nom'][$id_base]).'</td></tr>'.NL;
  }
}
// Contenu du fichier à ajouter
$lignes_add = '';
if(count($tab_groupes_fichier['ref']))
{
  $select_niveau = '<option value="">&nbsp;</option>';
  $tab_niveau_ref = array();
  $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_niveaux_etablissement(FALSE /*with_particuliers*/);
  foreach($DB_TAB as $DB_ROW)
  {
    $select_niveau .= '<option value="'.$DB_ROW['niveau_id'].'">'.html($DB_ROW['niveau_nom']).'</option>';
    $key = ( ($import_origine=='sconet') && ($import_profil=='eleve') ) ? $DB_ROW['code_mef'] : $DB_ROW['niveau_ref'] ;
    $tab_niveau_ref[$key] = $DB_ROW['niveau_id'];
  }
  foreach($tab_groupes_fichier['ref'] as $i_groupe => $ref)
  {
    // On préselectionne un niveau :
    // - pour sconet_eleves                 on compare avec un masque d'expression régulière
    // - pour base_eleves_eleves            on compare avec les niveaux de SACoche
    // - pour sconet_professeurs_directeurs on compare avec le début de la référence du groupe
    // - pour tableur_eleves                on compare avec le début de la référence du groupe
    $id_checked = '';
    foreach($tab_niveau_ref as $masque_recherche => $niveau_id)
$test_uai = $_SESSION['WEBMESTRE_UAI'] ? TRUE : FALSE;
$test_cnil = intval(CNIL_NUMERO) && CNIL_DATE_ENGAGEMENT && CNIL_DATE_RECEPISSE ? TRUE : FALSE;
$test_id_sconet = !$nb_eleves_sans_sconet ? TRUE : FALSE;
$test_key_sesamath = $_SESSION['SESAMATH_KEY'] && $_SESSION['SESAMATH_ID'] ? TRUE : FALSE;
$webmestre_menu_uai = HEBERGEUR_INSTALLATION == 'multi-structures' ? '[Gestion des inscriptions] [Gestion des établissements]' : '[Paramétrages installation] [Identité de l\'installation]';
$webmestre_menu_cnil = '[Paramétrages installation] [Identité de l\'installation]';
$msg_uai = $test_uai ? '<label class="valide">Référence ' . html($_SESSION['WEBMESTRE_UAI']) . '</label>' : '<label class="erreur">Référence non renseignée par le webmestre.</label> <span class="manuel"><a class="pop_up" href="' . SERVEUR_DOCUMENTAIRE . '?fichier=support_webmestre__identite_installation">DOC</a></span>&nbsp;&nbsp;&nbsp;' . HtmlMail::to(WEBMESTRE_COURRIEL, 'SACoche - référence UAI', 'contact', 'Bonjour. La référence UAI de notre établissement (base n°' . $_SESSION['BASE'] . ') n\'est pas renseignée. Pouvez-vous faire le nécessaire depuis votre menu ' . $webmestre_menu_uai . ' ?');
$msg_cnil = $test_cnil ? '<label class="valide">Déclaration n°' . html(CNIL_NUMERO) . ' - demande effectuée le ' . html(CNIL_DATE_ENGAGEMENT) . ' - récépissé reçu le ' . html(CNIL_DATE_RECEPISSE) . '</label>' : '<label class="erreur">Déclaration non renseignée par le webmestre.</label> <span class="manuel"><a class="pop_up" href="' . SERVEUR_DOCUMENTAIRE . '?fichier=support_webmestre__identite_installation">DOC</a></span>&nbsp;&nbsp;&nbsp;' . HtmlMail::to(WEBMESTRE_COURRIEL, 'SACoche - Informations CNIL', 'contact', 'Bonjour. Les informations CNIL de l\'installation ' . URL_INSTALL_SACOCHE . ' ne sont pas renseignées. Pouvez-vous faire le nécessaire depuis votre menu ' . $webmestre_menu_cnil . ' ?');
$msg_id_sconet = $test_id_sconet ? '<label class="valide">Identifiants élèves présents.</label>' : '<label class="alerte">' . $nb_eleves_sans_sconet . ' élève' . $s . ' trouvé' . $s . ' sans identifiant Sconet.</label> <span class="manuel"><a class="pop_up" href="' . SERVEUR_DOCUMENTAIRE . '?fichier=support_administrateur__import_users_sconet">DOC</a></span>';
$msg_key_sesamath = $test_key_sesamath ? '<label class="valide">Etablissement identifié sur le serveur communautaire.</label>' : '<label class="erreur">Identification non effectuée par un administrateur.</label> <span class="manuel"><a class="pop_up" href="' . SERVEUR_DOCUMENTAIRE . '?fichier=support_administrateur__gestion_informations_structure">DOC</a></span>';
$bouton_export_lpc = $test_uai && $test_cnil && $test_key_sesamath ? 'id="bouton_export" class="fichier_export enabled"' : 'id="disabled_export" class="fichier_export" disabled';
?>

<?php 
// Fabrication des éléments select du formulaire
$select_f_groupes = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_regroupements_etabl(), 'f_groupe', '', FALSE, 'regroupements');
?>

<p><span class="manuel"><a class="pop_up" href="<?php 
echo SERVEUR_DOCUMENTAIRE;
?>
?fichier=referentiels_socle__socle_export_import">DOC : Import / Export de validations du socle</a></span></p>

<hr />

<form action="#" method="post">

  <fieldset>
    <label class="tab" for="f_choix_principal">Procédure :</label>
    <select id="f_choix_principal" name="f_choix_principal">
      <option value="">&nbsp;</option>
Exemple #15
0
  <p>
    <span class="tab"></span><input type="hidden" id="f_highlight_id" name="f_highlight_id" value="<?php echo $auto_highlight_item_id ?>" /><button id="bouton_valider" type="submit" class="generer">Générer.</button><label id="ajax_msg">&nbsp;</label>
  </p>

</fieldset></form>

<form action="#" method="post" id="zone_matieres_items" class="arbre_dynamique arbre_check hide">
  <div>Tout déployer / contracter :<q class="deployer_m1"></q><q class="deployer_m2"></q><q class="deployer_n1"></q><q class="deployer_n2"></q><q class="deployer_n3"></q></div>
  <p>Cocher ci-dessous (<span class="astuce">cliquer sur un intitulé pour déployer son contenu</span>) :</p>
  <?php
  if(!in_array($_SESSION['USER_PROFIL_TYPE'],array('parent','eleve')))
  {
    // Affichage de la liste des items pour toutes les matières d'un professeur ou toutes les matières de l'établissement si directeur ou PP, sur tous les niveaux
    $user_id = ( ($_SESSION['USER_PROFIL_TYPE']=='professeur') && !DB_STRUCTURE_PROFESSEUR::DB_tester_prof_principal($_SESSION['USER_ID'],0) ) ? $_SESSION['USER_ID'] : 0 ;
    $DB_TAB = DB_STRUCTURE_COMMUN::DB_recuperer_arborescence( $user_id , 0 /*matiere_id*/ , 0 /*niveau_id*/, FALSE /*only_socle*/ , FALSE /*only_item*/ , FALSE /*socle_nom*/ );
    if(empty($DB_TAB))
    {
      echo'<p class="danger">Vous n\'êtes rattaché à aucune matière, ou des matières ne comportant aucun référentiel !</p>' ;
    }
    else
    {
      $arborescence = HtmlArborescence::afficher_matiere_from_SQL( $DB_TAB , TRUE /*dynamique*/ , TRUE /*reference*/ , FALSE /*aff_coef*/ , FALSE /*aff_cart*/ , 'texte' /*aff_socle*/ , FALSE /*aff_lien*/ , TRUE /*aff_input*/ );
      echo strpos($arborescence,'<input') ? $arborescence : '<p class="danger">Vous êtes rattaché à des matières dont les référentiels ne comportent aucun item !</p>' ;
    }
  }
  ?>
  <p><span class="tab"></span><button id="valider_compet" type="button" class="valider">Valider la sélection</button>&nbsp;&nbsp;&nbsp;<button id="annuler_compet" type="button" class="annuler">Annuler / Retour</button></p>
  <hr />
  <p>
    <label class="tab" for="f_selection_items"><img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Pour choisir un regroupement d'items mémorisé." /> Initialisation</label><?php echo $select_selection_items ?><br />
  $form_choix_eleve .= '</select> <button id="go_suivant_eleve" type="button" class="go_suivant">Suivant</button> <button id="go_dernier_eleve" type="button" class="go_dernier">Dernier</button>&nbsp;&nbsp;&nbsp;<button id="fermer_zone_action_eleve" type="button" class="retourner">Retour</button>';
  $form_choix_eleve .= ($BILAN_TYPE=='bulletin') ? ( ($mode=='texte') ? ' <button id="change_mode" type="button" class="stats">Interface graphique</button>' : ' <button id="change_mode" type="button" class="texte">Interface détaillée</button>' ) : '' ;
  $form_choix_eleve .= '</div></form><hr />';
  $eleve_id = 0;
  // (re)calculer les moyennes des élèves (matières et générales), ainsi que les moyennes de classe (matières et générales).
  if( ($BILAN_TYPE=='bulletin') && $_SESSION['OFFICIEL']['BULLETIN_MOYENNE_SCORES'] )
  {
    // Attention ! On doit calculer des moyennes de classe, pas de groupe !
    if(!$is_sous_groupe)
    {
      $liste_eleve_id = implode(',',$tab_eleve_id);
    }
    else
    {
      $tab_eleve_id_tmp = array();
      $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement( 'eleve' /*profil_type*/ , 1 /*statut*/ , 'classe' , $classe_id , 'alpha' /*eleves_ordre*/ );
      foreach($DB_TAB as $DB_ROW)
      {
        $tab_eleve_id_tmp[] = $DB_ROW['user_id'];
      }
      $liste_eleve_id = implode(',',$tab_eleve_id_tmp);
    }
    calculer_et_enregistrer_moyennes_eleves_bulletin( $periode_id , $classe_id , $liste_eleve_id , '' /*liste_matiere_id*/ , $_SESSION['OFFICIEL']['BULLETIN_ONLY_SOCLE'] , $_SESSION['OFFICIEL']['BULLETIN_RETROACTIF'] , $_SESSION['OFFICIEL']['BULLETIN_MOYENNE_CLASSE'] , $_SESSION['OFFICIEL']['BULLETIN_MOYENNE_GENERALE'] );
  }
}

// Récupérer les saisies déjà effectuées pour le bilan officiel concerné

$tab_saisie = array();  // [eleve_id][rubrique_id][prof_id] => array(prof_info,appreciation,note);
$tab_moyenne_exception_matieres = ( ($BILAN_TYPE!='bulletin') || !$_SESSION['OFFICIEL']['BULLETIN_MOYENNE_EXCEPTION_MATIERES'] ) ? array() : explode(',',$_SESSION['OFFICIEL']['BULLETIN_MOYENNE_EXCEPTION_MATIERES']) ;
$DB_TAB = DB_STRUCTURE_OFFICIEL::DB_recuperer_bilan_officiel_saisies_eleves( $BILAN_TYPE , $periode_id , $eleve_id , 0 /*prof_id*/ , FALSE /*with_rubrique_nom*/ , FALSE /*with_periodes_avant*/ , FALSE /*only_synthese_generale*/ );
  {
    echo'<p><button id="choisir_rechercher" type="button" class="rechercher">Rechercher parmi les référentiels partagés sur le serveur communautaire.</button></p>'.NL;
    echo'<p><button id="choisir_importer" type="button" value="id_x" class="valider">Démarrer avec ce référentiel : <b id="reporter"></b></button></p>'.NL;
  }
  ?>
  <p><button id="choisir_annuler" type="button" class="annuler">Annuler la création d'un référentiel.</button></p>
</div>

</form>

<form action="#" method="post" id="form_communautaire" class="hide">

<?php
// Fabrication des éléments select du formulaire, pour pouvoir prendre un référentiel d'une autre matière ou d'un autre niveau (demandé...).
$select_famille_matiere = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_familles_matieres() , 'f_famille_matiere' /*select_nom*/ , '' /*option_first*/ , FALSE /*selection*/ , 'familles_matieres' /*optgroup*/);
$select_famille_niveau  = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_familles_niveaux()  , 'f_famille_niveau'  /*select_nom*/ , '' /*option_first*/ , FALSE /*selection*/ , 'familles_niveaux'  /*optgroup*/);
?>

<div id="choisir_referentiel_communautaire">
  <h2>Rechercher un référentiel partagé sur le serveur communautaire</h2>
  <p>
    <label class="tab" for="f_famille_matiere">Famille de matières :</label><?php echo $select_famille_matiere ?><label id="ajax_maj_matiere">&nbsp;</label><br />
    <label class="tab" for="f_matiere">Matières :</label><select id="f_matiere" name="f_matiere"><option value="0">Toutes les matières</option></select>
  </p>
  <p>
    <label class="tab" for="f_famille_niveau">Famille de niveaux :</label><?php echo $select_famille_niveau ?><label id="ajax_maj_niveau">&nbsp;</label><br />
    <label class="tab" for="f_niveau">Niveau :</label><select id="f_niveau" name="f_niveau"><option value="0">Tous les niveaux</option></select>
  </p>
  <fieldset>
    <label class="tab" for="f_structure"><img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Seules les structures partageant au moins un référentiel apparaissent." /> Structure :</label><select id="f_structure" name="f_structure"><option></option></select><br />
    <span class="tab"></span><button id="rechercher" type="button" class="rechercher">Lancer / Actualiser la recherche.</button><label id="ajax_msg">&nbsp;</label><br />
  $of_g = '';
}
else // Ne passent ici que les professeurs
{
  if(test_droit_specifique_restreint($_SESSION['DROIT_VALIDATION_PILIER'],'ONLY_PP'))
  {
    $tab_groupes = DB_STRUCTURE_COMMUN::DB_OPT_classes_prof_principal($_SESSION['USER_ID']);
    $of_g = FALSE;
  }
  else
  {
    $tab_groupes = DB_STRUCTURE_COMMUN::DB_OPT_groupes_professeur($_SESSION['USER_ID']);
    $of_g = '';
  }
}
$tab_paliers = DB_STRUCTURE_COMMUN::DB_OPT_paliers_etabl();
$of_p = (count($tab_paliers)<2) ? FALSE : '' ;

$select_palier       = HtmlForm::afficher_select($tab_paliers                   , 'f_palier'       /*select_nom*/ , $of_p /*option_first*/ , Form::$tab_choix['palier_id']    /*selection*/ ,              '' /*optgroup*/);
$select_groupe       = HtmlForm::afficher_select($tab_groupes                   , 'f_groupe'       /*select_nom*/ , $of_g /*option_first*/ , FALSE                            /*selection*/ , 'regroupements' /*optgroup*/);
$select_eleves_ordre = HtmlForm::afficher_select(Form::$tab_select_eleves_ordre , 'f_eleves_ordre' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['eleves_ordre'] /*selection*/ ,              '' /*optgroup*/);
?>

<ul class="puce">
  <li><span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE ?>?fichier=referentiels_socle__socle_valider_pilier">DOC : Valider des compétences du socle.</a></span></li>
</ul>

<hr />

<form action="#" method="post" id="zone_choix"><fieldset>
  <label class="tab" for="f_palier">Palier :</label><?php echo $select_palier ?><label id="ajax_maj_pilier">&nbsp;</label><br />
    case 'eleve':
        $DB_TAB = array(0 => array('groupe_id' => $_SESSION['ELEVE_CLASSE_ID'], 'groupe_nom' => $_SESSION['ELEVE_CLASSE_NOM']));
}
if (!empty($DB_TAB)) {
    foreach ($DB_TAB as $DB_ROW) {
        $tab_groupe[$DB_ROW['groupe_id']] = '<th>' . html($DB_ROW['groupe_nom']) . '</th>';
    }
    // Récupérer la liste des périodes, dans l'ordre choisi par l'admin
    $DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_periodes();
    if (!empty($DB_TAB)) {
        foreach ($DB_TAB as $DB_ROW) {
            $tab_periode[$DB_ROW['periode_id']] = '<th>' . html($DB_ROW['periode_nom']) . '</th>';
        }
        // Récupérer la liste des jointures
        $listing_groupes_id = implode(',', array_keys($tab_groupe));
        $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_jointure_groupe_periode($listing_groupes_id);
        $memo_groupe_id = 0;
        if (!empty($DB_TAB)) {
            foreach ($DB_TAB as $DB_ROW) {
                $date_affich_debut = convert_date_mysql_to_french($DB_ROW['jointure_date_debut']);
                $date_affich_fin = convert_date_mysql_to_french($DB_ROW['jointure_date_fin']);
                $tab_jointure[$DB_ROW['groupe_id']][$DB_ROW['periode_id']] = html($date_affich_debut) . ' ~ ' . html($date_affich_fin);
            }
        }
        // Fabrication du tableau résultant
        foreach ($tab_groupe as $groupe_id => $groupe_text) {
            foreach ($tab_periode as $periode_id => $periode_text) {
                $tab_groupe[$groupe_id] .= isset($tab_jointure[$groupe_id][$periode_id]) ? '<td>' . $tab_jointure[$groupe_id][$periode_id] . '</td>' : '<td class="hc">-</td>';
            }
        }
        // Affichage du tableau résultant
?>
</form>

<form action="#" method="post" id="zone_elaboration_referentiel" onsubmit="return false;" class="arbre_dynamique">
</form>

<div id="zone_socle_item" class="arbre_dynamique hide">
  <h2>Relation au socle commun</h2>
  <form action="#" method="post">
    <p>
      <label class="tab">Item disciplinaire :</label><span class="f_nom i"></span><br />
      <label class="tab">Socle commun :</label>Cocher ci-dessous (<span class="astuce">cliquer sur un intitulé pour déployer son contenu</span>).<br />
      <span class="tab"></span><button id="choisir_socle_valider" type="button" class="valider">Valider le choix effectué.</button> <button id="choisir_socle_annuler" type="button" class="annuler">Annuler.</button>
    </p>
    <ul class="ul_n1 p"><li class="li_n3"><label for="socle_0"><input id="socle_0" name="f_socle" type="radio" value="0" /> Hors-socle.</label></li></ul>
    <?php
    // Affichage de la liste des items du socle pour chaque palier
    $DB_TAB = DB_STRUCTURE_COMMUN::DB_recuperer_arborescence_palier();
    if(!empty($DB_TAB))
    {
      echo HtmlArborescence::afficher_socle_from_SQL( $DB_TAB , TRUE /*dynamique*/ , FALSE /*reference*/ , TRUE /*aff_input*/ , FALSE /*ids*/ );
    }
    else
    {
      echo'<span class="danger"> Aucun palier du socle n\'est associé à l\'établissement ! L\'administrateur doit préalablement choisir les paliers évalués...</span>'.NL;
    }
    ?>
  </form>
</div>

				<th>Profs</th>
				<th class="nu"><q class="ajouter" title="Ajouter une évaluation."></q></th>
			</tr>
		</thead>
		<tbody>
			<tr><td class="nu" colspan="7"></td></tr>
		</tbody>
	</table>
</form>

<form action="#" method="post" id="zone_matieres_items" class="arbre_dynamique arbre_check hide">
	<div>Tout déployer / contracter : <a href="m1" class="all_extend"><img alt="m1" src="./_img/deploy_m1.gif" /></a> <a href="m2" class="all_extend"><img alt="m2" src="./_img/deploy_m2.gif" /></a> <a href="n1" class="all_extend"><img alt="n1" src="./_img/deploy_n1.gif" /></a> <a href="n2" class="all_extend"><img alt="n2" src="./_img/deploy_n2.gif" /></a> <a href="n3" class="all_extend"><img alt="n3" src="./_img/deploy_n3.gif" /></a></div>
	<p>Cocher ci-dessous (<span class="astuce">cliquer sur un intitulé pour déployer son contenu</span>) :</p>
	<?php
	// Affichage de la liste des items pour toutes les matières d'un professeur, sur tous les niveaux
	$DB_TAB = DB_STRUCTURE_COMMUN::DB_recuperer_arborescence($_SESSION['USER_ID'],$matiere_id=0,$niveau_id=0,$only_socle=false,$only_item=false,$socle_nom=false);
	echo afficher_arborescence_matiere_from_SQL($DB_TAB,$dynamique=true,$reference=true,$aff_coef=false,$aff_cart=false,$aff_socle='texte',$aff_lien=false,$aff_input=true);
	?>
	<p class="danger">Une évaluation dont la saisie a commencé ne devrait pas voir ses items modifiés.<br />En particulier, retirer des items d'une évaluation efface les scores correspondants déjà saisis !</p>
	<div><span class="tab"></span><button id="valider_compet" type="button" class="valider">Valider la sélection</button>&nbsp;&nbsp;&nbsp;<button id="annuler_compet" type="button" class="annuler">Annuler / Retour</button></div>
	<hr />
	<p>
		<label class="tab" for="f_selection_items"><img alt="" src="./_img/bulle_aide.png" title="Pour choisir un regroupement d'items mémorisé." /> Initialisation</label><?php echo $select_selection_items ?><br />
		<label class="tab" for="f_liste_items_nom"><img alt="" src="./_img/bulle_aide.png" title="Pour enregistrer le groupe d'items cochés." /> Mémorisation</label><input id="f_liste_items_nom" name="f_liste_items_nom" size="30" type="text" value="" maxlength="60" /> <button id="f_enregistrer_items" type="button" class="fichier_export">Enregistrer</button><label id="ajax_msg_memo">&nbsp;</label>
	</p>
</form>

<form action="#" method="post" id="zone_profs" class="hide">
	<div class="astuce">Vous pouvez permettre à des collègues de co-saisir les notes de ce devoir (et de le dupliquer).</div>
	<?php echo afficher_form_element_checkbox_collegues() ?>
	<div style="clear:both"><button id="valider_profs" type="button" class="valider">Valider la sélection</button>&nbsp;&nbsp;&nbsp;<button id="annuler_profs" type="button" class="annuler">Annuler / Retour</button></div>
 * Consultez la Licence Publique Générale GNU Affero pour plus de détails.
 * 
 * Vous devriez avoir reçu une copie de la Licence Publique Générale GNU Affero avec SACoche ;
 * si ce n’est pas le cas, consultez : <http://www.gnu.org/licenses/>.
 * 
 */

// Mettre à jour l'élément de formulaire "f_eleve" et le renvoyer en HTML

if(!defined('SACoche')) {exit('Ce fichier ne peut être appelé directement !');}
if($_SESSION['SESAMATH_ID']==ID_DEMO) {}

$groupe   = (isset($_POST['f_groupe']))   ? Clean::entier($_POST['f_groupe'])  : 0;
$matiere  = (isset($_POST['f_matiere']))  ? Clean::entier($_POST['f_matiere']) : 0;
$multiple = (empty($_POST['f_multiple'])) ? FALSE                              : TRUE ;

if(!$groupe)
{
  exit('Erreur avec les données transmises !');
}

$select_nom   = ($multiple) ? 'f_matiere' : FALSE ;
$option_first = ($multiple) ? FALSE       : ''    ;
$selection    = ($multiple) ? TRUE        : $matiere ;

// Affichage du retour.

exit( HtmlForm::afficher_select( DB_STRUCTURE_COMMUN::DB_OPT_matieres_groupe($groupe) , $select_nom , $option_first , $selection , '' /*optgroup*/ , $multiple ) );

?>
    if (!$aff_lien) {
        $texte_lien_apres = '';
    }
    $toggle_class = $aff_start ? 'toggle_moins' : 'toggle_plus';
    $toggle_etat = $aff_start ? '' : ' class="hide"';
    $avec_texte_nombre = !$make_officiel || $_SESSION['OFFICIEL']['BULLETIN_ACQUIS_TEXTE_NOMBRE'] ? TRUE : FALSE;
    $avec_texte_code = !$make_officiel || $_SESSION['OFFICIEL']['BULLETIN_ACQUIS_TEXTE_CODE'] ? TRUE : FALSE;
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Période concernée
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($periode_id == 0) {
    $date_mysql_debut = convert_date_french_to_mysql($date_debut);
    $date_mysql_fin = convert_date_french_to_mysql($date_fin);
} else {
    $DB_ROW = DB_STRUCTURE_COMMUN::DB_recuperer_dates_periode($groupe_id, $periode_id);
    if (empty($DB_ROW)) {
        exit('La classe et la période ne sont pas reliées !');
    }
    $date_mysql_debut = $DB_ROW['jointure_date_debut'];
    $date_mysql_fin = $DB_ROW['jointure_date_fin'];
    $date_debut = convert_date_mysql_to_french($date_mysql_debut);
    $date_fin = convert_date_mysql_to_french($date_mysql_fin);
}
if ($date_mysql_debut > $date_mysql_fin) {
    exit('La date de début est postérieure à la date de fin !');
}
$tab_precision_retroactif = array('auto' => 'notes antérieures selon référentiels', 'oui' => 'avec notes antérieures', 'non' => 'sans notes antérieures', 'annuel' => 'notes antérieures de l\'année scolaire');
$precision_socle = $only_socle ? ', restriction au socle' : '';
$precision_niveau = $only_niveau ? ', restriction au niveau de l\'élève' : '';
$texte_periode = 'Du ' . $date_debut . ' au ' . $date_fin . '.';
$nb_items    = count($tab_item_id);

$tab_types = array('Classes'=>'classe' , 'Groupes'=>'groupe' , 'Besoins'=>'groupe');
$tab_qui   = array('groupe','select');
$tab_suite = array('changer','retirer');

list($devoir_id,$devoir_groupe_id) = (substr_count($devoir_ids,'_')==1) ? explode('_',$devoir_ids) : array(0,0);

//	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
//	Afficher une liste de demandes
//	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
if( ($action=='Afficher_demandes') && $matiere_id && $matiere_nom && $groupe_id && (isset($tab_types[$groupe_type])) && $groupe_nom )
{
	$retour = '';
	// Récupérer la liste des élèves concernés
	$DB_TAB = DB_STRUCTURE_COMMUN::DB_OPT_eleves_regroupement($tab_types[$groupe_type],$groupe_id,$user_statut=1);
	if(!is_array($DB_TAB))
	{
		exit($DB_TAB);	// Erreur : aucun élève de ce regroupement n\'est enregistré !
	}
	$tab_eleves = array();
	$tab_autres = array();
	foreach($DB_TAB as $DB_ROW)
	{
		$tab_eleves[$DB_ROW['valeur']] = $DB_ROW['texte'];
		$tab_autres[$DB_ROW['valeur']] = $DB_ROW['texte'];
	}
	$listing_user_id = implode(',', array_keys($tab_eleves) );
	// Lister les demandes
	$tab_demandes = array();
	$DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_demandes_prof($matiere_id,$listing_user_id);
     if (mb_strlen($password) < $_SESSION['TAB_PROFILS_ADMIN']['MDP_LONGUEUR_MINI'][$profil]) {
         exit('Erreur : mot de passe trop court pour ce profil !');
     }
 }
 // Vérifier le domaine du serveur mail seulement en mode multi-structures car ce peut être sinon une installation sur un serveur local non ouvert sur l'extérieur.
 if ($courriel) {
     if (HEBERGEUR_INSTALLATION == 'multi-structures') {
         list($mail_domaine, $is_domaine_valide) = tester_domaine_courriel_valide($courriel);
         if (!$is_domaine_valide) {
             exit('Erreur avec le domaine "' . $mail_domaine . '" !');
         }
     }
 }
 $user_email_origine = $courriel ? 'admin' : '';
 // Insérer l'enregistrement
 $user_id = DB_STRUCTURE_COMMUN::DB_ajouter_utilisateur($sconet_id, 0, $reference, $profil, $genre, $nom, $prenom, NULL, $courriel, $user_email_origine, $login, crypter_mdp($password), 0, $id_ent, $id_gepi);
 // Pour les professeurs et directeurs, abonnement obligatoire aux signalements d'un souci pour une appréciation d'un bilan officiel
 DB_STRUCTURE_NOTIFICATION::DB_ajouter_abonnement($user_id, 'bilan_officiel_appreciation', 'accueil');
 // Il peut (déjà !) falloir lui affecter une date de sortie...
 if ($box_date) {
     $sortie_date = '-';
     $sortie_date_mysql = SORTIE_DEFAUT_MYSQL;
 } else {
     $sortie_date_mysql = convert_date_french_to_mysql($sortie_date);
     DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_user($user_id, array(':sortie_date' => $sortie_date_mysql));
 }
 // Afficher le retour
 echo '<tr id="id_' . $user_id . '" class="new">';
 echo '<td class="nu"><input type="checkbox" name="f_ids" value="' . $user_id . '" /></td>';
 echo '<td class="label">' . html($id_ent) . '</td>';
 echo '<td class="label">' . html($id_gepi) . '</td>';
Exemple #26
0
                   .'<th>Id. Sconet</th>'
                   .'<th>Num. Sconet</th>'
                   .'<th>Référence</th>'
                   .'<th>Login</th>'
                   .'<th>Civilité</th>'
                   .'<th>Nom</th>'
                   .'<th>Prénom</th>'
                   .'<th>Profil</th>'
                 .'</tr>'.NL.'</thead><tbody>'.NL;

  // Récupérer les données des professeurs et des personnels
  $tab_profil = array('professeur','personnel');
  $champs = 'user_id, user_id_ent, user_id_gepi, user_sconet_id, user_sconet_elenoet, user_reference, user_genre, user_nom, user_prenom, user_login, user_profil_sigle' ;
  foreach($tab_profil as $profil)
  {
    $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_users_regroupement( $profil /*profil_type*/ , 1 /*statut*/ , $tab_types[$groupe_type] , $groupe_id , 'alpha' /*eleves_ordre*/ , $champs );
    if(!empty($DB_TAB))
    {
      foreach($DB_TAB as $DB_ROW)
      {
        $export_csv .= $DB_ROW['user_id']
          .$separateur.$DB_ROW['user_id_ent']
          .$separateur.$DB_ROW['user_id_gepi']
          .$separateur.$DB_ROW['user_sconet_id']
          .$separateur.$DB_ROW['user_sconet_elenoet']
          .$separateur.$DB_ROW['user_reference']
          .$separateur.$DB_ROW['user_login']
          .$separateur.Html::$tab_genre['adulte'][$DB_ROW['user_genre']]
          .$separateur.$DB_ROW['user_nom']
          .$separateur.$DB_ROW['user_prenom']
          .$separateur.$DB_ROW['user_profil_sigle']
  DB_STRUCTURE_COMMUN::DB_modifier_parametres($tab_parametres);
  // On modifie aussi la session
  $_SESSION['OFFICIEL']['ARCHIVE_AJOUT_MESSAGE_COPIE']      = $archive_ajout_message_copie ;
  $_SESSION['OFFICIEL']['ARCHIVE_RETRAIT_TAMPON_SIGNATURE'] = $archive_retrait_tampon_signature ;
  exit('ok');
}

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Traitement du formulaire form_mise_en_page, partie "signature"
// ////////////////////////////////////////////////////////////////////////////////////////////////////

if( ($action=='signature') && $tampon_signature )
{
  $tab_parametres = array();
  $tab_parametres['officiel_tampon_signature'] = $tampon_signature;
  DB_STRUCTURE_COMMUN::DB_modifier_parametres($tab_parametres);
  // On modifie aussi la session
  $_SESSION['OFFICIEL']['TAMPON_SIGNATURE'] = $tampon_signature ;
  exit('ok');
}

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Traitement du formulaire form_tampon (upload d'un fichier image)
// ////////////////////////////////////////////////////////////////////////////////////////////////////

if( ($action=='upload_signature') && ($user_id>=0) && ($user_texte!='') )
{
  $fichier_nom = 'signature_'.$_SESSION['BASE'].'_'.$user_id.'_'.fabriquer_fin_nom_fichier__date_et_alea().'.<EXT>';
  $result = FileSystem::recuperer_upload( CHEMIN_DOSSIER_IMPORT /*fichier_chemin*/ , $fichier_nom /*fichier_nom*/ , array('gif','jpg','jpeg','png') /*tab_extensions_autorisees*/ , NULL /*tab_extensions_interdites*/ , 100 /*taille_maxi*/ , NULL /*filename_in_zip*/ );
  if($result!==TRUE)
  {
            }
        }
    }
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Lister des référentiels ou domaines ou thèmes auquel un prof a accès (pour un formulaire select)
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($action == 'lister_options' && in_array($granulosite, $tab_granulosite)) {
    $listing_id_matieres_autorisees = isset($_POST['id_matieres']) ? implode(',', Clean::map_entier(explode(',', $_POST['id_matieres']))) : '0';
    exit(HtmlForm::afficher_select(DB_STRUCTURE_REFERENTIEL::DB_OPT_lister_elements_referentiels_prof($_SESSION['USER_ID'], $granulosite, $listing_id_matieres_autorisees), FALSE, '', FALSE, ''));
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Afficher les référentiels d'une matière
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($action == 'Voir' && $matiere_id) {
    $DB_TAB = DB_STRUCTURE_COMMUN::DB_recuperer_arborescence(0, $matiere_id, 0, FALSE, FALSE, TRUE);
    $tab_niveau = array();
    $tab_domaine = array();
    $tab_theme = array();
    $tab_item = array();
    $niveau_id = 0;
    foreach ($DB_TAB as $DB_ROW) {
        if (!is_null($DB_ROW['niveau_id']) && $DB_ROW['niveau_id'] != $niveau_id) {
            $niveau_id = $DB_ROW['niveau_id'];
            $tab_niveau[$niveau_id] = $DB_ROW['niveau_nom'];
            $domaine_id = 0;
            $theme_id = 0;
            $item_id = 0;
        }
        if (!is_null($DB_ROW['domaine_id']) && $DB_ROW['domaine_id'] != $domaine_id) {
            $domaine_id = $DB_ROW['domaine_id'];
}
if( ($_SESSION['USER_PROFIL_TYPE']=='parent') && ($_SESSION['NB_ENFANTS']==1) )
{
  $tab_groupes  = array(0=>array('valeur'=>$_SESSION['ELEVE_CLASSE_ID'],'texte'=>$_SESSION['ELEVE_CLASSE_NOM'],'optgroup'=>'classe'));
  $of_g = FALSE; $sel_g = TRUE; $class_form_option = 'hide'; $class_form_eleve = 'hide'; $class_form_periode = 'show';
  $select_eleves = '<select id="f_eleve" name="f_eleve[]"><option value="'.$_SESSION['OPT_PARENT_ENFANTS'][0]['valeur'].'" selected>'.html($_SESSION['OPT_PARENT_ENFANTS'][0]['texte']).'</option></select>';
  $is_select_multiple = 0;
}
if($_SESSION['USER_PROFIL_TYPE']=='eleve')
{
  $tab_groupes = array(0=>array('valeur'=>$_SESSION['ELEVE_CLASSE_ID'],'texte'=>$_SESSION['ELEVE_CLASSE_NOM'],'optgroup'=>'classe'));
  $of_g = FALSE; $sel_g = TRUE; $class_form_option = 'hide'; $class_form_eleve = 'hide'; $class_form_periode = 'show';
  $select_eleves = '<select id="f_eleve" name="f_eleve[]"><option value="'.$_SESSION['USER_ID'].'" selected>'.html($_SESSION['USER_NOM'].' '.$_SESSION['USER_PRENOM']).'</option></select>';
  $is_select_multiple = 0;
}
$tab_periodes          = DB_STRUCTURE_COMMUN::DB_OPT_periodes_etabl();

$select_individuel_format = HtmlForm::afficher_select(Form::$tab_select_individuel_format , 'f_individuel_format' /*select_nom*/ ,                   FALSE /*option_first*/ , Form::$tab_choix['releve_individuel_format'] /*selection*/ ,              '' /*optgroup*/);
$select_groupe            = HtmlForm::afficher_select($tab_groupes                        , 'f_groupe'            /*select_nom*/ ,                   $of_g /*option_first*/ , $sel_g                                       /*selection*/ , 'regroupements' /*optgroup*/);
$select_eleves_ordre      = HtmlForm::afficher_select(Form::$tab_select_eleves_ordre      , 'f_eleves_ordre'      /*select_nom*/ ,                   FALSE /*option_first*/ , Form::$tab_choix['eleves_ordre']             /*selection*/ ,              '' /*optgroup*/);
$select_periode           = HtmlForm::afficher_select($tab_periodes                       , 'f_periode'           /*select_nom*/ , 'periode_personnalisee' /*option_first*/ , FALSE                                        /*selection*/ ,              '' /*optgroup*/);
$select_orientation       = HtmlForm::afficher_select(Form::$tab_select_orientation       , 'f_orientation'       /*select_nom*/ ,                   FALSE /*option_first*/ , Form::$tab_choix['orientation']              /*selection*/ ,              '' /*optgroup*/);
$select_marge_min         = HtmlForm::afficher_select(Form::$tab_select_marge_min         , 'f_marge_min'         /*select_nom*/ ,                   FALSE /*option_first*/ , Form::$tab_choix['marge_min']                /*selection*/ ,              '' /*optgroup*/);
$select_pages_nb          = HtmlForm::afficher_select(Form::$tab_select_pages_nb          , 'f_pages_nb'          /*select_nom*/ ,                   FALSE /*option_first*/ , Form::$tab_choix['pages_nb']                 /*selection*/ ,              '' /*optgroup*/);
$select_couleur           = HtmlForm::afficher_select(Form::$tab_select_couleur           , 'f_couleur'           /*select_nom*/ ,                   FALSE /*option_first*/ , Form::$tab_choix['couleur']                  /*selection*/ ,              '' /*optgroup*/);
$select_fond              = HtmlForm::afficher_select(Form::$tab_select_fond              , 'f_fond'              /*select_nom*/ ,                   FALSE /*option_first*/ , Form::$tab_choix['fond']                     /*selection*/ ,              '' /*optgroup*/);
$select_legende           = HtmlForm::afficher_select(Form::$tab_select_legende           , 'f_legende'           /*select_nom*/ ,                   FALSE /*option_first*/ , Form::$tab_choix['legende']                  /*selection*/ ,              '' /*optgroup*/);
$select_cases_nb          = HtmlForm::afficher_select(Form::$tab_select_cases_nb          , 'f_cases_nb'          /*select_nom*/ ,                   FALSE /*option_first*/ , Form::$tab_choix['cases_nb']                 /*selection*/ ,              '' /*optgroup*/);
$select_cases_larg        = HtmlForm::afficher_select(Form::$tab_select_cases_size        , 'f_cases_larg'        /*select_nom*/ ,                   FALSE /*option_first*/ , Form::$tab_choix['cases_largeur']            /*selection*/ ,              '' /*optgroup*/);

// Javascript
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($ACTION == 'supprimer_appr') {
    if ($BILAN_ETAT == '2rubrique' && $epreuve_id == CODE_BREVET_EPREUVE_TOTAL) {
        exit('Erreur avec les données transmises !');
    }
    DB_STRUCTURE_BREVET::DB_modifier_brevet_appreciation($serie_ref, $epreuve_id, $eleve_id, 0, '');
    $ACTION = $epreuve_id != CODE_BREVET_EPREUVE_TOTAL ? '<button type="button" class="ajouter">Ajouter l\'appréciation.</button>' : '<button type="button" class="ajouter">Ajouter l\'avis de synthèse.</button>';
    exit('<div class="hc">' . $ACTION . '</div>');
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Cas 3 & 4 : affichage des données d'un élève (le premier si initialisation ; l'élève indiqué sinon)
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Si besoin, fabriquer le formulaire avec la liste des élèves concernés : soit d'une classe (en général) soit d'une classe ET d'un sous-groupe pour un prof affecté à un groupe d'élèves
$groupe_nom = !$is_sous_groupe ? $classe_nom : $classe_nom . ' - ' . DB_STRUCTURE_COMMUN::DB_recuperer_groupe_nom($groupe_id);
if ($ACTION == 'initialiser') {
    $DB_TAB = !$is_sous_groupe ? DB_STRUCTURE_COMMUN::DB_lister_users_regroupement('eleve', 1, 'classe', $classe_id, 'alpha') : DB_STRUCTURE_COMMUN::DB_lister_eleves_classe_et_groupe($classe_id, $groupe_id);
    if (empty($DB_TAB)) {
        exit('Aucun élève trouvé dans ce regroupement !');
    }
    $tab_eleve_id = array();
    $form_choix_eleve = '<form action="#" method="post" id="form_choix_eleve"><div><b>' . html($classe_nom) . ' :</b> <button id="go_premier_eleve" type="button" class="go_premier">Premier</button> <button id="go_precedent_eleve" type="button" class="go_precedent">Précédent</button> <select id="go_selection_eleve" name="go_selection" class="b">';
    foreach ($DB_TAB as $DB_ROW) {
        if (in_array($DB_ROW['user_id'], $tab_id_eleves_avec_notes)) {
            $form_choix_eleve .= '<option value="' . $DB_ROW['user_id'] . '">' . html($DB_ROW['user_nom'] . ' ' . $DB_ROW['user_prenom']) . '</option>';
            $tab_eleve_id[] = $DB_ROW['user_id'];
        }
    }
    if (empty($tab_eleve_id)) {
        exit('Aucun élève concerné dans ce regroupement !');
    }
    $form_choix_eleve .= '</select> <button id="go_suivant_eleve" type="button" class="go_suivant">Suivant</button> <button id="go_dernier_eleve" type="button" class="go_dernier">Dernier</button>&nbsp;&nbsp;&nbsp;<button id="fermer_zone_action_eleve" type="button" class="retourner">Retour</button>';