} if( ($_SESSION['USER_PROFIL_TYPE']=='parent') && ($_SESSION['NB_ENFANTS']==1) ) { $tab_groupes = array(0=>array('valeur'=>$_SESSION['ELEVE_CLASSE_ID'],'texte'=>$_SESSION['ELEVE_CLASSE_NOM'],'optgroup'=>'classe')); $of_g = FALSE; $sel_g = TRUE; $class_form_option = 'hide'; $class_form_eleve = 'hide'; $class_form_periode = 'show'; $select_eleves = '<select id="f_eleve" name="f_eleve[]"><option value="'.$_SESSION['OPT_PARENT_ENFANTS'][0]['valeur'].'" selected>'.html($_SESSION['OPT_PARENT_ENFANTS'][0]['texte']).'</option></select>'; $is_select_multiple = 0; } if($_SESSION['USER_PROFIL_TYPE']=='eleve') { $tab_groupes = array(0=>array('valeur'=>$_SESSION['ELEVE_CLASSE_ID'],'texte'=>$_SESSION['ELEVE_CLASSE_NOM'],'optgroup'=>'classe')); $of_g = FALSE; $sel_g = TRUE; $class_form_option = 'hide'; $class_form_eleve = 'hide'; $class_form_periode = 'show'; $select_eleves = '<select id="f_eleve" name="f_eleve[]"><option value="'.$_SESSION['USER_ID'].'" selected>'.html($_SESSION['USER_NOM'].' '.$_SESSION['USER_PRENOM']).'</option></select>'; $is_select_multiple = 0; } $tab_periodes = DB_STRUCTURE_COMMUN::DB_OPT_periodes_etabl(); $select_individuel_format = HtmlForm::afficher_select(Form::$tab_select_individuel_format , 'f_individuel_format' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['releve_individuel_format'] /*selection*/ , '' /*optgroup*/); $select_groupe = HtmlForm::afficher_select($tab_groupes , 'f_groupe' /*select_nom*/ , $of_g /*option_first*/ , $sel_g /*selection*/ , 'regroupements' /*optgroup*/); $select_eleves_ordre = HtmlForm::afficher_select(Form::$tab_select_eleves_ordre , 'f_eleves_ordre' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['eleves_ordre'] /*selection*/ , '' /*optgroup*/); $select_periode = HtmlForm::afficher_select($tab_periodes , 'f_periode' /*select_nom*/ , 'periode_personnalisee' /*option_first*/ , FALSE /*selection*/ , '' /*optgroup*/); $select_orientation = HtmlForm::afficher_select(Form::$tab_select_orientation , 'f_orientation' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['orientation'] /*selection*/ , '' /*optgroup*/); $select_marge_min = HtmlForm::afficher_select(Form::$tab_select_marge_min , 'f_marge_min' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['marge_min'] /*selection*/ , '' /*optgroup*/); $select_pages_nb = HtmlForm::afficher_select(Form::$tab_select_pages_nb , 'f_pages_nb' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['pages_nb'] /*selection*/ , '' /*optgroup*/); $select_couleur = HtmlForm::afficher_select(Form::$tab_select_couleur , 'f_couleur' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['couleur'] /*selection*/ , '' /*optgroup*/); $select_fond = HtmlForm::afficher_select(Form::$tab_select_fond , 'f_fond' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['fond'] /*selection*/ , '' /*optgroup*/); $select_legende = HtmlForm::afficher_select(Form::$tab_select_legende , 'f_legende' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['legende'] /*selection*/ , '' /*optgroup*/); $select_cases_nb = HtmlForm::afficher_select(Form::$tab_select_cases_nb , 'f_cases_nb' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['cases_nb'] /*selection*/ , '' /*optgroup*/); $select_cases_larg = HtmlForm::afficher_select(Form::$tab_select_cases_size , 'f_cases_larg' /*select_nom*/ , FALSE /*option_first*/ , Form::$tab_choix['cases_largeur'] /*selection*/ , '' /*optgroup*/); // Javascript
$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) { $select_eleve .= '<optgroup label="'.ucwords($type).'s">'.$contenu.'</optgroup>'; } } // Élément de formulaire "f_aff_periode" pour le choix d'une période $select_periode = Formulaire::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_periodes_etabl() , $select_nom='f_aff_periode' , $option_first='val' , $selection=false , $optgroup='non'); // On désactive les périodes prédéfinies pour le choix "toute classe / tout groupe" initialement sélectionné $select_periode = preg_replace( '#'.'value="([1-9].*?)"'.'#' , 'value="$1" disabled' , $select_periode ); // Dates par défaut de début et de fin $date_debut = date("d/m/Y",mktime(0,0,0,date("m")-2,date("d"),date("Y"))); // 2 mois avant $date_fin = date("d/m/Y",mktime(0,0,0,date("m")+1,date("d"),date("Y"))); // 1 mois après // Fabrication du tableau javascript "tab_groupe_periode" pour les jointures groupes/périodes $tab_groupe_periode_js = 'var tab_groupe_periode = new Array();'; if(count($tab_id_classe_groupe)) { $tab_memo_groupes = array(); $DB_TAB = DB_STRUCTURE_COMMUN::DB_lister_jointure_groupe_periode($listing_groupe_id = implode(',',$tab_id_classe_groupe)); foreach($DB_TAB as $DB_ROW) {
* 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::_("Affecter les périodes aux classes & groupes")); ?> <?php // Fabrication des éléments select du formulaire $select_periodes = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_periodes_etabl(TRUE), 'select_periodes', FALSE, FALSE, '', $multiple = TRUE); $select_classes_groupes = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_classes_groupes_etabl(), 'select_classes_groupes', FALSE, FALSE, 'regroupements', $multiple = TRUE); ?> <p><span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE; ?> ?fichier=support_administrateur__gestion_periodes">DOC : Gestion des périodes</a></span></p> <hr /> <form action="#" method="post" id="form_select"> <table><tr> <td class="nu" style="width:25em"> <b>Périodes :</b><span class="check_multiple"><q class="cocher_tout" title="Tout cocher."></q><q class="cocher_rien" title="Tout décocher."></q></span><br /> <span id="select_periodes" class="select_multiple"><?php
* 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::_("Affecter les périodes aux classes & groupes")); ?> <?php // Fabrication des éléments select du formulaire $select_periodes = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_periodes_etabl(TRUE /*alerte*/) , 'select_periodes' /*select_nom*/ , FALSE /*option_first*/ , FALSE /*selection*/ , '' /*optgroup*/ , $multiple=TRUE); $select_classes_groupes = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_classes_groupes_etabl() , 'select_classes_groupes' /*select_nom*/ , FALSE /*option_first*/ , FALSE /*selection*/ , 'regroupements' /*optgroup*/ , $multiple=TRUE); ?> <p><span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE ?>?fichier=support_administrateur__gestion_periodes">DOC : Gestion des périodes</a></span></p> <hr /> <form action="#" method="post" id="form_select"> <table><tr> <td class="nu" style="width:25em"> <b>Périodes :</b><span class="check_multiple"><q class="cocher_tout" title="Tout cocher."></q><q class="cocher_rien" title="Tout décocher."></q></span><br /> <span id="select_periodes" class="select_multiple"><?php echo $select_periodes; ?></span> </td> <td class="nu" style="width:20em"> <b>Classes & groupes :</b><span class="check_multiple"><q class="cocher_tout" title="Tout cocher."></q><q class="cocher_rien" title="Tout décocher."></q><q class="cocher_inverse" title="Tout échanger."></q></span><br />
* 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 Générale Publique GNU pour plus de détails. * * Vous devriez avoir reçu une copie de la Licence Générale Publique GNU avec SACoche ; * si ce n’est pas le cas, consultez : <http://www.gnu.org/licenses/>. * */ if(!defined('SACoche')) {exit('Ce fichier ne peut être appelé directement !');} if(empty($page_maitre)) {exit('Ce fichier ne peut être appelé directement !');} // Formulaire de choix d'une période (utilisé deux fois) // Formulaire des classes $tab_groupes = DB_STRUCTURE_COMMUN::DB_OPT_classes_etabl(FALSE /*with_ref*/); $select_periode = Form::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_periodes_etabl() , $select_nom=FALSE , $option_first='oui' , $selection=FALSE , $optgroup='non'); $select_groupe = Form::afficher_select($tab_groupes , $select_nom='f_groupe' , $option_first='oui' , $selection=FALSE , $optgroup='non'); // Fabrication du tableau javascript "tab_groupe_periode" pour les jointures groupes/périodes list( $tab_groupe_periode_js ) = Form::fabriquer_tab_js_jointure_groupe( $tab_groupes , TRUE /*return_jointure_periode*/ , FALSE /*return_jointure_niveau*/ ); ?> <script type="text/javascript"> var profil = "<?php echo $_SESSION['USER_PROFIL'] ?>"; var date_mysql="<?php echo TODAY_MYSQL ?>"; <?php echo $tab_groupe_periode_js ?> </script> <!-- <div><span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE ?>?fichier=releves_bilans__reglages_syntheses_bilans#toggle_officiel_mise_en_page">DOC : Réglages synthèses & bilans → Mise en page des bilans officiels</a></span></div> --> <div class="travaux">Page en construction ; documentation et finalisation à venir prochainement !</div>
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 { $tab_groupes = (test_droit_specifique_restreint($_SESSION['DROIT_OFFICIEL_SAISIR_ASSIDUITE'],'ONLY_PP')) ? DB_STRUCTURE_COMMUN::DB_OPT_classes_prof_principal($_SESSION['USER_ID']) : DB_STRUCTURE_COMMUN::DB_OPT_classes_professeur($_SESSION['USER_ID']) ; } $select_periode = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_periodes_etabl() , FALSE /*select_nom*/ , '' /*option_first*/ , FALSE /*selection*/ , '' /*optgroup*/); $select_groupe = HtmlForm::afficher_select($tab_groupes , 'f_groupe' /*select_nom*/ , '' /*option_first*/ , FALSE /*selection*/ , '' /*optgroup*/); // Javascript Layout::add( 'js_inline_before' , 'var date_mysql = "'.TODAY_MYSQL.'";' ); // Fabrication du tableau javascript "tab_groupe_periode" pour les jointures groupes/périodes HtmlForm::fabriquer_tab_js_jointure_groupe( $tab_groupes , TRUE /*tab_groupe_periode*/ , FALSE /*tab_groupe_niveau*/ ); ?> <div><span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE ?>?fichier=releves_bilans__officiel_assiduite">DOC : Bilan officiel - Absences & Retards</a></span></div> <hr /> <h2>Import de fichier</h2> <form action="#" method="post" id="form_fichier"> <?php /* Pour la gestion de plusieurs imports, prendre modèle sur les fichiers validation_socle_fichier.* */ ?>
// Fabrication de tableaux javascript "tab_niveau" et "tab_groupe" indiquant le niveau et le nom d'un groupe $DB_TAB = DB_STRUCTURE_PROFESSEUR::DB_lister_groupes_professeur($_SESSION['USER_ID'], $_SESSION['USER_JOIN_GROUPES']); $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>'; Layout::add('js_inline_before', 'tab_niveau["' . $groupe . '"]="' . sprintf("%02u", $DB_ROW['niveau_ordre']) . '";'); Layout::add('js_inline_before', 'tab_groupe["' . $groupe . '"]="' . html($DB_ROW['groupe_nom']) . '";'); } foreach ($tab_options as $type => $contenu) { if ($contenu) { $select_eleve .= '<optgroup label="' . ucwords($type) . 's">' . $contenu . '</optgroup>'; } } // Élément de formulaire "f_aff_periode" pour le choix d'une période $select_periode = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_periodes_etabl(), 'f_aff_periode', 'periode_personnalisee', FALSE, ''); // On désactive les périodes prédéfinies pour le choix "toute classe / tout groupe" initialement sélectionné $select_periode = preg_replace('#' . 'value="([1-9].*?)"' . '#', 'value="$1" disabled', $select_periode); } $select_selection_items = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_selection_items($_SESSION['USER_ID']), 'f_selection_items', '', FALSE, ''); // Fabrication du tableau javascript "tab_groupe_periode" pour les jointures groupes/périodes $tab_groupes = $_SESSION['USER_JOIN_GROUPES'] == 'config' ? DB_STRUCTURE_COMMUN::DB_OPT_groupes_professeur($_SESSION['USER_ID']) : DB_STRUCTURE_COMMUN::DB_OPT_classes_groupes_etabl(); HtmlForm::fabriquer_tab_js_jointure_groupe($tab_groupes, TRUE, FALSE); // Longueur max pour un enregistrement audio (de toutes façons limitée techniquement à 120s). // Selon les tests effectués la taille du MP3 enregistrée est de 3,9 Ko/s. $AUDIO_DUREE_MAX = min(120, FICHIER_TAILLE_MAX / 4); // Javascript Layout::add('js_inline_before', 'var AUDIO_DUREE_MAX = ' . $AUDIO_DUREE_MAX . ';'); Layout::add('js_inline_before', '// <![CDATA['); Layout::add('js_inline_before', 'var select_groupe = "' . str_replace('"', '\\"', '<option value=""> </option>' . $select_eleve) . '";'); Layout::add('js_inline_before', '// ]]>');
$TITRE = html(Lang::_("Absences / Retards")); if ($_SESSION['USER_PROFIL_TYPE'] != 'administrateur' && !test_user_droit_specifique($_SESSION['DROIT_OFFICIEL_SAISIR_ASSIDUITE'], 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_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') { $tab_groupes = DB_STRUCTURE_COMMUN::DB_OPT_classes_etabl(FALSE); } else { $tab_groupes = test_droit_specifique_restreint($_SESSION['DROIT_OFFICIEL_SAISIR_ASSIDUITE'], 'ONLY_PP') ? DB_STRUCTURE_COMMUN::DB_OPT_classes_prof_principal($_SESSION['USER_ID']) : DB_STRUCTURE_COMMUN::DB_OPT_classes_professeur($_SESSION['USER_ID']); } $select_periode = HtmlForm::afficher_select(DB_STRUCTURE_COMMUN::DB_OPT_periodes_etabl(), FALSE, '', FALSE, ''); $select_groupe = HtmlForm::afficher_select($tab_groupes, 'f_groupe', '', FALSE, ''); // Javascript Layout::add('js_inline_before', 'var date_mysql = "' . TODAY_MYSQL . '";'); // Fabrication du tableau javascript "tab_groupe_periode" pour les jointures groupes/périodes HtmlForm::fabriquer_tab_js_jointure_groupe($tab_groupes, TRUE, FALSE); ?> <div><span class="manuel"><a class="pop_up" href="<?php echo SERVEUR_DOCUMENTAIRE; ?> ?fichier=releves_bilans__officiel_assiduite">DOC : Bilan officiel - Absences & Retards</a></span></div> <hr /> <h2>Import de fichier</h2>