コード例 #1
0
/**
 * afficher_form_element_checkbox_eleves_professeur
 *
 * @param bool $with_pourcent
 * @return string
 */
function afficher_form_element_checkbox_eleves_professeur($with_pourcent)
{
  $affichage = '';
  $tab_regroupements = array();
  $tab_id = array('classe'=>'','groupe'=>'');
  // Recherche de la liste des classes et des groupes du professeur
  $DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_classes_groupes_professeur($_SESSION['USER_ID'],$_SESSION['USER_JOIN_GROUPES']);
  foreach($DB_TAB as $DB_ROW)
  {
    $tab_regroupements[$DB_ROW['groupe_id']] = array('nom'=>$DB_ROW['groupe_nom'],'eleve'=>array());
    $tab_id[$DB_ROW['groupe_type']][] = $DB_ROW['groupe_id'];
  }
  // Recherche de la liste des élèves pour chaque classe du professeur
  if(is_array($tab_id['classe']))
  {
    $listing = implode(',',$tab_id['classe']);
    $DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_eleves_classes($listing);
    foreach($DB_TAB as $DB_ROW)
    {
      $tab_regroupements[$DB_ROW['eleve_classe_id']]['eleve'][$DB_ROW['user_id']] = $DB_ROW['user_nom'].' '.$DB_ROW['user_prenom'].' ('.$DB_ROW['user_login'].')';
    }
  }
  // Recherche de la liste des élèves pour chaque groupe du professeur
  if(is_array($tab_id['groupe']))
  {
    $listing = implode(',',$tab_id['groupe']);
    $DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_eleves_groupes($listing);
    foreach($DB_TAB as $DB_ROW)
    {
      $tab_regroupements[$DB_ROW['groupe_id']]['eleve'][$DB_ROW['user_id']] = $DB_ROW['user_nom'].' '.$DB_ROW['user_prenom'].' ('.$DB_ROW['user_login'].')';
    }
  }
  // Affichage de la liste des élèves (du professeur) pour chaque classe et groupe
  foreach($tab_regroupements as $groupe_id => $tab_groupe)
  {
    $gradient_pourcent = ($with_pourcent) ? '<span id="groupe_'.$groupe_id.'" class="gradient_pourcent"></span>' : '' ;
    $affichage .= '<ul class="ul_m1">'.NL;
    $affichage .=   '<li class="li_m1"><span class="deja">'.html($tab_groupe['nom']).'</span>'.$gradient_pourcent.NL;
    $affichage .=     '<ul class="ul_n3">'.NL;
    foreach($tab_groupe['eleve'] as $eleve_id => $eleve_nom)
    {
      // C'est plus compliqué que pour les items car un élève peut appartenir à une classe et plusieurs groupes => id du groupe mélé à l'id
      $affichage .=       '<li class="li_n3"><input id="id_'.$eleve_id.'_'.$groupe_id.'" name="f_eleves[]" type="checkbox" value="'.$eleve_id.'" /><label for="id_'.$eleve_id.'_'.$groupe_id.'"> '.html($eleve_nom).'</label><span></span></li>'.NL;
    }
    $affichage .=     '</ul>'.NL;
    $affichage .=   '</li>'.NL;
    $affichage .= '</ul>'.NL;
  }
  return $affichage;
}
コード例 #2
0
    echo '<td>{{NIVEAU_NOM}}</td>';
    echo '<td>' . html($groupe_nom) . '</td>';
    echo '<td>' . $eleves_texte . '</td>';
    echo '<td>' . $profs_texte . '</td>';
    echo '<td class="nu">';
    echo '<q class="modifier" title="Modifier ce groupe de besoin."></q>';
    echo '<q class="supprimer" title="Supprimer ce groupe de besoin."></q>';
    echo '</td>';
    echo '<SCRIPT>';
    echo 'tab_eleves["' . $groupe_id . '"]="' . implode('_', $tab_eleves) . '";';
    echo 'tab_profs["' . $groupe_id . '"]="' . implode('_', $tab_profs) . '";';
    exit;
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Supprimer un groupe de besoin existant
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($action == 'supprimer' && $groupe_id && $groupe_nom) {
    // Effacer l'enregistrement
    DB_STRUCTURE_PROFESSEUR::DB_supprimer_groupe_par_prof($groupe_id, 'besoin', TRUE);
    // Log de l'action
    SACocheLog::ajouter('Suppression du regroupement "' . $groupe_nom . '" (besoin n°' . $groupe_id . '), et donc des devoirs associés.');
    // Notifications (rendues visibles ultérieurement)
    $notification_contenu = date('d-m-Y H:i:s') . ' ' . $_SESSION['USER_PRENOM'] . ' ' . $_SESSION['USER_NOM'] . ' a supprimé son regroupement "' . $groupe_nom . '" (besoin n°' . $groupe_id . '), et donc les devoirs associés.' . "\r\n";
    DB_STRUCTURE_NOTIFICATION::enregistrer_action_sensible($notification_contenu);
    // Afficher le retour
    exit('<td>ok</td>');
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// On ne devrait pas en arriver là !
// ////////////////////////////////////////////////////////////////////////////////////////////////////
exit('Erreur avec les données transmises !');
コード例 #3
0
ファイル: fonction_divers.php プロジェクト: rhertzog/lcs
/**
 * Tester si on a un droit d'accès spécifique
 *
 * @param string $listing_droits_sigles
 * @param int    $matiere_coord_or_groupe_pp_connu   si le droit comporte une restriction aux coordonnateurs matières | professeurs principaux, on peut déja connaitre et transmettre l'info (soit pour au moins une matière | classe, soit pour une matière | classe donnée)
 * @param int    $matiere_id_or_groupe_id_a_tester   si le droit comporte une restriction aux coordonnateurs matières | professeurs principaux, et si $matiere_coord_or_groupe_pp_connu n'est pas transmis, on peut chercher si le droit est bon soit pour une matière | classe donnée, soit pour au moins une matière | classe
 * @param string $forcer_profil_sigle                pour forcer à tester un profil donné au lieu du profil de l'utilisateur
 * @param string $forcer_profil_type                pour forcer à tester un profil donné au lieu du profil de l'utilisateur
 * @return bool
 */
function test_user_droit_specifique( $listing_droits_sigles , $matiere_coord_or_groupe_pp_connu=NULL , $matiere_id_or_groupe_id_a_tester=0 , $forcer_profil_sigle=NULL , $forcer_profil_type=NULL )
{
  $user_profil_sigle = (!$forcer_profil_sigle) ? $_SESSION['USER_PROFIL_SIGLE'] : $forcer_profil_sigle ;
  $user_profil_type  = (!$forcer_profil_type)  ? $_SESSION['USER_PROFIL_TYPE']  : $forcer_profil_type  ;
  $tableau_droits_sigles = explode(',',$listing_droits_sigles);
  $test_droit = in_array($user_profil_sigle,$tableau_droits_sigles);
  if( $test_droit && ($user_profil_type=='professeur') && ($_SESSION['USER_JOIN_GROUPES']=='config') && test_droit_specifique_restreint($listing_droits_sigles,'ONLY_PP') )
  {
    return ($matiere_coord_or_groupe_pp_connu!==NULL) ? (bool)$matiere_coord_or_groupe_pp_connu : DB_STRUCTURE_PROFESSEUR::DB_tester_prof_principal($_SESSION['USER_ID'],$matiere_id_or_groupe_id_a_tester) ;
  }
  if( $test_droit && ($user_profil_type=='professeur') && ($_SESSION['USER_JOIN_MATIERES']=='config') && test_droit_specifique_restreint($listing_droits_sigles,'ONLY_COORD') )
  {
    return ($matiere_coord_or_groupe_pp_connu!==NULL) ? (bool)$matiere_coord_or_groupe_pp_connu : DB_STRUCTURE_PROFESSEUR::tester_prof_coordonnateur($_SESSION['USER_ID'],$matiere_id_or_groupe_id_a_tester) ;
  }
  if( $test_droit && ($user_profil_type=='professeur') && ($_SESSION['USER_JOIN_MATIERES']=='config') && test_droit_specifique_restreint($listing_droits_sigles,'ONLY_LV') )
  {
    return DB_STRUCTURE_PROFESSEUR::tester_prof_langue_vivante($_SESSION['USER_ID']) ;
  }
  return $test_droit;
}
コード例 #4
0
  echo  '<q class="supprimer" title="Supprimer ce groupe de besoin."></q>';
  echo'</td>';
  echo'<SCRIPT>';
  echo'tab_eleves["'.$groupe_id.'"]="'.implode('_',$tab_eleves).'";';
  echo'tab_profs["'.$groupe_id.'"]="'.implode('_',$tab_profs).'";';
  exit();
}

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Supprimer un groupe de besoin existant
// ////////////////////////////////////////////////////////////////////////////////////////////////////

if( ($action=='supprimer') && $groupe_id && $groupe_nom )
{
  // Effacer l'enregistrement
  DB_STRUCTURE_PROFESSEUR::DB_supprimer_groupe_par_prof( $groupe_id , 'besoin' , TRUE /*with_devoir*/ );
  // Log de l'action
  SACocheLog::ajouter('Suppression du regroupement "'.$groupe_nom.'" (besoin n°'.$groupe_id.'), et donc des devoirs associés.');
  // Notifications (rendues visibles ultérieurement)
  $notification_contenu = date('d-m-Y H:i:s').' '.$_SESSION['USER_PRENOM'].' '.$_SESSION['USER_NOM'].' a supprimé son regroupement "'.$groupe_nom.'" (besoin n°'.$groupe_id.'), et donc les devoirs associés.'."\r\n";
  DB_STRUCTURE_NOTIFICATION::enregistrer_action_sensible($notification_contenu);
  // Afficher le retour
  exit('<td>ok</td>');
}

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// On ne devrait pas en arriver là !
// ////////////////////////////////////////////////////////////////////////////////////////////////////

exit('Erreur avec les données transmises !');
コード例 #5
0
 * si ce n’est pas le cas, consultez : <http://www.gnu.org/licenses/>.
 * 
 */
// Mettre à jour l'élément de formulaire "f_devoir" et le renvoyer en HTML
if (!defined('SACoche')) {
    exit('Ce fichier ne peut être appelé directement !');
}
if ($_SESSION['SESAMATH_ID'] == ID_DEMO) {
}
$eval_type = isset($_POST['eval_type']) ? Clean::texte($_POST['eval_type']) : '';
// 'groupe' ou 'select'
$groupe_id = isset($_POST['groupe_id']) ? Clean::entier($_POST['groupe_id']) : 0;
// utile uniquement pour $eval_type='groupe'
$tab_types = array('groupe', 'select');
if (!$groupe_id && $eval_type == 'groupe' || !in_array($eval_type, $tab_types)) {
    exit('Erreur avec les données transmises !');
}
// Lister les dernières évaluations d'une classe ou d'un groupe ou d'un groupe de besoin
$DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_devoirs_prof_groupe_sans_infos_last($_SESSION['USER_ID'], $groupe_id, $eval_type);
if (empty($DB_TAB)) {
    exit('<option value="" disabled>Aucun devoir n\'a été trouvé pour ce groupe d\'élèves !</option>');
}
foreach ($DB_TAB as $key => $DB_ROW) {
    // Le code js a besoin qu'une option soit sélectionnée
    $selected = $key ? '' : ' selected';
    // Formater la date et la référence de l'évaluation
    $date_affich = convert_date_mysql_to_french($DB_ROW['devoir_date']);
    $date_visible_affich = convert_date_mysql_to_french($DB_ROW['devoir_visible_date']);
    echo '<option value="' . $DB_ROW['devoir_id'] . '_' . $DB_ROW['groupe_id'] . '"' . $selected . '>' . $date_affich . ' || ' . $date_visible_affich . ' || ' . html($DB_ROW['devoir_info']) . '</option>';
}
exit;
コード例 #6
0
 * 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 = "Évaluer une classe ou un groupe";

require('./_inc/fonction_affichage_sections_communes.php');

// Élément de formulaire "f_aff_classe" pour le choix des élèves (liste des classes / groupes / besoins) du professeur, enregistré dans une variable javascript pour utilisation suivant le besoin, et utilisé pour un tri initial
// Fabrication de tableaux javascript "tab_niveau" et "tab_groupe" indiquant le niveau et le nom d'un groupe
$select_eleve  = '';
$tab_niveau_js = 'var tab_niveau = new Array();';
$tab_groupe_js = 'var tab_groupe = new Array();';
$tab_id_classe_groupe = array();
$DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_groupes_professeur($_SESSION['USER_ID']);
$tab_options = array('classe'=>'','groupe'=>'','besoin'=>'');
foreach($DB_TAB as $DB_ROW)
{
	$groupe = strtoupper($DB_ROW['groupe_type']{0}).$DB_ROW['groupe_id'];
	$tab_options[$DB_ROW['groupe_type']] .= '<option value="'.$groupe.'">'.html($DB_ROW['groupe_nom']).'</option>';
	$tab_niveau_js .= 'tab_niveau["'.$groupe.'"]="'.sprintf("%02u",$DB_ROW['niveau_ordre']).'";';
	$tab_groupe_js .= 'tab_groupe["'.$groupe.'"]="'.html($DB_ROW['groupe_nom']).'";';
	if($DB_ROW['groupe_type']!='besoin')
	{
		$tab_id_classe_groupe[] = $DB_ROW['groupe_id'];
	}
}
foreach($tab_options as $type => $contenu)
{
	if($contenu)
コード例 #7
0
  <li><span class="danger">Supprimer un référentiel efface les résultats associés de tous les élèves !</span></li>
</ul>
<hr />

<div id="div_tableaux">

<?php
// Séparé en plusieurs requêtes sinon on ne s'en sort pas (entre les matières sans coordonnateurs, sans référentiel, les deux à la fois...).
// La recherche ne s'effectue que sur les matières et niveaux utilisés, sans débusquer des référentiels résiduels.
$tab_matiere = array();
$tab_niveau  = array();
$tab_colonne = array();

$texte_profil = afficher_profils_droit_specifique($_SESSION['DROIT_GERER_REFERENTIEL'],'br');
// On récupère la liste des matières où le professeur est rattaché, et s'il en est coordonnateur
$DB_TAB_MATIERES = DB_STRUCTURE_PROFESSEUR::DB_lister_matieres_professeur_infos_referentiel($_SESSION['USER_ID']);
if(empty($DB_TAB_MATIERES))
{
  $nb_matieres = 0;
  echo'<p><span class="danger">Vous n\'êtes rattaché à aucune matière de l\'établissement !</span></p>';
}
else
{
  $nb_matieres = count($DB_TAB_MATIERES);
  foreach($DB_TAB_MATIERES as $DB_ROW)
  {
    $tab_matiere[$DB_ROW['matiere_id']] = array(
      'nom'         => html($DB_ROW['matiere_nom']),
      'nb_demandes' => $DB_ROW['matiere_nb_demandes'],
      'coord'       => $DB_ROW['jointure_coord'],
    );
コード例 #8
0
}
?>

<ul class="puce">
  <li><span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE ?>?fichier=referentiels_socle__referentiel_modifier_contenu">DOC : Modifier le contenu des référentiels.</a></span></li>
  <li><span class="astuce">Pour mettre à jour sur le serveur communautaire un référentiel modifié, utiliser la page [<a href="./index.php?page=professeur_referentiel&amp;section=gestion">créer / paramétrer les référentiels</a>].</span></li>
  <li><span class="danger">Retirer des items supprime les résultats associés de tous les élèves !</span></li>
</ul>

<hr />

<form action="#" method="post" id="zone_choix_referentiel" onsubmit="return false;">
<?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']]))
コード例 #9
0
		$item_ref = $DB_ROW['item_ref'];
		$texte_socle = ($DB_ROW['entree_id']) ? '[S] ' : '[–] ';
		$tab_comp_id[$DB_ROW['item_id']] = array($item_ref,$texte_socle.$DB_ROW['item_nom']);
	}
	// résultats vierges
	foreach($tab_user_id as $user_id=>$val_user)
	{
		foreach($tab_comp_id as $comp_id=>$val_comp)
		{
			$tab_result[$comp_id][$user_id] = '';
		}
	}
	// compléter si demandé avec les résultats et/ou les demandes d'évaluations
	if($with_result || $only_req)
	{
		$DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_saisies_devoir($devoir_id,$with_REQ=$only_req);
		foreach($DB_TAB as $DB_ROW)
		{
			// Test pour éviter les pbs des élèves changés de groupes ou des items modifiés en cours de route
			if(isset($tab_result[$DB_ROW['item_id']][$DB_ROW['eleve_id']]))
			{
				$valeur = ($with_result) ? $DB_ROW['saisie_note'] : ( ($DB_ROW['saisie_note']) ? 'REQ' : '' ) ;
				if($valeur)
				{
					$tab_result[$DB_ROW['item_id']][$DB_ROW['eleve_id']] = $valeur ;
					$tab_user_nb_req[$DB_ROW['eleve_id']]++;
				}
			}
		}
	}
	// On attaque l'élaboration des sorties HTML, CSV et PDF
コード例 #10
0
ファイル: noyau_items_releve.php プロジェクト: rhertzog/lcs
}

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Elaboration du bulletin (moyenne et/ou appréciation) en HTML et PDF + CSV pour GEPI + Formulaire pour report prof
// ////////////////////////////////////////////////////////////////////////////////////////////////////

if( $type_bulletin && $make_html )
{
  $tab_bulletin_input = array();
  $bulletin_form = $bulletin_periode = $bulletin_alerte = '' ;
  if($_SESSION['USER_PROFIL_TYPE']=='professeur')
  {
    if($_SESSION['OFFICIEL']['BULLETIN_MOYENNE_SCORES'])
    {
      // Attention : $groupe_id peut être un identifiant de groupe et non de classe, auquel cas les élèves peuvent être issus de différentes classes dont les états des bulletins sont différents...
      $DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_periodes_bulletins_saisies_ouvertes($liste_eleve);
      $nb_periodes_ouvertes = !empty($DB_TAB) ? count($DB_TAB) : 0 ;
      if($nb_periodes_ouvertes==1)
      {
        $bulletin_periode = '['.html($DB_TAB[0]['periode_nom']).']<input type="hidden" id="f_periode_eleves" name="f_periode_eleves" value="'.$DB_TAB[0]['periode_id'].'_'.$DB_TAB[0]['eleves_listing'].'" />' ;
      }
      elseif($nb_periodes_ouvertes>1)
      {
        
        foreach($DB_TAB as $DB_ROW)
        {
          $selected = ($DB_ROW['periode_id']==$periode_id) ? ' selected' : '' ;
          $bulletin_periode .= '<option value="'.$DB_ROW['periode_id'].'_'.$DB_ROW['eleves_listing'].'"'.$selected.'>'.html($DB_ROW['periode_nom']).'</option>';
        }
        $bulletin_periode = '<select id="f_periode_eleves" name="f_periode_eleves">'.$bulletin_periode.'</select>';
      }
コード例 #11
0
    $tab_niveau_groupe[$DB_ROW['niveau_id']][] = $DB_ROW['groupe_id'];
    $tab_groupe_associe[$DB_ROW['groupe_id']] = array
    (
      'nom'        => html($DB_ROW['groupe_nom']) ,
      'eleve'      => '' ,
      'professeur' => '' ,
    );
  }
}

// Récupérer la liste des élèves et professeurs / groupes de besoin

if( !empty($DB_TAB) )
{
  $listing_groupes_id = implode( ',' , array_merge(array_keys($tab_groupe_proprio),array_keys($tab_groupe_associe)) );
  $DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_users_avec_groupes_besoins($listing_groupes_id);
  foreach($DB_TAB as $DB_ROW)
  {
    if(isset($tab_groupe_proprio[$DB_ROW['groupe_id']]))
    {
      $tab_groupe_proprio[$DB_ROW['groupe_id']][$DB_ROW['user_profil_type']][] = $DB_ROW['user_id'];
    }
    else
    {
      $tab_groupe_associe[$DB_ROW['groupe_id']][$DB_ROW['user_profil_type']] .= ($DB_ROW['jointure_pp']) ? '<span class="proprio">'.html($DB_ROW['user_nom'].' '.$DB_ROW['user_prenom']).'</span><br />' : html($DB_ROW['user_nom'].' '.$DB_ROW['user_prenom']).'<br />' ;
    }
  }
}

// Eléments javascript concernant les niveaux : select_niveau & tab_niveau_ordre_js
コード例 #12
0
	$info = $devoir_description.' ('.$_SESSION['USER_NOM'].' '.$_SESSION['USER_PRENOM']{0}.'.)';
	foreach($tab_nouveau_ajouter as $item_id => $note)
	{
		DB_STRUCTURE_PROFESSEUR::DB_ajouter_saisie($devoir_prof_id,$_SESSION['USER_ID'],$devoir_id,$item_id,$devoir_date_mysql,$note,$info,$date_visible_mysql);
	}
	foreach($tab_nouveau_modifier as $item_id => $note)
	{
		DB_STRUCTURE_PROFESSEUR::DB_modifier_saisie($_SESSION['USER_ID'],$devoir_id,$item_id,$note,$info);
	}
	foreach($tab_nouveau_supprimer as $item_id)
	{
		DB_STRUCTURE_PROFESSEUR::DB_supprimer_saisie($_SESSION['USER_ID'],$devoir_id,$item_id);
	}
	foreach($tab_demande_supprimer as $item_id)
	{
		DB_STRUCTURE_PROFESSEUR::DB_supprimer_demande_precise($_SESSION['USER_ID'],$item_id);
	}
	// Ajout aux flux RSS des profs concernés
	$titre = 'Autoévaluation effectuée par '.$_SESSION['USER_NOM'].' '.$_SESSION['USER_PRENOM']{0}.'.';
	$texte = $_SESSION['USER_PRENOM'].' '.$_SESSION['USER_NOM'].' s\'auto-évalue sur le devoir "'.$devoir_description.'"';
	$guid  = 'autoeval_'.$devoir_id.'-'.$_SESSION['USER_ID'];
	foreach($tab_profs_rss as $prof_id)
	{
		Modifier_RSS(adresse_RSS($prof_id),$titre,$texte,$guid);
	}
	exit('ok');
}

//	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
//	On ne devrait pas en arriver là
//	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
コード例 #13
0
/**
 * modifier_liaison_devoir_eleve
 * Uniquement pour les évaluations de type 'eval' ; voir DB_modifier_liaison_devoir_groupe() pour les autres
 *
 * @param int    $devoir_id
 * @param int    $groupe_id
 * @param array  $tab_eleves   tableau des id des élèves
 * @param string $mode         'creer' pour un insert dans un nouveau devoir || 'substituer' pour une maj delete / insert || 'ajouter' pour maj insert uniquement
 * @return void
 */
public static function DB_modifier_liaison_devoir_eleve($devoir_id,$groupe_id,$tab_eleves,$mode)
{
  DB_STRUCTURE_PROFESSEUR::DB_modifier_liaison_user_groupe_par_prof($groupe_id,$tab_eleves,array() /*tab_profs*/,$mode,$devoir_id);
}
コード例 #14
0
    }
  }
  // Retour
  exit('ok'.']¤['.$msg_url.']¤['.$msg_data);
}

// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Enregistrer un commentaire texte ou audio
// ////////////////////////////////////////////////////////////////////////////////////////////////////

if( ( ($action=='enregistrer_texte') || ($action=='enregistrer_audio') ) && $devoir_id && $eleve_id && in_array($msg_autre,array('oui','non')) && $date_visible && $description )
{
  $msg_objet = substr($action,-5);
  $date_visible_mysql  = convert_date_french_to_mysql($date_visible);
  // Tester les droits
  $proprio_id = DB_STRUCTURE_PROFESSEUR::DB_recuperer_devoir_prorietaire_id( $devoir_id );
  if($proprio_id==$_SESSION['USER_ID'])
  {
    $niveau_droit = 4; // propriétaire
  }
  elseif($profs_liste) // forcément
  {
    $search_liste = '_'.$profs_liste.'_';
    if( strpos( $search_liste, '_m'.$_SESSION['USER_ID'].'_' ) !== FALSE )
    {
      $niveau_droit = 3; // modifier
    }
    elseif( strpos( $search_liste, '_s'.$_SESSION['USER_ID'].'_' ) !== FALSE )
    {
      $niveau_droit = 2; // saisir
    }
コード例 #15
0
}

// Affichage du bilan des affectations des professeurs dans les groupes de besoin
$tab_niveau_groupe = array();
$tab_user          = array();
// Récupérer la liste des groupes de besoin
$DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_groupes_besoins($_SESSION['USER_ID'],TRUE /* is_proprio */);
foreach($DB_TAB as $DB_ROW)
{
	$tab_niveau_groupe[$DB_ROW['niveau_id']][$DB_ROW['groupe_id']] = html($DB_ROW['groupe_nom']);
	$tab_user[$DB_ROW['groupe_id']] = '';
}
// Récupérer la liste des professeurs / groupes de besoin
if( count($tab_user) )
{
	$DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_users_avec_groupes_besoins( 'professeur' , implode(',',array_keys($tab_user)) );
	foreach($DB_TAB as $DB_ROW)
	{
		$tab_user[$DB_ROW['groupe_id']] .= ($DB_ROW['jointure_pp']) ? '<span class="proprio">'.html($DB_ROW['user_nom'].' '.$DB_ROW['user_prenom']).'</span><br />' : html($DB_ROW['user_nom'].' '.$DB_ROW['user_prenom']).'<br />' ;
	}
}
// Assemblage du tableau résultant
$TH = array();
$TB = array();
$TF = array();
foreach($tab_niveau_groupe as $niveau_id => $tab_groupe)
{
	$TH[$niveau_id] = '';
	$TB[$niveau_id] = '';
	$TF[$niveau_id] = '';
	foreach($tab_groupe as $groupe_id => $groupe_nom)
コード例 #16
0
 }
 // Il reste dans $tab_post les données à ajouter (mises dans $tab_nouveau_ajouter) et les données qui ne servent pas (non enregistrées et non saisies)
 $tab_nouveau_ajouter = array_filter($tab_post, 'sans_rien');
 //
 // Il n'y a plus qu'à mettre à jour la base
 //
 // L'information associée à la note comporte le nom de l'évaluation + celui du professeur (c'est une information statique, conservée sur plusieurs années)
 $info = $devoir_description . ' (' . afficher_identite_initiale($_SESSION['USER_NOM'], FALSE, $_SESSION['USER_PRENOM'], TRUE, $_SESSION['USER_GENRE']) . ')';
 foreach ($tab_nouveau_ajouter as $item_id => $note) {
     DB_STRUCTURE_PROFESSEUR::DB_ajouter_saisie($devoir_proprio_id, $_SESSION['USER_ID'], $devoir_id, $item_id, $devoir_date_mysql, $note, $info, $date_visible_mysql);
 }
 foreach ($tab_nouveau_modifier as $item_id => $note) {
     DB_STRUCTURE_PROFESSEUR::DB_modifier_saisie($devoir_proprio_id, $_SESSION['USER_ID'], $devoir_id, $item_id, $note, $info);
 }
 foreach ($tab_nouveau_supprimer as $item_id) {
     DB_STRUCTURE_PROFESSEUR::DB_supprimer_saisie($_SESSION['USER_ID'], $devoir_id, $item_id);
 }
 foreach ($tab_demande_supprimer as $item_id) {
     DB_STRUCTURE_DEMANDE::DB_supprimer_demande_precise_eleve_item($_SESSION['USER_ID'], $item_id);
 }
 // Ajout aux flux RSS des profs concernés
 $tab_profs_rss = array_merge(array($devoir_proprio_id), DB_STRUCTURE_ELEVE::DB_lister_devoir_profs_droit_saisie($devoir_id));
 $titre = 'Autoévaluation effectuée par ' . afficher_identite_initiale($_SESSION['USER_NOM'], FALSE, $_SESSION['USER_PRENOM'], TRUE);
 $texte = $_SESSION['USER_PRENOM'] . ' ' . $_SESSION['USER_NOM'] . ' s\'auto-évalue sur le devoir "' . $devoir_description . '".' . "\r\n";
 $texte .= $msg_data ? 'Commentaire :' . "\r\n" . $msg_data . "\r\n" : 'Pas de commentaire saisi.' . "\r\n";
 $guid = 'autoeval_' . $devoir_id . '_' . $_SESSION['USER_ID'] . '_' . $_SERVER['REQUEST_TIME'];
 // obligé d'ajouter un time pour unicité au cas où un élève valide 2x l'autoévaluation
 foreach ($tab_profs_rss as $prof_id) {
     RSS::modifier_fichier_prof($prof_id, $titre, $texte, $guid);
 }
 // Notifications (rendues visibles ultérieurement) ; on récupère des données conçues pour le flux RSS ($texte , $tab_profs_rss)
コード例 #17
0
echo $select_pages_nb;
?>
<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 />
コード例 #18
0
	{
		exit('Le fichier n\'a pas pu être enregistré sur le serveur !');
	}
	// Mise à jour dans la base
	DB_STRUCTURE_PROFESSEUR::DB_modifier_devoir_document($devoir_id,$_SESSION['USER_ID'],$doc_objet,$fichier_nom);
	// Retour
	exit('ok'.']¤['.$ref.']¤['.$doc_objet.']¤['.$fichier_nom);
}

//	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Retirer un sujet ou un corrigé d'évaluation
//	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if( ($action=='retirer_document') && $devoir_id && in_array($doc_objet,array('sujet','corrige')) && $doc_nom )
{
	// Suppression du fichier
	unlink($dossier_devoir.$doc_nom);
	// Mise à jour dans la base
	DB_STRUCTURE_PROFESSEUR::DB_modifier_devoir_document($devoir_id,$_SESSION['USER_ID'],$doc_objet,'');
	// Retour
	exit('ok');
}

//	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	On ne devrait pas en arriver là !
//	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

exit('Erreur avec les données transmises !');

?>
コード例 #19
0
		DB_STRUCTURE_PROFESSEUR::DB_supprimer_demandes_devoir($listing_demande_id);
	}
	exit('ok');
}

//	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
//	Changer le statut pour "évaluation en préparation"
//	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
elseif( ($action=='changer') && $nb_demandes )
{
	$listing_demande_id = implode(',',$tab_demande_id);
	DB_STRUCTURE_PROFESSEUR::DB_modifier_statut_demandes($listing_demande_id,'prof');
	exit('ok');
}

//	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
//	Retirer de la liste des demandes
//	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
elseif( ($action=='retirer') && $nb_demandes )
{
	$listing_demande_id = implode(',',$tab_demande_id);
	DB_STRUCTURE_PROFESSEUR::DB_supprimer_demandes_devoir($listing_demande_id);
	exit('ok');
}

else
{
	echo'Erreur avec les données transmises !';
}
?>
コード例 #20
0
 $date_visible_mysql = convert_date_french_to_mysql($date_visible);
 // Dans le cas d'une évaluation sur une liste d'élèves sélectionnés
 if($qui=='select')
 {
   // Il faut ajouter tous les élèves choisis
   DB_STRUCTURE_PROFESSEUR::DB_modifier_liaison_devoir_eleve($devoir_id,$devoir_groupe_id,$tab_user_id,'ajouter'); // ($devoir_groupe_id et non $groupe_id qui correspond à la classe d'origine des élèves...)
 }
 // Maintenant on peut modifier les items de l'évaluation
 DB_STRUCTURE_PROFESSEUR::DB_modifier_liaison_devoir_item($devoir_id,$tab_item_id,'ajouter');
 // Insérer les scores 'REQ' pour indiquer au prof les demandes dans le tableau de saisie
 $tab_item_for_user = array();
 $info = 'À saisir ('.afficher_identite_initiale($_SESSION['USER_NOM'],FALSE,$_SESSION['USER_PRENOM'],TRUE).')';
 foreach($tab_user_item as $key)
 {
   list($eleve_id,$item_id) = explode('x',$key);
   DB_STRUCTURE_PROFESSEUR::DB_ajouter_saisie($_SESSION['USER_ID'],$eleve_id,$devoir_id,$item_id,$date_mysql,'REQ',$info,$date_visible_mysql);
   $tab_item_for_user[$eleve_id][] = $item_id;
 }
 // Pour terminer, on change le statut des demandes ou on les supprime
 $listing_demande_id = implode(',',$tab_demande_id);
 if($suite=='changer')
 {
   DB_STRUCTURE_DEMANDE::DB_modifier_demandes_statut($listing_demande_id,'prof',$message);
 }
 else
 {
   DB_STRUCTURE_DEMANDE::DB_supprimer_demandes_devoir($listing_demande_id);
 }
 // Notifications (rendues visibles ultérieurement à cause de la potentielle date de visibilité future du devoir)
 $listing_abonnes = DB_STRUCTURE_NOTIFICATION::DB_lister_destinataires_listing_id( $abonnement_ref , implode(',',$tab_user_id) );
 if($listing_abonnes)
コード例 #21
0
</p>

<?php 
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Affichage du bilan des affectations des périodes aux classes & groupes ; en plusieurs requêtes pour récupérer les périodes sans classes-groupes et les classes-groupes sans périodes
// ////////////////////////////////////////////////////////////////////////////////////////////////////
$tab_groupe = array();
$tab_periode = array();
$tab_jointure = array();
// Récupérer la liste des classes & groupes, dans l'ordre des niveaux
switch ($_SESSION['USER_PROFIL_TYPE']) {
    case 'directeur':
        $DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_classes_et_groupes_avec_niveaux();
        break;
    case 'professeur':
        $DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_classes_groupes_professeur($_SESSION['USER_ID'], $_SESSION['USER_JOIN_GROUPES']);
        break;
    case 'parent':
        $DB_TAB = DB_STRUCTURE_ELEVE::DB_lister_classes_parent($_SESSION['USER_ID']);
        break;
    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) {
コード例 #22
0
 if (!$presence_eleve) {
     // 'ajouter' plutôt que 'creer' car en cas d'ajout puis de suppression d'une note à un élève, un élève peut se retrouver déjà affecté à un devoir sans qu'il n'y ait de note trouvée
     DB_STRUCTURE_PROFESSEUR::DB_modifier_liaison_devoir_eleve($devoir_id, $groupe_id, array($eleve_id), 'ajouter');
 }
 $notif_eleve = FALSE;
 if ($presence_saisie == FALSE) {
     if ($note_val != 'X') {
         DB_STRUCTURE_PROFESSEUR::DB_ajouter_saisie($_SESSION['USER_ID'], $eleve_id, $devoir_id, $item_id, TODAY_MYSQL, $note_val, $info, TODAY_MYSQL);
         $notif_eleve = TRUE;
     }
 } else {
     if ($note_val == 'X') {
         DB_STRUCTURE_PROFESSEUR::DB_supprimer_saisie($eleve_id, $devoir_id, $item_id);
         $notif_eleve = TRUE;
     } elseif ($presence_saisie != $note_val) {
         DB_STRUCTURE_PROFESSEUR::DB_modifier_saisie($_SESSION['USER_ID'], $eleve_id, $devoir_id, $item_id, $note_val, $info);
         $notif_eleve = TRUE;
     }
 }
 // Notifications (rendues visibles ultérieurement) ; le mode discret ne d'applique volontairement pas ici car les modifications sont chirurgicales
 if ($notif_eleve) {
     $abonnement_ref = 'devoir_saisie';
     $listing_eleves = (string) $eleve_id;
     $listing_parents = DB_STRUCTURE_NOTIFICATION::DB_lister_parents_listing_id($listing_eleves);
     $listing_users = $listing_parents ? $listing_eleves . ',' . $listing_parents : $listing_eleves;
     $listing_abonnes = DB_STRUCTURE_NOTIFICATION::DB_lister_destinataires_listing_id($abonnement_ref, $listing_users);
     if ($listing_abonnes) {
         $adresse_lien_profond = Sesamail::adresse_lien_profond('page=evaluation_voir&devoir_id=' . $devoir_id . '&eleve_id=');
         $notification_contenu = 'Saisie "à la volée" enregistrée par ' . afficher_identite_initiale($_SESSION['USER_NOM'], FALSE, $_SESSION['USER_PRENOM'], TRUE, $_SESSION['USER_GENRE']) . '.' . "\r\n\r\n";
         $tab_abonnes = DB_STRUCTURE_NOTIFICATION::DB_lister_detail_abonnes_envois($listing_abonnes, $listing_eleves, $listing_parents);
         foreach ($tab_abonnes as $abonne_id => $tab_abonne) {
コード例 #23
0
ファイル: brevet_fiches.php プロジェクト: Qwaseur/SACoche
             $droit_appreciation_generale = test_user_droit_specifique($_SESSION['DROIT_FICHE_BREVET_APPRECIATION_GENERALE'], $DB_ROW['jointure_pp'], 0);
             $droit_impression_pdf = test_user_droit_specifique($_SESSION['DROIT_FICHE_BREVET_IMPRESSION_PDF'], $DB_ROW['jointure_pp'], 0);
             $droit_voir_archives_pdf = test_user_droit_specifique($_SESSION['DROIT_FICHE_BREVET_VOIR_ARCHIVE']);
             $tab_classe[$DB_ROW['groupe_id']][0] = compact('droit_modifier_statut', 'droit_appreciation_generale', 'droit_impression_pdf');
             $tab_affich[$DB_ROW['groupe_id'] . '_0']['title'] = '<th id="groupe_' . $DB_ROW['groupe_id'] . '_0">' . html($DB_ROW['groupe_nom']) . '</th>';
             $tab_affich[$DB_ROW['groupe_id'] . '_0']['fiche'] = '<td class="hc">-</td>';
             $tab_options_classes[$DB_ROW['groupe_id'] . '_0'] = '<option value="' . $DB_ROW['groupe_id'] . '_0">' . html($DB_ROW['groupe_nom']) . '</option>';
         }
     } 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>';
                 }
             }
         }
コード例 #24
0
ファイル: compte_accueil.php プロジェクト: Qwaseur/SACoche
                    foreach (${'tab_selection_' . $critere . '_key'} as $item_id => $tab_temp) {
                        $date_affich = convert_date_mysql_to_french($DB_TAB[$item_id][0]['saisie_date']);
                        $tab_accueil[$critere]['contenu'] .= '<li>' . Html::note_image($DB_TAB[$item_id][0]['saisie_note'], '', '') . ' ' . $text_eleve_nom . html($date_affich) . ' || <a href="./index.php?page=releve&amp;section=items_matiere&amp;matiere_id=' . $DB_TAB[$item_id][0]['matiere_id'] . '&amp;item_id=' . $item_id . $param_eleve_num . '">' . html($DB_TAB[$item_id][0]['matiere_nom']) . ' || ' . html($DB_TAB[$item_id][0]['item_ref'] . ' - ' . afficher_texte_tronque($DB_TAB[$item_id][0]['item_nom'], $longueur_intitule_item_maxi)) . '</a></li>';
                    }
                    $tab_accueil[$critere]['contenu'] .= '</ul>';
                }
            }
        }
    }
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// [demandes] - Info Demandes d'évaluations
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if (in_array($_SESSION['USER_PROFIL_TYPE'], array('professeur', 'eleve'))) {
    if ($_SESSION['USER_PROFIL_TYPE'] == 'professeur') {
        $DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_compter_demandes_evaluation($_SESSION['USER_ID'], $_SESSION['USER_JOIN_GROUPES']);
        $page = 'evaluation_demande_professeur';
    }
    if ($_SESSION['USER_PROFIL_TYPE'] == 'eleve') {
        $DB_TAB = DB_STRUCTURE_ELEVE::DB_compter_demandes_evaluation($_SESSION['USER_ID']);
        $page = 'evaluation_demande_eleve';
    }
    if (!empty($DB_TAB)) {
        $nb_etat_prof = empty($DB_TAB['prof']['nombre']) ? 0 : $DB_TAB['prof']['nombre'];
        $nb_etat_eleve = empty($DB_TAB['eleve']['nombre']) ? 0 : $DB_TAB['eleve']['nombre'];
        $tab_accueil['demandes']['nombre'] = $nb_etat_prof + $nb_etat_eleve;
        $tab_accueil['demandes']['contenu'] = '<p class="b"><TG> ' . $tab_accueil['demandes']['masque'] . '</p>';
        if ($nb_etat_eleve) {
            $s = $DB_TAB['eleve']['nombre'] > 1 ? 's' : '';
            $tab_accueil['demandes']['contenu'] .= '<p>Vous avez <a href="./index.php?page=' . $page . '"><span class="b">' . $nb_etat_eleve . ' demande' . $s . ' d\'évaluation' . $s . '</span></a> en attente de réponse.</p>';
        }