Пример #1
0
        }
    }
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Initialisation de variables supplémentaires
// INCLUSION DU CODE COMMUN À PLUSIEURS PAGES
// ////////////////////////////////////////////////////////////////////////////////////////////////////
$make_officiel = TRUE;
$make_brevet = FALSE;
$make_action = 'consulter';
$make_html = $BILAN_TYPE == 'bulletin' && $mode == 'graphique' ? FALSE : TRUE;
$make_pdf = FALSE;
$make_csv = FALSE;
$make_graph = $BILAN_TYPE == 'bulletin' && $mode == 'graphique' ? TRUE : FALSE;
$js_graph = '';
$droit_corriger_appreciation = test_user_droit_specifique($_SESSION['DROIT_OFFICIEL_' . $tab_types[$BILAN_TYPE]['droit'] . '_CORRIGER_APPRECIATION'], NULL, $classe_id);
if ($BILAN_TYPE == 'releve') {
    $releve_modele = 'multimatiere';
    $releve_individuel_format = 'eleve';
    $aff_etat_acquisition = $_SESSION['OFFICIEL']['RELEVE_ETAT_ACQUISITION'];
    $aff_moyenne_scores = $_SESSION['OFFICIEL']['RELEVE_MOYENNE_SCORES'];
    $aff_pourcentage_acquis = $_SESSION['OFFICIEL']['RELEVE_POURCENTAGE_ACQUIS'];
    $conversion_sur_20 = $_SESSION['OFFICIEL']['RELEVE_CONVERSION_SUR_20'];
    $with_coef = 1;
    // Il n'y a que des relevés par matière et pas de synthèse commune : on prend en compte les coefficients pour chaque relevé matière.
    $matiere_id = TRUE;
    $matiere_nom = '';
    $groupe_id = !$is_sous_groupe ? $classe_id : $groupe_id;
    // Le groupe   = la classe (par défaut) ou le groupe transmis
    $groupe_nom = $groupe_nom;
    // Déjà défini avant car on en avait besoin
Пример #2
0
 /**
  * Initialiser les choix d'un formulaire (certains choix sont présélectionnés ou imposés suivant les statuts).
  * Ce tableau sera ensuite surchargé avec les choix mémorisés éventuels (enregistré dans un fichier texte).
  * En cas d'ajout ultérieur d'une fonctionnalité, compléter cette fonction permet de ne pas générer d'erreur.
  * 
  * @param void
  * @return void
  */
 private static function init_tab_choix()
 {
   Form::init_variables();
   $check_type_individuel    = (in_array($_SESSION['USER_PROFIL_TYPE'],array('parent','eleve'))) ? 1 : 0 ;
   $check_etat_acquisition   = ( in_array($_SESSION['USER_PROFIL_TYPE'],array('directeur','professeur')) || test_user_droit_specifique($_SESSION['DROIT_RELEVE_ETAT_ACQUISITION'])   ) ? 1 : 0 ;
   $check_moyenne_score      = ( in_array($_SESSION['USER_PROFIL_TYPE'],array('directeur','professeur')) || test_user_droit_specifique($_SESSION['DROIT_RELEVE_MOYENNE_SCORE'])      ) ? 1 : 0 ;
   $check_pourcentage_acquis = ( in_array($_SESSION['USER_PROFIL_TYPE'],array('directeur','professeur')) || test_user_droit_specifique($_SESSION['DROIT_RELEVE_POURCENTAGE_ACQUIS']) ) ? 1 : 0 ;
   $check_conversion_sur_20  = test_user_droit_specifique($_SESSION['DROIT_RELEVE_CONVERSION_SUR_20']) ? 1 : 0 ;
   $check_aff_lien           = (in_array($_SESSION['USER_PROFIL_TYPE'],array('parent','eleve'))) ? 1 : 0 ;
   Form::$tab_choix = array(
     'eleves_ordre'             => 'alpha' ,
     'matiere_id'               => 0 ,
     'niveau_id'                => 0 ,
     'palier_id'                => 0 ,
     'orientation'              => 'portrait' ,
     'couleur'                  => 'oui' ,
     'fond'                     => 'gris' ,
     'legende'                  => 'oui' , 
     'marge_min'                => 5 ,
     'pages_nb'                 => 'optimise' ,
     'cart_detail'              => 'complet' ,
     'cart_cases_nb'            => 1 ,
     'cart_contenu'             => 'AVEC_nom_SANS_result' ,
     'only_niveau'              => 0 ,
     'only_presence'            => 0 ,
     'only_socle'               => 0 ,
     'aff_coef'                 => 0 ,
     'aff_socle'                => 1 ,
     'aff_lien'                 => $check_aff_lien ,
     'aff_start'                => 0 ,
     'aff_domaine'              => 0 ,
     'aff_theme'                => 0 ,
     'cases_nb'                 => 4 ,
     'cases_largeur'            => 5 ,
     'remplissage'              => 'plein' ,
     'colonne_bilan'            => 'oui' ,
     'colonne_vide'             => 0 ,
     'type_generique'           => 0 ,
     'type_individuel'          => $check_type_individuel ,
     'type_synthese'            => 0 ,
     'type_bulletin'            => 0 ,
     'releve_individuel_format' => 'eleve',
     'aff_etat_acquisition'     => $check_etat_acquisition ,
     'aff_moyenne_scores'       => $check_moyenne_score ,
     'aff_pourcentage_acquis'   => $check_pourcentage_acquis ,
     'conversion_sur_20'        => $check_conversion_sur_20 ,
     'indicateur'               => 'moyenne_scores' ,
     'tableau_synthese_format'  => 'eleve',
     'tableau_tri_mode'         => 'score',
     'repeter_entete'           => 0 ,
     'with_coef'                => 1 ,
     'retroactif'               => 'auto' ,
     'mode_synthese'            => 'predefini' ,
     'fusion_niveaux'           => 1 ,
     'aff_socle_PA'             => 1 ,
     'aff_socle_EV'             => 1 ,
     'type'                     => '' ,
     'mode'                     => 'auto' ,
     'echelle'                  => 'fixe' ,
   );
 }
Пример #3
0
        } else {
            // Pour les groupes, il faudra récupérer les classes dont sont issues les élèves
            $tab_groupe[$DB_ROW['groupe_id']] = html($DB_ROW['groupe_nom']);
        }
    }
    if (count($tab_groupe)) {
        // On récupère les classes dont sont issues les élèves des groupes et on complète $tab_classe
        $DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_classes_eleves_from_groupes(implode(',', array_keys($tab_groupe)));
        foreach ($tab_groupe as $groupe_id => $groupe_nom) {
            if (isset($DB_TAB[$groupe_id])) {
                foreach ($DB_TAB[$groupe_id] as $tab) {
                    if (in_array($tab['eleve_classe_id'], $tab_classes_concernees)) {
                        $classe_id = $tab['eleve_classe_id'];
                        $droit_modifier_statut = FALSE;
                        $droit_appreciation_generale = test_user_droit_specifique($_SESSION['DROIT_FICHE_BREVET_APPRECIATION_GENERALE'], NULL, $classe_id);
                        $droit_impression_pdf = test_user_droit_specifique($_SESSION['DROIT_FICHE_BREVET_IMPRESSION_PDF'], NULL, $classe_id);
                        $tab_classe[$classe_id][$groupe_id] = compact('droit_modifier_statut', 'droit_appreciation_generale', 'droit_impression_pdf');
                        $tab_affich[$classe_id . '_' . $groupe_id]['title'] = '<th id="groupe_' . $classe_id . '_' . $groupe_id . '">' . html($tab_classe_etabl[$classe_id]) . '<br />' . html($groupe_nom) . '</th>';
                        $tab_affich[$classe_id . '_' . $groupe_id]['fiche'] = '<td class="hc">-</td>';
                        $tab_options_classes[$classe_id . '_' . $groupe_id] = '<option value="' . $classe_id . '_' . $groupe_id . '">' . html($tab_classe_etabl[$classe_id] . ' - ' . $groupe_nom) . '</option>';
                    }
                }
            }
        }
    }
}
if (!count($tab_classe)) {
    echo '<p class="danger">Aucune classe ni aucun groupe associé à votre compte n\'est actuellement concerné !</label></p>' . NL;
    return;
    // Ne pas exécuter la suite de ce fichier inclus.
}
Пример #4
0
 * 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 !');
}
$TITRE = html(Lang::_("Grille d'items d'un référentiel"));
if (!test_user_droit_specifique($_SESSION['DROIT_VOIR_GRILLES_ITEMS'])) {
    echo '<p class="danger">Vous n\'êtes pas habilité à accéder à cette fonctionnalité !</p>' . NL;
    echo '<div class="astuce">Profils autorisés (par les administrateurs) :</div>' . NL;
    echo afficher_profils_droit_specifique($_SESSION['DROIT_VOIR_GRILLES_ITEMS'], 'li');
    return;
    // Ne pas exécuter la suite de ce fichier inclus.
}
// L'élève ne choisit évidemment pas sa classe ni son nom, mais on construit qd même les formulaires, on les remplit et on les cache (permet un code unique et une transmission des infos en ajax comme pour les autres profils).
Form::load_choix_memo();
$check_type_generique = Form::$tab_choix['type_generique'] ? ' checked' : '';
$check_type_individuel = Form::$tab_choix['type_individuel'] ? ' checked' : '';
$check_type_synthese = Form::$tab_choix['type_synthese'] ? ' checked' : '';
$check_retroactif_auto = Form::$tab_choix['retroactif'] == 'auto' ? ' checked' : '';
$check_retroactif_non = Form::$tab_choix['retroactif'] == 'non' ? ' checked' : '';
$check_retroactif_oui = Form::$tab_choix['retroactif'] == 'oui' ? ' checked' : '';
$check_retroactif_annuel = Form::$tab_choix['retroactif'] == 'annuel' ? ' checked' : '';
Пример #5
0
// Adaptations
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Voir et simuler l'algorithme de calcul.
if (!test_user_droit_specifique($_SESSION['DROIT_VOIR_ALGORITHME'])) {
    $tab_sous_menu['information']['consultation_algorithme']['class'] .= ' disabled';
}
// Voir les référentiels en place (dans l'établissement) (pas de restriction pour le profil [administrateur]).
if (!test_user_droit_specifique($_SESSION['DROIT_VOIR_REFERENTIELS'])) {
    $tab_sous_menu['information']['consultation_referentiel_interne']['class'] .= ' disabled';
}
// Changer son mot de passe (pas de restriction pour les profils [administrateur] et [webmestre]).
if (!test_user_droit_specifique($_SESSION['DROIT_MODIFIER_MDP'])) {
    $tab_sous_menu['parametrage']['compte_password']['class'] .= ' disabled';
}
// Grille d'items d'un référentiel.
if (!test_user_droit_specifique($_SESSION['DROIT_VOIR_GRILLES_ITEMS'])) {
    $tab_sous_menu['releve']['releve_grille_referentiel']['class'] .= ' disabled';
}
// Relevé de maîtrise du socle (profils [parent] et [eleve] uniquement).
if (!$_SESSION['LISTE_PALIERS_ACTIFS'] || !test_user_droit_specifique($_SESSION['DROIT_SOCLE_ACCES'])) {
    $tab_sous_menu['releve']['releve_socle']['class'] .= ' disabled';
}
// Archives consultables des bilans officiels (profils [parent] et [eleve] uniquement).
$tab_droits = array('FICHE_BREVET', 'OFFICIEL_RELEVE', 'OFFICIEL_BULLETIN', 'OFFICIEL_SOCLE');
$droit_voir_archives_pdf = FALSE;
foreach ($tab_droits as $droit) {
    $droit_voir_archives_pdf = $droit_voir_archives_pdf || test_user_droit_specifique($_SESSION['DROIT_' . $droit . '_VOIR_ARCHIVE']);
}
if (!$droit_voir_archives_pdf) {
    $tab_sous_menu['officiel']['officiel_voir_archive']['class'] .= ' disabled';
}
Пример #6
0
 public function afficher_legende($type_legende, $ordonnee, $force_nb = FALSE)
 {
     $espace = '     ';
     $espace_mini = '   ';
     $hauteur = min(4, $this->lignes_hauteur * 0.9);
     $size = ceil($hauteur * 1.6);
     $this->SetXY($this->marge_gauche, $ordonnee);
     $case_hauteur = $hauteur * 0.9;
     $case_largeur = $hauteur * 0.9 * 1.5;
     // Afficher la légende des codes de notation
     if ($type_legende == 'codes_notation') {
         // Le texte des codes de notation étant personnalisable, il peut falloir condenser en largeur...
         $texte = 'Codes d\'évaluation :' . $espace . $_SESSION['NOTE_LEGENDE']['RR'] . $espace . $_SESSION['NOTE_LEGENDE']['R'] . $espace . $_SESSION['NOTE_LEGENDE']['V'] . $espace . $_SESSION['NOTE_LEGENDE']['VV'];
         $boites_nb = 4;
         foreach ($this->tab_legende_notes_speciales_nombre as $note => $nombre) {
             if ($nombre) {
                 $texte .= $espace . $this->tab_legende_notes_speciales_texte[$note];
                 $boites_nb++;
             }
         }
         $largeur_dispo_pour_texte = $this->page_largeur_moins_marges - $boites_nb * $this->lomer_espace_largeur;
         $largeur_texte = $this->GetStringWidth($texte);
         $ratio = min(1, $largeur_dispo_pour_texte / $largeur_texte);
         // On y va maintenant
         $this->SetFont('Arial', 'B', $size);
         $this->Write($hauteur, To::pdf('Codes d\'évaluation :'), '');
         $this->SetFont('Arial', '', $size);
         $memo_lomer_espace_largeur = $this->lomer_espace_largeur;
         $memo_lomer_espace_hauteur = $this->lomer_espace_hauteur;
         $memo_taille_police = $this->taille_police;
         $this->taille_police = $size;
         // On est obligé de le changer provisoirement car, si impression N&B, afficher_note_lomer() l'utilise
         $this->calculer_dimensions_images($case_largeur, $case_hauteur);
         $tab_codes_normaux = array(0 => 'RR', 'R', 'V', 'VV');
         foreach ($tab_codes_normaux as $code) {
             $texte = $_SESSION['NOTE_LEGENDE'][$code];
             $largeur = $this->GetStringWidth($texte) * $ratio * 1.1;
             $this->Write($hauteur, $espace_mini, '');
             $this->afficher_note_lomer($code, 1, 0);
             $this->CellFit($largeur, $hauteur, To::pdf($texte), 0, 0, 'L', FALSE);
             // $this->Write($hauteur , To::pdf($_SESSION['NOTE_LEGENDE'][$code]) , '');
         }
         foreach ($this->tab_legende_notes_speciales_nombre as $note => $nombre) {
             if ($nombre) {
                 $texte = $this->tab_legende_notes_speciales_texte[$note];
                 $largeur = $this->GetStringWidth($texte) * $ratio * 1.1;
                 $this->Write($hauteur, $espace_mini, '');
                 $this->afficher_note_lomer($note, 1, 0);
                 $this->CellFit($largeur, $hauteur, To::pdf($texte), 0, 0, 'L', FALSE);
                 // $this->Write($hauteur , To::pdf($this->tab_legende_notes_speciales_texte[$note]) , '');
             }
         }
         $this->legende_initialiser();
         $this->calculer_dimensions_images($memo_lomer_espace_largeur, $memo_lomer_espace_hauteur);
         $this->taille_police = $memo_taille_police;
     }
     // Afficher la légende de l'ancienneté de la notation
     if ($type_legende == 'anciennete_notation') {
         $this->SetFont('Arial', 'B', $size);
         $this->Write($hauteur, To::pdf('Ancienneté :'), '');
         $this->SetFont('Arial', '', $size);
         $tab_etats = array('blanc' => 'Sur la période.', 'gris_moyen' => 'Début d\'année scolaire.', 'gris_fonce' => 'Année scolaire précédente.');
         foreach ($tab_etats as $couleur => $texte) {
             $this->Write($hauteur, $espace, '');
             $this->choisir_couleur_fond($couleur);
             $this->Cell($case_largeur, $case_hauteur, '', 1, 0, 'C', TRUE);
             $this->Write($hauteur, To::pdf($texte), '');
         }
     }
     // Afficher la légende des scores bilan
     if ($type_legende == 'score_bilan') {
         // Pour un bulletin on prend les droits du profil parent, surtout qu'il peut être imprimé par un administrateur (pas de droit paramétré pour lui).
         $afficher_score = test_user_droit_specifique($_SESSION['DROIT_VOIR_SCORE_BILAN'], NULL, 0, (bool) $this->officiel);
         $this->SetFont('Arial', 'B', $size);
         $this->Write($hauteur, To::pdf('États d\'acquisitions :'), '');
         $this->SetFont('Arial', '', $size);
         $seuil_NA = $afficher_score && $_SESSION['CALCUL_SEUIL']['R'] > 0 ? '0 à ' . ($_SESSION['CALCUL_SEUIL']['R'] - 1) : '';
         $seuil_A = $afficher_score && $_SESSION['CALCUL_SEUIL']['V'] < 100 ? $_SESSION['CALCUL_SEUIL']['V'] + 1 . ' à 100' : '';
         $seuil_VA = $afficher_score && $_SESSION['CALCUL_SEUIL']['R'] != $_SESSION['CALCUL_SEUIL']['V'] ? $_SESSION['CALCUL_SEUIL']['R'] . ' à ' . $_SESSION['CALCUL_SEUIL']['V'] : '';
         $tab_seuils = array('NA' => $seuil_NA, 'VA' => $seuil_VA, 'A' => $seuil_A);
         foreach ($tab_seuils as $etat => $texte) {
             $this->Write($hauteur, $espace, '');
             $this->choisir_couleur_fond($this->tab_choix_couleur[$this->couleur][$etat]);
             $this->Cell(2 * $case_largeur, $case_hauteur, To::pdf($texte), 1, 0, 'C', TRUE);
             $this->Write($hauteur, To::pdf($_SESSION['ACQUIS_LEGENDE'][$etat]), '');
         }
     }
     // Afficher la légende des états d'acquisition
     if ($type_legende == 'etat_acquisition') {
         $this->SetFont('Arial', 'B', $size);
         $this->Write($hauteur, To::pdf('États d\'acquisitions :'), '');
         $this->SetFont('Arial', '', $size);
         $tab_etats = array('NA', 'VA', 'A');
         foreach ($tab_etats as $etat) {
             $this->Write($hauteur, $espace, '');
             $couleur_fond = !$force_nb ? $this->tab_choix_couleur[$this->couleur][$etat] : 'blanc';
             $this->choisir_couleur_fond($couleur_fond);
             $this->Cell($case_largeur, $case_hauteur, To::pdf($_SESSION['ACQUIS_TEXTE'][$etat]), 1, 0, 'C', TRUE);
             $this->Write($hauteur, To::pdf($_SESSION['ACQUIS_LEGENDE'][$etat]), '');
         }
     }
     // Afficher la légende des pourcentages d'items acquis
     if ($type_legende == 'pourcentage_acquis') {
         $this->SetFont('Arial', 'B', $size);
         $indication_position = $this->orientation == 'portrait' ? ' (à gauche)' : '';
         $this->Write($hauteur, To::pdf('Pourcentages d\'items acquis' . $indication_position . ' :'), '');
         $this->SetFont('Arial', '', $size);
         $tab_seuils = array('NA' => '0 à ' . $_SESSION['CALCUL_SEUIL']['R'], 'VA' => $_SESSION['CALCUL_SEUIL']['R'] . ' à ' . $_SESSION['CALCUL_SEUIL']['V'], 'A' => $_SESSION['CALCUL_SEUIL']['V'] . ' à 100');
         foreach ($tab_seuils as $etat => $texte) {
             $this->Write($hauteur, $espace, '');
             $this->choisir_couleur_fond($this->tab_choix_couleur[$this->couleur][$etat]);
             $this->Cell(3 * $case_largeur, $case_hauteur, To::pdf($texte), 1, 0, 'C', TRUE);
         }
     }
     // Afficher la légende des états de validation
     if ($type_legende == 'etat_validation') {
         $this->SetFont('Arial', 'B', $size);
         $indication_position = $this->orientation == 'portrait' ? ' (à droite)' : '';
         $this->Write($hauteur, To::pdf('États de validation' . $indication_position . ' :'), '');
         $this->SetFont('Arial', '', $size);
         $tab_etats = array('v1' => 'Validé', 'v0' => 'Invalidé', 'v2' => 'Non renseigné');
         foreach ($tab_etats as $etat => $texte) {
             $this->Write($hauteur, $espace, '');
             $this->choisir_couleur_fond($this->tab_choix_couleur[$this->couleur][$etat]);
             $this->Cell(3.5 * $case_largeur, $case_hauteur, To::pdf($texte), 1, 0, 'C', TRUE);
         }
     }
     $this->SetXY($this->marge_gauche, $ordonnee + $hauteur);
 }
Пример #7
0
}

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Initialisation de variables supplémentaires
// INCLUSION DU CODE COMMUN À PLUSIEURS PAGES
// ////////////////////////////////////////////////////////////////////////////////////////////////////

$make_officiel = TRUE;
$make_brevet   = FALSE;
$make_action   = 'consulter';
$make_html     = ( ($BILAN_TYPE=='bulletin') && ($mode=='graphique') ) ? FALSE : TRUE ;
$make_pdf      = FALSE;
$make_csv      = FALSE;
$make_graph    = ( ($BILAN_TYPE=='bulletin') && ($mode=='graphique') ) ? TRUE : FALSE ;
$js_graph = '';
$droit_corriger_appreciation = test_user_droit_specifique( $_SESSION['DROIT_OFFICIEL_'.$tab_types[$BILAN_TYPE]['droit'].'_CORRIGER_APPRECIATION'] , NULL /*matiere_coord_or_groupe_pp_connu*/ , $classe_id /*matiere_id_or_groupe_id_a_tester*/ );

if($BILAN_TYPE=='releve')
{
  $releve_modele            = 'multimatiere';
  $releve_individuel_format = 'eleve';
  $aff_etat_acquisition     = $_SESSION['OFFICIEL']['RELEVE_ETAT_ACQUISITION'];
  $aff_moyenne_scores       = $_SESSION['OFFICIEL']['RELEVE_MOYENNE_SCORES'];
  $aff_pourcentage_acquis   = $_SESSION['OFFICIEL']['RELEVE_POURCENTAGE_ACQUIS'];
  $conversion_sur_20        = $_SESSION['OFFICIEL']['RELEVE_CONVERSION_SUR_20'];
  $with_coef                = 1; // Il n'y a que des relevés par matière et pas de synthèse commune : on prend en compte les coefficients pour chaque relevé matière.
  $matiere_id               = TRUE;
  $matiere_nom              = '';
  $groupe_id                = (!$is_sous_groupe) ? $classe_id  : $groupe_id ; // Le groupe   = la classe (par défaut) ou le groupe transmis
  $groupe_nom               = $groupe_nom; // Déjà défini avant car on en avait besoin
  $groupe_type              = (!$is_sous_groupe) ? 'Classe'  : 'Groupe' ;
Пример #8
0
    }
  }
  if(count($tab_groupe))
  {
    // On récupère les classes dont sont issues les élèves des groupes et on complète $tab_classe
    $DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_classes_eleves_from_groupes( implode(',',array_keys($tab_groupe)) );
    foreach($tab_groupe as $groupe_id => $groupe_nom)
    {
      if(isset($DB_TAB[$groupe_id]))
      {
        foreach($DB_TAB[$groupe_id] as $tab)
        {
          $classe_id = $tab['eleve_classe_id'];
          $droit_modifier_statut       = FALSE ;
          $droit_appreciation_generale = test_user_droit_specifique( $_SESSION['DROIT_OFFICIEL_'.$tab_types[$BILAN_TYPE]['droit'].'_APPRECIATION_GENERALE'] , NULL /*matiere_coord_or_groupe_pp_connu*/ , $classe_id /*matiere_id_or_groupe_id_a_tester*/ );
          $droit_impression_pdf        = test_user_droit_specifique( $_SESSION['DROIT_OFFICIEL_'.$tab_types[$BILAN_TYPE]['droit'].'_IMPRESSION_PDF']        , NULL /*matiere_coord_or_groupe_pp_connu*/ , $classe_id /*matiere_id_or_groupe_id_a_tester*/ );
          $tab_classe[$classe_id][$groupe_id] = compact( 'droit_modifier_statut' , 'droit_appreciation_generale' , 'droit_impression_pdf' );
          $tab_affich[$classe_id.'_'.$groupe_id]['check'] =  ($affichage_formulaire_statut) ? '<th class="nu"></th>' : '' ;
          $tab_affich[$classe_id.'_'.$groupe_id]['title'] = '<th id="groupe_'.$classe_id.'_'.$groupe_id.'">'.html($tab_classe_etabl[$classe_id]).'<br />'.html($groupe_nom).'</th>' ;
          $tab_options_classes[$classe_id.'_'.$groupe_id] = '<option value="'.$classe_id.'_'.$groupe_id.'">'.html($tab_classe_etabl[$classe_id].' - '.$groupe_nom).'</option>';
        }
      }
    }
  }
}

if(!count($tab_classe))
{
  echo'<p><label class="erreur">Aucune classe ni aucun groupe associé à votre compte !</label></p>'.NL;
  return; // Ne pas exécuter la suite de ce fichier inclus.
}
 * 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 !');}
$TITRE = html(Lang::_("Référentiels en place (dans l'établissement)"));

if( ($_SESSION['USER_PROFIL_TYPE']!='administrateur') && !test_user_droit_specifique($_SESSION['DROIT_VOIR_REFERENTIELS']) )
{
  echo'<p class="danger">Vous n\'êtes pas habilité à accéder à cette fonctionnalité !</p>'.NL;
  echo'<div class="astuce">Profils autorisés (par les administrateurs) :</div>'.NL;
  echo afficher_profils_droit_specifique($_SESSION['DROIT_VOIR_REFERENTIELS'],'li');
  return; // Ne pas exécuter la suite de ce fichier inclus.
}
?>

<ul class="puce">
  <li><span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE ?>?fichier=referentiels_socle__referentiel_organisation">DOC : Organisation des items dans les référentiels.</a></span></li>
  <li><span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE ?>?fichier=referentiels_socle__calcul_scores_etats_acquisitions">DOC : Calcul des scores et des états d'acquisitions.</a></span></li>
</ul>

<hr />
Пример #10
0
$tab_id_eleves_avec_notes = explode(',',$DB_ROW['listing_user_id']);

if(!$BILAN_ETAT)
{
  exit('Fiche brevet introuvable !');
}
if( ($BILAN_ETAT!='5complet') && empty($is_test_impression) )
{
  exit('Fiche brevet interdite d\'accès pour cette action !');
}
if(!$DB_ROW['listing_user_id'])
{
  exit('Aucun élève concerné dans cette classe !');
}

if( !empty($is_test_impression) && ($_SESSION['USER_PROFIL_TYPE']!='administrateur') && !test_user_droit_specifique( $_SESSION['DROIT_FICHE_BREVET_IMPRESSION_PDF'] , NULL /*matiere_coord_or_groupe_pp_connu*/ , $classe_id /*matiere_id_or_groupe_id_a_tester*/ ) )
{
  exit('Droits insuffisants pour cette action !');
}

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Affichage de la liste des élèves
// ////////////////////////////////////////////////////////////////////////////////////////////////////

if($ACTION=='initialiser')
{
  $DB_TAB = (!$is_sous_groupe) ? DB_STRUCTURE_COMMUN::DB_lister_users_regroupement( 'eleve' /*profil_type*/ , 1 /*statut*/ , 'classe' , $classe_id , 'alpha' /*eleves_ordre*/ ) : 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 !');
  }
Пример #11
0
$tab_infos_acquis_eleve    = array();  // Retenir les infos (nb A - VA - NA) / élève / matière / synthèse + total
$tab_infos_detail_synthese = array();  // Retenir le détail du contenu d'une synthèse / élève / synthèse

$nb_syntheses_total = 0 ;
/*
  On renseigne :
  $tab_score_eleve_item[$eleve_id][$matiere_id][$synthese_ref][$item_id]
  $tab_infos_acquis_eleve[$eleve_id][$matiere_id]
*/

// Pour chaque élève...
if(empty($is_appreciation_groupe))
{
  $forcer_profil_sigle = ($make_officiel) ? 'TUT'    : NULL ;
  $forcer_profil_type  = ($make_officiel) ? 'parent' : NULL ;
  $afficher_score = test_user_droit_specifique( $_SESSION['DROIT_VOIR_SCORE_BILAN'] , NULL /*matiere_coord_or_groupe_pp_connu*/ , 0 /*matiere_id_or_groupe_id_a_tester*/ , $forcer_profil_sigle , $forcer_profil_type );
  foreach($tab_eleve_infos as $eleve_id => $tab_eleve)
  {
    // Si cet élève a été évalué...
    if(isset($tab_eval[$eleve_id]))
    {
      // Pour chaque item on calcule son score bilan, et on mémorise les infos pour le détail HTML
      foreach($tab_eval[$eleve_id] as $item_id => $tab_devoirs)
      {
        // le score bilan
        extract($tab_item[$item_id][0]);  // $item_ref $item_nom $item_coef $item_cart $item_socle $item_lien $matiere_id $calcul_methode $calcul_limite $calcul_retroactif $synthese_ref
        $matiere_nb_demandes = $tab_matiere[$matiere_id]['matiere_nb_demandes'];
        $score = calculer_score($tab_devoirs,$calcul_methode,$calcul_limite) ;
        $tab_score_eleve_item[$eleve_id][$matiere_id][$synthese_ref][$item_id] = $score;
        // le détail HTML
        if($make_html)
Пример #12
0
// Grille d'items d'un référentiel.
if(!test_user_droit_specifique($_SESSION['DROIT_VOIR_GRILLES_ITEMS']))
{
  $tab_menu["Relevés / Synthèses"]["Grille d'items d'un référentiel"]['class'] .= ' disabled';
}

// Relevé de maîtrise du socle & Synthèse de maîtrise du socle
if(!$_SESSION['LISTE_PALIERS_ACTIFS'])
{
  $tab_menu["Relevés / Synthèses"]["Relevé de maîtrise du socle"]['class'] .= ' disabled';
  $tab_menu["Relevés / Synthèses"]["Synthèse de maîtrise du socle"]['class'] .= ' disabled';
}

// Import des absences / retards sur les bilans officiels (profils [professeur] et [directeur] uniquement).
if(!test_user_droit_specifique( $_SESSION['DROIT_OFFICIEL_SAISIR_ASSIDUITE'] , NULL /*matiere_coord_or_groupe_pp_connu*/ , 0 /*matiere_id_or_groupe_id_a_tester*/ ))
{
  $tab_menu["Bilans officiels"]["Absences / Retards"]['class'] .= ' disabled';
}

// Bilans officiels relatifs aux paliers du socle restreint aux paliers en vigueur dans l'établissement
$tab_paliers_actifs = explode(',',$_SESSION['LISTE_PALIERS_ACTIFS']);
for( $palier_id=1 ; $palier_id<4 ; $palier_id++ )
{
  if(!in_array($palier_id,$tab_paliers_actifs))
  {
    $tab_menu["Bilans officiels"]["Maîtrise du palier ".$palier_id]['class'] .= ' disabled';
  }
}

?>
 * 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 !');
}
$TITRE = html(Lang::_("Annuler une compétence validée du socle"));
if (!test_user_droit_specifique($_SESSION['DROIT_ANNULATION_PILIER'], NULL, 0)) {
    echo '<p class="danger">Vous n\'êtes pas habilité à accéder à cette fonctionnalité !</p>' . NL;
    echo '<div class="astuce">Profils autorisés (par les administrateurs) :</div>' . NL;
    echo afficher_profils_droit_specifique($_SESSION['DROIT_ANNULATION_PILIER'], 'li');
    return;
    // Ne pas exécuter la suite de ce fichier inclus.
}
// Remarque : on ne peut être pp que d'une classe, pas d'un groupe, donc si seuls les PP ont un accès parmi les profs, ils ne peuvent trier les élèves que par classes
Form::load_choix_memo();
if ($_SESSION['USER_JOIN_GROUPES'] == 'all') {
    $tab_groupes = DB_STRUCTURE_COMMUN::DB_OPT_classes_groupes_etabl();
    $of_g = '';
} else {
    if (test_droit_specifique_restreint($_SESSION['DROIT_ANNULATION_PILIER'], 'ONLY_PP')) {
        $tab_groupes = DB_STRUCTURE_COMMUN::DB_OPT_classes_prof_principal($_SESSION['USER_ID']);
        $of_g = FALSE;
Пример #14
0
}
// L'élève ne choisit évidemment pas sa classe ni son nom, mais on construit qd même les formulaires, on les remplit et on les cache (permet un code unique et une transmission des infos en ajax comme pour les autres profils).
Form::load_choix_memo();
$check_moyenne_scores = Form::$tab_choix['indicateur'] == 'moyenne_scores' ? ' checked' : '';
$check_pourcentage_acquis = Form::$tab_choix['indicateur'] == 'pourcentage_acquis' ? ' checked' : '';
$check_conversion_sur_20 = Form::$tab_choix['conversion_sur_20'] ? ' checked' : '';
$class_conversion_sur_20 = $check_moyenne_scores || $check_pourcentage_acquis ? 'show' : 'hide';
if (in_array($_SESSION['USER_PROFIL_TYPE'], array('parent', 'eleve'))) {
    // Une éventuelle restriction d'accès doit surcharger toute mémorisation antérieure de formulaire
    $check_moyenne_scores = test_user_droit_specifique($_SESSION['DROIT_RELEVE_MOYENNE_SCORE']) ? $check_moyenne_scores : '';
    $check_pourcentage_acquis = test_user_droit_specifique($_SESSION['DROIT_RELEVE_POURCENTAGE_ACQUIS']) ? $check_pourcentage_acquis : '';
    $check_conversion_sur_20 = test_user_droit_specifique($_SESSION['DROIT_RELEVE_CONVERSION_SUR_20']) ? $check_conversion_sur_20 : '';
    $class_conversion_sur_20 = $check_moyenne_scores || $check_pourcentage_acquis ? 'show' : 'hide';
    $moyenne_scores = test_user_droit_specifique($_SESSION['DROIT_RELEVE_MOYENNE_SCORE']) ? '<label for="f_indicateur_MS"><input type="radio" id="f_indicateur_MS" name="f_indicateur" value="moyenne_scores"' . $check_moyenne_scores . ' /> Moyenne des scores</label>' : '<del>Moyenne des scores</del>';
    $pourcentage_acquis = test_user_droit_specifique($_SESSION['DROIT_RELEVE_POURCENTAGE_ACQUIS']) ? '<label for="f_indicateur_PA"><input type="radio" id="f_indicateur_PA" name="f_indicateur" value="pourcentage_acquis"' . $check_pourcentage_acquis . ' /> Pourcentage d\'items acquis</label>' : '<del>Pourcentage d\'items acquis</del>';
    $conversion_sur_20 = test_user_droit_specifique($_SESSION['DROIT_RELEVE_CONVERSION_SUR_20']) ? '<label for="f_conversion_sur_20" class="' . $class_conversion_sur_20 . '"><input type="checkbox" id="f_conversion_sur_20" name="f_conversion_sur_20" value="1"' . $check_conversion_sur_20 . ' /> Conversion en note sur 20</label>' : '<del>Conversion en note sur 20</del>';
} else {
    $moyenne_scores = '<label for="f_indicateur_MS"><input type="radio" id="f_indicateur_MS" name="f_indicateur" value="moyenne_scores"' . $check_moyenne_scores . ' /> Moyenne des scores</label>';
    $pourcentage_acquis = '<label for="f_indicateur_PA"><input type="radio" id="f_indicateur_PA" name="f_indicateur" value="pourcentage_acquis"' . $check_pourcentage_acquis . ' /> Pourcentage d\'items acquis</label>';
    $conversion_sur_20 = '<label for="f_conversion_sur_20" class="' . $class_conversion_sur_20 . '"><input type="checkbox" id="f_conversion_sur_20" name="f_conversion_sur_20" value="1"' . $check_conversion_sur_20 . ' /> Conversion en note sur 20</label>';
}
$check_retroactif_auto = Form::$tab_choix['retroactif'] == 'auto' ? ' checked' : '';
$check_retroactif_non = Form::$tab_choix['retroactif'] == 'non' ? ' checked' : '';
$check_retroactif_oui = Form::$tab_choix['retroactif'] == 'oui' ? ' checked' : '';
$check_retroactif_annuel = Form::$tab_choix['retroactif'] == 'annuel' ? ' checked' : '';
$check_only_socle = Form::$tab_choix['only_socle'] ? ' checked' : '';
$bouton_modifier_matieres = '';
$separateur_check_matieres = '<br />';
if ($_SESSION['USER_PROFIL_TYPE'] == 'directeur') {
    $tab_groupes = DB_STRUCTURE_COMMUN::DB_OPT_classes_groupes_etabl();
    $tab_matieres = 'Choisir d\'abord un groupe ci-dessus...';
{
  echo'<ul class="puce">'.NL;
  echo  '<li><span class="danger">Aucun référentiel présent parmi les matières qui vous sont rattachées !</span></li>'.NL;
  echo  '<li><span class="astuce">Commencer par <a href="./index.php?page=professeur_referentiel&amp;section=gestion">créer ou importer un référentiel</a>.</span></li>'.NL;
  echo'</ul>'.NL;
}
else
{
  // On récupère les données
  $tab_matiere = array();
  $tab_colonne = array();
  foreach($DB_TAB as $DB_ROW)
  {
    if(!isset($tab_matiere[$DB_ROW['matiere_id']]))
    {
      $matiere_droit = test_user_droit_specifique( $_SESSION['DROIT_GERER_RESSOURCE'] , $DB_ROW['jointure_coord'] /*matiere_coord_or_groupe_pp_connu*/ );
      $icone_action  = ($matiere_droit) ? '<q class="modifier" title="Modifier les ressources de ce référentiel."></q>' : '<q class="modifier_non" title="Droit d\'accès : '.$texte_profil.'."></q>' ;
      $tab_matiere[$DB_ROW['matiere_id']] = array(
        'matiere_nom' => html($DB_ROW['matiere_nom']),
        'matiere_ref' => Clean::id($DB_ROW['matiere_ref']),
        'matiere_act' => $icone_action,
      );
    }
    $tab_colonne[$DB_ROW['matiere_id']][$DB_ROW['niveau_id']] = '<td>'.html($DB_ROW['niveau_nom']).'</td><td class="nu" id="td_'.$DB_ROW['matiere_id'].'_'.$DB_ROW['niveau_id'].'">'.$tab_matiere[$DB_ROW['matiere_id']]['matiere_act'].'</td>';
  }
  // On construit et affiche le tableau résultant
  $affichage = '<table class="vm_nug"><thead>'.NL.'<tr><th>Matière</th><th>Niveau</th><th class="nu"></th></tr>'.NL.'</thead><tbody>'.NL;
  foreach($tab_matiere as $matiere_id => $tab)
  {
    $rowspan = count($tab_colonne[$matiere_id]);
    foreach($tab_colonne[$matiere_id] as $niveau_id => $cellules)
if (empty($DB_ROW)) {
    exit('Classe sans élèves concernés !');
}
$BILAN_ETAT = $DB_ROW['fiche_brevet'];
$classe_nom = $DB_ROW['groupe_nom'];
$tab_id_eleves_avec_notes = explode(',', $DB_ROW['listing_user_id']);
if (!$BILAN_ETAT) {
    exit('Fiche brevet introuvable !');
}
if ($BILAN_ETAT != '5complet' && empty($is_test_impression)) {
    exit('Fiche brevet interdite d\'accès pour cette action !');
}
if (!$DB_ROW['listing_user_id']) {
    exit('Aucun élève concerné dans cette classe !');
}
if (!empty($is_test_impression) && $_SESSION['USER_PROFIL_TYPE'] != 'administrateur' && !test_user_droit_specifique($_SESSION['DROIT_FICHE_BREVET_IMPRESSION_PDF'], NULL, $classe_id)) {
    exit('Droits insuffisants pour cette action !');
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Affichage de la liste des élèves
// ////////////////////////////////////////////////////////////////////////////////////////////////////
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();
    foreach ($DB_TAB as $DB_ROW) {
        if (in_array($DB_ROW['user_id'], $tab_id_eleves_avec_notes)) {
            $tab_eleve_id[] = $DB_ROW['user_id'];
            $tab_eleve_td[$DB_ROW['user_id']] = html($DB_ROW['user_nom'] . ' ' . $DB_ROW['user_prenom']);
Пример #17
0
 * 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 !');}
$TITRE = html(Lang::_("Valider les compétences (piliers) du socle"));

if(!test_user_droit_specifique( $_SESSION['DROIT_VALIDATION_PILIER'] , NULL /*matiere_coord_or_groupe_pp_connu*/ , 0 /*matiere_id_or_groupe_id_a_tester*/ ))
{
  echo'<p class="danger">Vous n\'êtes pas habilité à accéder à cette fonctionnalité !</p>'.NL;
  echo'<div class="astuce">Profils autorisés (par les administrateurs) :</div>'.NL;
  echo afficher_profils_droit_specifique($_SESSION['DROIT_VALIDATION_PILIER'],'li');
  return; // Ne pas exécuter la suite de ce fichier inclus.
}

// Remarque : on ne peut être pp que d'une classe, pas d'un groupe, donc si seuls les PP ont un accès parmi les profs, ils ne peuvent trier les élèves que par classes

Form::load_choix_memo();

if($_SESSION['USER_JOIN_GROUPES']=='all') // Directeurs et CPE, ces derniers ayant un 'USER_PROFIL_TYPE' à 'professeur'.
{
  $tab_groupes = DB_STRUCTURE_COMMUN::DB_OPT_classes_groupes_etabl();
  $of_g = '';
Пример #18
0
 * 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 !');}
$TITRE = html(Lang::_("Absences / Retards"));

if( ($_SESSION['USER_PROFIL_TYPE']!='administrateur') && !test_user_droit_specifique( $_SESSION['DROIT_OFFICIEL_SAISIR_ASSIDUITE'] , NULL /*matiere_coord_or_groupe_pp_connu*/ , 0 /*matiere_id_or_groupe_id_a_tester*/ ) )
{
  echo'<p class="danger">Vous n\'êtes pas habilité à accéder à cette fonctionnalité !</p>'.NL;
  echo'<div class="astuce">Profils autorisés (par les administrateurs) :<div>'.NL;
  echo afficher_profils_droit_specifique($_SESSION['DROIT_OFFICIEL_SAISIR_ASSIDUITE'],'li');
  return; // Ne pas exécuter la suite de ce fichier inclus.
}

// Formulaire de choix d'une période (utilisé deux fois)
// Formulaire des classes
if( ($_SESSION['USER_PROFIL_TYPE']=='administrateur') || ($_SESSION['USER_JOIN_GROUPES']=='all') ) // Ce dernier test laisse par exemple passer les directeurs et les CPE, ces derniers ayant un 'USER_PROFIL_TYPE' à 'professeur'.
{
  $tab_groupes = DB_STRUCTURE_COMMUN::DB_OPT_classes_etabl(FALSE /*with_ref*/);
}
else // Ne passent ici que les professeurs
{
Пример #19
0
    $form_choix_eleve .= '</div></form><hr />';
    $eleve_id = $tab_eleve_id[0];
    // sous-titre
    $sous_titre = $ACTION == 'tamponner' ? 'Éditer l\'avis de synthèse' : 'Éditer les appréciations par épreuve';
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Initialisation de variables supplémentaires
// INCLUSION DU CODE COMMUN À PLUSIEURS PAGES
// ////////////////////////////////////////////////////////////////////////////////////////////////////
$make_action = $OBJET;
// 'modifier' || 'tamponner' (et plus seulement 'saisir')
$make_html = $OBJET == 'tamponner' && $mode == 'graphique' ? FALSE : TRUE;
$make_pdf = FALSE;
$make_graph = $OBJET == 'tamponner' && $mode == 'graphique' ? TRUE : FALSE;
$js_graph = '';
$droit_corriger_appreciation = test_user_droit_specifique($_SESSION['DROIT_FICHE_BREVET_CORRIGER_APPRECIATION'], NULL, $classe_id);
$groupe_id = !$is_sous_groupe ? $classe_id : $groupe_id;
// Le groupe = la classe (par défaut) ou le groupe transmis
$groupe_nom = $groupe_nom;
// Déjà défini avant car on en avait besoin
$tab_eleve = array($eleve_id);
// tableau de l'unique élève à considérer
$liste_eleve = (string) $eleve_id;
$tab_matiere_id = $tab_matiere_id;
require CHEMIN_DOSSIER_INCLUDE . 'noyau_brevet_fiches.php';
$nom_bilan_html = 'fiche_brevet_HTML';
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Affichage du résultat
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($ACTION == 'initialiser') {
    exit('<h2>' . $sous_titre . '</h2>' . $form_choix_eleve . '<form action="#" method="post" id="zone_resultat_eleve" onsubmit="return false">' . ${$nom_bilan_html} . '</form>' . $js_graph);
// Normalement ce sont des tableaux qui sont transmis, mais au cas où...
$tab_matiere = (isset($_POST['f_matieres']))     ? ( (is_array($_POST['f_matieres']))     ? $_POST['f_matieres']     : explode(',',$_POST['f_matieres'])     ) : array() ;
$tab_items   = (isset($_POST['f_compet_liste'])) ? ( (is_array($_POST['f_compet_liste'])) ? $_POST['f_compet_liste'] : explode('_',$_POST['f_compet_liste']) ) : array() ;
$tab_matiere = array_filter( Clean::map_entier($tab_matiere) , 'positif' );
$tab_items   = array_filter( Clean::map_entier($tab_items)   , 'positif' );
$liste_matiere_id = implode(',',$tab_matiere);
$liste_item_id    = implode(',',$tab_items);

// En cas de manipulation du formulaire (avec les outils de développements intégrés au navigateur ou un module complémentaire)...
if(in_array($_SESSION['USER_PROFIL_TYPE'],array('parent','eleve')))
{
  if(!test_user_droit_specifique($_SESSION['DROIT_RELEVE_MOYENNE_SCORE']))      { $indicateur = 'pourcentage_acquis'; }
  if(!test_user_droit_specifique($_SESSION['DROIT_RELEVE_POURCENTAGE_ACQUIS'])) { $indicateur = 'moyenne_scores'; }
  if(!test_user_droit_specifique($_SESSION['DROIT_RELEVE_ETAT_ACQUISITION']))   { $indicateur = ''; }
  $conversion_sur_20 = test_user_droit_specifique($_SESSION['DROIT_RELEVE_CONVERSION_SUR_20']) ? $conversion_sur_20 : 0 ;
  // Pour un élève on surcharge avec les données de session
  if($_SESSION['USER_PROFIL_TYPE']=='eleve')
  {
    $groupe_id = $_SESSION['ELEVE_CLASSE_ID'];
    $eleve_id  = $_SESSION['USER_ID'];
  }
  // Pour un parent on vérifie que c'est bien un de ses enfants
  if($_SESSION['USER_PROFIL_TYPE']=='parent')
  {
    $is_enfant_legitime = FALSE;
    foreach($_SESSION['OPT_PARENT_ENFANTS'] as $DB_ROW)
    {
      if($DB_ROW['valeur']==$eleve_id)
      {
        $is_enfant_legitime = TRUE;
 // Construction du formulaire select du nombre de demandes
 $select_demandes = '<select name="f_eleve_demandes" class="t9">';
 for($nb_demandes=0 ; $nb_demandes<10 ; $nb_demandes++)
 {
   $texte = ($nb_demandes>0) ? ( ($nb_demandes>1) ? $nb_demandes.' demandes' : '1 seule demande' ) : 'aucune demande' ;
   $select_demandes .= '<option value="'.$nb_demandes.'">'.$texte.'</option>';
 }
 $select_demandes .= '</select>';
 $infobulle = ' <img src="./_img/bulle_aide.png" width="16" height="16" alt="" title="Nombre maximal de demandes d\'évaluations simultanées autorisées pour un élève." />';
 $label = '<label>&nbsp;</label>';
 // On construit et affiche les tableaux résultants
 foreach($tab_matiere as $matiere_id => $tab)
 {
   $matiere_nom    = $tab['nom'];
   $matiere_coord  = $tab['coord'];
   $matiere_droit  = test_user_droit_specifique( $_SESSION['DROIT_GERER_REFERENTIEL'] , $matiere_coord /*matiere_coord_or_groupe_pp_connu*/ );
   $matiere_ajout  = ($matiere_droit) ? '<q class="ajouter" title="Créer un référentiel vierge ou importer un référentiel existant."></q>' : '<q class="ajouter_non" title="Droit d\'accès :<br />'.$texte_profil.'."></q>' ;
   echo'<h2 id="h2_'.$matiere_id.'">'.$matiere_nom.'</h2>'.NL;
   echo'<table id="mat_'.$matiere_id.'" class="vm_nug"><thead>'.NL.'<tr><th>Niveau</th><th>Partage</th><th>Méthode de calcul</th><th class="nu" id="th_'.$matiere_id.'">'.$matiere_ajout.'</th></tr>'.NL.'</thead><tbody>'.NL;
   if(isset($tab_colonne[$matiere_id]))
   {
     foreach($tab_colonne[$matiere_id] as $niveau_id => $referentiel_info)
     {
       $partageable = ( ( $matiere_id <= ID_MATIERE_PARTAGEE_MAX ) && ( $niveau_id <= ID_NIVEAU_PARTAGE_MAX ) ) ? TRUE : FALSE ;
       $ids = 'ids'.'_'.$matiere_id.'_'.$niveau_id;
       if($matiere_droit)
       {
         $partager = ($partageable) ? '<q class="partager" title="Modifier le partage de ce référentiel."></q>' : '<q class="partager_non" title="Le référentiel d\'une matière ou d\'un niveau spécifique à l\'établissement ne peut être partagé."></q>' ;
         $envoyer = (strpos($tab_colonne[$matiere_id][$niveau_id],'partage_oui.gif')) ? '<q class="envoyer" title="Mettre à jour sur le serveur de partage la dernière version de ce référentiel."></q>' : '<q class="envoyer_non" title="Un référentiel non partagé ne peut pas être transmis à la collectivité."></q>' ;
         $colonnes = $tab_colonne[$matiere_id][$niveau_id].'<td class="nu" id="'.$ids.'"><q class="voir" title="Voir le détail de ce référentiel."></q>'.$partager.$envoyer.'<q class="calculer" title="Modifier le mode de calcul associé à ce référentiel."></q><q class="supprimer" title="Supprimer ce référentiel."></q></td>';
       }
Пример #22
0
// lister les bilans officiels archivés de l'année courante
$DB_TAB = DB_STRUCTURE_OFFICIEL::DB_lister_bilan_officiel_fichiers( '' /*BILAN_TYPE*/ , 0 /*periode_id*/ , $tab_eleve_id );
foreach($DB_TAB as $DB_ROW)
{
  if(test_user_droit_specifique($_SESSION['DROIT_'.$tab_types[$DB_ROW['officiel_type']]['droit'].'_VOIR_ARCHIVE']))
  {
    if(is_file(CHEMIN_DOSSIER_OFFICIEL.$_SESSION['BASE'].DS.fabriquer_nom_fichier_bilan_officiel( $DB_ROW['user_id'] , $DB_ROW['officiel_type'] , $DB_ROW['periode_id'] )))
    {
      $_SESSION['tmp_droit_voir_archive'][$DB_ROW['user_id'].$DB_ROW['officiel_type']] = TRUE; // marqueur mis en session pour vérifier que c'est bien cet utilisateur qui veut voir (et à donc le droit de voir) le fichier, car il n'y a pas d'autre vérification de droit ensuite
      $tab_tbody[$DB_ROW['user_id']][$DB_ROW['periode_id']][] = '<a href="releve_pdf.php?fichier='.$DB_ROW['user_id'].'_'.$DB_ROW['officiel_type'].'_'.$DB_ROW['periode_id'].'" target="_blank">'.$tab_types[$DB_ROW['officiel_type']]['titre'].'</a>' ;
    }
  }
}

// autre boucle pour les fiches brevet (ce n'est pas la même table)
if(test_user_droit_specifique($_SESSION['DROIT_'.$tab_types['brevet']['droit'].'_VOIR_ARCHIVE']))
{
  $bilan_type = 'brevet';
  $DB_TAB = DB_STRUCTURE_BREVET::DB_lister_brevet_fichiers( implode(',',$tab_eleve_id) );
  foreach($DB_TAB as $user_id => $tab)
  {
    if(is_file(CHEMIN_DOSSIER_OFFICIEL.$_SESSION['BASE'].DS.fabriquer_nom_fichier_bilan_officiel( $user_id , $bilan_type , $annee_session_brevet )))
    {
      $_SESSION['tmp_droit_voir_archive'][$user_id.$bilan_type] = TRUE; // marqueur mis en session pour vérifier que c'est bien cet utilisateur qui veut voir (et à donc le droit de voir) le fichier, car il n'y a pas d'autre vérification de droit ensuite
      $tab_tbody[$user_id]['+'.$annee_session_brevet][] = '<a href="releve_pdf.php?fichier='.$user_id.'_'.$bilan_type.'_'.$annee_session_brevet.'" target="_blank">'.$tab_types['brevet']['titre'].'</a>' ;
      $tab_thead['+'.$annee_session_brevet] = '<th class="hc">Année</th>';
    }
  }
}

// Assemblage et affichage du tableau.
Пример #23
0
  $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['OPT_PARENT_ENFANTS'][0]['valeur'].'" selected>'.html($_SESSION['OPT_PARENT_ENFANTS'][0]['texte']).'</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>' ;
}

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
Пример #24
0
    if ($droit_voir_archives_pdf) {
        // identifiants élèves concernés
        $tab_eleve_id = array();
        if ($_SESSION['USER_PROFIL_TYPE'] == 'eleve') {
            $tab_eleve_id[] = $_SESSION['USER_ID'];
        } else {
            foreach ($_SESSION['OPT_PARENT_ENFANTS'] as $tab) {
                $tab_eleve_id[] = $tab['valeur'];
            }
        }
        $tab_eleves = $_SESSION['USER_PROFIL_TYPE'] == 'eleve' ? array(0 => array('valeur' => $_SESSION['USER_ID'])) : $_SESSION['OPT_PARENT_ENFANTS'];
        $nb_eleves = count($tab_eleve_id);
        // lister les bilans officiels archivés de l'année courante
        $DB_TAB = DB_STRUCTURE_OFFICIEL::DB_lister_bilan_officiel_fichiers('', 0, $tab_eleve_id, TRUE, $_SESSION['USER_PROFIL_TYPE']);
        foreach ($DB_TAB as $DB_ROW) {
            if (test_user_droit_specifique($_SESSION['DROIT_' . $tab_types[$DB_ROW['officiel_type']]['droit'] . '_VOIR_ARCHIVE'])) {
                if (is_file(CHEMIN_DOSSIER_OFFICIEL . $_SESSION['BASE'] . DS . fabriquer_nom_fichier_bilan_officiel($DB_ROW['user_id'], $DB_ROW['officiel_type'], $DB_ROW['periode_id']))) {
                    $text_eleve_nom = $nb_eleves > 1 ? html($_SESSION['OPT_PARENT_ENFANTS'][array_search($DB_ROW['user_id'], $tab_eleve_id)]['texte']) . ' || ' : '';
                    $tab_accueil['officiel']['nombre'] += 1;
                    $tab_accueil['officiel']['contenu'] .= '<li>' . $text_eleve_nom . '<a href="./index.php?page=officiel_voir_archive">' . $tab_types[$DB_ROW['officiel_type']]['titre'] . ' || ' . html($DB_ROW['periode_nom']) . '</a></li>';
                }
            }
        }
        if ($tab_accueil['officiel']['nombre']) {
            $tab_accueil['officiel']['contenu'] = '<div class="b"><TG> ' . $tab_accueil['officiel']['masque'] . '</div>' . '<ul class="puce p">' . $tab_accueil['officiel']['contenu'] . '</ul>';
        }
    }
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// [socle] - ... en prévision de qqchose... à définir...
// ////////////////////////////////////////////////////////////////////////////////////////////////////
Пример #25
0
  exit('Association classe / période introuvable !');
}
$date_debut  = $DB_ROW['jointure_date_debut'];
$date_fin    = $DB_ROW['jointure_date_fin'];
$BILAN_ETAT  = $DB_ROW['officiel_'.$BILAN_TYPE];
$periode_nom = $DB_ROW['periode_nom'];
$classe_nom  = $DB_ROW['groupe_nom'];
if(!$BILAN_ETAT)
{
  exit('Bilan introuvable !');
}
if( ($BILAN_ETAT!='5complet') && empty($is_test_impression) )
{
  exit('Bilan interdit d\'accès pour cette action !');
}
if( !empty($is_test_impression) && ($_SESSION['USER_PROFIL_TYPE']!='administrateur') && !test_user_droit_specifique( $_SESSION['DROIT_OFFICIEL_'.$tab_types[$BILAN_TYPE]['droit'].'_IMPRESSION_PDF'] , NULL /*matiere_coord_or_groupe_pp_connu*/ , $classe_id /*matiere_id_or_groupe_id_a_tester*/ ) )
{
  exit('Droits insuffisants pour cette action !');
}

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Affichage de la liste des élèves + recalcul des moyennes dans le cas d'impression d'un bulletin (sans incidence tant qu'on n'imprime pas, sauf pour la visualisation graphique)
// ////////////////////////////////////////////////////////////////////////////////////////////////////

if($ACTION=='initialiser')
{
  $DB_TAB = (!$is_sous_groupe) ? DB_STRUCTURE_COMMUN::DB_lister_users_regroupement( 'eleve' /*profil_type*/ , 1 /*statut*/ , 'classe' , $classe_id , 'alpha' /*eleves_ordre*/ ) : 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 !');
  }
Пример #26
0
 $DB_TAB = DB_STRUCTURE_ELEVE::DB_lister_saisies_devoir_eleve($devoir_id, $eleve_id, $_SESSION['USER_PROFIL_TYPE'], FALSE);
 foreach ($DB_TAB as $DB_ROW) {
     $tab_notes[$DB_ROW['item_id']] = $DB_ROW['saisie_note'];
 }
 foreach ($tab_liste_item as $item_id) {
     $tab_affich[$item_id] .= isset($tab_notes[$item_id]) ? '<td class="hc">' . Html::note_image($tab_notes[$item_id], '', '', TRUE) . '</td>' : '<td class="hc">-</td>';
 }
 // ajouter les états d'acquisition
 if (test_user_droit_specifique($_SESSION['DROIT_VOIR_ETAT_ACQUISITION_AVEC_EVALUATION'])) {
     foreach ($tab_liste_item as $item_id) {
         $tab_affich[$item_id] .= Html::td_score($tab_scores[$item_id], 'score', '');
     }
 }
 $affichage = '<tr>' . implode('</tr><tr>', $tab_affich) . '</tr>';
 // la légende, qui peut être personnalisée (codes ABS, NN, etc.)
 $score_legende = test_user_droit_specifique($_SESSION['DROIT_VOIR_ETAT_ACQUISITION_AVEC_EVALUATION']) ? TRUE : FALSE;
 $legende = Html::legende(TRUE, FALSE, $score_legende, FALSE, FALSE, FALSE, FALSE);
 // Les commentaires texte ou audio
 $commentaire_texte = '';
 $commentaire_audio = '';
 $DB_ROW = DB_STRUCTURE_COMMENTAIRE::DB_recuperer_devoir_commentaires($devoir_id, $eleve_id);
 if (!empty($DB_ROW)) {
     if ($DB_ROW['jointure_texte']) {
         $msg_url = $DB_ROW['jointure_texte'];
         if (strpos($msg_url, URL_DIR_SACOCHE) === 0) {
             $fichier_chemin = url_to_chemin($msg_url);
             $msg_data = is_file($fichier_chemin) ? file_get_contents($fichier_chemin) : 'Erreur : fichier avec le contenu du commentaire non trouvé.';
         } else {
             $msg_data = cURL::get_contents($msg_url);
         }
         $commentaire_texte = '<h3>Commentaire écrit</h3><textarea rows="10" cols="100" readonly>' . html($msg_data) . '</textarea>';
Пример #27
0
// Retenir les scores / élève / matière / synthese / item
$tab_infos_acquis_eleve = array();
// Retenir les infos (nb A - VA - NA) / élève / matière / synthèse + total
$tab_infos_detail_synthese = array();
// Retenir le détail du contenu d'une synthèse / élève / synthèse
$nb_syntheses_total = 0;
/*
  On renseigne :
  $tab_score_eleve_item[$eleve_id][$matiere_id][$synthese_ref][$item_id]
  $tab_infos_acquis_eleve[$eleve_id][$matiere_id]
*/
// Pour chaque élève...
if (empty($is_appreciation_groupe)) {
    $forcer_profil_sigle = $make_officiel ? 'TUT' : NULL;
    $forcer_profil_type = $make_officiel ? 'parent' : NULL;
    $afficher_score = test_user_droit_specifique($_SESSION['DROIT_VOIR_SCORE_BILAN'], NULL, 0, $forcer_profil_sigle, $forcer_profil_type);
    foreach ($tab_eleve_infos as $eleve_id => $tab_eleve) {
        // Si cet élève a été évalué...
        if (isset($tab_eval[$eleve_id])) {
            // Pour chaque item on calcule son score bilan, et on mémorise les infos pour le détail HTML
            foreach ($tab_eval[$eleve_id] as $item_id => $tab_devoirs) {
                // le score bilan
                extract($tab_item[$item_id][0]);
                // $item_ref $item_nom $item_coef $item_cart $item_socle $item_lien $matiere_id $calcul_methode $calcul_limite $calcul_retroactif $synthese_ref
                $matiere_nb_demandes = $tab_matiere[$matiere_id]['matiere_nb_demandes'];
                $score = calculer_score($tab_devoirs, $calcul_methode, $calcul_limite);
                $tab_score_eleve_item[$eleve_id][$matiere_id][$synthese_ref][$item_id] = $score;
                // le détail HTML
                if ($make_html) {
                    if ($score !== FALSE) {
                        $indice = test_A($score) ? 'A' : (test_NA($score) ? 'NA' : 'VA');
<?php 
$texte_profil = afficher_profils_droit_specifique($_SESSION['DROIT_GERER_REFERENTIEL'], 'br');
// On récupère la liste des référentiels des matières auxquelles le professeur est rattaché, et s'il en est coordonnateur
$DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_matieres_niveaux_referentiels_professeur($_SESSION['USER_ID']);
if (empty($DB_TAB)) {
    echo '<ul class="puce">' . NL;
    echo '<li><span class="danger">Aucun référentiel présent parmi les matières qui vous sont rattachées !</span></li>' . NL;
    echo '<li><span class="astuce">Commencer par <a href="./index.php?page=professeur_referentiel&amp;section=gestion">créer ou importer un référentiel</a>.</span></li>' . NL;
    echo '</ul>' . NL;
} else {
    // On récupère les données
    $tab_matiere = array();
    $tab_matiere_droit = array();
    foreach ($DB_TAB as $DB_ROW) {
        if (!isset($tab_matiere[$DB_ROW['matiere_id']])) {
            $matiere_droit = test_user_droit_specifique($_SESSION['DROIT_GERER_REFERENTIEL'], $DB_ROW['jointure_coord']);
            $icone_action = $matiere_droit ? '<q class="modifier" title="Modifier les référentiels de cette matière."></q>' : '<q class="modifier_non" title="Droit d\'accès :<br />' . $texte_profil . '."></q>';
            $tab_matiere[$DB_ROW['matiere_id']] = array('matiere_nom' => html($DB_ROW['matiere_nom']), 'matiere_col' => '<td class="nu" id="td_' . $DB_ROW['matiere_id'] . '">' . $icone_action . '</td>', 'niveau_nb' => 1);
            if ($matiere_droit) {
                $tab_matiere_droit[] = $DB_ROW['matiere_id'];
            }
        } else {
            $tab_matiere[$DB_ROW['matiere_id']]['niveau_nb']++;
        }
    }
    // On construit et affiche le tableau résultant
    echo '<h2>Éditer les référentiels en détail</h2>' . NL;
    echo '<table class="vm_nug"><thead>' . NL . '<tr><th>Matière</th><th>Niveau(x)</th><th class="nu"></th></tr>' . NL . '</thead><tbody>' . NL;
    foreach ($tab_matiere as $matiere_id => $tab) {
        $x = $tab_matiere[$matiere_id]['niveau_nb'] > 1 ? 'x' : '';
        echo '<tr><td>' . $tab['matiere_nom'] . '</td><td>' . $tab_matiere[$matiere_id]['niveau_nb'] . ' niveau' . $x . '</td>' . $tab['matiere_col'] . '</tr>' . NL;
Пример #29
0
<?php
// L'élève ne choisit évidemment pas sa classe ni son nom, mais on construit qd même les formulaires, on les remplit et on les cache (permet un code unique et une transmission des infos en ajax comme pour les autres profils).
// Les options du relevé de l'élève sont aussi prédéfinies.
Form::load_choix_memo();
$check_etat_acquisition   = (Form::$tab_choix['aff_etat_acquisition'])   ? ' checked' : '' ;
$check_moyenne_score      = (Form::$tab_choix['aff_moyenne_scores'])     ? ' checked' : '' ;
$check_pourcentage_acquis = (Form::$tab_choix['aff_pourcentage_acquis']) ? ' checked' : '' ;
$check_conversion_sur_20  = (Form::$tab_choix['conversion_sur_20'])      ? ' checked' : '' ;
if(in_array($_SESSION['USER_PROFIL_TYPE'],array('parent','eleve')))
{
  // Une éventuelle restriction d'accès doit surcharger toute mémorisation antérieure de formulaire
  $check_etat_acquisition   = test_user_droit_specifique($_SESSION['DROIT_RELEVE_ETAT_ACQUISITION'])   ? ' checked' : '' ;
  $check_moyenne_score      = test_user_droit_specifique($_SESSION['DROIT_RELEVE_MOYENNE_SCORE'])      ? ' checked' : '' ;
  $check_pourcentage_acquis = test_user_droit_specifique($_SESSION['DROIT_RELEVE_POURCENTAGE_ACQUIS']) ? ' checked' : '' ;
  $check_conversion_sur_20  = test_user_droit_specifique($_SESSION['DROIT_RELEVE_CONVERSION_SUR_20'])  ? ' checked' : '' ;
}
$class_etat_acquisition   = ($check_etat_acquisition)                           ? 'show' : 'hide' ;
$class_conversion_sur_20  = ($check_moyenne_score || $check_pourcentage_acquis) ? 'show' : 'hide' ;
$check_retroactif_auto    = (Form::$tab_choix['retroactif']=='auto')     ? ' checked' : '' ;
$check_retroactif_non     = (Form::$tab_choix['retroactif']=='non')      ? ' checked' : '' ;
$check_retroactif_oui     = (Form::$tab_choix['retroactif']=='oui')      ? ' checked' : '' ;
$check_retroactif_annuel  = (Form::$tab_choix['retroactif']=='annuel')   ? ' checked' : '' ;
$check_only_socle         = (Form::$tab_choix['only_socle'])             ? ' checked' : '' ;
$check_aff_coef           = (Form::$tab_choix['aff_coef'])               ? ' checked' : '' ;
$check_aff_socle          = (Form::$tab_choix['aff_socle'])              ? ' checked' : '' ;
$check_aff_lien           = (Form::$tab_choix['aff_lien'])               ? ' checked' : '' ;
$check_aff_domaine        = (Form::$tab_choix['aff_domaine'])            ? ' checked' : '' ;
$check_aff_theme          = (Form::$tab_choix['aff_theme'])              ? ' checked' : '' ;
if($_SESSION['USER_PROFIL_TYPE']=='directeur')
{
Пример #30
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 = html(Lang::_("Changer son mot de passe"));
// Javascript
Layout::add('js_inline_before', 'var MDP_LONGUEUR_MINI = ' . $_SESSION['USER_MDP_LONGUEUR_MINI'] . ';');
if (!in_array($_SESSION['USER_PROFIL_TYPE'], array('administrateur', 'webmestre', 'partenaire')) && !test_user_droit_specifique($_SESSION['DROIT_MODIFIER_MDP'])) {
    echo '<p class="danger">Vous n\'êtes pas habilité à accéder à cette fonctionnalité !</p>' . NL;
    echo '<div class="astuce">Profils autorisés (par les administrateurs) :</div>' . NL;
    echo afficher_profils_droit_specifique($_SESSION['DROIT_MODIFIER_MDP'], 'li');
    return;
    // Ne pas exécuter la suite de ce fichier inclus.
}
if ($_SESSION['CONNEXION_MODE'] != 'normal') {
    echo '<p class="astuce">Le mode de connexion est configuré pour utiliser une authentification externe.<br />Ce formulaire ne modifiera pas le mode de passe correspondant, il ne concerne que le mot de passe propre à l\'application.</p><hr />' . NL;
}
?>


<p>Entrer le mot de passe actuel, puis deux fois le nouveau mot de passe choisi.</p>
<form action="#" method="post"><fieldset>
  <label class="tab" for="f_password0">Actuel :</label><input id="f_password0" name="f_password0" size="20" type="password" value="" /><br />