`garennes_fichiers.inc~garennes_donnees.binÛgarennes_maj.phpGarennes." ; Echo "
Problème d'accès aux bulletins.
Veuillez contacter l'administrateur...
" ; Echo "" ; Exit ; } If ($titre == -1) { $resultats = SQL_commande ("SELECT * FROM menus WHERE numero='".$droit_courant."' AND ordre='0' LIMIT 1", $id_sql) ; $l = SQL_tableau_associatif ($resultats, "") ; // Menu de choix Echo "Garennes - Options d'impression des bulletins." ; Echo "" ; Echo "" ; Echo "" ; Echo "
Options d'impression des bulletins pour la période ".$periode.". Classe : ".nom_classe_long_parid ($id_classe)." (".nom_classe_bref_parid ($id_classe).")" ; If ($droit_courant != $droit_cpe) { Echo "" ; } Echo "
 
" ; //Echo affichage_pourcentages ($id_classe, $periode, 102)."
" ; Echo "
" ; Echo "" ; Echo "" ; Echo "" ; $res = SQL_commande ("SELECT id_eleve,nom,prenoms FROM eleves WHERE classe='".$id_classe."' ORDER BY nom,prenoms", $id_sql) ; Echo "
" ; Echo "" ; Echo "
Imprimer :  ".affichage_pourcentages ($id_classe, $periode, 102)."
" ; Echo "" ; Echo "" ; // Liste des matieres avec option d'impression (obligatoire (forcage non impression), option (forcee ou si appartient), groupe (forcee ou si appartient)) // Classement ou pas $resultat = SQL_commande ("SELECT classement FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; $res = SQL_ligne_suivante ($resultat) ; // Tableau des disciplines et nom prof pour la discipline avec coefficient $ok_classement = 0 ; // Alias ? $alias = SQL_commande ("SELECT DISTINCT s.id_service_prof,g.id_utilisateur FROM services_prof s,groupes_alias g WHERE s.professeur<0 AND s.classe='".$id_classe."' AND s.millesime='".$millesime."' AND g.id_alias=-s.professeur AND g.code=1 AND g.numero=1 AND g.id_utilisateur>0", $id_sql) ; $nbr_alias = SQL_nbr_lignes ($alias) ; $req_sup = "" ; If ($nbr_alias > 0) { $table_sup = ",groupes_alias g" ; $req_sup = " OR " ; For ($i = 0 ; $i < $nbr_alias ; $i++) { $lk = SQL_ligne_suivante ($alias) ; If ($i > 0) { $req_sup .= " OR " ; } $req_sup .= "(p.id_service_prof='".$lk [0]."' AND p.service_classe=s.id_service_classe AND s.discipline=d.id_discipline AND u.id_utilisateur='".$lk [1]."'" ; If ($res [0] == 1) { $req_sup .= " AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe" ; } $req_sup .= ")" ; } } If ($res [0] == 1) { // Si classement /* $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur FROM disciplines d,services_classe s,services_prof p,utilisateurs u,classement c,groupes_alias g WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe) OR (p.professeur<0 AND g.id_alias=-p.professeur AND g.id_service_classe=p.service_classe AND g.id_utilisateur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND s.id_service_classe=c.id_service_classe AND s.discipline=d.id_discipline AND g.numero='1') ORDER BY c.numero", $id_sql) ; */ $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur FROM disciplines d,services_classe s,services_prof p,utilisateurs u,classement c".$table_sup." WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe) ".$req_sup." ORDER BY c.numero", $id_sql) ; $res [0] = SQL_nbr_lignes ($resultat_disc) ; $ok_classement = 1 ; } If ($res [0] == 0) { // Si pas de classement ou classement vide /* $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur FROM disciplines d,services_classe s,services_prof p,utilisateurs u,groupes_alias g WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur) OR (p.professeur<0 AND g.id_alias=-p.professeur AND g.id_service_classe=p.service_classe AND s.classe='".$id_classe."' AND g.id_utilisateur=u.id_utilisateur AND p.service_classe=s.id_service_classe AND s.discipline=d.id_discipline AND g.numero='1') ORDER BY d.nom_long,d.nom_court,d.nom_bref", $id_sql) ; */ $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur FROM disciplines d,services_classe s,services_prof p,utilisateurs u".$table_sup." WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur) ".$req_sup." ORDER BY d.nom_long,d.nom_court,d.nom_bref", $id_sql) ; } $nbr_disc = SQL_nbr_lignes ($resultat_disc) ; $ok_alias = 0 ; Echo "" ; Echo "" ; // Forcage de l'impression de 1 ou 2 bulletins pour responsables $imp_un_bulletin = restaure_configuration ("SYSTEME_PARAM", "IMP_UN_BULLETIN_".$id_utilisateur, $id_classe) ; If ($imp_un_bulletin == "") { sauvegarde_configuration ("SYSTEME_PARAM", "IMP_UN_BULLETIN_".$id_utilisateur, $id_classe, 1) ; $imp_un_bulletin = 1 ; } Echo "" ; // Forcage pour recalculer toutes les moyennes $force_calcul = restaure_configuration ("SYSTEME_PARAM", "FORCAGE_CALCUL_BULLETIN_".$id_utilisateur, $id_classe) ; If ($force_calcul == "") { sauvegarde_configuration ("SYSTEME_PARAM", "FORCAGE_CALCUL_BULLETIN_".$id_utilisateur, $id_classe, 0) ; $force_calcul = 0 ; } Echo "" ; // Forcage pour imprimer toute la liste des enseignants d'un alias /* If ($ok_alias == 1) { $force_alias = restaure_configuration ("SYSTEME_PARAM", "FORCAGE_ALIAS_LISTE_".$id_utilisateur, $id_classe) ; If ($force_alias == "") { sauvegarde_configuration ("SYSTEME_PARAM", "FORCAGE_ALIAS_LISTE_".$id_utilisateur, $id_classe, 0) ; $force_alias = 0 ; } Echo "" ; } */ // Mode d'impression : Reunion des appreciations ou colonnes differentes $id_etablissement = id_etablissement_par_id_classe ($id_classe, $millesime) ; $nbr_col = restaure_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NBR_COLONNES") ; $nbr_car = restaure_configuration ("SYSTEME_PARAM", "SAISIE_APPRECIATIONS_".$id_etablissement, "TAILLE") ; If (($nbr_car == "") Or ($nbr_car == 0)) { If (IsSet ($nbr_car_max_saisie_appreciations) And ($nbr_car_max_saisie_appreciations > 0)) { sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_APPRECIATIONS_".$id_etablissement, "TAILLE", $nbr_car_max_saisie_appreciations) ; $nbr_car = $nbr_car_max_saisie_appreciations ; } Else { sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_APPRECIATIONS_".$id_etablissement, "TAILLE", 230) ; $nbr_car = 230 ; } } If (($nbr_col == "") Or ($nbr_col == 0)) { sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NBR_COLONNES", 1) ; $nbr_col = 1 ; sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NOM_COLONNE_1", "Appréciations") ; sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "TAILLE_COLONNE_1", $nbr_car) ; } If ($nbr_col > 1) { Echo "" ; $mode_imp = restaure_configuration ("SYSTEME_PARAM", "IMP_COLONNES_".$id_utilisateur, $id_classe) ; If ($mode_imp == "") { sauvegarde_configuration ("SYSTEME_PARAM", "IMP_COLONNES_".$id_utilisateur, $id_classe, 0) ; $mode_imp = 0 ; } Echo "" ; $fusion_imp = restaure_configuration ("SYSTEME_PARAM", "FUSION_COLONNES_".$id_utilisateur, $id_classe) ; If ($fusion_imp == "") { sauvegarde_configuration ("SYSTEME_PARAM", "FUSION_COLONNES_".$id_utilisateur, $id_classe, 0) ; $fusion_imp = 0 ; } Echo "" ; Echo "" ; Echo "" ; Echo "" ; } Else { Echo "" ; } Echo "" ; Echo "
 
" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; For ($i = 0 ; $i < $nbr_disc ; $i++) { $d = SQL_ligne_suivante ($resultat_disc) ; $active = restaure_configuration ("SYSTEME_PARAM", "IMP_BULLETINS_".$id_utilisateur, $id_classe."_".$d [6]) ; If (($active == "") Or ($active == 0)) { sauvegarde_configuration ("SYSTEME_PARAM", "IMP_BULLETINS_".$id_utilisateur, $id_classe."_".$d [6], 1) ; $active = 1 ; } Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo etat_service_prof ($id_classe, $periode, $d [6], 2) ; Echo "" ; } Echo "
   Type  d'impression  Matières  État 
 À enlever  Si noté  Normale  À forcer  Nbr note(s)  Appréciation(s) 
 ".($i+1)."  ".filtrage_utf8 ($d [0]." (".$d [1]).")  " ; If ($d [13] < 0) { // Alias Echo "Équipe d'enseignants : 
" ; $t = alias_liste_enseignants (-$d [13]) ; For ($j = 1 ; $j <= $t [0][0] ; $j++) { If ($j > 1) { Echo ", " ; } If ($t [$j][0] == 1) { Echo "" ; } Echo $t [$j][3]." ".$t [$j][4] ; If ($t [$j][0] == 1) { Echo "" ; } } $ok_alias = 1 ; } Else { Echo filtrage_utf8 ($d [10]." ".$d [11]) ; } Echo " 
 
Génération d'un seul bulletin pour le responsable principal. 
Recalculer toutes les moyennes (peut-être beaucoup plus long). 
Imprimer le nom de tous les eneseignants si la discipline est enseignée en équipe. 
 
Regroupement de toutes les colonnes ci-dessous en une seule sur le bulletin. 
Imprimer que les colonnes comportant des appréciations en éliminant les colonnes vides. 
 
" ; Echo "" ; $ligne1 = "" ; $ligne2 = "" ; For ($j = 1 ; $j <= $nbr_col ; $j++) { $colonne [$j] = restaure_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NOM_COLONNE_".$j) ; $taille [$j] = restaure_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "TAILLE_COLONNE_".$j) ; If (($taille [$j] == "") Or ($taille [$j] == 0)) { sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "TAILLE_COLONNE_".$j, Round ($nbr_car/$nbr_col)) ; $taille [$j] = Round ($nbr_car/$nbr_col) ; } $ligne1 .= "".$ligne2."
 Nom de la colonne : 
 Nombre de caractères : " ; $ligne2 .= "" ; } Echo $ligne1."
 
" ; Echo "
" ; Exit ; } ElseIf ($titre == -2) { $nbr_disc = var_courante ("nbr_disc", 0, 0) ; For ($i = 0 ; $i < $nbr_disc ; $i++) { $sp = var_courante ("sp_".$i, 0, 0) ; $active = var_courante ("dsc_".$id_classe."_".$sp, 0, 0) ; sauvegarde_configuration ("SYSTEME_PARAM", "IMP_BULLETINS_".$id_utilisateur, $id_classe."_".$sp, $active) ; } $imp_un_bulletin = var_courante ("imp_un_bulletin", 0, 0) ; sauvegarde_configuration ("SYSTEME_PARAM", "IMP_UN_BULLETIN_".$id_utilisateur, $id_classe, $imp_un_bulletin) ; $mode_imp = var_courante ("mode_imp", 0, 0) ; sauvegarde_configuration ("SYSTEME_PARAM", "IMP_COLONNES_".$id_utilisateur, $id_classe, $mode_imp) ; $fusion_imp = var_courante ("fusion_imp", 0, 0) ; sauvegarde_configuration ("SYSTEME_PARAM", "FUSION_COLONNES_".$id_utilisateur, $id_classe, $fusion_imp) ; $force_calcul = var_courante ("force_calcul", 0, 0) ; sauvegarde_configuration ("SYSTEME_PARAM", "FORCAGE_CALCUL_BULLETIN_".$id_utilisateur, $id_classe, $force_calcul) ; $force_alias = var_courante ("force_alias", 0, 0) ; sauvegarde_configuration ("SYSTEME_PARAM", "FORCAGE_ALIAS_LISTE_".$id_utilisateur, $id_classe, $force_alias) ; // Procedure d'appel du calcul du PDF Echo "" ; Echo "Garennes." ; Echo "" ; Echo "" ; Echo "\n" ; Echo "
Création des bulletins pour impression.
Calcul en cours... Veuillez patienter S.V.P.

MERCI !
" ; Echo "" ; Echo "
" ; Echo affichage_pourcentages ($id_classe, $periode, 2) ; Echo "" ; Exit ; } // Verification si le module absences est actif //$id_utilisateur = utilparcode ($_SESSION ["code"]) ; $ok = SQL_commande ("SELECT id_type_module FROM types_modules WHERE menu='abs_menus' AND actif='1' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($ok) == 1) { If (File_Exists ($_SESSION ["repertoire_config"]."/module_absences.cfg") And File_Exists ($_SESSION ["repertoire_config"]."/module_absences.php")) { $module_absences = 1 ; Include ($_SESSION ["repertoire_config"]."/module_absences.cfg") ; Include ($_SESSION ["repertoire_config"]."/module_absences.php") ; If(!IsSet ($unite_comptabilisation)) { $unite_comptabilisation = 1 ; } } Else { $module_absences = 0 ; $unite_comptabilisation = 1 ; } } Else { $module_absences = 0 ; $unite_comptabilisation = 1 ; } Include ($_SESSION ["repertoire_config"]."/phppdflib.class.php") ; // Definition des coefficients $echelle_x = 28.346 ; // Passage cm -> pixels $echelle_y = 28.346 ; // Coordonnees en partant du bas gauche de la page en cm $largeur = 21 ; $hauteur = 29.7 ; $marge_gauche = 0.8 ; $marge_droite = 0.8 ; $marge_haut = 1 ; $marge_bas = 1 ; // Pliage $trait_debut_gauche = 0.2 ; $trait_fin_gauche = $marge_gauche-0.1 ; $nombre_disciplines = 15 ; // Nombre de disciplines avec les cadres administratifs $nbr_max_disciplines = 19 ; // Nombre max de disciplines sans cadres administratifs // Options d'impression $id_etablissement = id_etablissement_par_id_classe ($id_classe, $millesime) ; $cadre_adresse = restaure_configuration ("SYSTEME_PARAM","BULLETINS","ADRESSE_".$id_etablissement."_".$id_classe) ; If ($cadre_adresse == "") { $cadre_adresse = restaure_configuration ("SYSTEME_PARAM","BULLETINS","ADRESSE_".$id_etablissement) ; If ($cadre_adresse == "") { sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","ADRESSE_".$id_etablissement,1) ; $cadre_adresse = 1 ; } } $date_naissance_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","DATE_NAISSANCE_".$id_etablissement."_".$id_classe) ; If ($date_naissance_eleve == "") { $date_naissance_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","DATE_NAISSANCE_".$id_etablissement) ; If ($date_naissance_eleve == "") { sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","DATE_NAISSANCE_".$id_etablissement,1) ; $date_naissance_eleve = 1 ; } } $classe_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","CLASSE_".$id_etablissement."_".$id_classe) ; If ($classe_eleve == "") { $classe_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","CLASSE_".$id_etablissement) ; If ($classe_eleve == "") { sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","CLASSE_".$id_etablissement,1) ; $classe_eleve = 1 ; } } $effectif_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","EFFECTIF_".$id_etablissement."_".$id_classe) ; If ($effectif_eleve == "") { $effectif_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","EFFECTIF_".$id_etablissement) ; If ($effectif_eleve == "") { sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","EFFECTIF_".$id_etablissement,1) ; $effectif_eleve = 1 ; } } $redoublement_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","REDOUBLEMENT_".$id_etablissement."_".$id_classe) ; If ($redoublement_eleve == "") { $redoublement_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","REDOUBLEMENT_".$id_etablissement) ; If ($redoublement_eleve == "") { sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","REDOUBLEMENT_".$id_etablissement,1) ; $redoublement_eleve = 1 ; } } $ine_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","INE_".$id_etablissement."_".$id_classe) ; If ($ine_eleve == "") { $ine_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","INE_".$id_etablissement) ; If ($ine_eleve == "") { sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","INE_".$id_etablissement,1) ; $ine_eleve = 1 ; } } // ------------------------------------------------------------------------ // CADRE PERIODE // ------------------------------------------------------------------------ // Parametres $cadre_periode [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_periode [1][0] = $marge_gauche ; // Debut cadre X $cadre_periode [1][1] = $hauteur-$marge_haut ; // Debut cadre Y $cadre_periode [1][2] = $largeur-$marge_droite ; // Fin cadre X $cadre_periode [1][3] = $cadre_periode [1][1]-0.5 ; // Fin cadre Y $cadre_periode [1][4] = 1 ; // Largeur trace $cadre_periode [1][5] = 0 ; // Couleur rouge $cadre_periode [1][6] = 0 ; // Couleur verte $cadre_periode [1][7] = 0 ; // Couleur bleu // Nom periode $cadre_periode [2][0] = $cadre_periode [1][0]+0.1 ; // Debut PERIODE X $cadre_periode [2][1] = $cadre_periode [1][1]-0.4 ; // Debut PERIODE Y $cadre_periode [2][2] = "Helvetica-Bold" ; // Police PERIODE $cadre_periode [2][3] = "12" ; // Taille PERIODE $cadre_periode [2][4] = 0 ; // Couleur rouge $cadre_periode [2][5] = 0 ; // Couleur verte $cadre_periode [2][6] = 0 ; // Couleur bleu $cadre_periode [2][7] = Floor (($cadre_periode [1][2]-$cadre_periode [1][0]-0.2)*$echelle_x/6) ; // Nombre caracteres // ------------------------------------------------------------------------ // CADRE ETABLISSEMENT // ------------------------------------------------------------------------ // Parametres $cadre_etab [0][0] = 0 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_etab [1][0] = $marge_gauche ; // Debut cadre X $cadre_etab [1][1] = $cadre_periode [1][3]-0.05 ; // Debut cadre Y $hauteur-$marge_haut-0.6 ; // Debut cadre Y $cadre_etab [1][2] = $cadre_etab [1][0]+8.114 ; // Fin cadre X $cadre_etab [1][3] = $cadre_etab [1][1]-6.25 ; // Fin cadre Y // Nom $cadre_etab [2][0] = $cadre_etab [1][0]+0.05 ; // Debut NOM X $cadre_etab [2][1] = $cadre_etab [1][1] ; // Debut NOM Y $cadre_etab [2][2] = "Helvetica-Bold" ; // Police NOM $cadre_etab [2][3] = "12" ; // Taille NOM $cadre_etab [2][4] = 0 ; // Couleur rouge $cadre_etab [2][5] = 0 ; // Couleur verte $cadre_etab [2][6] = 0 ; // Couleur bleu $cadre_etab [2][8] = $cadre_etab [1][2] ; // Fin NOM X $cadre_etab [2][9] = $cadre_etab [2][1]-1 ; // Fin NOM Y // Adresse $cadre_etab [3][0] = $cadre_etab [1][0]+0.05 ; // Debut ADRESSE X $cadre_etab [3][1] = $cadre_etab [2][9]-0.5 ; // Debut ADRESSE Y $cadre_etab [3][2] = "Helvetica" ; // Police ADRESSE $cadre_etab [3][3] = "10" ; // Taille ADRESSE $cadre_etab [3][4] = 0 ; // Couleur rouge $cadre_etab [3][5] = 0 ; // Couleur verte $cadre_etab [3][6] = 0 ; // Couleur bleu // CP+Ville $cadre_etab [4][0] = $cadre_etab [1][0]+0.05 ; // Debut CP+VILLE X $cadre_etab [4][1] = $cadre_etab [3][1]-0.5 ; // Debut CP+VILLE Y $cadre_etab [4][2] = "Helvetica" ; // Police CP+VILLE $cadre_etab [4][3] = "10" ; // Taille CP+VILLE $cadre_etab [4][4] = 0 ; // Couleur rouge $cadre_etab [4][5] = 0 ; // Couleur verte $cadre_etab [4][6] = 0 ; // Couleur bleu // Telephone $cadre_etab [5][0] = $cadre_etab [1][0]+0.05 ; // Debut TELEPHONE X $cadre_etab [5][1] = $cadre_etab [4][1]-1 ; // Debut TELEPHONE Y $cadre_etab [5][2] = "Helvetica-Bold" ; // Police TELEPHONE $cadre_etab [5][3] = "10" ; // Taille TELEPHONE $cadre_etab [5][4] = 0 ; // Couleur rouge $cadre_etab [5][5] = 0 ; // Couleur verte $cadre_etab [5][6] = 0 ; // Couleur bleu // Fax $cadre_etab [6][0] = $cadre_etab [1][0]+0.05 ; // Debut FAX X $cadre_etab [6][1] = $cadre_etab [5][1]-0.5 ; // Debut FAX Y $cadre_etab [6][2] = "Helvetica-Bold" ; // Police FAX $cadre_etab [6][3] = "10" ; // Taille FAX $cadre_etab [6][4] = 0 ; // Couleur rouge $cadre_etab [6][5] = 0 ; // Couleur verte $cadre_etab [6][6] = 0 ; // Couleur bleu // Mel $cadre_etab [7][0] = $cadre_etab [1][0]+0.05 ; // Debut MEL X $cadre_etab [7][1] = $cadre_etab [6][1]-0.5 ; // Debut MEL Y $cadre_etab [7][2] = "Helvetica-Bold" ; // Police MEL $cadre_etab [7][3] = "10" ; // Taille MEL $cadre_etab [7][4] = 0 ; // Couleur rouge $cadre_etab [7][5] = 0 ; // Couleur verte $cadre_etab [7][6] = 0 ; // Couleur bleu // ------------------------------------------------------------------------ // CADRE ELEVE // ------------------------------------------------------------------------ // Parametres $cadre_eleve [0][0] = 0 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_eleve [1][0] = $cadre_etab [1][2]+0.1 ; // Debut cadre X $cadre_eleve [1][1] = $cadre_periode [1][3]-0.05 ; // Debut cadre Y $cadre_eleve [1][2] = $largeur-$marge_droite ; // Fin cadre X $cadre_eleve [1][3] = $cadre_eleve [1][1]-2.65 ; // Fin cadre Y $cadre_etab [2][7] = Floor (($cadre_etab [1][2]-$cadre_eleve [1][0]-0.1)*$echelle_x/6) ; // Nombre caracteres $cadre_eleve [1][4] = 1 ; // Largeur trace $cadre_eleve [1][5] = 0 ; // Couleur rouge $cadre_eleve [1][6] = 0 ; // Couleur verte $cadre_eleve [1][7] = 0 ; // Couleur bleu // Photo $cadre_eleve [2][0] = $cadre_eleve [1][2]-2 ; // Debut photo X $cadre_eleve [2][1] = $cadre_eleve [1][1] ; // Debut photo Y $cadre_eleve [2][2] = $cadre_eleve [1][2] ; // Fin photo X $cadre_eleve [2][3] = $cadre_eleve [1][3] ; // Fin photo Y $cadre_eleve [2][4] = $cadre_eleve [2][2]-$cadre_eleve [2][0] ; // Taille photo X $cadre_eleve [2][5] = $cadre_eleve [2][1]-$cadre_eleve [2][3] ; // Taille photo Y // Nom $cadre_eleve [3][0] = $cadre_eleve [1][0]+0.1 ; // Debut NOM X $cadre_eleve [3][1] = $cadre_eleve [1][1]-0.5 ; // Debut NOM Y $cadre_eleve [3][2] = "Helvetica-Bold" ; // Police NOM $cadre_eleve [3][3] = "12" ; // Taille NOM $cadre_eleve [3][4] = 0 ; // Couleur rouge $cadre_eleve [3][5] = 0 ; // Couleur verte $cadre_eleve [3][6] = 0 ; // Couleur bleu $cadre_eleve [3][7] = Floor (($cadre_eleve [2][0]-$cadre_eleve [1][0]-0.2)*$echelle_x/6) ; // Nombre caracteres $y_el = $cadre_eleve [3][1] ; // Date de naissance $cadre_eleve [4][0] = $cadre_eleve [1][0]+1 ; // Debut DATE NAISSANCE X $cadre_eleve [4][1] = $y_el-0.5 ; // Debut DATE NAISSANCE Y If ($date_naissance_eleve == 1) { $y_el = $cadre_eleve [4][1] ; } $cadre_eleve [4][2] = "Helvetica" ; // Police DATE NAISSANCE $cadre_eleve [4][3] = "8" ; // Taille DATE NAISSANCE $cadre_eleve [4][4] = 0 ; // Couleur rouge $cadre_eleve [4][5] = 0 ; // Couleur verte $cadre_eleve [4][6] = 0 ; // Couleur bleu // Classe $cadre_eleve [5][0] = $cadre_eleve [1][0]+1 ; // Debut CLASSE X $cadre_eleve [5][1] = $y_el-0.4 ; // Debut CLASSE Y If ($classe_eleve == 1) { $y_el = $cadre_eleve [5][1] ; } $cadre_eleve [5][2] = "Helvetica" ; // Police CLASSE $cadre_eleve [5][3] = "8" ; // Taille CLASSE $cadre_eleve [5][4] = 0 ; // Couleur rouge $cadre_eleve [5][5] = 0 ; // Couleur verte $cadre_eleve [5][6] = 0 ; // Couleur bleu // Effectif $cadre_eleve [6][0] = $cadre_eleve [1][0]+1 ; // Debut EFFECTIF X $cadre_eleve [6][1] = $y_el-0.4 ; // Debut EFFECTIF Y If ($effectif_eleve == 1) { $y_el = $cadre_eleve [6][1] ; } $cadre_eleve [6][2] = "Helvetica" ; // Police EFFECTIF $cadre_eleve [6][3] = "8" ; // Taille EFFECTIF $cadre_eleve [6][4] = 0 ; // Couleur rouge $cadre_eleve [6][5] = 0 ; // Couleur verte $cadre_eleve [6][6] = 0 ; // Couleur bleu // Redoublant $cadre_eleve [7][0] = $cadre_eleve [1][0]+1 ; // Debut REDOUBLANT X $cadre_eleve [7][1] = $y_el-0.4 ; // Debut REDOUBLANT Y If ($redoublement_eleve == 1) { $y_el = $cadre_eleve [7][1] ; } $cadre_eleve [7][2] = "Helvetica" ; // Police REDOUBLANT $cadre_eleve [7][3] = "8" ; // Taille REDOUBLANT $cadre_eleve [7][4] = 0 ; // Couleur rouge $cadre_eleve [7][5] = 0 ; // Couleur verte $cadre_eleve [7][6] = 0 ; // Couleur bleu // INE $cadre_eleve [8][0] = $cadre_eleve [1][0]+1 ; // Debut INE X $cadre_eleve [8][1] = $y_el-0.4 ; // Debut INE Y If ($ine_eleve == 1) { $y_el = $cadre_eleve [8][1] ; } $cadre_eleve [8][2] = "Helvetica" ; // Police INE $cadre_eleve [8][3] = "8" ; // Taille INE $cadre_eleve [8][4] = 0 ; // Couleur rouge $cadre_eleve [8][5] = 0 ; // Couleur verte $cadre_eleve [8][6] = 0 ; // Couleur bleu // ------------------------------------------------------------------------ // CADRE PARENTS // ------------------------------------------------------------------------ // Parametres $cadre_parents [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_parents [1][0] = $cadre_etab [1][2]+0.1 ; // Debut cadre X $cadre_parents [1][1] = $cadre_eleve [1][3]-0.05 ; // Debut cadre Y $cadre_parents [1][2] = $largeur-$marge_droite ; // Fin cadre X $cadre_parents [1][3] = $cadre_parents [1][1]-3.4 ; // Fin cadre Y $cadre_etab [1][4] = $cadre_parents [1][3]-0.25 ; // Position Y de l'image $cadre_parents [1][4] = 1 ; // Largeur trace $cadre_parents [1][5] = 0 ; // Couleur rouge $cadre_parents [1][6] = 0 ; // Couleur verte $cadre_parents [1][7] = 0 ; // Couleur bleu // Nom $cadre_parents [2][0] = 10 ; // Debut NOM X $cadre_parents [2][1] = $cadre_parents [1][1]-1.2 ; // Debut NOM Y 24.4 $cadre_parents [2][2] = "Helvetica-Bold" ; // Police NOM $cadre_parents [2][3] = "12" ; // Taille NOM $cadre_parents [2][4] = 0 ; // Couleur rouge $cadre_parents [2][5] = 0 ; // Couleur verte $cadre_parents [2][6] = 0 ; // Couleur bleu // Adresse $cadre_parents [3][0] = $cadre_parents [2][0] ; // Debut ADRESSE 1 X $cadre_parents [3][1] = $cadre_parents [2][1]-0.5 ; // Debut ADRESSE 1 Y $cadre_parents [3][2] = $cadre_parents [2][0] ; // Debut ADRESSE 2 X $cadre_parents [3][3] = $cadre_parents [3][1]-0.5 ; // Debut ADRESSE 2 Y $cadre_parents [3][4] = "Helvetica" ; // Police ADRESSES $cadre_parents [3][5] = "12" ; // Taille ADRESSES $cadre_parents [3][6] = 0 ; // Couleur rouge $cadre_parents [3][7] = 0 ; // Couleur verte $cadre_parents [3][8] = 0 ; // Couleur bleu // CP+Ville $cadre_parents [4][0] = $cadre_parents [2][0] ; // Debut CP+VILLE X $cadre_parents [4][1] = $cadre_parents [3][3]-0.5 ; // Debut CP+VILLE Y $cadre_parents [4][2] = "Helvetica" ; // Police CP+VILLE $cadre_parents [4][3] = "12" ; // Taille CP+VILLE $cadre_parents [4][4] = 0 ; // Couleur rouge $cadre_parents [4][5] = 0 ; // Couleur verte $cadre_parents [4][6] = 0 ; // Couleur bleu // ------------------------------------------------------------------------ // CADRE ENTETE MATIERES // ------------------------------------------------------------------------ // Parametres $cadre_mat [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) $cadre_mat [0][1] = 4 ; // Premiere partie : Matieres/Professeurs $cadre_mat [0][2] = 5 ; // Deuxieme partie : Moyenne eleve $cadre_mat [0][3] = 6 ; // Troisieme partie : Moy/Min/Max classe $cadre_mat [0][4] = 7 ; // Quatrieme partie (et derniere) : Appreciations // Cadre $cadre_mat [1][0] = $marge_gauche ; // Debut cadre X $cadre_mat [1][1] = $largeur-$marge_droite ; // Fin cadre X $cadre_mat [1][2] = 0.7 ; // hauteur entete matiere $cadre_mat [1][3] = 1.3 ; // hauteur matiere // Largeur Matieres/Professeurs $cadre_mat [1][4] = 5.5 ; // Largeur Moyenne eleve $cadre_mat [1][5] = 1 ; // Largeur Moy/Min/Max classe $cadre_mat [1][6] = 0.8 ; // Largeur Appreciations/Professeur pincipal $cadre_mat [1][7] = $cadre_mat [1][1]-$cadre_mat [1][0]-$cadre_mat [1][4]-$cadre_mat [1][5]-3*$cadre_mat [1][6] ; $cadre_mat [1][8] = Floor (($cadre_mat [1][7]-0.1)*$echelle_x/6) ; // Nombre caracteres // Hauteur notes examens blanc $cadre_mat [1][9] = 0.3 ; // Hauteur en plus // Couleurs $cadre_mat [2][0] = 1 ; // Largeur trace $cadre_mat [2][1] = 0 ; // Couleur rouge $cadre_mat [2][2] = 0 ; // Couleur verte $cadre_mat [2][3] = 0 ; // Couleur bleu // Def texte Matieres/Professeurs // Entete $cadre_mat [3][0] = "Helvetica-Bold" ; // Police Matiere $cadre_mat [3][1] = "8" ; // Taille $cadre_mat [3][2] = "Helvetica-Oblique" ; // Police Prof $cadre_mat [3][3] = "8" ; // Taille // Matiere $cadre_mat [3][4] = "Helvetica-Bold" ; // Police Matiere $cadre_mat [3][5] = "7" ; // Taille $cadre_mat [3][6] = "Helvetica-Oblique" ; // Police Prof $cadre_mat [3][7] = "8" ; // Taille // Def texte Moyenne eleve // Entete $cadre_mat [4][0] = "Helvetica" ; // Police $cadre_mat [4][1] = "8" ; // Taille // Matiere $cadre_mat [4][2] = "Helvetica-Bold" ; // Police $cadre_mat [4][3] = "8" ; // Taille // Def texte Moy/Min/Max Classe // Entete $cadre_mat [5][0] = "Helvetica" ; // Police $cadre_mat [5][1] = "8" ; // Taille // Matiere $cadre_mat [5][2] = "Helvetica" ; // Police $cadre_mat [5][3] = "7" ; // Taille // Def texte Appreciations/Professeur pincipal // Entete $cadre_mat [6][0] = "Helvetica-Bold" ; // Police Appreciations $cadre_mat [6][1] = "8" ; // Taille $cadre_mat [6][2] = "Helvetica" ; // Police Prof principal $cadre_mat [6][3] = "8" ; // Taille // Matiere $cadre_mat [6][4] = "Helvetica" ; // Police Appreciations $cadre_mat [6][5] = "8" ; // Taille // Examen blanc $cadre_mat [6][6] = "Helvetica" ; // Police Notes Examen blanc $cadre_mat [6][7] = "8" ; // Taille // ------------------------------------------------------------------------ // CADRE MOYENNE GENERAL // ------------------------------------------------------------------------ // Parametres $cadre_moy_gen [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) If (($cadre_mat [0][2] == 5) And ($cadre_mat [0][3] == 6)) { // Largeur Moyenne periodique/Moyenne coefficientee $cadre_moy_gen [1][4] = $cadre_mat [1][4] ; // Largeur Moyenne eleve $cadre_moy_gen [1][5] = $cadre_mat [1][5] ; // Largeur Moy/Min/Max classe $cadre_moy_gen [1][6] = $cadre_mat [1][6] ; // Cadre $cadre_moy_gen [1][0] = $marge_gauche ; // Debut cadre X $cadre_moy_gen [1][1] = $marge_gauche+$cadre_moy_gen [1][4]+3*$cadre_moy_gen [1][6]+$cadre_moy_gen [1][5] ; // Fin cadre X $cadre_moy_gen [1][2] = 0.70 ; // Hauteur moyenne non coefficientee $cadre_moy_gen [1][3] = 0.35 ; // Hauteur moyenne coefficientee } Else { // Largeur Moyenne periodique/Moyenne coefficientee $cadre_moy_gen [1][4] = 4.5 ; // Largeur Moyenne eleve $cadre_moy_gen [1][5] = $cadre_mat [1][5] ; // Largeur Moy/Min/Max classe $cadre_moy_gen [1][6] = $cadre_mat [1][6] ; // Cadre $cadre_moy_gen [1][0] = $largeur-$marge_droite-$cadre_moy_gen [1][4]-$cadre_moy_gen [1][5]-3*$cadre_moy_gen [1][6] ; // Debut cadre X $cadre_moy_gen [1][1] = $largeur-$marge_droite ; // Fin cadre X $cadre_moy_gen [1][2] = 0.70 ; // Hauteur moyenne non coefficientee $cadre_moy_gen [1][3] = 0.35 ; // Hauteur moyenne coefficientee } // Couleurs $cadre_moy_gen [2][0] = 1 ; // Largeur trace $cadre_moy_gen [2][1] = 0 ; // Couleur rouge $cadre_moy_gen [2][2] = 0 ; // Couleur verte $cadre_moy_gen [2][3] = 0 ; // Couleur bleu // Def texte Moyenne periodique/Moyenne coefficientee $cadre_moy_gen [3][0] = "Helvetica" ; // Police Moyennes $cadre_moy_gen [3][1] = "8" ; // Taille $cadre_moy_gen [3][2] = "Helvetica" ; // Police Coefficientee $cadre_moy_gen [3][3] = "8" ; // Taille // Def texte Moyenne eleve $cadre_moy_gen [4][0] = "Helvetica-Bold" ; // Police $cadre_moy_gen [4][1] = "7" ; // Taille // Def texte Moy/Min/Max Classe $cadre_moy_gen [5][0] = "Helvetica" ; // Police $cadre_moy_gen [5][1] = "7" ; // Taille // ------------------------------------------------------------------------ // CADRE VIE SCOLAIRE/CPE // ------------------------------------------------------------------------ // Parametres $cadre_cpe [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_cpe [1][0] = $marge_gauche ; // Debut cadre X $cadre_cpe [1][1] = $largeur-$marge_droite ; // Fin cadre X $cadre_cpe [1][2] = 1 ; // Hauteur CPE // Couleurs $cadre_cpe [2][0] = 1 ; // Largeur trace $cadre_cpe [2][1] = 0 ; // Couleur rouge $cadre_cpe [2][2] = 0 ; // Couleur verte $cadre_cpe [2][3] = 0 ; // Couleur bleu $cadre_cpe [2][4] = "Helvetica-Bold" ; // Police Vie Scolaire $cadre_cpe [2][5] = "8" ; // Taille $cadre_cpe [2][6] = "Helvetica" ; // Police Texte vie scolaire $cadre_cpe [2][7] = "8" ; // Taille $cadre_cpe [2][8] = "Helvetica" ; // Police Ligne retards... $cadre_cpe [2][9] = "8" ; // Taille $cadre_cpe [2][10] = "Helvetica-Bold" ; // Police Observation $cadre_cpe [2][11] = "8" ; // Taille $cadre_cpe [2][12] = "Helvetica" ; // Police Texte observation $cadre_cpe [2][13] = "8" ; // Taille // ------------------------------------------------------------------------ // CADRE EQUIPE PEDAGOGIQUE // ------------------------------------------------------------------------ // Parametres $cadre_equipe_peda [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_equipe_peda [1][0] = $marge_gauche ; // Debut cadre X $cadre_equipe_peda [1][1] = $largeur-$marge_droite ; // Fin cadre X $cadre_equipe_peda [1][2] = 2.5 ; // Hauteur equipe peda // Couleurs $cadre_equipe_peda [2][0] = 1 ; // Largeur trace $cadre_equipe_peda [2][1] = 0 ; // Couleur rouge $cadre_equipe_peda [2][2] = 0 ; // Couleur verte $cadre_equipe_peda [2][3] = 0 ; // Couleur bleu $cadre_equipe_peda [2][4] = "Helvetica-Bold" ; // Police Appreciation equipe peda $cadre_equipe_peda [2][5] = "8" ; // Taille $cadre_equipe_peda [2][6] = "Helvetica" ; // Police signature $cadre_equipe_peda [2][7] = "8" ; // Taille // ------------------------------------------------------------------------ // BAS DE PAGE // ------------------------------------------------------------------------ // Bas de cadre $cadre_bas_page [1][0] = $marge_gauche ; // Debut bas X $cadre_bas_page [1][1] = $largeur-$marge_droite ; // Fin bas X $cadre_bas_page [1][2] = 0.2 ; // Hauteur bas de page // Couleurs $cadre_bas_page [2][0] = 1 ; // Largeur trace $cadre_bas_page [2][1] = 0 ; // Couleur rouge $cadre_bas_page [2][2] = 0 ; // Couleur verte $cadre_bas_page [2][3] = 0 ; // Couleur bleu $cadre_bas_page [2][4] = "Helvetica" ; // Police Texte gauche $cadre_bas_page [2][5] = "6" ; // Taille $cadre_bas_page [2][6] = "Helvetica" ; // Police Copyright droite $cadre_bas_page [2][7] = "6" ; // Taille $cadre_bas_page [2][8] = "Helvetica" ; // Police numero page $cadre_bas_page [2][9] = "6" ; // Taille /** * Renvoi l'ecart entre le texte contenant $nombre caracteres et le debut du texte sur un total de $total caracteres avec pour chacun des caracteres une taille de $taille * @param double $nombre * @param double $total * @param double $taille */ Function position ($nombre, $total, $taille) { $g = ($total - $nombre)/2 ; $c = $g * $taille ; Return $c ; } // ------------------------------------------------------------------------ // Fonction de trace des renseignements periode // ------------------------------------------------------------------------ Function entete_periode ($numero, $periode, $classe) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_periode, $id_sql, $millesime ; // Trace cadre periode If ($cadre_periode [0][0]) { $param ["width"] = $cadre_periode [1][4] ; $param ["red"] = $cadre_periode [1][5] ; $param ["green"] = $cadre_periode [1][6] ; $param ["blue"] = $cadre_periode [1][7] ; $pdf->Draw_Rectangle ($cadre_periode [1][3]*$echelle_y, $cadre_periode [1][2]*$echelle_x, $cadre_periode [1][1]*$echelle_y, $cadre_periode [1][0]*$echelle_x, $page [$numero], $param) ; } // Periode $param ["font"] = $cadre_periode [2][2] ; $param ["height"] = $cadre_periode [2][3] ; $param ["red"] = $cadre_periode [2][4] ; $param ["green"] = $cadre_periode [2][5] ; $param ["blue"] = $cadre_periode [2][6] ; $nom_p = nom_periode ($classe) ; $m = $millesime ; If ($periode == 1) { $nom_periode = "er" ; } Else { $nom_periode = "e" ; } $texte1 = "Bulletin de notes du ".$periode ; $texte2 = " ".$nom_p." de l'année scolaire ".$m."-".($m+1) ; $texte3 = $texte1.$nom_periode.$texte2 ; $pdf->Draw_Text ($cadre_periode [2][0]*$echelle_x+position (StrLen ($texte3), $cadre_periode [2][7], 6), $cadre_periode [2][1]*$echelle_y, $texte1, $page [$numero], $param) ; $pdf->Draw_Text ($cadre_periode [2][0]*$echelle_x+position (StrLen ($texte3), $cadre_periode [2][7], 6)+$pdf->StrLen ($texte1)+9, ($cadre_periode [2][1]+0.1)*$echelle_y, $nom_periode, $page [$numero], $param) ; $pdf->Draw_Text ($cadre_periode [2][0]*$echelle_x+position (StrLen ($texte3), $cadre_periode [2][7], 6)+$pdf->StrLen ($texte1)+$pdf->StrLen ($nom_periode)+9, $cadre_periode [2][1]*$echelle_y, $texte2, $page [$numero], $param) ; } // ------------------------------------------------------------------------ // Fonction de trace des renseignements eleve // ------------------------------------------------------------------------ Function entete_eleve ($numero, $eleve, $effectif) { Global $page, $pdf, $echelle_x, $echelle_y, $repertoire_racine, $cadre_eleve, $numero_rne, $separateur ; Global $date_naissance_eleve, $classe_eleve, $effectif_eleve, $redoublement_eleve, $ine_eleve ; // Trace cadre eleve If ($cadre_eleve [0][0]) { $param ["width"] = $cadre_eleve [1][4] ; $param ["red"] = $cadre_eleve [1][5] ; $param ["green"] = $cadre_eleve [1][6] ; $param ["blue"] = $cadre_eleve [1][7] ; $pdf->Draw_Rectangle ($cadre_eleve [1][3]*$echelle_y, $cadre_eleve [1][2]*$echelle_x, $cadre_eleve [1][1]*$echelle_y, $cadre_eleve [1][0]*$echelle_x, $page [$numero], $param) ; } // Mise en place de la photo If ($eleve ["photo"]) { //If (StrToUpper (SubStr (PHP_OS, 0, 3) == "WIN")) { $fiche = $repertoire_racine."\\images\\eleves\\".$numero_rne."\\".$eleve ["photo"] ; } $fiche = $repertoire_racine.$separateur."images".$separateur."eleves".$separateur.$numero_rne.$eleve ["photo"] ; If (File_Exists ($fiche)) { $fichier = FOpen ($fiche, "r") ; $fiche_data = FRead ($fichier, FileSize ($fiche)) ; FClose ($fichier) ; $image = $pdf->jfif_embed ($fiche_data) ; $taille = $pdf->Get_Image_Size ($image) ; //$ech_x = $cadre_eleve [2][4]*$echelle_x/$taille ["width"] ; If ($taille ["height"] > 0) { $echelle = ($cadre_eleve [2][5]*$echelle_y-2)/$taille ["height"] ; //If ($ech_x < $ech_y) { $echelle = $ech_x ; } //Else { $echelle = $ech_y ; } $pdf->image_place ($image, $cadre_eleve [2][3]*$echelle_y+1, $cadre_eleve [2][0]*$echelle_x, $page [$numero], $echelle, 0) ; } } } // Nom eleve $param ["font"] = $cadre_eleve [3][2] ; $param ["height"] = $cadre_eleve [3][3] ; $param ["red"] = $cadre_eleve [3][4] ; $param ["green"] = $cadre_eleve [3][5] ; $param ["blue"] = $cadre_eleve [3][6] ; If (StrPos ($eleve ["prenoms"], " ")) { $prenom = SubStr ($eleve ["prenoms"], 0, StrPos ($eleve ["prenoms"], " ")) ; } Else { $prenom = $eleve ["prenoms"] ; } $nom = filtrage_accents_maj (filtrage_utf8 ($eleve ["nom"])) ; $prenom = filtrage_accents_maj (filtrage_utf8 ($prenom)) ; $texte = StrToUpper ($nom." ".$prenom) ; $pdf->Draw_Text ($cadre_eleve [3][0]*$echelle_x+position (StrLen ($texte), $cadre_eleve [3][7], 6), $cadre_eleve [3][1]*$echelle_y, $texte, $page [$numero], $param) ; // Date de naissance If ($date_naissance_eleve == 1) { $param ["font"] = $cadre_eleve [4][2] ; $param ["height"] = $cadre_eleve [4][3] ; $param ["red"] = $cadre_eleve [4][4] ; $param ["green"] = $cadre_eleve [4][5] ; $param ["blue"] = $cadre_eleve [4][6] ; $texte = "Date de naissance : ".decode_date_3 ($eleve ["date_naissance"]) ; $pdf->Draw_Text ($cadre_eleve [4][0]*$echelle_x, $cadre_eleve [4][1]*$echelle_y, $texte, $page [$numero], $param) ; } // Classe If ($classe_eleve == 1) { $param ["font"] = $cadre_eleve [5][2] ; $param ["height"] = $cadre_eleve [5][3] ; $param ["red"] = $cadre_eleve [5][4] ; $param ["green"] = $cadre_eleve [5][5] ; $param ["blue"] = $cadre_eleve [5][6] ; $nom_classe = filtrage_utf8 (nom_classe_long_parid ($eleve ["classe"])) ; If (!$nom_classe) { $nom_classe = nom_classe_bref_parid ($eleve ["classe"]) ; } $texte = "Classe : ".$nom_classe ; $pdf->Draw_Text ($cadre_eleve [5][0]*$echelle_x, $cadre_eleve [5][1]*$echelle_y, $texte, $page [$numero], $param) ; } // Effectif If ($effectif_eleve == 1) { $param ["font"] = $cadre_eleve [6][2] ; $param ["height"] = $cadre_eleve [6][3] ; $param ["red"] = $cadre_eleve [6][4] ; $param ["green"] = $cadre_eleve [6][5] ; $param ["blue"] = $cadre_eleve [6][6] ; $texte = "Effectif de la classe : ".$effectif." élève" ; If ($effectif > 1) { $texte .= "s" ; } $pdf->Draw_Text ($cadre_eleve [6][0]*$echelle_x, $cadre_eleve [6][1]*$echelle_y, $texte, $page [$numero], $param) ; } // Redoublant If ($redoublement_eleve == 1) { $param ["font"] = $cadre_eleve [7][2] ; $param ["height"] = $cadre_eleve [7][3] ; $param ["red"] = $cadre_eleve [7][4] ; $param ["green"] = $cadre_eleve [7][5] ; $param ["blue"] = $cadre_eleve [7][6] ; $texte = "Redoublant" ; If ($eleve ["sexe"] == "F") { $texte .= "e" ; } $texte .= " : " ; If ($eleve ["redoublant"] == "O") { $texte .= "Oui" ; } Else { $texte .= "Non" ; } $pdf->Draw_Text ($cadre_eleve [7][0]*$echelle_x, $cadre_eleve [7][1]*$echelle_y, $texte, $page [$numero], $param) ; } // INE If ($ine_eleve == 1) { $param ["font"] = $cadre_eleve [8][2] ; $param ["height"] = $cadre_eleve [8][3] ; $param ["red"] = $cadre_eleve [8][4] ; $param ["green"] = $cadre_eleve [8][5] ; $param ["blue"] = $cadre_eleve [8][6] ; $texte = "INE : ".$eleve ["repere2"] ; $pdf->Draw_Text ($cadre_eleve [8][0]*$echelle_x, $cadre_eleve [8][1]*$echelle_y, $texte, $page [$numero], $param) ; } } // ------------------------------------------------------------------------ // Fonction de trace des renseignements parents : adresse... // ------------------------------------------------------------------------ Function entete_parents ($numero,$parents,$numero_parent) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_parents ; Switch ($numero_parent) { Case 1 : $np = "" ; Break ; Case 2 : $np = "_p2" ; Break ; Default : $np = "" ; Break ; } // Trace cadre parents If ($cadre_parents [0][0]) { $param ["width"] = $cadre_parents [1][4] ; $param ["red"] = $cadre_parents [1][5] ; $param ["green"] = $cadre_parents [1][6] ; $param ["blue"] = $cadre_parents [1][7] ; $pdf->Draw_Rectangle ($cadre_parents [1][3]*$echelle_y, $cadre_parents [1][2]*$echelle_x, $cadre_parents [1][1]*$echelle_y, $cadre_parents [1][0]*$echelle_x, $page [$numero], $param) ; } // Civilite+Nom+Prenom parents $param ["font"] = $cadre_parents [2][2] ; $param ["height"] = $cadre_parents [2][3] ; $param ["red"] = $cadre_parents [2][4] ; $param ["green"] = $cadre_parents [2][5] ; $param ["blue"] = $cadre_parents [2][6] ; $nom = filtrage_accents_maj (filtrage_utf8 ($parents ["nom_parents".$np])) ; $prenom = filtrage_accents_maj (filtrage_utf8 ($parents ["prenom_parents".$np])) ; $texte = filtrage_utf8 ($parents ["civilite_parents".$np])." ".StrToUpper ($nom." ".$prenom) ; $pdf->Draw_Text ($cadre_parents [2][0]*$echelle_x, $cadre_parents [2][1]*$echelle_y, $texte, $page [$numero], $param) ; // Adresse (1+2) $param ["font"] = $cadre_parents [3][4] ; $param ["height"] = $cadre_parents [3][5] ; $param ["red"] = $cadre_parents [3][6] ; $param ["green"] = $cadre_parents [3][7] ; $param ["blue"] = $cadre_parents [3][8] ; $pdf->Draw_Text ($cadre_parents [3][0]*$echelle_x, $cadre_parents [3][1]*$echelle_y, filtrage_utf8 ($parents ["adresse1".$np]), $page [$numero], $param) ; $pdf->Draw_Text ($cadre_parents [3][2]*$echelle_x, $cadre_parents [3][3]*$echelle_y, filtrage_utf8 ($parents ["adresse2".$np]), $page [$numero], $param) ; // CP + Ville $param ["font"] = $cadre_parents [4][2] ; $param ["height"] = $cadre_parents [4][3] ; $param ["red"] = $cadre_parents [4][4] ; $param ["green"] = $cadre_parents [4][5] ; $param ["blue"] = $cadre_parents [4][6] ; $texte = filtrage_utf8 ($parents ["cp".$np]." ".$parents ["ville".$np]) ; $pdf->Draw_Text ($cadre_parents [4][0]*$echelle_x, $cadre_parents [4][1]*$echelle_y, $texte, $page [$numero], $param) ; } // ------------------------------------------------------------------------ // Fonction de trace des renseignements etablissement : adresse... // ------------------------------------------------------------------------ Function entete_etablissement ($numero, $etab, $logo, $mode) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_etab, $repertoire_logos_bulletins_racine, $base_choisie ; If (StrToUpper (SubStr (PHP_OS, 0, 3) == "WIN")) { $fiche = $repertoire_logos_bulletins_racine."\\".$base_choisie."\\".$logo ; } Else { $fiche = $repertoire_logos_bulletins_racine."/".$base_choisie."/".$logo ; } If (File_Exists ($fiche) And (!Is_Dir ($file))) { // Lecture du logo $fi = @FOpen ($fiche, "r") ; If ($fi) { $fichier_image = @FRead ($fi, FileSize ($fiche)) ; @FClose ($fi) ; // Preparation de l'affichage $image = $pdf->JFIF_Embed ($fichier_image) ; // Taille de l'image $taille_image = $pdf->Get_Image_Size ($image) ; If (($taille_image ["width"] != 0) And ($taille_image ["height"] != 0)) { // Remise a l'echelle $tx = ($cadre_etab [1][2]-$cadre_etab [1][0])*$echelle_x ; //If ($mode == 1) { $ty = ($cadre_etab [1][1]-$cadre_etab [1][4])*$echelle_y ; } Else { $ty = ($cadre_etab [1][1]-$cadre_etab [7][1])*$echelle_y ; } $ty = ($cadre_etab [1][1]-$cadre_etab [1][4])*$echelle_y ; $px = $tx/$taille_image ["width"] ; $py = $ty/$taille_image ["height"] ; If ($px < $py) { $echelle_image = $px ; } Else { $echelle_image = $py ; } //$pos_x = ($tx-$taille_image ["width"]*$echelle_image)/2 ; If ($pos_x < 0) { $pos_x = 0 ; } //$pos_y = ($ty-$taille_image ["height"]*$echelle_image)/2 ; If ($pos_y < 0) { $pos_y = 0 ; } $pdf->Image_Place ($image, $cadre_etab [1][1]*$echelle_y-$taille_image ["height"]*$echelle_image, $cadre_etab [1][0]*$echelle_x, $page [$numero], $echelle_image) ; } } } If ($etab ["entete_bulletins"] == 0) { // Trace cadre etablissement If ($cadre_etab [0][0] > 0) { $param ["width"] = $cadre_etab [1][4] ; $param ["red"] = $cadre_etab [1][5] ; $param ["green"] = $cadre_etab [1][6] ; $param ["blue"] = $cadre_etab [1][7] ; $pdf->Draw_Rectangle ($cadre_etab [1][3]*$echelle_y, $cadre_etab [1][2]*$echelle_x, $cadre_etab [1][1]*$echelle_y, $cadre_etab [1][0]*$echelle_x, $page [$numero], $param) ; } // Denomination $param ["font"] = $cadre_etab [2][2] ; $param ["height"] = $cadre_etab [2][3] ; $param ["red"] = $cadre_etab [2][4] ; $param ["green"] = $cadre_etab [2][5] ; $param ["blue"] = $cadre_etab [2][6] ; $pdf->Draw_Paragraph ($cadre_etab [2][1]*$echelle_y, $cadre_etab [2][0]*$echelle_x, $cadre_etab [2][9]*$echelle_y, $cadre_etab [2][8]*$echelle_x, filtrage_utf8 ($etab ["nom"]), $page [$numero], $param) ; // Adresse $param ["font"] = $cadre_etab [3][2] ; $param ["height"] = $cadre_etab [3][3] ; $param ["red"] = $cadre_etab [3][4] ; $param ["green"] = $cadre_etab [3][5] ; $param ["blue"] = $cadre_etab [3][6] ; $pdf->Draw_Text ($cadre_etab [3][0]*$echelle_x, $cadre_etab [3][1]*$echelle_y, filtrage_utf8 ($etab ["adresse"]), $page [$numero], $param) ; // CP+Ville $param ["font"] = $cadre_etab [4][2] ; $param ["height"] = $cadre_etab [4][3] ; $param ["red"] = $cadre_etab [4][4] ; $param ["green"] = $cadre_etab [4][5] ; $param ["blue"] = $cadre_etab [4][6] ; $pdf->Draw_Text ($cadre_etab [4][0]*$echelle_x, $cadre_etab [4][1]*$echelle_y, filtrage_utf8 ($etab ["cp"]." ".$etab ["ville"]), $page [$numero], $param) ; // Telephone If ($etab ["telephone"]) { $param ["font"] = $cadre_etab [5][2] ; $param ["height"] = $cadre_etab [5][3] ; $param ["red"] = $cadre_etab [5][4] ; $param ["green"] = $cadre_etab [5][5] ; $param ["blue"] = $cadre_etab [5][6] ; $pdf->Draw_Text ($cadre_etab [5][0]*$echelle_x, $cadre_etab [5][1]*$echelle_y, "Tél. : ".filtrage_utf8 ($etab ["telephone"]), $page [$numero], $param) ; } // Fax If ($etab ["fax"]) { $param ["font"] = $cadre_etab [6][2] ; $param ["height"] = $cadre_etab [6][3] ; $param ["red"] = $cadre_etab [6][4] ; $param ["green"] = $cadre_etab [6][5] ; $param ["blue"] = $cadre_etab [6][6] ; $pdf->Draw_Text ($cadre_etab [6][0]*$echelle_x, $cadre_etab [6][1]*$echelle_y, "Fax : ".filtrage_utf8 ($etab ["fax"]), $page [$numero], $param) ; } // Mel If ($etab ["mel"]) { $param ["font"] = $cadre_etab [7][2] ; $param ["height"] = $cadre_etab [7][3] ; $param ["red"] = $cadre_etab [7][4] ; $param ["green"] = $cadre_etab [7][5] ; $param ["blue"] = $cadre_etab [7][6] ; $pdf->Draw_Text ($cadre_etab [7][0]*$echelle_x, $cadre_etab [7][1]*$echelle_y, "Mél. : ".filtrage_utf8 ($etab ["mel"]), $page [$numero], $param) ; } } } // ------------------------------------------------------------------------ // Fonction de trace de l'entete des matieres // ------------------------------------------------------------------------ Function entete_matieres ($numero, $prof_princ, $mode, $mode2) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_etab, $cadre_mat, $cadre_parents, $cadre_eleve, $trait_debut_gauche, $trait_fin_gauche ; Global $impression_smat, $nom_sous_matieres, $nbr_col, $mode_imp, $fusion_imp, $titres_appreciations, $reduction_colonnes ; $param ["width"] = $cadre_mat [2][0] ; $param ["red"] = $cadre_mat [2][1] ; $param ["green"] = $cadre_mat [2][2] ; $param ["blue"] = $cadre_mat [2][3] ; If ($mode2 == 1) { Switch ($mode) { Case 0 : $yy = $cadre_parents [1][3]-0.1 ; Break ; Case 1 : $yy = $cadre_eleve [1][3]-0.1 ; Break ; Default : $yy = $cadre_parents [1][3]-0.1 ; Break ; } } Else { Switch ($mode) { Case 0 : $yy = $cadre_etab [7][1]-0.3 ; Break ; Case 1 : $yy = $cadre_eleve [1][3]-0.1 ; Break ; Default : $yy = $cadre_etab [7][1]-0.3 ; Break ; } } // Trace cadre If ($cadre_mat [0][0] > 0) { $pdf->Draw_Rectangle (($yy-$cadre_mat [1][2])*$echelle_y, $cadre_mat [1][1]*$echelle_x, $yy*$echelle_y, $cadre_mat [1][0]*$echelle_x, $page [$numero], $param) ; } // Lignes verticales $y [0] = $yy*$echelle_y ; $y [1] = ($yy-$cadre_mat [1][2])*$echelle_y ; For ($i = 1 ; $i < 5 ; $i++) { Switch ($cadre_mat [0][$i]) { Case 4 : // Matieres/Prof $param ["font"] = $cadre_mat [3][0] ; $param ["height"] = $cadre_mat [3][1] ; $texte = "Matières" ; $pdf->Draw_Text (($cadre_mat [1][0]+0.1)*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $param ["font"] = $cadre_mat [3][2] ; $param ["height"] = $cadre_mat [3][3] ; $texte = "Enseignants " ; $pdf->Draw_Text (($cadre_mat [1][0]+0.1)*$echelle_x, $y [0]-($cadre_mat [1][2]-0.1)*$echelle_y, $texte, $page [$numero], $param) ; // Pliage If ($mode2 == 1) { $x [0] = $trait_debut_gauche*$echelle_x ; $x [1] = $trait_fin_gauche*$echelle_x ; $param ["width"] = 0.5 ; $yp [0] = $yp [1] = $y [1] ; $pdf->Draw_Line ($x, $yp, $page [$numero], $param) ; $param ["width"] = $cadre_mat [2][0] ; } $xx = ($cadre_mat [1][0]+$cadre_mat [1][4])*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; Case 5 : // Moyenne eleve $param ["font"] = $cadre_mat [4][0] ; $param ["height"] = $cadre_mat [4][1] ; If ($impression_smat == 1) { $texte = "Moyenne" ; } Else { $texte = "Moy." ; } //$lgt = $pdf->StrLen ($texte) ; $cx = $x [0]+($cadre_mat [1][5]*$echelle_x-$pdf->StrLen ($texte, $param))/2 ; //$pdf->Draw_Text ($x [0]+0.1*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $pdf->Draw_Text ($cx, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $texte = "élève" ; $cx = $x [0]+($cadre_mat [1][5]*$echelle_x-$pdf->StrLen ($texte, $param))/2 ; //$pdf->Draw_Text ($x [0]+0.1*$echelle_x, $y [0]-($cadre_mat [1][2]-0.1)*$echelle_y, $texte, $page [$numero], $param) ; $pdf->Draw_Text ($cx, $y [0]-($cadre_mat [1][2]-0.1)*$echelle_y, $texte, $page [$numero], $param) ; $xx += $cadre_mat [1][5]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; Case 6 : // Moy/Min/Max Classe // MOYENNE CLASSE $param ["font"] = $cadre_mat [5][0] ; $param ["height"] = $cadre_mat [5][1] ; $texte = "Moyenne Classe" ; $cx = $x [0]+(3*$cadre_mat [1][6]*$echelle_x-$pdf->StrLen ($texte, $param))/2 ; //$pdf->Draw_Text ($x [0]+0.1*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $pdf->Draw_Text ($cx, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $yh [0] = ($yy-$cadre_mat [1][2]/2)*$echelle_y ; $yh [1] = $y [1] ; // MIN $texte = "Min" ; $cx = $x [0]+($cadre_mat [1][6]*$echelle_x-$pdf->StrLen ($texte, $param))/2 ; //$pdf->Draw_Text ($x [0]+0.1*$echelle_x, $yh [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $pdf->Draw_Text ($cx, $yh [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $xd = $xx ; $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; // MOY $texte = "Moy" ; $cx = $x [0]+($cadre_mat [1][6]*$echelle_x-$pdf->StrLen ($texte, $param))/2 ; //$pdf->Draw_Text ($x [0]+0.1*$echelle_x, $yh [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $pdf->Draw_Text ($cx, $yh [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; // MAX $texte = "Max" ; $cx = $x [0]+($cadre_mat [1][6]*$echelle_x-$pdf->StrLen ($texte, $param))/2 ; //$pdf->Draw_Text ($x [0]+0.1*$echelle_x, $yh [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $pdf->Draw_Text ($cx, $yh [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // Dernier trait horizontal $xh [0] = $xd ; $xh [1] = $xx ; $yh [1] = $yh [0] ; $pdf->Draw_Line ($xh, $yh, $page [$numero], $param) ; Break ; Case 7 : // Appreciations // Si prof principal alors un certain format If ($prof_princ ["id_utilisateur"] > 0) { // Professeur principal si existe Switch ($prof_princ ["civilite"]) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $param ["font"] = $cadre_mat [6][2] ; $param ["height"] = $cadre_mat [6][3] ; $texte = "Enseignant principal : ".$civ." ".$prof_princ ["nom"] ; } Else { $texte = "Enseignant principal : " ; //$pdf->Draw_Text ($x [0]+0.1*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; } If (($nbr_col > 1) And ($mode_imp == 0) And ($reduction_colonnes == 0)) { $pdf->Draw_Text (($cadre_mat [1][0]+0.05)*$echelle_x, $y [0]+0.05*$echelle_y, $texte, $page [$numero], $param) ; } Else { $pdf->Draw_Text ($x [0]+0.1*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; } $param ["font"] = $cadre_mat [6][0] ; $param ["height"] = $cadre_mat [6][1] ; $texte = "APPRÉCIATIONS DES ENSEIGNANTS" ; If (($nbr_col > 1) And ($mode_imp == 0) And ($reduction_colonnes == 0)) { $pdf->Draw_Text ($x [0]+position (StrLen ($texte), $cadre_mat [1][8], $cadre_mat [6][1]), $y [0]-$cadre_mat [6][1], $texte, $page [$numero], $param) ; $nbr_appr = $titres_appreciations [0] ; If ($nbr_appr == 0) { $nbr_appr = 1 ; } $delta = $cadre_mat [1][7]/$nbr_appr ; $nombre_car = Floor (($delta-0.1)*$echelle_x/6) ; For ($j = 1 ; $j <= $nbr_appr ; $j++) { $ta = filtre_appreciation ($titres_appreciations [$j]) ; $pdf->Draw_Text ($x [0]+$delta*($j-1)*$echelle_x+position (StrLen ($ta), $nombre_car, $cadre_mat [6][1]), $y [0]-($cadre_mat [1][2]-0.05)*$echelle_y, $ta, $page [$numero], $param) ; } } Else { $pdf->Draw_Text ($x [0]+position (StrLen ($texte), $cadre_mat [1][8], $cadre_mat [6][1]), $y [0]-($cadre_mat [1][2]-0.05)*$echelle_y, $texte, $page [$numero], $param) ; } $xx += $cadre_mat [1][7]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; } } // Retour position Return ($y [1]/$echelle_y) ; } // ------------------------------------------------------------------------ // Fonction de trace d'une discipline // ------------------------------------------------------------------------ Function matiere ($numero, $yy, $matiere, $prof_id, $prof_civ, $prof_nom, $prof_prenom, $prof_coeff, $x_a, $y_a, $min_cl, $moy_cl, $max_cl, $moy, $ok_coeff, $coeff, $ok_examen, $texte_examen, $num_disc, $num_el, $activation, $id_alias, $tp_moy) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_mat, $bulletin_cpe ; Global $impression_smat, $nom_sous_matieres, $note_sous_matieres ; Global $stat_eleve, $titres_appreciations, $mode_imp, $reduction_colonnes, $ok_alias ; // Verifie les apprecitions $ok_appr = 0 ; If ($x_a >= 0) { $nbr_appr = $stat_eleve [$x_a][$y_a][2] ; For ($i = 1 ; $i <= $nbr_appr ; $i++) { If (($stat_eleve [$x_a][$y_a][2+$i] != "") And (StrLen ($stat_eleve [$x_a][$y_a][2+$i]) > 1)) { $ok_appr++ ; } } } Else { $nbr_appr = 1 ; If (($stat_eleve [$x_a][$y_a][3] != "") And (StrLen ($stat_eleve [$x_a][$y_a][3]) > 1)) { $ok_appr++ ; } } //If (((($appreciation == "") And ($moy == "")) Or ((StrLen ($appreciation) < 2) And ($moy == ""))) And ($activation == 2)) //If (((($ok_appr < $nbr_appr) And ($moy == "")) Or (($ok_appr < $nbr_appr) And ($moy == ""))) And ($activation == 2)) If (($activation == 4) And ($moy == "") And ($ok_appr < $nbr_appr)) { Return $yy ; } Else { $param ["width"] = $cadre_mat [2][0] ; $param ["red"] = $cadre_mat [2][1] ; $param ["green"] = $cadre_mat [2][2] ; $param ["blue"] = $cadre_mat [2][3] ; // Trace cadre $pdf->Draw_Rectangle (($yy-$cadre_mat [1][3]-$ok_examen*$cadre_mat [1][9])*$echelle_y, $cadre_mat [1][1]*$echelle_x, $yy*$echelle_y, $cadre_mat [1][0]*$echelle_x, $page [$numero], $param) ; // Lignes verticales $y [0] = $yy*$echelle_y ; $y [1] = ($yy-$cadre_mat [1][3]-$ok_examen*$cadre_mat [1][9])*$echelle_y ; $y_sortie = $y [1]/$echelle_y ; //$taille = Floor (($cadre_mat [1][6]-0.1)*$echelle_x/6) ; $taille = 5.5 ; $pos_y = $y [0]-($cadre_mat [1][3]/2+0.125+$ok_examen*$cadre_mat [1][9]/2)*$echelle_y ; For ($i = 1 ; $i < 5 ; $i++) { Switch ($cadre_mat [0][$i]) { Case 4 : // Matiere $param ["font"] = $cadre_mat [3][4] ; $param ["height"] = $cadre_mat [3][5] ; $pdf->Draw_Paragraph ($y [0], ($cadre_mat [1][0]+0.05)*$echelle_x, $y [0]-0.8*$echelle_y, ($cadre_mat [1][0]+$cadre_mat [1][4]-0.05)*$echelle_x, $matiere, $page [$numero], $param) ; //$pdf->Draw_Text (($cadre_mat [1][0]+0.1)*$echelle_x, // $y [0]-0.27*$echelle_y, $matiere, $page [$numero], $param) ; // Nom prof $param ["font"] = $cadre_mat [3][6] ; $param ["height"] = $cadre_mat [3][7] ; //If ($id_alias == 0) // { If ($prof_id > 0) { Switch ($prof_civ) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $nom = $civ." ".StrToUpper (SubStr ($prof_nom, 0, 1)).StrToLower (SubStr ($prof_nom, 1, StrLen ($prof_nom)-1)) ; If ($id_alias != 0) { $nom = "Équipe de ".$nom ; } $pdf->Draw_Text (($cadre_mat [1][0]+0.1)*$echelle_x, $y [0]-($cadre_mat [1][3]-0.1+$ok_examen*$cadre_mat [1][9])*$echelle_y, $nom, $page [$numero], $param) ; } /* } Else { If ($id_alias < 0) { $id_alias = -$id_alias ; } $t = alias_liste_enseignants ($id_alias) ; $nom = "M. " ; $civ_mme = $civ_mlle = $civ_m = 0 ; For ($j = 1 ; $j <= $t [0][0] ; $j++) { Switch ($t [$j][2]) { Case 0 : $civ_mme++ ; Break ; Case 1 : $civ_mlle++ ; Break ; Case 2 : $civ_m++ ; Break ; Default : $civ_m++ ; Break ; } } If ($civ_mme == $t [0][0]) { $nom = "Mme " ; } ElseIf ($civ_mlle == $t [0][0]) { $nom = "Mlle " ; } Else { $nom = "M. " ; } For ($j = 1 ; $j <= $t [0][0] ; $j++) { If ($j > 1) { $nom .= ", " ; } $nom .= $t [$j][3] ; } $pdf->Draw_Paragraph ($y [0]-0.9*$echelle_y, ($cadre_mat [1][0]+0.05)*$echelle_x, $y [0]-2*$echelle_y, ($cadre_mat [1][0]+$cadre_mat [1][4]-0.05)*$echelle_x, $nom, $page [$numero], $param) ; } */ If (($ok_coeff == 1) And (($coeff == 1) Or (($coeff == 0) And ($prof_coeff > 1)))) { $texte = "C".Chr (156)."ff. ".Str_Replace (".", ",", $prof_coeff) ; $pdf->Draw_Text (($cadre_mat [1][0]+$cadre_mat [1][4])*$echelle_x-StrLen ($texte)*4.5, $y [0]-($cadre_mat [1][3]-0.1-$ok_examen*$cadre_mat [1][9])*$echelle_y, $texte, $page [$numero], $param) ; } $xx = ($cadre_mat [1][0]+$cadre_mat [1][4])*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; Case 5 : // Moyenne eleve $param ["font"] = $cadre_mat [4][2] ; $param ["height"] = $cadre_mat [4][3] ; If ($moy != "") { If ($tp_moy == 1) { $moy .= "%" ; } // On prend la partie a gauche de la virgule If (StrPos ($moy, ",")) { $chaine = SubStr ($moy, 0, StrPos ($moy, ",")) ; } Else { $chaine = $moy ; } If (StrPos ($chaine, "%")) { $chaine = SubStr ($chaine, 0, StrPos ($chaine, "%")) ; } If (($impression_smat == 1) And ($nom_sous_matieres [$num_disc][0][0] > 0)) { $cx = $xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][5]-0.2)/4)*$echelle_x ; } Else { If ($impression_smat == 1) { $cx = $xx+($cadre_mat [1][5]*$echelle_x-$pdf->StrLen ($chaine, $param))/2 ; } Else { $cx = $xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][5]-0.2)/4)*$echelle_x ; } //$cx = $xx+($cadre_mat [1][5]*$echelle_x-$pdf->StrLen ($moy, $param))/2 ; } $pdf->Draw_Text ($cx, $pos_y, $moy, $page [$numero], $param) ; // Sous-matiere If ($impression_smat == 1) { If ($nom_sous_matieres [$num_disc][0][0] > 0) { // Separation verticale $yyy [0] = $yy*$echelle_y ; $yyy [1] = ($yy-$cadre_mat [1][3])*$echelle_y ; $xxx [0] = $xxx [1] = $xx+$cadre_mat [7][4]*$echelle_x ; $pdf->Draw_Line ($xxx, $yyy, $page [$numero], $param) ; // Largeur de la cellule $lg_c = ($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x ; If ($nom_sous_matieres [$num_disc][0][0] > 1) { // Separation horizontale $yyy [0] = $yyy [1] = ($yy-$cadre_mat [1][3]/2)*$echelle_y ; $xxx [0] = $xx+$cadre_mat [7][4]*$echelle_x ; $xxx [1] = $xx+$cadre_mat [1][5]*$echelle_x ; $pdf->Draw_Line ($xxx, $yyy, $page [$numero], $param) ; // Nom 1 $param ["font"] = $cadre_mat [7][0] ; $param ["height"] = $cadre_mat [7][1] ; While ($pdf->StrLen ($nom_sous_matieres [$num_disc][1][0], $param) > $lg_c) { $param ["height"] -= 0.25 ; } $coeff1 = $cadre_mat [1][3]/2 ; // Demi-cellule $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($nom_sous_matieres [$num_disc][1][0], $param))/2 ; $delta_y = ($coeff1*$echelle_y-($cadre_mat [7][1]+$cadre_mat [7][3]))/3 ; $cy = $yy*$echelle_y-$delta_y-$cadre_mat [7][1] ; $pdf->Draw_Text ($cx, $cy, $nom_sous_matieres [$num_disc][1][0], $page [$numero], $param) ; // Note $param ["font"] = $cadre_mat [7][2] ; $param ["height"] = $cadre_mat [7][3] ; $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($note_sous_matieres [$num_disc][$num_el][1], $param))/2 ; $ccy = $cy-$delta_y-$cadre_mat [7][1] ; $pdf->Draw_Text ($cx, $ccy, $note_sous_matieres [$num_disc][$num_el][1], $page [$numero], $param) ; // Nom 2 $param ["font"] = $cadre_mat [7][0] ; $param ["height"] = $cadre_mat [7][1] ; While ($pdf->StrLen ($nom_sous_matieres [$num_disc][2][0], $param) > $lg_c) { $param ["height"] -= 0.25 ; } $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($nom_sous_matieres [$num_disc][2][0], $param))/2 ; $cy = $yy*$echelle_y-$delta_y-$cadre_mat [7][1]-$coeff1*$echelle_y ; $pdf->Draw_Text ($cx, $cy, $nom_sous_matieres [$num_disc][2][0], $page [$numero], $param) ; // Note $param ["font"] = $cadre_mat [7][2] ; $param ["height"] = $cadre_mat [7][3] ; $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($note_sous_matieres [$num_disc][$num_el][2], $param))/2 ; $ccy = $cy-$delta_y-$cadre_mat [7][1] ; $pdf->Draw_Text ($cx, $ccy, $note_sous_matieres [$num_disc][$num_el][2], $page [$numero], $param) ; } Else { $coeff1 = $cadre_mat [1][3] ; // Cellule complete // Nom $param ["font"] = $cadre_mat [7][0] ; $param ["height"] = $cadre_mat [7][1] ; While ($pdf->StrLen ($nom_sous_matieres [$num_disc][1][0], $param) > $lg_c) { $param ["height"] -= 0.25 ; } $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($nom_sous_matieres [$num_disc][1][0], $param))/2 ; $delta_y = ($coeff1*$echelle_y-($cadre_mat [7][1]+$cadre_mat [7][3]))/3 ; $cy = $yyy [0]-$delta_y-$cadre_mat [7][1] ; $pdf->Draw_Text ($cx, $cy, $nom_sous_matieres [$num_disc][1][0], $page [$numero], $param) ; // Note $param ["font"] = $cadre_mat [7][2] ; $param ["height"] = $cadre_mat [7][3] ; $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($note_sous_matieres [$num_disc][$num_el][1], $param))/2 ; $cy = $cy-$delta_y-$cadre_mat [7][1] ; $pdf->Draw_Text ($cx, $cy, $note_sous_matieres [$num_disc][$num_el][1], $page [$numero], $param) ; } } } } $xx += $cadre_mat [1][5]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; Case 6 : // Moy/Min/Max Classe $param ["font"] = $cadre_mat [5][2] ; $param ["height"] = $cadre_mat [5][3] ; // MIN If ($min_cl != "") { If ($tp_moy == 1) { $min_cl .= "%" ; } // On prend la partie a gauche de la virgule If (StrPos ($min_cl, ",")) { $chaine = SubStr ($min_cl, 0, StrPos ($min_cl, ",")) ; } Else { $chaine = $min_cl ; } If (StrPos ($chaine, "%")) { $chaine = SubStr ($chaine, 0, StrPos ($chaine, "%")) ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y, $min_cl, $page [$numero], $param) ; } $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // MOY If ($moy_cl != "") { If ($tp_moy == 1) { $moy_cl .= "%" ; } // On prend la partie a gauche de la virgule If (StrPos ($moy_cl, ",")) { $chaine = SubStr ($moy_cl, 0, StrPos ($moy_cl, ",")) ; } Else { $chaine = $moy_cl ; } If (StrPos ($chaine, "%")) { $chaine = SubStr ($chaine, 0, StrPos ($chaine, "%")) ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y, $moy_cl, $page [$numero], $param) ; } $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // MAX If ($max_cl != "") { If ($tp_moy == 1) { $max_cl .= "%" ; } // On prend la partie a gauche de la virgule If (StrPos ($max_cl, ",")) { $chaine = SubStr ($max_cl, 0, StrPos ($max_cl, ",")) ; } Else { $chaine = $max_cl ; } If (StrPos ($chaine, "%")) { $chaine = SubStr ($chaine, 0, StrPos ($chaine, "%")) ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y, $max_cl, $page [$numero], $param) ; } $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; Case 7 : // Appreciations $param ["font"] = $cadre_mat [6][4] ; //$param ["height"] = $cadre_mat [6][5] ; If ($x_a >= 0) { // Abscisses $x_debut = $x [0]+0.1*$echelle_x ; $x_fin = $x [0]+($cadre_mat [1][7]-0.15)*$echelle_x ; $taille = $cadre_mat [1][7]*$echelle_x ; If ($nbr_appr > 1) { $delta = $cadre_mat [1][7]/$nbr_appr ; } Else { $delta = $cadre_mat [1][7] ; } For ($j = 1 ; $j <= $nbr_appr ; $j++) { If (SubStr ($stat_eleve [$x_a][$y_a][2+$j], 0, 1) == ",") { $stat_eleve [$x_a][$y_a][2+$j] = SubStr ($stat_eleve [$x_a][$y_a][2+$j], 1, StrLen ($stat_eleve [$x_a][$y_a][2+$j])) ; } $longueur = $pdf->StrLen ($stat_eleve [$x_a][$y_a][2+$j], $param)/(($delta-0.25)*$echelle_x) ; If ($longueur < 1) { $correction = $y [0]-$pos_y-$cadre_mat [6][5] ; } ElseIf ($longueur < 2) { $correction = $cadre_mat [6][5]/2 ; } Else { $correction = 0 ; } If (($nbr_appr > 1) And ($reduction_colonnes == 1)) { $ta = filtre_appreciation ($titres_appreciations [$j]) ; $param ["height"] = 6 ; $pdf->Draw_Text ($x [0]+0.1*$echelle_x, $y [0]-6, $ta, $page [$numero], $param) ; $param ["height"] = $cadre_mat [6][5]-1 ; $pdf->Draw_Paragraph ($y [0]-6, $x [0]+0.1*$echelle_x, $y [0]-$cadre_mat [1][3]*$echelle_y, $x [0]+($delta-0.15)*$echelle_x, $stat_eleve [$x_a][$y_a][2+$j], $page [$numero], $param) ; } Else { $param ["height"] = $cadre_mat [6][5] ; $pdf->Draw_Paragraph ($y [0]-$correction, $x [0]+0.1*$echelle_x, $y [0]-$cadre_mat [1][3]*$echelle_y, $x [0]+($delta-0.15)*$echelle_x, $stat_eleve [$x_a][$y_a][2+$j], $page [$numero], $param) ; } $xx += $delta*$echelle_x ; If ($ok_examen) { $pos_x_exam = $x [0] ; } $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; } } Else { // CPE $appreciation = $y_a ; If (SubStr ($appreciation, 0, 1) == ",") { $appreciation = SubStr ($appreciation, 1, StrLen ($appreciation)) ; } $longueur = $pdf->StrLen ($appreciation, $param)/(($cadre_mat [1][7]-0.25)*$echelle_x) ; If ($longueur < 1) { $correction = $y [0]-$pos_y-$cadre_mat [6][5] ; } ElseIf ($longueur < 2) { $correction = $cadre_mat [6][5]/2 ; } Else { $correction = 0 ; } $pdf->Draw_Paragraph ($y [0]-$correction, $x [0]+0.1*$echelle_x, $y [0]-$cadre_mat [1][3]*$echelle_y, $x [0]+($cadre_mat [1][7]-0.15)*$echelle_x, $appreciation, $page [$numero], $param) ; $xx += $cadre_mat [1][7]*$echelle_x ; If ($ok_examen) { $pos_x_exam = $x [0] ; } $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; } Break ; } } If ($ok_examen) { $param ["font"] = $cadre_mat [6][6] ; $param ["height"] = $cadre_mat [6][7] ; $pdf->Draw_Text ($pos_x_exam+0.1*$echelle_x, $y [0]-($cadre_mat [1][3]+0.1)*$echelle_y, $texte_examen, $page [$numero], $param) ; } // Retour position Return ($y [1]/$echelle_y) ; } } // ------------------------------------------------------------------------ // Fonction de trace des moyennes periodiques et coefficientees // ------------------------------------------------------------------------ Function moyennes ($numero, $yy, $min_cl_nc, $moy_cl_nc, $max_cl_nc, $moy_el_nc, $min_cl_c, $moy_cl_c, $max_cl_c, $moy_el_c, $classe, $ok_coeff, $ok_moy_nc, $ok_moy_c, $ok_nc, $ok_c) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_moy_gen, $cadre_mat ; Global $impression_smat, $nom_sous_matieres ; $param ["width"] = $cadre_moy_gen [2][0] ; $param ["red"] = $cadre_moy_gen [2][1] ; $param ["green"] = $cadre_moy_gen [2][2] ; $param ["blue"] = $cadre_moy_gen [2][3] ; // Trace cadre If ($cadre_moy_gen [0][0]) { // Trace du cadre moyenne non coefficientee total If ($ok_moy_nc == 1) { $pdf->Draw_Rectangle (($yy-$cadre_moy_gen [1][2]/2)*$echelle_y, ($cadre_moy_gen [1][0]+$cadre_moy_gen [1][4])*$echelle_x, $yy*$echelle_y, $cadre_moy_gen [1][0]*$echelle_x, $page [$numero], $param) ; } If ($ok_coeff == 1) { // Trace du cadre moyenne coefficientee total If ($ok_moy_c == 1) { $pdf->Draw_Rectangle (($yy-$ok_moy_nc*$cadre_moy_gen [1][2]/2)*$echelle_y, ($cadre_moy_gen [1][0]+$cadre_moy_gen [1][4])*$echelle_x, ($yy-($ok_moy_nc+1)*$cadre_moy_gen [1][2]/2)*$echelle_y, $cadre_moy_gen [1][0]*$echelle_x, $page [$numero], $param) ; } } } // Lignes verticales $y [0] = $yy*$echelle_y ; If ($ok_moy_nc == 1) { $y [1] = ($yy-$cadre_moy_gen [1][2]/2)*$echelle_y ; } Else { $y [1] = $yy*$echelle_y ; } If ($ok_moy_c == 1) { If ($ok_coeff == 1) { If ($ok_c == 1) { $y [1] = ($yy-($ok_moy_nc+1)*$cadre_moy_gen [1][2]/2)*$echelle_y ; } //Else { $y [1] = ($yy-$cadre_moy_gen [1][2]/2)*$echelle_y ; } } } $nbr_p = nombre_periode ($classe) ; Switch ($nbr_p) { Case 2 : $nom_p = "semestrielle" ; Break ; Case 3 : $nom_p = "trimestrielle" ; Break ; Default : $nom_p = "trimestrielle" ; Break ; } // Moyennes $param ["font"] = $cadre_moy_gen [3][0] ; $param ["height"] = $cadre_moy_gen [3][1] ; If (!IsSet ($xx)) { $xx = 0 ; } If ($ok_moy_nc == 1) { $texte = "Moyenne ".$nom_p ; $pdf->Draw_Text ($xx+($cadre_moy_gen [1][0]+0.1)*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; } If ($ok_coeff == 1) { $param ["font"] = $cadre_moy_gen [3][2] ; $param ["height"] = $cadre_moy_gen [3][3] ; If ($ok_moy_c == 1) { $texte = "Moyenne ".$nom_p." c".Chr (156)."fficientée" ; $pdf->Draw_Text ($xx+($cadre_moy_gen [1][0]+0.1)*$echelle_x, ($yy-$ok_moy_nc*$cadre_moy_gen [1][2]/2-0.27)*$echelle_y, $texte, $page [$numero], $param) ; } } $xx = ($cadre_moy_gen [1][0]+$cadre_moy_gen [1][4])*$echelle_x ; $xd = $cadre_moy_gen [1][0]*$echelle_x ; $x [0] = $x [1] = $xx ; // Trace de la premiere ligne If (($ok_moy_nc == 1) Or ($ok_moy_c == 1)) { $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; } $pos_y_nc = ($yy-0.27)*$echelle_y ; $pos_y_c = ($yy-$ok_moy_nc*$cadre_moy_gen [1][2]/2-0.27)*$echelle_y ; For ($i = 1 ; $i < 5 ; $i++) { Switch ($cadre_mat [0][$i]) { Case 5 : // Moyenne eleve $param ["font"] = $cadre_moy_gen [4][0] ; $param ["height"] = $cadre_moy_gen [4][1] ; If ($ok_moy_nc == 1) { If ($moy_el_nc != "") { If (StrPos ($moy_el_nc, ",")) { $chaine = SubStr ($moy_el_nc, 0, StrPos ($moy_el_nc, ",")) ; } Else { $chaine = $moy_el_nc ; } If ($impression_smat == 1) { $cx = $xx+($cadre_mat [1][5]*$echelle_x-$pdf->StrLen ($chaine, $param))/2 ; } Else { $cx = $xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x ; } $pdf->Draw_Text ($cx, $pos_y_nc, $moy_el_nc, $page [$numero], $param) ; } } If ($ok_moy_c == 1) { If (($ok_coeff == 1) And ($moy_el_c != "")) { If (StrPos ($moy_el_c, ",")) { $chaine = SubStr ($moy_el_c, 0, StrPos ($moy_el_c, ",")) ; } Else { $chaine = $moy_el_c ; } If ($impression_smat == 1) { $cx = $xx+($cadre_mat [1][5]*$echelle_x-$pdf->StrLen ($chaine, $param))/2 ; } Else { $cx = $xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x ; } $pdf->Draw_Text ($cx, $pos_y_c, $moy_el_c, $page [$numero], $param) ; } } // Trace de la ligne verticale droite moy non coeff If (($ok_moy_nc == 1) Or ($ok_moy_c == 1)) { $xx += $cadre_moy_gen [1][5]*$echelle_x ; $x [0] = $x [1] = $xx ; If (($ok_coeff == 1) And ($ok_c == 0)) { $yh [0] = $y [0] ; $yh [1] = $y [1]-($ok_moy_c*$cadre_moy_gen [1][2]/2)*$echelle_y ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } Else { $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; } $yh [0] = $yh [1] = ($yy-$ok_moy_nc*$cadre_moy_gen [1][2]/2)*$echelle_y ; $x [0] = $xd ; $x [1] = $xx ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; // Trace de la ligne horizontale entre moy coeff If (($ok_coeff == 1) And ($moy_el_c != "") And ($ok_moy_c == 1)) { $yh [0] = $yh [1] = ($yy-($ok_moy_nc+1)*$cadre_moy_gen [1][2]/2)*$echelle_y ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } } Break ; Case 6 : // Moy/Min/Max Classe non coeff et coeff $param ["font"] = $cadre_moy_gen [5][0] ; $param ["height"] = $cadre_moy_gen [5][1] ; If (($ok_nc == 1) Or ($ok_c == 1)) { // MIN If (($min_cl_nc != "") And ($ok_nc == 1) And ($ok_moy_nc == 1)) { If (StrPos ($min_cl_nc, ",")) { $chaine = SubStr ($min_cl_nc, 0, StrPos ($min_cl_nc, ",")) ; } Else { $chaine = $min_cl_nc ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_nc, $min_cl_nc, $page [$numero], $param) ; } If (($ok_coeff == 1) And ($ok_c == 1) And ($min_cl_c != "") And ($ok_moy_c == 1)) { If (StrPos ($min_cl_c, ",")) { $chaine = SubStr ($min_cl_c, 0, StrPos ($min_cl_c, ",")) ; } Else { $chaine = $min_cl_c ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_c, $min_cl_c, $page [$numero], $param) ; } $xx += $cadre_moy_gen [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; // Trace de la ligne verticale droite min non coeff $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // Trace de la ligne horizontale entre min non coeff $yh [0] = $yh [1] = ($yy-$cadre_moy_gen [1][2]/2)*$echelle_y ; $x [0] = $xd ; $x [1] = $xx ; If ($ok_nc == 1) { $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } // Trace de la ligne horizontale entre min coeff If (($ok_coeff == 1) And ($ok_c == 1) And ($ok_moy_c == 1)) { $yh [0] = $yh [1] = ($yy-($ok_moy_nc+1)*$cadre_moy_gen [1][2]/2)*$echelle_y ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } // MOY If (($moy_cl_nc != "") And ($ok_nc == 1) And ($ok_moy_nc == 1)) { If (StrPos ($moy_cl_nc, ",")) { $chaine = SubStr ($moy_cl_nc, 0, StrPos ($moy_cl_nc, ",")) ; } Else { $chaine = $moy_cl_nc ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_nc, $moy_cl_nc, $page [$numero], $param) ; } If (($ok_coeff == 1) And ($ok_c == 1) And ($moy_cl_c != "") And ($ok_moy_c == 1)) { If (StrPos ($moy_cl_c, ",")) { $chaine = SubStr ($moy_cl_c, 0, StrPos ($moy_cl_c, ",")) ; } Else { $chaine = $moy_cl_c ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_c, $moy_cl_c, $page [$numero], $param) ; } $xx += $cadre_moy_gen [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; // Trace de la ligne verticale droite moy non coeff $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // Trace de la ligne horizontale entre moy non coeff $yh [0] = $yh [1] = ($yy-$cadre_moy_gen [1][2]/2)*$echelle_y ; $x [0] = $xd ; $x [1] = $xx ; If ($ok_moy_nc == 1) { $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } // Trace de la ligne horizontale entre moy coeff If (($ok_coeff == 1) And ($ok_c == 1) And ($ok_moy_c == 1)) { $yh [0] = $yh [1] = ($yy-($ok_moy_nc+1)*$cadre_moy_gen [1][2]/2)*$echelle_y ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } // MAX If (($max_cl_nc != "") And ($ok_nc == 1) And ($ok_moy_nc == 1)) { If (StrPos ($max_cl_nc, ",")) { $chaine = SubStr ($max_cl_nc, 0, StrPos ($max_cl_nc, ",")) ; } Else { $chaine = $max_cl_nc ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_nc, $max_cl_nc, $page [$numero], $param) ; } If (($ok_coeff == 1) And ($ok_c == 1) And ($max_cl_c != "") And ($ok_moy_c == 1)) { If (StrPos ($max_cl_c, ",")) { $chaine = SubStr ($max_cl_c, 0, StrPos ($max_cl_c, ",")) ; } Else { $chaine = $max_cl_c ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_c, $max_cl_c, $page [$numero], $param) ; } $xx += $cadre_moy_gen [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; // Trace de la ligne verticale droite max non coeff $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // Trace de la ligne horizontale entre max non coeff $yh [0] = $yh [1] = ($yy-$cadre_moy_gen [1][2]/2)*$echelle_y ; $x [0] = $xd ; $x [1] = $xx ; If ($ok_moy_nc == 1) { $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } // Trace de la ligne horizontale entre max coeff If (($ok_coeff == 1) And ($ok_c == 1) And ($ok_moy_c == 1)) { $yh [0] = $yh [1] = ($yy-($ok_moy_nc+1)*$cadre_moy_gen [1][2]/2)*$echelle_y ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } } Break ; } } // Retour position If (($ok_coeff == 1) And ($ok_c == 0)) { $y [1] = ($yy-($ok_moy_nc+$ok_moy_c)*$cadre_moy_gen [1][2]/2)*$echelle_y ; } Return ($y [1]/$echelle_y) ; } // ------------------------------------------------------------------------ // Fonction de trace des observations CPE // ------------------------------------------------------------------------ Function vie_scolaire ($numero, $yy, $cpe, $classe, $style_bulletin) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_cpe, $id_sql, $module_absences, $unite_comptabilisation, $millesime ; If ($module_absences == 1) { Switch ($unite_comptabilisation) { Case 1 : $duree_abs = "de 1/2 heure" ; Break ; Case 2 : $duree_abs = "d'heure" ; Break ; Case 3 : $duree_abs = "de demi-journée" ; Break ; Case 4 : $duree_abs = "de journée" ; Break ; Default : $duree_abs = "1/2 heure" ; Break ; } } Else { $duree_abs = "de demi-journée" ; } Switch ($style_bulletin) { Default : Case 1 : // Trace cadre If ($cadre_cpe [0][0]) { $param ["width"] = $cadre_cpe [2][0] ; $param ["red"] = $cadre_cpe [2][1] ; $param ["green"] = $cadre_cpe [2][2] ; $param ["blue"] = $cadre_cpe [2][3] ; $pdf->Draw_Rectangle (($yy-$cadre_cpe [1][2])*$echelle_y, $cadre_cpe [1][1]*$echelle_x, $yy*$echelle_y, $cadre_cpe [1][0]*$echelle_x, $page [$numero], $param) ; } // Premiere ligne $param ["width"] = $cadre_cpe [2][0] ; $param ["red"] = $cadre_cpe [2][1] ; $param ["green"] = $cadre_cpe [2][2] ; $param ["blue"] = $cadre_cpe [2][3] ; If ($cpe ["cpe"] > 0) { $nom_cpe = SQL_commande ("SELECT nom,civilite FROM utilisateurs WHERE id_utilisateur='".$cpe ["cpe"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; $ncpe = SQL_ligne_suivante ($nom_cpe) ; $ncpe [0] = filtrage_utf8 ($ncpe [0]) ; Switch ($ncpe [1]) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $texte1 = "Vie scolaire : ".$civ." ".StrToUpper (SubStr ($ncpe [0], 0, 1)).StrToLower (SubStr ($ncpe [0], 1, StrLen ($ncpe [0])-1)) ; $texte2 = "Nombre ".$duree_abs ; If ($cpe ["absences"] > 1) { $texte2 .= "s" ; } $texte2 .= " d'absence : ".$cpe ["absences"]." " ; $texte2 .= "(dont ".$cpe ["non_justifiees"]." non justifiée" ; If ($cpe ["non_justifiees"] > 1) { $texte2 .= "s" ; } $texte2 .= "). " ; $texte2 .= "Nombre de retard" ; If ($cpe ["retards"] > 1) { $texte2 .= "s" ; } $texte2 .= " : ".$cpe ["retards"] ; } Else { $nom_cpe = SQL_commande ("SELECT u.nom,u.civilite FROM utilisateurs u,classes c WHERE c.id_classe='".$classe."' AND c.cpe=u.id_utilisateur AND c.millesime='".$millesime."' LIMIT 1", $id_sql) ; $texte1 = "Vie scolaire : " ; If (SQL_nbr_lignes ($nom_cpe) > 0) { $ncpe = SQL_ligne_suivante ($nom_cpe) ; $ncpe [0] = filtrage_utf8 ($ncpe [0]) ; Switch ($ncpe [1]) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $texte1 .= $civ." ".StrToUpper (SubStr ($ncpe [0], 0, 1)).StrToLower (SubStr ($ncpe [0], 1, StrLen ($ncpe [0])-1)) ; } $texte2 = "Nombre ".$duree_abs."(s) d'absence : ____ (dont ____ non justifiée(s)). Nombre de retards : ____" ; } $param ["font"] = $cadre_cpe [2][4] ; $param ["height"] = $cadre_cpe [2][5] ; $pdf->Draw_Text (($cadre_cpe [1][0]+0.1)*$echelle_x, ($yy-0.3)*$echelle_y, $texte1, $page [$numero], $param) ; $param ["font"] = $cadre_cpe [2][8] ; $param ["height"] = $cadre_cpe [2][9] ; $pdf->Draw_Text (($cadre_cpe [1][0]+5.5)*$echelle_x, ($yy-0.3)*$echelle_y, $texte2, $page [$numero], $param) ; // Observation $param ["font"] = $cadre_cpe [2][10] ; $param ["height"] = $cadre_cpe [2][11] ; $pdf->Draw_Text (($cadre_cpe [1][0]+5.5)*$echelle_x, ($yy-0.6)*$echelle_y,"Observation(s) :", $page [$numero], $param) ; If ($cpe ["observations"]) { $param ["font"] = $cadre_cpe [2][12] ; $param ["height"] = $cadre_cpe [2][13] ; $pdf->Draw_Paragraph (($yy-0.3)*$echelle_y, ($cadre_cpe [1][0]+7.9)*$echelle_x,($yy-1.2)*$echelle_y, ($cadre_cpe [1][1]-0.1)*$echelle_x, filtrage_utf8 ($cpe ["observations"]), $page [$numero], $param) ; } Return ($yy-$cadre_cpe [1][2]) ; Break ; Case 2 : // Trace du cadre $param ["width"] = $cadre_cpe [2][0] ; $param ["red"] = $cadre_cpe [2][1] ; $param ["green"] = $cadre_cpe [2][2] ; $param ["blue"] = $cadre_cpe [2][3] ; $pdf->Draw_Rectangle (($yy-$cadre_cpe [1][2])*$echelle_y, $cadre_cpe [1][1]*$echelle_x, $yy*$echelle_y, $cadre_cpe [1][0]*$echelle_x, $page [$numero], $param) ; If ($cpe ["cpe"] > 0) { $nom_cpe = SQL_commande ("SELECT nom,civilite FROM utilisateurs WHERE id_utilisateur='".$cpe ["cpe"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; $ncpe = SQL_ligne_suivante ($nom_cpe) ; $ncpe [0] = filtrage_utf8 ($ncpe [0]) ; Switch ($ncpe [1]) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $texte1 = "Vie scolaire : ".$civ." ".StrToUpper (SubStr ($ncpe [0], 0, 1)).StrToLower (SubStr ($ncpe [0], 1, StrLen ($ncpe [0])-1)) ; } Else { $nom_cpe = SQL_commande ("SELECT u.nom,u.civilite FROM utilisateurs u,classes c WHERE c.id_classe='".$classe."' AND c.cpe=u.id_utilisateur AND c.millesime='".$millesime."' LIMIT 1", $id_sql) ; $texte1 = "Vie scolaire : " ; If (SQL_nbr_lignes ($nom_cpe) > 0) { $ncpe = SQL_ligne_suivante ($nom_cpe) ; $ncpe [0] = filtrage_utf8 ($ncpe [0]) ; Switch ($ncpe [1]) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $texte1 .= $civ." ".StrToUpper (SubStr ($ncpe [0], 0, 1)).StrToLower (SubStr ($ncpe [0], 1, StrLen ($ncpe [0])-1)) ; } } $param ["font"] = $cadre_cpe [2][4] ; $param ["height"] = $cadre_cpe [2][5] ; $pdf->Draw_Text (($cadre_cpe [1][0]+0.1)*$echelle_x, ($yy-0.3)*$echelle_y, $texte1, $page [$numero], $param) ; //$param ["font"] = $cadre_cpe [2][8] ; //$param ["height"] = $cadre_cpe [2][9] ; //$pdf->Draw_Text (($cadre_cpe [1][0]+5.5)*$echelle_x, ($yy-0.3)*$echelle_y, $texte2, $page [$numero], $param) ; // Observation $param ["font"] = $cadre_cpe [2][10] ; $param ["height"] = $cadre_cpe [2][11] ; $pdf->Draw_Text (($cadre_cpe [1][0]+5.5)*$echelle_x, ($yy-0.3)*$echelle_y, "Appréciations :", $page [$numero], $param) ; If ($cpe ["observations"]) { $param ["font"] = $cadre_cpe [2][12] ; $param ["height"] = $cadre_cpe [2][13] ; $pdf->Draw_Paragraph ($yy*$echelle_y, ($cadre_cpe [1][0]+7.9)*$echelle_x, ($yy-1.2)*$echelle_y, ($cadre_cpe [1][1]-0.1)*$echelle_x, filtrage_utf8 ($cpe ["observations"]), $page [$numero], $param) ; } Return ($yy-$cadre_cpe [1][2]) ; Break ; } } // ------------------------------------------------------------------------ // Fonction de trace des appreciations de l'equipe pedagogique // ------------------------------------------------------------------------ Function equipe_pedagogique ($numero, $yy, $signature, $aep_texte) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_equipe_peda, $marge_bas, $periode, $id_etablissement ; // Trace cadre If ($cadre_equipe_peda [0][0]) { $param ["width"] = $cadre_equipe_peda [2][0] ; $param ["red"] = $cadre_equipe_peda [2][1] ; $param ["green"] = $cadre_equipe_peda [2][2] ; $param ["blue"] = $cadre_equipe_peda [2][3] ; //$coeff_bas = 1.6 ; $coeff_bas = 0.6 ; //If ($numero == 1) // { $pdf->Draw_Rectangle (($marge_bas+$coeff_bas)*$echelle_y, $cadre_equipe_peda [1][1]*$echelle_x, $yy*$echelle_y, $cadre_equipe_peda [1][0]*$echelle_x, $page [$numero], $param) ; // } //Else // { // $pdf->Draw_Rectangle (($yy-$cadre_equipe_peda [1][2])*$echelle_y, $cadre_equipe_peda [1][1]*$echelle_x, // $yy*$echelle_y, $cadre_equipe_peda [1][0]*$echelle_x, // $page [$numero], $param) ; // } } $param ["font"] = $cadre_equipe_peda [2][4] ; $param ["height"] = $cadre_equipe_peda [2][5] ; $texte = "Appréciation de l'équipe pédagogique :" ; $pdf->Draw_Text (($cadre_equipe_peda [1][0]+0.1)*$echelle_x, ($yy-0.3)*$echelle_y, $texte, $page [$numero], $param) ; $param ["font"] = $cadre_equipe_peda [2][6] ; $param ["height"] = $cadre_equipe_peda [2][7] ; If ($aep_texte != "") { $pdf->Draw_Paragraph (($yy-0.1)*$echelle_y-$cadre_equipe_peda [2][5], ($cadre_equipe_peda [1][0]+0.1)*$echelle_x, ($marge_bas+$coeff_bas+0.1)*$echelle_y, ($cadre_equipe_peda [1][1]*2/3-0.1)*$echelle_x, filtrage_utf8 ($aep_texte), $page [$numero], $param) ; } $orientation_activation = restaure_configuration ("SYSTEME_PARAM","BULLETINS","ORIENTATION_".$id_etablissement."_ACTIVATION") ; If ($orientation_activation == "") { sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","ORIENTATION_".$id_etablissement."_ACTIVATION",0) ; $orientation_activation = 0 ; } If ($orientation_activation == 1) { $orientation_validite = restaure_configuration ("SYSTEME_PARAM","BULLETINS","ORIENTATION_".$id_etablissement."_VALIDITE") ; If ($orientation_validite == "") { sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","ORIENTATION_".$id_etablissement."_VALIDITE",4) ; $orientation_validite = 4 ; } If ((($periode == 1) And (($orientation_validite == 1) Or ($orientation_validite == 3) Or ($orientation_validite == 5))) Or (($periode == 2) And (($orientation_validite == 2) Or ($orientation_validite == 3) Or ($orientation_validite == 6))) Or (($periode == 3) And (($orientation_validite == 4) Or ($orientation_validite == 5) Or ($orientation_validite == 6))) Or ($orientation_validite == 7)) { $orientation_texte = restaure_configuration ("SYSTEME_PARAM","BULLETINS","ORIENTATION_".$id_etablissement."_TEXTE") ; If ($orientation_texte == "") { $orientation_texte = "Décision d'orientation de l'équipe pédagogique :" ; sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","ORIENTATION_".$param_etab [$i]["id_etablissement"]."_TEXTE",$orientation_texte) ; } $orientation_texte = Str_Replace ("\\", "", filtrage (filtrage_utf8 ($orientation_texte))) ; /*$cadre_equipe_peda [1][1]*$echelle_x ; ($marge_bas+$coeff_bas)*$echelle_y ; $cadre_equipe_peda [1][0]*$echelle_x ; $yy*$echelle_y ;*/ $pdf->Draw_Text (($cadre_equipe_peda [1][0]+15)*$echelle_x+position (StrLen ($signature ["nom"]), 30, 6), ($marge_bas+$coeff_bas+0.1)*$echelle_y+2.5*$param ["height"], $signature ["nom"], $page [$numero], $param) ; $x [0] = $cadre_equipe_peda [1][1]*$echelle_x ; $x [1] = $cadre_equipe_peda [1][0]*$echelle_x ; $y [0] = $y [1] = ($marge_bas+$coeff_bas+0.3)*$echelle_y+$param ["height"] ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; $param ["font"] = $cadre_equipe_peda [2][6]."-Bold" ; $pdf->Draw_Text (($cadre_equipe_peda [1][0]+0.1)*$echelle_x, ($marge_bas+$coeff_bas+0.2)*$echelle_y, $orientation_texte, $page [$numero], $param) ; $param ["font"] = $cadre_equipe_peda [2][6] ; } Else { $pdf->Draw_Text (($cadre_equipe_peda [1][0]+15)*$echelle_x+position (StrLen ($signature ["nom"]), 30, 6), ($marge_bas+($yy-$marge_bas-$coeff_bas)/3+$coeff_bas)*$echelle_y, $signature ["nom"], $page [$numero], $param) ; } } Else { $pdf->Draw_Text (($cadre_equipe_peda [1][0]+15)*$echelle_x+position (StrLen ($signature ["nom"]), 30, 6), ($marge_bas+($yy-$marge_bas-$coeff_bas)/3+$coeff_bas)*$echelle_y, $signature ["nom"], $page [$numero], $param) ; } //If ($periode != $periode_max) //{ // $pdf->Draw_Text (($cadre_equipe_peda [1][0]+15)*$echelle_x+position (StrLen ($signature ["nom"]), 30, 6), // ($marge_bas+($yy-$marge_bas-$coeff_bas)/3+$coeff_bas)*$echelle_y, $signature ["nom"], $page [$numero], $param) ; //} //Else // { // $pdf->Draw_Text (($cadre_equipe_peda [1][0]+15)*$echelle_x+position (StrLen ($signature ["nom"]), 30, 6), // ($yy-1.7)*$echelle_y, $signature ["nom"], $page [$numero], $param) ; //} Return ($yy-$cadre_equipe_peda [1][2]) ; } // ------------------------------------------------------------------------ // Fonction de trace du bas de page // ------------------------------------------------------------------------ Function bas_page ($numero, $yy) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_bas_page, $largeur, $marge_gauche, $marge_droite, $version_garennes ; // Texte a gauche $param ["width"] = $cadre_bas_page [2][0] ; $param ["red"] = $cadre_bas_page [2][1] ; $param ["green"] = $cadre_bas_page [2][2] ; $param ["blue"] = $cadre_bas_page [2][3] ; $param ["font"] = $cadre_bas_page [2][4] ; $param ["height"] = $cadre_bas_page [2][5] ; $pdf->Draw_Text ($cadre_bas_page [1][0]*$echelle_x, ($yy-$cadre_bas_page [1][2]-0.1)*$echelle_y, "ATTENTION : Ce bulletin est un original, il doit être conservé par la famille.", $page [$numero], $param) ; // Texte a droite $texte = Chr (169)." Garennes ".$version_garennes." - GNU GPL - 2000-".Date ("Y") ; $param ["font"] = $cadre_bas_page [2][6] ; $param ["height"] = $cadre_bas_page [2][7] ; $pdf->Draw_Text ($cadre_bas_page [1][1]*$echelle_x-StrLen ($texte)*4+0.4*$echelle_x, ($yy-$cadre_bas_page [1][2]-0.1)*$echelle_y, $texte, $page [$numero], $param) ; // Affichage ligne horizontale $x [1] = $marge_gauche*$echelle_x ; $x [0] = ($largeur-$marge_droite)*$echelle_x ; $y [0] = $y [1] = $yy*$echelle_y ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Return ($yy-$cadre_bas_page [1][2]) ; } // ------------------------------------------------------------------------ // Fonction de trace du numero de la page // ------------------------------------------------------------------------ Function affiche_page ($numero, $yy, $nbr_page) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_bas_page, $marge_gauche ; $param ["font"] = $cadre_bas_page [2][8] ; $param ["height"] = $cadre_bas_page [2][9] ; For ($i = 1 ; $i <= $nbr_page ; $i++) { $pdf->Draw_Text (($marge_gauche+10)*$echelle_x, ($yy [$i]-$cadre_bas_page [1][2]-0.1)*$echelle_y, "Page ".$i."/".$nbr_page, $page [$numero-$nbr_page+$i], $param) ; } } // ------------------------------------------------------------------------ // Filtrage appreciation : Enleve les caracteres HTML inderisables // ------------------------------------------------------------------------ Function filtre_appreciation ($appreciation) { If (!$appreciation) { $appreciation = " " ; } // Substitution de caracteres $appreciation = Str_Replace ("&", "&", $appreciation) ; $appreciation = Str_Replace (""", "\"", $appreciation) ; $appreciation = Str_Replace (" ", " ", $appreciation) ; $appreciation = html_entity_decode ($appreciation) ; $appreciation = filtrage_utf8 ($appreciation) ; Return $appreciation ; } // ------------------------------------------------------------------------ // Reparation des saisies vie scolaire (au cas ou) // ------------------------------------------------------------------------ $vie_scolaire = SQL_commande ("SELECT * FROM vie_scolaire WHERE millesime='".$millesime."'", $id_sql) ; For ($i = 0 ; $i < SQL_nbr_lignes ($vie_scolaire) ; $i++) { $cpe = SQL_tableau_associatif ($vie_scolaire, "") ; $result = SQL_commande ("SELECT u.id_utilisateur,u.numen,u.nom FROM classes c,eleves e,utilisateurs u WHERE e.id_eleve='".$cpe ["eleve"]."' AND c.id_classe=e.classe AND c.cpe=u.id_utilisateur LIMIT 1", $id_sql) ; $n_cpe = SQL_ligne_suivante ($result, "") ; $ok = SQL_commande ("UPDATE vie_scolaire SET cpe='".$n_cpe [0]."',numen_cpe='".$n_cpe [1]."' WHERE id_vie_scolaire='".$cpe ["id_vie_scolaire"]."' LIMIT 1", $id_sql) ; } /** * Determine l'ensemble des appreciations * @param int $nbr_col Nombre de colonne d'appreciations * @param int $id_eleve Identifiant eleve * @param int $id_prof Identifiant prof * @param int $id_disc Identifiant discipline * @param int $id_sp Identifiant service prof * @param int $periode Numero de la periode * @return array Tableau des appreciations */ Function determine_appreciations ($nbr_col, $id_eleve, $id_prof, $id_disc, $id_sp, $periode) { Global $id_classe, $millesime, $titres_appreciations ; If ($nbr_col > 1) { // Multiple $appr [0] = $titres_appreciations [0] = $nbr_col ; For ($i = 1 ; $i <= $nbr_col ; $i++) { $a = appreciation ($id_eleve, $id_prof, $id_disc, $id_sp, $periode, $i) ; If ($a != "") { $appr [$i] = filtre_appreciation ($a) ; } Else { $appr [$i] = "" ; } $titres_appreciations [$i] = nom_colonne_appreciation ($i, id_etablissement_par_id_classe ($id_classe, $millesime)) ; } } Else { // Une seule $appr [0] = $titres_appreciations [0] = 1 ; $a = appreciation ($id_eleve, $id_prof, $id_disc, $id_sp, $periode, $i) ; If ($a != "") { $appr [1] = filtre_appreciation ($a) ; } Else { $appr [1] = "" ; } $titres_appreciations [1] = nom_colonne_appreciation (1, id_etablissement_par_id_classe ($id_classe, $millesime)) ; } Return $appr ; } /** * Attribution des appreciations * @param int $x Position tableau stat (numero eleve) * @param int $y Position tableau stat (numero service) * @param array $app Tableau des appreciations * @return array Tableau des stats eleves */ Function attribution_appreciations ($x, $y, $app) { Global $stat_eleve, $mode_imp, $fusion_imp, $titres_appreciations, $reduction_colonnes ; If ($mode_imp == 0) { $appreciation [0] = $tt [0] = $reduction_colonnes = 0 ; For ($i = 1 ; $i <= $app [0] ; $i++) { If ($fusion_imp == 1) { If ($app [$i] != "") { $appreciation [0]++ ; $appreciation [$appreciation [0]] = $app [$i] ; $tt [0]++ ; $tt [$tt [0]] = $titres_appreciations [$i] ; } } Else { $appreciation [0]++ ; $appreciation [$appreciation [0]] = $app [$i] ; $tt [0]++ ; $tt [$appreciation [0]] = $titres_appreciations [$i] ; } } If ($appreciation [0] > 0) { $stat_eleve [$y][$x+1][2] = $appreciation [0] ; $titres_appreciations [0] = $tt [0] ; For ($i = 1 ; $i <= $appreciation [0] ; $i++) { $stat_eleve [$y][$x+1][2+$i] = $appreciation [$i] ; $titres_appreciations [$i] = $tt [$i] ; } } Else { $stat_eleve [$y][$x+1][2] = 1 ; $stat_eleve [$y][$x+1][3] = "" ; } If ($appreciation [0] < $app [0]) { $reduction_colonnes = 1 ; } } Else { $stat_eleve [$y][$x+1][2] = 1 ; $stat_eleve [$y][$x+1][3] = $app [1] ; For ($i = 2 ; $i <= $app [0] ; $i++) { $stat_eleve [$y][$x+1][3] .= " ".$app [$i] ; } } } // ------------------------------------------------------------------------ // Variables // ------------------------------------------------------------------------ $rens_classe = SQL_commande ("SELECT * FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; $rs_cl = SQL_tableau_associatif ($rens_classe, "") ; $examen = $rs_cl ["examen"] ; $type_saisie_cpe = $rs_cl ["type_saisie_cpe"] ; $res [0] = $rs_cl ["classement"] ; $titres_appreciations [0] = 0 ; $reduction_colonnes = 0 ; // Alias ? $alias = SQL_commande ("SELECT DISTINCT s.id_service_prof,g.id_utilisateur FROM services_prof s,groupes_alias g WHERE s.professeur<0 AND s.classe='".$id_classe."' AND s.millesime='".$millesime."' AND g.id_alias=-s.professeur AND g.code=1 AND g.numero=1 AND g.id_utilisateur>0", $id_sql) ; $nbr_alias = SQL_nbr_lignes ($alias) ; $req_sup = "" ; If ($nbr_alias > 0) { $table_sup = ",groupes_alias g" ; $req_sup = " OR " ; For ($i = 0 ; $i < $nbr_alias ; $i++) { $lk = SQL_ligne_suivante ($alias) ; If ($i > 0) { $req_sup .= " OR " ; } $req_sup .= "(p.id_service_prof='".$lk [0]."' AND p.service_classe=s.id_service_classe AND s.discipline=d.id_discipline AND u.id_utilisateur='".$lk [1]."'" ; If ($res [0] == 1) { $req_sup .= " AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe" ; } $req_sup .= ")" ; } } If ($res [0] == 1) { // Si classement $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur FROM disciplines d,services_classe s,services_prof p,utilisateurs u,classement c".$table_sup." WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe) ".$req_sup." ORDER BY c.numero", $id_sql) ; $res [0] = SQL_nbr_lignes ($resultat_disc) ; $ok_classement = 1 ; } If ($res [0] == 0) { $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur FROM disciplines d,services_classe s,services_prof p,utilisateurs u".$table_sup." WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur) ".$req_sup." ORDER BY d.nom_long,d.nom_court,d.nom_bref", $id_sql) ; } // Classement ou pas //$resultat = SQL_commande ("SELECT classement FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; //$res = SQL_ligne_suivante ($resultat) ; // Tableau des disciplines et nom prof pour la discipline avec coefficient /* If ($res [0] == 1) { // Si classement $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code, s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe, u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur, d.type_moyenne,d.type_discipline FROM disciplines d,services_classe s,services_prof p,utilisateurs u,classement c,groupes_alias g WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe) OR (p.professeur<0 AND g.id_alias=-p.professeur AND g.id_service_classe=p.service_classe AND g.id_utilisateur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND s.id_service_classe=c.id_service_classe AND s.discipline=d.id_discipline AND g.numero='1') ORDER BY c.numero,d.nom_long,d.nom_court,d.nom_bref", $id_sql) ; $res [0] = SQL_nbr_lignes ($resultat_disc) ; } If ($res [0] == 0) { // Si pas de classement ou classement vide $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code, s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe, u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur, d.type_moyenne,d.type_discipline FROM disciplines d,services_classe s,services_prof p,utilisateurs u,groupes_alias g WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur) OR (p.professeur<0 AND g.id_alias=-p.professeur AND g.id_service_classe=p.service_classe AND g.id_utilisateur=u.id_utilisateur AND p.service_classe=s.id_service_classe AND s.discipline=d.id_discipline AND g.numero='1') ORDER BY d.nom_long,d.nom_court,d.nom_bref", $id_sql) ; } */ $impression_smat = restaure_configuration ("SYSTEME_PARAM", "impression_sous_matiere", $rs_cl ["etablissement"]) ; $ok_alias = 0 ; While ($ligne = SQL_tableau_associatif ($resultat_disc, "")) { $disc [] = $ligne ["id_discipline"] ; $code_disc [] = $ligne ["code"] ; $sc [] = $ligne ["id_service_classe"] ; $sp [] = $ligne ["id_service_prof"] ; $prof_id [] = $ligne ["id_utilisateur"] ; $prof_nom [] = filtrage_utf8 ($ligne ["nom"]) ; $prof_prenom [] = filtrage_utf8 ($ligne ["prenom"]) ; $prof_civ [] = $ligne ["civilite"] ; $prof_coeff [] = $ligne ["coefficient"] ; If ($ligne ["professeur"] < 0) { $alias [] = $ligne ["professeur"] ; $ok_alias = 1 ; } Else { $alias [] = 0 ; } $type_discipline [] = $ligne ["type_discipline"] ; $type_moyenne [] = $ligne ["type_moyenne"] ; $active = restaure_configuration ("SYSTEME_PARAM", "IMP_BULLETINS_".$id_utilisateur, $id_classe."_".$ligne ["id_service_prof"]) ; If (($active < 1) And ($active > 4)) { sauvegarde_configuration ("SYSTEME_PARAM", "IMP_BULLETINS_".$id_utilisateur, $id_classe."_".$ligne ["id_service_prof"], 1) ; $active = 1 ; } $activation_disc [] = $active ; If (($ligne ["sous_discipline"] > 0) Or (($ligne ["sous_discipline"] == 0) And ($ligne ["groupe_classe"] > 0))) { If ($ligne ["sous_discipline"] > 0) { $sous_disc = SQL_commande ("SELECT nom FROM sous_disciplines WHERE id_sous_discipline='".$ligne ["sous_discipline"]."' LIMIT 1", $id_sql) ; $sd = SQL_ligne_suivante ($sous_disc) ; $nom_disc [] = filtrage_utf8 ($ligne ["nom_long"]." (".$sd [0].")") ; $gp [] = $ligne ["groupe_classe"] ; } Else { $nom_disc [] = filtrage_utf8 ($ligne ["nom_long"]) ; $gp [] = $ligne ["groupe_classe"] ; } } Else { $nom_disc [] = filtrage_utf8 ($ligne ["nom_long"]) ; $gp [] = 0 ; } } $nbr_disc = Count ($disc) ; If ($cadre_adresse == 0) { // Telephone $cadre_etab [5][1] = $cadre_etab [4][1]-0.5 ; // Debut TELEPHONE Y // Fax $cadre_etab [6][1] = $cadre_etab [5][1]-0.3 ; // Debut FAX Y // Mel $cadre_etab [7][1] = $cadre_etab [6][1]-0.3 ; // Debut MEL Y $cadre_etab [1][3] = $cadre_etab [7][1]-0.1 ; $cadre_etab [1][4] = $cadre_etab [1][3] ; } // Colonnes multiples ou pas ? $nbr_col = restaure_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NBR_COLONNES") ; $nbr_car = restaure_configuration ("SYSTEME_PARAM", "SAISIE_APPRECIATIONS_".$id_etablissement, "TAILLE") ; If (($nbr_car == "") Or ($nbr_car == 0)) { If (IsSet ($nbr_car_max_saisie_appreciations) And ($nbr_car_max_saisie_appreciations > 0)) { sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_APPRECIATIONS_".$id_etablissement, "TAILLE", $nbr_car_max_saisie_appreciations) ; $nbr_car = $nbr_car_max_saisie_appreciations ; } Else { sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_APPRECIATIONS_".$id_etablissement, "TAILLE", 230) ; $nbr_car = 230 ; } } If (($nbr_col == "") Or ($nbr_col == 0)) { sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NBR_COLONNES", 1) ; $nbr_col = 1 ; sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NOM_COLONNE_1", "Appréciations") ; sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "TAILLE_COLONNE_1", $nbr_car) ; } If ($nbr_col > 1) { $mode_imp = restaure_configuration ("SYSTEME_PARAM", "IMP_COLONNES_".$id_utilisateur, $id_classe) ; If ($mode_imp == "") { $mode_imp = 0 ; sauvegarde_configuration ("SYSTEME_PARAM", "IMP_COLONNES_".$id_utilisateur, $id_classe, $mode_imp) ; } $fusion_imp = restaure_configuration ("SYSTEME_PARAM", "FUSION_COLONNES_".$id_utilisateur, $id_classe) ; If ($fusion_imp == "") { $fusion_imp = 0 ; sauvegarde_configuration ("SYSTEME_PARAM", "FUSION_COLONNES_".$id_utilisateur, $id_classe, $fusion_imp) ; } } Else { $mode_imp = $fusion_imp = 0 ; } $pdf = New pdffile ; // Recherche nom prof principal $resultat_prof_p = SQL_commande ("SELECT u.id_utilisateur,u.nom,u.prenom,u.civilite FROM utilisateurs u,classes c WHERE c.id_classe='".$id_classe."' AND c.id_prof_princ=u.id_utilisateur LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat_prof_p) > 0) { $prof_princ = SQL_tableau_associatif ($resultat_prof_p, "") ; } Else { $prof_princ ["id_utilisateur"] = 0 ; } // Requete etablissement $resultat_etab = SQL_commande ("SELECT * FROM etablissements WHERE id_etablissement='".$rs_cl ["etablissement"]."' LIMIT 1", $id_sql) ; $etablissement = SQL_tableau_associatif ($resultat_etab, "") ; // Requete signature $resultat_signe = SQL_commande ("SELECT * FROM signatures WHERE id_signature='".$rs_cl ["signature"]."' LIMIT 1", $id_sql) ; $signature = SQL_tableau_associatif ($resultat_signe, "") ; If ($etablissement ["examen_blanc"] == 0) { $examen = 0 ; } If ($type_saisie_cpe == -2) { $bulletin_cpe = $etablissement ["bulletin_cpe"] ; } Else { $bulletin_cpe = $type_saisie_cpe ; } // Initialisation de la table avec les eleves // // Requetes eleves $resultat_el = SQL_commande ("SELECT id_eleve FROM eleves WHERE classe='".$id_classe."' AND millesime='".$millesime."' ORDER BY nom,prenoms", $id_sql) ; $nombre_el = SQL_nbr_lignes ($resultat_el) ; For ($i = 0 ; $i < $nombre_el ; $i++) { $lin_el = SQL_ligne_suivante ($resultat_el, "") ; $stat_eleve [$i+1][0][0] = $lin_el [0] ; } // Pre-parcours de determination des moyennes : Parcours les disciplines et recherche les moyennes et appreciations // $force_calcul = restaure_configuration ("SYSTEME_PARAM", "FORCAGE_CALCUL_BULLETIN_".$id_utilisateur, $id_classe) ; // On positionne le recalcul de toutes les moyennes pour le bulletin If ($force_calcul == 1) { $res = SQL_commande ("UPDATE calcul_moyenne SET ok='0' WHERE classe='".$id_classe."' AND periode='".$periode."' AND millesime='".$millesime."'", $id_sql) ; } // On force l'affichage ou pas de tous les enseignants d'un alias $force_alias = restaure_configuration ("SYSTEME_PARAM", "FORCAGE_ALIAS_LISTE_".$id_utilisateur, $id_classe) ; // Moyenne de la classe : Minimum, moyenne et maximum For ($i = 0 ; $i < $nbr_disc ; $i++) { // Recherche ou calcul la moyenne eleve // Est-ce que la moyenne est enregistree ? $res = SQL_commande ("SELECT ok FROM calcul_moyenne WHERE classe='".$id_classe."' AND periode='".$periode."' AND service_prof='".$sp [$i]."' AND service_classe='".$sc [$i]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; $ok = 0 ; If (SQL_nbr_lignes ($res) > 0) { $r = SQL_ligne_suivante ($res) ; $ok = $r [0] ; If ($ok == 1) { // Oui : A prendre $ok_ap = 0 ; $res_moy = SQL_commande ("SELECT m.eleve,m.valeur,a.texte FROM moyennes m,eleves e,appreciations a WHERE e.classe='".$id_classe."' AND m.eleve=e.id_eleve AND m.periode='".$periode."' AND m.service_prof='".$sp [$i]."' AND m.service_classe='".$sc [$i]."' AND a.eleve=e.id_eleve AND a.classe='".$id_classe."' AND a.professeur='".$prof_id [$i]."' AND a.discipline='".$disc [$i]."' AND a.service_prof='".$sp [$i]."' AND a.periode='".$periode."' AND m.type='".$note_normale."' AND e.millesime='".$millesime."' ORDER BY e.nom,e.prenoms", $id_sql) ; If (SQL_nbr_lignes ($res_moy) == 0) { // Aucune appreciations $ok_ap = 1 ; $res_moy = SQL_commande ("SELECT m.eleve,m.valeur FROM moyennes m,eleves e WHERE e.classe='".$id_classe."' AND m.eleve=e.id_eleve AND m.periode='".$periode."' AND m.service_prof='".$sp [$i]."' AND m.service_classe='".$sc [$i]."' AND m.type='".$note_normale."' AND e.millesime='".$millesime."' ORDER BY e.nom,e.prenoms", $id_sql) ; } ElseIf (SQL_nbr_lignes ($res_moy) < $nombre_el) { // Pas assez d'appreciations $ok_ap = 1 ; $res_moy = SQL_commande ("SELECT m.eleve,m.valeur FROM moyennes m,eleves e WHERE e.classe='".$id_classe."' AND m.eleve=e.id_eleve AND m.periode='".$periode."' AND m.service_prof='".$sp [$i]."' AND m.service_classe='".$sc [$i]."' AND m.type='".$note_normale."' AND e.millesime='".$millesime."' ORDER BY e.nom,e.prenoms", $id_sql) ; } // On parcourt les notes et on enregistre $rm = SQL_ligne_suivante ($res_moy) ; $stat_eleve [0][$i+1][0] = $maxi_min ; // Minimum discipline $stat_eleve [0][$i+1][1] = $mini_max ; // Maximum discipline $stat_eleve [0][$i+1][2] = 0 ; // Somme de toutes les notes discipline $stat_eleve [0][$i+1][3] = 0 ; // Nombre de notes discipline For ($j = 1 ; $j <= $nombre_el ; $j++) { If ($activation_disc [$i] == 3) { $mat_ok = 0 ; } ElseIf (($activation_disc [$i] == 4) Or ($activation_disc [$i] == 1)) { $mat_ok = test_matiere ($disc [$i], $id_classe, $sc [$i], $gp [$i], $stat_eleve [$j][0][0]) ; } ElseIf ($activation_disc [$i] == 2) { $mat_ok = 1 ; } If ($mat_ok == 1) { If ($ok_ap == 1) { $appreciations = determine_appreciations ($nbr_col, $stat_eleve [$j][0][0], $prof_id [$i], $disc [$i], $sp [$i], $periode) ; } // OK pour cette discipline. If ($rm [0] == $stat_eleve [$j][0][0]) { // C'est le bon eleve -> on enregistre $stat_eleve [$j][$i+1][0] = 1 ; $stat_eleve [$j][$i+1][1] = $rm [1] ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } If ($ok_ap == 1) { attribution_appreciations ($i, $j, $appreciations) ; } Else { attribution_appreciations ($i, $j, Array ('1', filtre_appreciation ($rm [2]))) ; } // Statistiques : min, max, moy (nc et c) If ($rm [1] < $stat_eleve [0][$i+1][0]) { $stat_eleve [0][$i+1][0] = $rm [1] ; } If ($rm [1] > $stat_eleve [0][$i+1][1]) { $stat_eleve [0][$i+1][1] = $rm [1] ; } $stat_eleve [0][$i+1][2] += $rm [1] ; $stat_eleve [0][$i+1][3] += 1 ; // Au suivant $rm = SQL_ligne_suivante ($res_moy) ; } Else { // Ce n'est pas le bon eleve If ($j > 1) { If ($stat_eleve [$j-1][0][0] == $rm [0]) { // C'est l'eleve precedent // Au suivant $rm = SQL_ligne_suivante ($res_moy) ; If ($rm [0] == $stat_eleve [$j][0][0]) { // C'est le bon eleve -> on enregistre $stat_eleve [$j][$i+1][0] = 1 ; $stat_eleve [$j][$i+1][1] = $rm [1] ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } If ($ok_ap == 1) { attribution_appreciations ($i, $j, $appreciations) ; } Else { attribution_appreciations ($i, $j, Array ('1', filtre_appreciation ($rm [2]))) ; } // Statistiques : min, max, moy (nc et c) If ($rm [1] < $stat_eleve [0][$i+1][0]) { $stat_eleve [0][$i+1][0] = $rm [1] ; } If ($rm [1] > $stat_eleve [0][$i+1][1]) { $stat_eleve [0][$i+1][1] = $rm [1] ; } $stat_eleve [0][$i+1][2] += $rm [1] ; $stat_eleve [0][$i+1][3] += 1 ; // Au suivant $rm = SQL_ligne_suivante ($res_moy) ; } Else { // Pas de notes If ($rm [1] == $code_dispense) { $stat_eleve [$j][$i+1][0] = -1 ; $stat_eleve [$j][$i+1][1] = "D" ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } } ElseIf ($rm [1] == $code_aucune_note) { $stat_eleve [$j][$i+1][0] = -1 ; $stat_eleve [$j][$i+1][1] = "?" ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } } Else { $stat_eleve [$j][$i+1][0] = -2 ; $stat_eleve [$j][$i+1][1] = "-" ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } } If ($ok_ap == 1) { attribution_appreciations ($i, $j, $appreciations) ; } Else { attribution_appreciations ($i, $j, Array ('1', filtre_appreciation ($rm [2]))) ; } } } Else { // C'est un eleve suivant // Pas de notes $stat_eleve [$j][$i+1][0] = -2 ; $stat_eleve [$j][$i+1][1] = "-" ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } If ($ok_ap == 1) { attribution_appreciations ($i, $j, $appreciations) ; } Else { attribution_appreciations ($i, $j, Array ('1', filtre_appreciation ($rm [2]))) ; } } } Else { // C'est le premier // Pas de notes If ($rm [1] == $code_dispense) { $stat_eleve [$j][$i+1][0] = -1 ; $stat_eleve [$j][$i+1][1] = "D" ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } } ElseIf ($rm [1] == $code_aucune_note) { $stat_eleve [$j][$i+1][0] = -1 ; $stat_eleve [$j][$i+1][1] = "?" ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } } Else { $stat_eleve [$j][$i+1][0] = -2 ; $stat_eleve [$j][$i+1][1] = "-" ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } } If ($ok_ap == 1) { attribution_appreciations ($i, $j, $appreciations) ; } Else { attribution_appreciations ($i, $j, Array ('1', filtre_appreciation ($rm [2]))) ; } } } } Else { // Pas discipline $stat_eleve [$j][$i+1][0] = 0 ; $stat_eleve [$j][$i+1][1] = "/" ; } } } } If ($ok == 0) { // Non : Aucune note enregistres dans calcul_moyenne pour la discipline $stat_eleve [0][$i+1][0] = $maxi_min ; // Minimum discipline $stat_eleve [0][$i+1][1] = $mini_max ; // Maximum discipline $stat_eleve [0][$i+1][2] = 0 ; // Somme de toutes les notes discipline $stat_eleve [0][$i+1][3] = 0 ; // Nombre de notes discipline For ($j = 1 ; $j <= $nombre_el ; $j++) { If ($activation_disc [$i] == 3) { $mat_ok = 0 ; } ElseIf (($activation_disc [$i] == 4) Or ($activation_disc [$i] == 1)) { $mat_ok = test_matiere ($disc [$i], $id_classe, $sc [$i], $gp [$i], $stat_eleve [$j][0][0]) ; } ElseIf ($activation_disc [$i] == 2) { $mat_ok = 1 ; } If ($mat_ok == 1) { // OK pour cette discipline. $m = moyenne_el ($stat_eleve [$j][0][0], $id_classe, $periode, $disc [$i], $sc [$i], $sp [$i], 0, 0) ; //$appr = appreciation ($stat_eleve [$j][0][0], $prof_id [$i], $disc [$i], $sp [$i], $periode, 0) ; $appr = determine_appreciations ($nbr_col, $stat_eleve [$j][0][0], $prof_id [$i], $disc [$i], $sp [$i], $periode) ; If (Is_Numeric ($m)) { $stat_eleve [$j][$i+1][0] = 1 ; $stat_eleve [$j][$i+1][1] = $m ; //$stat_eleve [$j][$i+1][2] = filtre_appreciation ($appr) ; attribution_appreciations ($i, $j, $appr) ; // Statistiques : min, max, moy (nc et c) If ($m < $stat_eleve [0][$i+1][0]) { $stat_eleve [0][$i+1][0] = $m ; } If ($m > $stat_eleve [0][$i+1][1]) { $stat_eleve [0][$i+1][1] = $m ; } $stat_eleve [0][$i+1][2] += $m ; $stat_eleve [0][$i+1][3] += 1 ; } Else { // Pas de notes If ($m == $code_dispense) { $stat_eleve [$j][$i+1][0] = -1 ; $stat_eleve [$j][$i+1][1] = "D" ; //$stat_eleve [$j][$i+1][2] = filtre_appreciation ($appr) ; } ElseIf ($m == $code_aucune_note) { $stat_eleve [$j][$i+1][0] = -1 ; $stat_eleve [$j][$i+1][1] = "?" ; //$stat_eleve [$j][$i+1][2] = filtre_appreciation ($appr) ; } Else { $stat_eleve [$j][$i+1][0] = -2 ; $stat_eleve [$j][$i+1][1] = "-" ; //$stat_eleve [$j][$i+1][2] = filtre_appreciation ($appr) ; } attribution_appreciations ($i, $j, $appr) ; } } Else { // Pas cette discipline $stat_eleve [$j][$i+1][0] = 0 ; $stat_eleve [$j][$i+1][0] = "/" ; } } } } // Traitement des sous-matieres If ($impression_smat == 1) { $ok_smat = 0 ; $requete_insertion = "INSERT INTO moyennes (eleve,controle,service_classe,service_prof,periode,valeur,type,millesime) VALUES " ; $ok_insertion = 0 ; // Parcours les disciplines For ($i = 0 ; $i < $nbr_disc ; $i++) { If ($type_discipline [$i] == 0) { // Activation de l'impression sous-disciplines ? $imp_smat_1 = restaure_configuration ($sp [$i], "IMP_SMAT", 1) ; $imp_smat_2 = restaure_configuration ($sp [$i], "IMP_SMAT", 2) ; // Verification de l'existence de la sous-matiere $ok = SQL_commande ("SELECT id_sous_matiere FROM sous_matieres WHERE id_sous_matiere='".$imp_smat_1."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($ok) != 1) { $imp_smat_1 = 0 ; } //detruire_configuration ($id_service_prof, "IMP_SMAT", 1) ; } $ok = SQL_commande ("SELECT id_sous_matiere FROM sous_matieres WHERE id_sous_matiere='".$imp_smat_2."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($ok) != 1) { $imp_smat_2 = 0 ; } //detruire_configuration ($id_service_prof, "IMP_SMAT", 2) ; } $r = SQL_commande ("SELECT valeur FROM moyennes WHERE valeur!='' AND service_classe='".$sc [$i]."' AND service_prof='".$sp [$i]."' AND periode='".$periode."' AND type='11' AND millesime='".$millesime."'", $id_sql) ; //echo $imp_smat_1."<->".$imp_smat_2."<->".SQL_nbr_lignes ($r)."
" ; If ((($imp_smat_1 > 0) Or ($imp_smat_2 > 0)) And (SQL_nbr_lignes ($r) >= $nombre_el)) { //echo "OK
" ; $nom_sous_matieres [$i][0][0] = ($imp_smat_1 > 0)+($imp_smat_2 > 0) ; $ok_smat = 1 ; // Noms des sous-disciplines If ((integer)$imp_smat_1 > 0) { $r = SQL_commande ("SELECT nom FROM sous_matieres WHERE id_sous_matiere='".$imp_smat_1."' LIMIT 1", $id_sql) ; $rr1 = SQL_ligne_suivante ($r) ; If ((integer)$imp_smat_2 > 0) { $r = SQL_commande ("SELECT nom FROM sous_matieres WHERE id_sous_matiere='".$imp_smat_2."' LIMIT 1", $id_sql) ; $rr2 = SQL_ligne_suivante ($r) ; If ($rr1 [0] < $rr2 [0]) { $nom_sous_matieres [$i][1][0] = SubStr (filtrage_utf8 ($rr1 [0]), 0, $nbr_car_sous_matiere) ; $nom_sous_matieres [$i][1][1] = $imp_smat_1 ; $nom_sous_matieres [$i][2][0] = SubStr (filtrage_utf8 ($rr2 [0]), 0, $nbr_car_sous_matiere) ; $nom_sous_matieres [$i][2][1] = $imp_smat_2 ; } Else { $nom_sous_matieres [$i][1][0] = SubStr (filtrage_utf8 ($rr2 [0]), 0, $nbr_car_sous_matiere) ; $nom_sous_matieres [$i][1][1] = $imp_smat_2 ; $nom_sous_matieres [$i][2][0] = SubStr (filtrage_utf8 ($rr1 [0]), 0, $nbr_car_sous_matiere) ; $nom_sous_matieres [$i][2][1] = $imp_smat_1 ; } } Else { $nom_sous_matieres [$i][1][0] = SubStr (filtrage_utf8 ($rr1 [0]), 0, $nbr_car_sous_matiere) ; $nom_sous_matieres [$i][1][1] = $imp_smat_1 ; } } Else { $r = SQL_commande ("SELECT nom FROM sous_matieres WHERE id_sous_matiere='".$imp_smat_2."' LIMIT 1", $id_sql) ; $rr1 = SQL_ligne_suivante ($r) ; $nom_sous_matieres [$i][1][0] = SubStr (filtrage_utf8 ($rr1 [0]), 0, $nbr_car_sous_matiere) ; $nom_sous_matieres [$i][1][1] = $imp_smat_2 ; } // Parcours les eleves For ($j = 1 ; $j <= $nombre_el ; $j++) { If ($activation_disc [$i] == 3) { $mat_ok = 0 ; } ElseIf (($activation_disc [$i] == 4) Or ($activation_disc [$i] == 1)) { $mat_ok = test_matiere ($disc [$i], $id_classe, $sc [$i], $gp [$i], $stat_eleve [$j][0][0]) ; } ElseIf ($activation_disc [$i] == 2) { $mat_ok = 1 ; } If ($mat_ok == 1) { // OK pour cette discipline For ($k = 1 ; $k <= $nom_sous_matieres [$i][0][0] ; $k++) { // Recherche moyenne sous-matiere $r = SQL_commande ("SELECT valeur FROM moyennes WHERE eleve='".$stat_eleve [$j][0][0]."' AND controle='".$nom_sous_matieres [$i][$k][1]."' AND service_classe='".$sc [$i]."' AND service_prof='".$sp [$i]."' AND periode='".$periode."' AND type='11' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r) == 1) { $rr = SQL_ligne_suivante ($r) ; If (Is_Numeric ($rr [0]) And ($rr [0] != 0)) { $note = arrondi_note ($rr [0], $etablissement ["nombre_chiffres"]) ; $note_sous_matieres [$i][$j][$k] = Str_Replace (".", ",", $note) ; } Else { For ($kk = $k+1 ; $kk <= $nom_sous_matieres [$i][0][0] ; $kk++) { $nom_sous_matieres [$kk-1][1][0] = $nom_sous_matieres [$kk][1][0] ; $nom_sous_matieres [$kk-1][1][1] = $nom_sous_matieres [$kk][1][0] ; } $nom_sous_matieres [$i][0][0]-- ; } } Else { // Calcul de la sous-moyenne // Obtient les notes/coefficients des controles $resultat = SQL_commande ("SELECT n.valeur,c.coefficient,c.max FROM notes n,controles c WHERE c.classe='".$id_classe."' AND c.discipline='".$disc [$i]."' AND c.periode='".$periode."' AND c.service_prof='".$sp [$i]."' AND c.millesime='".$millesime."' AND c.sous_matiere='".$nom_sous_matieres [$i][$k][1]."' AND n.controle=c.id_controle AND n.eleve='".$stat_eleve [$j][0][0]."' AND n.millesime=c.millesime", $id_sql) ; $nombre_val = SQL_nbr_lignes ($resultat) ; $somme_smat = $coeff_smat = 0 ; For ($l = 1 ; $l <= $nombre_val ; $l++) { $r = SQL_ligne_suivante ($resultat) ; $somme_smat += ($r [0]*$etablissement ["max"]/$r [2])*$r [1] ; // On ramene la note sur $etablissement ["max"] et on applique le coeff $coeff_smat += $r [1] ; // Somme des coeff } If ($ok_insertion == 1) { $requete_insertion .= "," ; } If ($coeff_smat > 0) { $requete_insertion .= "('".$stat_eleve [$j][0][0]."','".$nom_sous_matieres [$i][$k][1]."','".$sc [$i]."','".$sp [$i]."','".$periode."','".($somme_smat/$coeff_smat)."','11','".$millesime."')" ; $ok_insertion = 1 ; } If (($coeff_smat > 0) And ($note != 0)) { $note = arrondi_note ($somme_smat/$coeff_smat, $etablissement ["nombre_chiffres"]) ; If ($note < 10) { $note = "0".$note ; } $note_sous_matieres [$i][$j][$k] = Str_Replace (".", ",", $note) ; } Else { For ($kk = $k+1 ; $kk <= $nom_sous_matieres [$i][0][0] ; $kk++) { $nom_sous_matieres [$kk-1][1][0] = $nom_sous_matieres [$kk][1][0] ; $nom_sous_matieres [$kk-1][1][1] = $nom_sous_matieres [$kk][1][0] ; } $nom_sous_matieres [$i][0][0]-- ; } } } } Else { $note_sous_matieres [$i][$j][1] = "-" ; } } } Else { $nom_sous_matieres [$i][0][0] = 0 ; } } } If ($ok_insertion == 1) { $ok = SQL_commande ($requete_insertion, $id_sql) ; } // Reconfiguration If ($ok_smat == 1) { $impression_smat = 1 ; // Largeur Matieres/Professeurs $cadre_mat [1][4] = 4.7 ; // -0.7 // Largeur Moyenne eleve $cadre_mat [1][5] = 1.8 ; // +0.8 // Largeur Moy/Min/Max classe $cadre_mat [1][6] = 0.7 ; // -0.1 // Largeur Appreciations/Professeur pincipal $cadre_mat [1][7] = $cadre_mat [1][1]-$cadre_mat [1][0]-$cadre_mat [1][4]-$cadre_mat [1][5]-3*$cadre_mat [1][6] ; $cadre_mat [1][8] = Floor (($cadre_mat [1][7]-0.1)*$echelle_x/6) ; // Nombre caracteres // Def texte Matieres/Professeurs // Entete $cadre_mat [3][0] = "Helvetica-Bold" ; // Police Matiere $cadre_mat [3][1] = "8" ; // Taille $cadre_mat [3][2] = "Helvetica-Oblique" ; // Police Prof $cadre_mat [3][3] = "8" ; // Taille // Matiere $cadre_mat [3][4] = "Helvetica-Bold" ; // Police Matiere $cadre_mat [3][5] = "7" ; // Taille $cadre_mat [3][6] = "Helvetica-Oblique" ; // Police Prof $cadre_mat [3][7] = "8" ; // Taille // Def texte Moyenne eleve // Entete $cadre_mat [4][0] = "Helvetica" ; // Police $cadre_mat [4][1] = "8" ; // Taille // Matiere $cadre_mat [4][2] = "Helvetica-Bold" ; // Police $cadre_mat [4][3] = "7" ; // Taille // Def texte Moy/Min/Max Classe // Entete $cadre_mat [5][0] = "Helvetica" ; // Police $cadre_mat [5][1] = "7" ; // Taille // Matiere $cadre_mat [5][2] = "Helvetica" ; // Police $cadre_mat [5][3] = "6" ; // Taille // Def texte Appreciations/Professeur pincipal // Entete $cadre_mat [6][0] = "Helvetica-Bold" ; // Police Appreciations $cadre_mat [6][1] = "8" ; // Taille $cadre_mat [6][2] = "Helvetica" ; // Police Prof principal $cadre_mat [6][3] = "8" ; // Taille // Matiere $cadre_mat [6][4] = "Helvetica" ; // Police Appreciations $cadre_mat [6][5] = "8" ; // Taille // Examen blanc $cadre_mat [6][6] = "Helvetica" ; // Police Notes Examen blanc $cadre_mat [6][7] = "8" ; // Taille // Sous-matieres // Nom $cadre_mat [7][0] = "Helvetica" ; // Police Nom sous-matiere $cadre_mat [7][1] = "6" ; // Taille // Note $cadre_mat [7][2] = "Helvetica" ; // Police Note sous-matiere $cadre_mat [7][3] = "7" ; // Taille // Taille case moyenne $cadre_mat [7][4] = 0.8 ; If (($cadre_mat [0][2] == 5) And ($cadre_mat [0][3] == 6)) { // Largeur Moyenne periodique/Moyenne coefficientee $cadre_moy_gen [1][4] = $cadre_mat [1][4] ; // Largeur Moyenne eleve $cadre_moy_gen [1][5] = $cadre_mat [1][5] ; // Largeur Moy/Min/Max classe $cadre_moy_gen [1][6] = $cadre_mat [1][6] ; // Cadre $cadre_moy_gen [1][0] = $marge_gauche ; // Debut cadre X $cadre_moy_gen [1][1] = $marge_gauche+$cadre_moy_gen [1][4]+3*$cadre_moy_gen [1][6]+$cadre_moy_gen [1][5] ; // Fin cadre X $cadre_moy_gen [1][2] = 0.70 ; // Hauteur moyenne non coefficientee $cadre_moy_gen [1][3] = 0.35 ; // Hauteur moyenne coefficientee } Else { // Largeur Moyenne periodique/Moyenne coefficientee $cadre_moy_gen [1][4] = 4.5 ; // Largeur Moyenne eleve $cadre_moy_gen [1][5] = $cadre_mat [1][5] ; // Largeur Moy/Min/Max classe $cadre_moy_gen [1][6] = $cadre_mat [1][6] ; // Cadre $cadre_moy_gen [1][0] = $largeur-$marge_droite-$cadre_moy_gen [1][4]-$cadre_moy_gen [1][5]-3*$cadre_moy_gen [1][6] ; // Debut cadre X $cadre_moy_gen [1][1] = $largeur-$marge_droite ; // Fin cadre X $cadre_moy_gen [1][2] = 0.70 ; // Hauteur moyenne non coefficientee $cadre_moy_gen [1][3] = 0.35 ; // Hauteur moyenne coefficientee } // Def texte Moyenne periodique/Moyenne coefficientee $cadre_moy_gen [3][0] = "Helvetica" ; // Police Moyennes $cadre_moy_gen [3][1] = "8" ; // Taille $cadre_moy_gen [3][2] = "Helvetica" ; // Police Coefficientee $cadre_moy_gen [3][3] = "8" ; // Taille // Def texte Moyenne eleve $cadre_moy_gen [4][0] = "Helvetica-Bold" ; // Police $cadre_moy_gen [4][1] = "7" ; // Taille // Def texte Moy/Min/Max Classe $cadre_moy_gen [5][0] = "Helvetica" ; // Police $cadre_moy_gen [5][1] = "6" ; // Taille } Else { $impression_smat = 0 ; } } Else { $nom_sous_matieres [0][0][0] = $note_sous_matieres [0][0] = 0 ; $impression_smat = 0 ; } // Discipline CPE a ajouter If (($bulletin_cpe == 3) Or ($bulletin_cpe == 4)) { // Recherche CPE $id_cpe = SQL_commande ("SELECT u.id_utilisateur,u.civilite,u.nom,u.prenom,c.coefficient_vs FROM utilisateurs u,classes c WHERE c.id_classe='".$id_classe."' AND c.cpe=u.id_utilisateur LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($id_cpe) == 1) { $r = SQL_ligne_suivante ($id_cpe) ; $aff_cpe [0][0] = $r [0] ; // Id $aff_cpe [0][1] = $r [1] ; // Civilite $aff_cpe [0][2] = $r [2] ; // Nom $aff_cpe [0][3] = $r [3] ; // Prenom $aff_cpe [0][4] = $r [4] ; // Coefficient } Else { $id_cpe = SQL_commande ("SELECT coefficient_vs FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; $r = SQL_ligne_suivante ($id_cpe) ; $aff_cpe [0][0] = 0 ; // Id $aff_cpe [0][1] = 0 ; // Civilite $aff_cpe [0][2] = "" ; // Nom $aff_cpe [0][3] = "" ; // Prenom $aff_cpe [0][4] = $r [0] ; // Coefficient } $total_notes = 0 ; $nbr_notes = 0 ; $resultat_el = SQL_commande ("SELECT id_eleve FROM eleves WHERE classe='".$id_classe."' AND millesime='".$millesime."' ORDER BY nom,prenoms", $id_sql) ; $nombre_el = SQL_nbr_lignes ($resultat_el) ; For ($i = 1 ; $i <= $nombre_el ; $i++) { UnSet ($r) ; UnSet ($res) ; $res = SQL_commande ("SELECT note,commentaire FROM vie_scolaire WHERE eleve='".$stat_eleve [$i][0][0]."' AND periode='".$periode."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($res) == 1) { $r = SQL_ligne_suivante ($res) ; } Else { $r [0] = 0 ; } If ($r [0] == "") { $r [0] = 0 ; } $aff_cpe [$i][0] = $r [0] ; // Note $aff_cpe [$i][1] = filtrage_utf8 ($r [1]) ; // Commentaire } // Calcul min, max et moy classe For ($i = 1 ; $i <= $nombre_el ; $i++) { $res = SQL_commande ("SELECT note FROM vie_scolaire WHERE eleve='".$stat_eleve [$i][0][0]."' AND periode='".$periode."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($res) == 1) { $r = SQL_ligne_suivante ($res) ; } Else { $r [0] = 0 ; } If ($r [0] == "") { $r [0] = 0 ; } $total_notes += $r [0] ; $nbr_notes++ ; If ($i > 1) { If ($aff_cpe [0][5] > $r [0]) { $aff_cpe [0][5] = $r [0] ; } If ($aff_cpe [0][6] < $r [0]) { $aff_cpe [0][6] = $r [0] ; } } Else { $aff_cpe [0][5] = $r [0] ; // Min $aff_cpe [0][6] = $r [0] ; // Max } } // Moy If ($nbr_notes > 0) { $aff_cpe [0][7] = $total_notes/$nbr_notes ; } Else { $aff_cpe [0][7] = 0 ; } } // Met a 1 ok dans calcul moyenne $ok = SQL_commande ("UPDATE calcul_moyenne SET ok='1' WHERE classe='".$id_classe."' AND periode='".$periode."' AND millesime='".$millesime."'", $id_sql) ; // Creation des pages PDF $numero_page = 1 ; // Pour chaque eleve : creation du bulletin des releves des notes // // Requetes eleves $resultat_el = SQL_commande ("SELECT * FROM eleves WHERE classe='".$id_classe."' AND millesime='".$millesime."' ORDER BY nom,prenoms", $id_sql) ; $nombre_el = SQL_nbr_lignes ($resultat_el) ; For ($i = 1 ; $i <= $nombre_el ; $i++) { $lin_el = SQL_tableau_associatif ($resultat_el, "") ; If ((IsSet ($id_eleve) And ($id_eleve == 0)) Or (IsSet ($id_eleve) And ($id_eleve == $lin_el ["id_eleve"]))) { If (($bulletin_cpe != 3) And ($bulletin_cpe != 4)) { $resultat_cpe = SQL_commande ("SELECT * FROM vie_scolaire WHERE eleve='".$lin_el ["id_eleve"]."' AND periode='".$periode."' LIMIT 1", $id_sql) ; $cpe = SQL_tableau_associatif ($resultat_cpe, "") ; If ((integer)$cpe ["cpe"] == 0) { // Pas de saisie CPE donc on test si il existe pour la classe et si le module absences existe $id_cpe = SQL_commande ("SELECT u.id_utilisateur FROM utilisateurs u, classes c WHERE c.id_classe='".$id_classe."' AND c.cpe=u.id_utilisateur LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($id_cpe) == 1) { $r = SQL_ligne_suivante ($id_cpe) ; // Si le CPE est trouve et que le module absences existe alors calcul des absences eventuelles If ($module_absences == 1) { // Recherche la periode $dates_periode = SQL_commande ("SELECT debut,fin FROM periodes_classe WHERE classe='".$id_classe."' AND numero='".$periode."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($dates_periode) == 1) { // Comptabilisation $cpe ["cpe"] = $r [0] ; $dp = SQL_ligne_suivante ($dates_periode) ; // Recherche le nombre absences/non justifies/retards en demi-heure pour cet eleve // Absences $nbr = SQL_commande ("SELECT COUNT(id_abs_saisie) FROM abs_saisies s,abs_types_saisie t WHERE s.date>='".$dp [0]."' AND s.date<='".$dp [1]."' AND s.eleve='".$lin_el ["id_eleve"]."' AND t.type='1' AND t.id_abs_type_saisie=s.type", $id_sql) ; $r = SQL_ligne_suivante ($nbr) ; $cpe ["absences"] = arrondi ($r [0], $unite_comptabilisation, 1) ; // Non justifiees $nbr = SQL_commande ("SELECT COUNT(id_abs_saisie) FROM abs_saisies s,abs_types_saisie t WHERE s.date>='".$dp [0]."' AND s.date<='".$dp [1]."' AND s.eleve='".$lin_el ["id_eleve"]."' AND regularisation='0' AND t.type='1' AND t.id_abs_type_saisie=s.type", $id_sql) ; $r = SQL_ligne_suivante ($nbr) ; $cpe ["non_justifiees"] = arrondi ($r [0], $unite_comptabilisation, 1) ; // Retards $nbr = SQL_commande ("SELECT COUNT(id_abs_saisie) FROM abs_saisies s,abs_types_saisie t WHERE s.date>='".$dp [0]."' AND s.date<='".$dp [1]."' AND s.eleve='".$lin_el ["id_eleve"]."' AND t.type='2' AND t.id_abs_type_saisie=s.type", $id_sql) ; $r = SQL_ligne_suivante ($nbr) ; $cpe ["retards"] = arrondi ($r [0], $unite_comptabilisation, 1) ; } Else { $cpe ["cpe"] = 0 ; } } Else { $cpe ["cpe"] = 0 ; } } Else { $cpe ["cpe"] = $cpe ["absences"] = $cpe ["non_justifiees"] = $cpe ["retards"] = 0 ; } } } // Determine le nombre de bulletins en fonction du nombre de responsables possibles differents ou forcage $imp_un_bulletin = restaure_configuration ("SYSTEME_PARAM", "IMP_UN_BULLETIN_".$id_utilisateur, $id_classe) ; If ($imp_un_bulletin == "") { sauvegarde_configuration ("SYSTEME_PARAM", "IMP_UN_BULLETIN_".$id_utilisateur, $id_classe, 0) ; $imp_un_bulletin = 0 ; } If (($lin_el ["nom_parents_p2"] != "") And ($lin_el ["adresse1_p2"] != "") And ($lin_el ["cp_p2"] != "") And ($lin_el ["adresse1"].$lin_el ["adresse2"] != $lin_el ["adresse1_p2"].$lin_el ["adresse2_p2"]) And ($imp_un_bulletin == 0)) { $nombre_bulletin_parents = 2 ; } Else { $nombre_bulletin_parents = 1 ; } // Appreciation de l'equipe pedagogique $texte_aep = appreciation_equipe_pedagogique ($lin_el ["id_eleve"], $id_classe, $periode) ; For ($numero_bulletin_parent = 1 ; $numero_bulletin_parent <= $nombre_bulletin_parents ; $numero_bulletin_parent++) { $page [$numero_page] = $pdf->New_Page ("a4") ; // Entetes If ($etablissement ["imprimer_logo_bulletins"] == 1) { entete_etablissement ($numero_page, $etablissement, $etablissement ["logo_bulletins"], $cadre_adresse) ; } Else { entete_etablissement ($numero_page, $etablissement, "", $cadre_adresse) ; } entete_periode ($numero_page, $periode, $id_classe) ; entete_eleve ($numero_page, $lin_el, $nombre_el) ; If ($cadre_adresse == 1) { entete_parents ($numero_page, $lin_el, $numero_bulletin_parent) ; } $y = entete_matieres ($numero_page, $prof_princ, 0, $cadre_adresse) ; // Parcours les disciplines et recherche les moyennes et appreciations $nbr_page = 1 ; $nbr_disc_aff = 0 ; $mini_nc = $maxi_min ; $maxi_nc = $mini_max ; $somme_moy_nc = 0 ; $nombre_moy_nc = 0 ; $somme_moy_cl_nc = 0 ; $nombre_moy_cl_nc = 0 ; $mini_c = $maxi_min ; $maxi_c = $mini_max ; $somme_moy_c = 0 ; $nombre_moy_c = 0 ; $somme_moy_cl_c = 0 ; $nombre_moy_cl_c = 0 ; $somme_min_cl_c = 0 ; $nombre_min_cl_c = 0 ; $somme_max_cl_c = 0 ; $nombre_max_cl_c = 0 ; For ($k = 0 ; $k < $nbr_disc ; $k++) { If ($stat_eleve [$i][$k+1][0] != 0) { // OK pour cette discipline. If ($nbr_disc_aff == $nbr_max_disciplines) { $y = $marge_bas+0.5 ; $y_p [$nbr_page] = $y ; bas_page ($numero_page, $y) ; $numero_page++ ; $nbr_page++ ; $page [$numero_page] = $pdf->New_Page ("a4") ; // Entetes If ($etablissement ["entete_bulletins"] == 0) { If ($etablissement ["imprimer_logo_bulletins"] == 1) { entete_etablissement ($numero_page, $etablissement, $etablissement ["logo_bulletins"], $cadre_adresse) ; } Else { entete_etablissement ($numero_page, $etablissement, "", $cadre_adresse) ; } } entete_periode ($numero_page, $periode, $id_classe) ; entete_eleve ($numero_page, $lin_el, $nombre_el) ; $y = entete_matieres ($numero_page, $prof_princ, 1, $cadre_adresse) ; } $nbr_disc_aff = $nbr_disc_aff + 1 ; // Examen blanc If ($examen == 1) { // Recherche et construit la chaine pour la discipline $sous_mat = SQL_commande ("SELECT s.nom, n.valeur FROM controles c, sous_matieres s, notes n WHERE c.classe='".$id_classe."' AND c.discipline='".$disc [$k]."' AND c.examen>'0' AND c.sous_matiere>'0' AND c.sous_matiere=s.id_sous_matiere AND c.periode='".$periode."' AND n.controle=c.id_controle AND n.eleve='".$lin_el ["id_eleve"]."' AND c.millesime='".$millesime."' ORDER BY s.nom", $id_sql) ; If (SQL_nbr_lignes ($sous_mat) > 0) { $chaine = "Éxamen blanc : " ; For ($ik = 0 ; $ik < SQL_nbr_lignes ($sous_mat) ; $ik++) { $sd = SQL_ligne_suivante ($sous_mat) ; If ($ik > 0) { $chaine .= " ; " ; } $chaine .= $sd [0]."=".$sd [1] ; } $ok_examen = 1 ; } Else { $ok_examen = 0 ; $chaine = "" ; } } Else { $ok_examen = 0 ; $chaine = "" ; } If ($stat_eleve [$i][$k+1][0] == 1) { If ($stat_eleve [0][$k+1][3] > 0) { $moy = $stat_eleve [0][$k+1][2]/$stat_eleve [0][$k+1][3] ; } Else { $moy ="-" ; } $note = arrondi_note ($stat_eleve [$i][$k+1][1], $etablissement ["nombre_chiffres"]) ; If ($note < 10) { $note = "0".$note ; } /* $y = matiere ($numero_page, $y, $nom_disc [$k], $prof_id [$k], $prof_civ [$k], $prof_nom [$k], $prof_prenom [$k], $prof_coeff [$k], $stat_eleve [$i][$k+1][2], Str_Replace (".", ",", arrondi_note ($stat_eleve [0][$k+1][0], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", arrondi_note ($moy, $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", arrondi_note ($stat_eleve [0][$k+1][1], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", $note), $rs_cl ["coefficient"], $etablissement ["coefficient"], $ok_examen, $chaine, $k, $i, $activation_disc [$k], $alias [$k], $type_moyenne [$k]) ; */ $y = matiere ($numero_page, $y, $nom_disc [$k], $prof_id [$k], $prof_civ [$k], $prof_nom [$k], $prof_prenom [$k], $prof_coeff [$k], $i, $k+1, Str_Replace (".", ",", arrondi_note ($stat_eleve [0][$k+1][0], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", arrondi_note ($moy, $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", arrondi_note ($stat_eleve [0][$k+1][1], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", $note), $rs_cl ["coefficient"], $etablissement ["coefficient"], $ok_examen, $chaine, $k, $i, $activation_disc [$k], $alias [$k], $type_moyenne [$k]) ; // Determine mini, maxi, moy If ($stat_eleve [0][$k+1][0] < $mini_nc) { $mini_nc = $stat_eleve [0][$k+1][0] ; } If ($stat_eleve [0][$k+1][1] > $maxi_nc) { $maxi_nc = $stat_eleve [0][$k+1][1] ; } $somme_moy_nc += $stat_eleve [$i][$k+1][1] ; $nombre_moy_nc += 1 ; $somme_moy_cl_nc += $moy ; $nombre_moy_cl_nc += 1 ; $somme_moy_c += $prof_coeff [$k]*$stat_eleve [$i][$k+1][1] ; $nombre_moy_c += $prof_coeff [$k] ; $somme_moy_cl_c += $prof_coeff [$k]*$moy ; $nombre_moy_cl_c += $prof_coeff [$k] ; $somme_min_cl_c += $prof_coeff [$k]*$stat_eleve [0][$k+1][0] ; $nombre_min_cl_c += $prof_coeff [$k] ; $somme_max_cl_c += $prof_coeff [$k]*$stat_eleve [0][$k+1][1] ; $nombre_max_cl_c += $prof_coeff [$k] ; } Else { /* $y = matiere ($numero_page, $y, $nom_disc [$k], $prof_id [$k], $prof_civ [$k], $prof_nom [$k], $prof_prenom [$k], $prof_coeff [$k], $stat_eleve [$i][$k+1][2], "","","","",$rs_cl ["coefficient"], $etablissement ["coefficient"], $ok_examen, $chaine, $k, $i, $activation_disc [$k], $alias [$k], $type_moyenne [$k]) ; */ $y = matiere ($numero_page, $y, $nom_disc [$k], $prof_id [$k], $prof_civ [$k], $prof_nom [$k], $prof_prenom [$k], $prof_coeff [$k], $i, $k+1, "","","","",$rs_cl ["coefficient"], $etablissement ["coefficient"], $ok_examen, $chaine, $k, $i, $activation_disc [$k], $alias [$k], $type_moyenne [$k]) ; } $j++ ; } } // Discipline CPE If (($bulletin_cpe == 3) Or ($bulletin_cpe == 4)) { If ($nbr_disc_aff == $nbr_max_disciplines) { $y = $marge_bas+0.5 ; $y_p [$nbr_page] = $y ; bas_page ($numero_page, $y) ; $numero_page++ ; $nbr_page++ ; $page [$numero_page] = $pdf->New_Page ("a4") ; // Entetes If ($etablissement ["entete_bulletins"] == 0) { If ($etablissement ["imprimer_logo_bulletins"] == 1) { entete_etablissement ($numero_page, $etablissement, $etablissement ["logo_bulletins"], $cadre_adresse) ; } Else { entete_etablissement ($numero_page, $etablissement, "", $cadre_adresse) ; } } entete_periode ($numero_page, $periode, $id_classe) ; entete_eleve ($numero_page, $lin_el, $nombre_el) ; $y = entete_matieres ($numero_page, $prof_princ, 1, $cadre_adresse) ; } $nbr_disc_aff++ ; If ($bulletin_cpe == 3) { $note = arrondi_note ($aff_cpe [$i][0], $etablissement ["nombre_chiffres"]) ; If ($note < 10) { $note = "0".$note ; } $y = matiere ($numero_page, $y, "VIE SCOLAIRE", $aff_cpe [0][0], $aff_cpe [0][1], $aff_cpe [0][2], $aff_cpe [0][3], $aff_cpe [0][4], -1, $aff_cpe [$i][1], "", "", "", Str_Replace (".", ",", $note), $rs_cl ["coefficient"], $etablissement ["coefficient"], 0, "", $k, $i, $activation_disc [$k], $alias [$k], $type_moyenne [$k]) ; } ElseIf ($bulletin_cpe == 4) { $note = arrondi_note ($aff_cpe [$i][0], $etablissement ["nombre_chiffres"]) ; If ($note < 10) { $note = "0".$note ; } /* $y = matiere ($numero_page, $y, "VIE SCOLAIRE", $aff_cpe [0][0], $aff_cpe [0][1], $aff_cpe [0][2], $aff_cpe [0][3], $aff_cpe [0][4], $aff_cpe [$i][1], Str_Replace (".", ",", arrondi_note ($aff_cpe [0][5], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", arrondi_note ($aff_cpe [0][7], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", arrondi_note ($aff_cpe [0][6], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", $note), $rs_cl ["coefficient"], $etablissement ["coefficient"], 0, "", $k, $i, $activation_disc [$k], $alias [$k], $type_moyenne [$k]) ; */ $y = matiere ($numero_page, $y, "VIE SCOLAIRE", $aff_cpe [0][0], $aff_cpe [0][1], $aff_cpe [0][2], $aff_cpe [0][3], $aff_cpe [0][4], -1, $aff_cpe [$i][1], Str_Replace (".", ",", arrondi_note ($aff_cpe [0][5], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", arrondi_note ($aff_cpe [0][7], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", arrondi_note ($aff_cpe [0][6], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", $note), $rs_cl ["coefficient"], $etablissement ["coefficient"], 0, "", $k, $i, $activation_disc [$k], $alias [$k], $type_moyenne [$k]) ; } // Determine mini, maxi, moy If ($aff_cpe [0][5] < $mini_nc) { $mini_nc = $aff_cpe [0][5] ; } If ($aff_cpe [0][6] > $maxi_nc) { $maxi_nc = $aff_cpe [0][6] ; } $somme_moy_nc += $aff_cpe [$i][0] ; $nombre_moy_nc += 1 ; $somme_moy_cl_nc += $aff_cpe [0][7] ; $nombre_moy_cl_nc += 1 ; $somme_moy_c += $aff_cpe [0][4]*$aff_cpe [$i][0] ; $nombre_moy_c += $aff_cpe [0][4] ; $somme_moy_cl_c += $aff_cpe [0][4]*$aff_cpe [0][7] ; $nombre_moy_cl_c += $aff_cpe [0][4] ; $somme_min_cl_c += $aff_cpe [0][4]*$aff_cpe [0][5] ; $nombre_min_cl_c += $aff_cpe [0][4] ; $somme_max_cl_c += $aff_cpe [0][4]*$aff_cpe [0][6] ; $nombre_max_cl_c += $aff_cpe [0][4] ; } // Affichage des moyennes coeff et non coeff If ($nombre_moy_nc > 0) { $moy_nc = $somme_moy_nc/$nombre_moy_nc ; } Else { $moy_nc = "" ; } If ($nombre_moy_cl_nc > 0) { $moy_cl_nc = $somme_moy_cl_nc/$nombre_moy_cl_nc ; } Else { $moy_cl_nc = "" ; } If ($nombre_moy_c > 0) { $moy_c = $somme_moy_c/$nombre_moy_c ; } Else { $moy_c = "" ; } If ($nombre_moy_cl_c > 0) { $moy_cl_c = $somme_moy_cl_c/$nombre_moy_cl_c ; } Else { $moy_cl_c = "" ; } If ($nombre_min_cl_c > 0) { $min_cl_c = $somme_min_cl_c/$nombre_min_cl_c ; } Else { $min_cl_c = "" ; } If ($nombre_max_cl_c > 0) { $max_cl_c = $somme_max_cl_c/$nombre_max_cl_c ; } Else { $max_cl_c = "" ; } If ($mini_nc == $maxi_min) { $mini_nc = "" ; $maxi_nc = "" ; $moy_nc = "" ; $moy_cl_nc = "" ; } If ($min_cl_c == $maxi_min) { $min_cl_c = "" ; $max_cl_c = "" ; $moy_c = "" ; $moy_cl_c = "" ; } $y = moyennes ($numero_page,$y,Str_Replace (".",",",arrondi_note ($mini_nc, $etablissement ["nombre_chiffres"])), Str_Replace (".",",",arrondi_note ($moy_cl_nc, $etablissement ["nombre_chiffres"])), Str_Replace (".",",",arrondi_note ($maxi_nc, $etablissement ["nombre_chiffres"])), Str_Replace (".",",",arrondi_note ($moy_nc, $etablissement ["nombre_chiffres"])), Str_Replace (".",",",arrondi_note ($min_cl_c, $etablissement ["nombre_chiffres"])), Str_Replace (".",",",arrondi_note ($moy_cl_c, $etablissement ["nombre_chiffres"])), Str_Replace (".",",",arrondi_note ($max_cl_c, $etablissement ["nombre_chiffres"])), Str_Replace (".",",",arrondi_note ($moy_c, $etablissement ["nombre_chiffres"])), $id_classe,$rs_cl ["coefficient"],$etablissement ["aff_moy_nc"],$etablissement ["aff_moy_c"], $etablissement ["aff_nc"],$etablissement ["aff_c"]) ; // Bas de page : vie scolaire, equipe pedagogique et numero de page avec copyright If ((($nbr_disc_aff == $nbr_max_disciplines) Or (($nbr_disc_aff > $nombre_disciplines) And ($nbr_disc_aff < $nbr_max_disciplines))) And ($y<$marge_bas+2+(($bulletin_cpe != 3) And ($bulletin_cpe != 4)))) { $y = $marge_bas+0.5 ; $y_p [$nbr_page] = $y ; bas_page ($numero_page, $y) ; $numero_page++ ; $nbr_page++ ; $page [$numero_page] = $pdf->New_Page ("a4") ; // Entetes If ($etablissement ["entete_bulletins"] == 0) { If ($etablissement ["imprimer_logo_bulletins"] == 1) { entete_etablissement ($numero_page, $etablissement, $etablissement ["logo_bulletins"], $cadre_adresse) ; } Else { entete_etablissement ($numero_page, $etablissement, "", $cadre_adresse) ; } } entete_periode ($numero_page, $periode, $id_classe) ; entete_eleve ($numero_page, $lin_el, $nombre_el) ; $y = $cadre_eleve [1][3]-0.1 ; If (($bulletin_cpe != 3) And ($bulletin_cpe != 4) And ($etablissement ["bulletin_cpe"] > 0)) { $y = vie_scolaire ($numero_page, $y, $cpe, $id_classe, $etablissement ["bulletin_cpe"]) ; } $y -= 0.1 ; $y = equipe_pedagogique ($numero_page, $y, $signature, $texte_aep) ; $y = $marge_bas+0.5 ; bas_page ($numero_page, $y) ; $y_p [$nbr_page] = $y ; affiche_page ($numero_page, $y_p, $nbr_page) ; } Else { $y -= 0.1 ; If (($bulletin_cpe != 3) And ($bulletin_cpe != 4) And ($etablissement ["bulletin_cpe"] > 0)) { $y = vie_scolaire ($numero_page, $y, $cpe, $id_classe, $etablissement ["bulletin_cpe"]) ; } $y -= 0.1 ; $y = equipe_pedagogique ($numero_page, $y, $signature, $texte_aep) ; $y = $marge_bas+0.5 ; bas_page ($numero_page, $y) ; If ($nbr_page > 1) { $y_p [$nbr_page] = $y ; affiche_page ($numero_page, $y_p, $nbr_page) ; } } $numero_page++ ; } } } $bulletin = $pdf->Generate (0) ; $fiche = FOpen ("../../tmp/f".Session_Id().".pdf", "w") ; FPuts ($fiche, $bulletin) ; FClose ($fiche) ; //Header ("Content-type: application/pdf") ; //Header ("Content-Disposition: attachment; filename=\"bulletin_".Str_Replace (" ", "_", nom_classe_long_parid ($id_classe)).".pdf\""); //Header ("Content-Disposition: inline; filename=bulletin_".Str_Replace (" ", "_", nom_classe_long_parid ($id_classe)).".pdf") ; //Header ("Content-Type: application/pdf") ; //Echo $pdf->Generate () ; //ReadFile ("../../tmp/b".Session_Id().".pdf") ; //@UnLink ("../../tmp/b".Session_Id().".pdf") ; Header ("Location: ../../tmp/f".Session_Id().".pdf") ; //@UnLink ("../../tmp/b".Session_Id().".pdf") ; ?> 1) { Echo " " ; Echo "
" ; $non_centrer = 1 ; $titre_fenetre = "Saisie de multiple appréciations..." ; //If (correcteur_orthographique_actif () == 1) // { // $titre_fenetre .= "" ; // } //$titre_fenetre .= "" ; Include ("../include/debut_theme.inc") ; Echo "" ; //If ($theme [2][1] == 0) { Echo "" ; } Echo "
".$titre_fenetre."
 " ; Echo "
" ; For ($i = 1 ; $i <= $nbr_col ; $i++) { Echo "
" ; Echo "" ;//bgcolor=\"".$theme [0][29]."\" If ($theme [2][1] == 0) { Echo "" ; } Echo "" ; Echo "" ; Echo "
".$titre_fenetre."
" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; If (correcteur_orthographique_actif () == 1) { Echo "" ; Echo "" ; } Echo "
 Vous avez déjà saisi    caractère(s) (Limite : ".$taille [$i]." caractères)
 
 " ; Echo "" ; Echo "" ; Echo " 
" ; Echo "
" ; } Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "
" ; If ($table_eleves [0] > 1) { Echo "" ; Echo "" ; } Else { Echo "" ; } Echo "
" ; Include ("../include/fin_theme.inc") ; } Else { Echo " " ; Echo "" ; $non_centrer = 1 ; $titre_fenetre = "" ; $titre_fenetre .= "" ; $titre_fenetre .= "" ; $titre_fenetre .= "" ; If (correcteur_orthographique_actif () == 1) { $titre_fenetre .= "" ; $titre_fenetre .= "" ; } $titre_fenetre .= "
 Vous avez déjà saisi  caractère(s) (Limite : ".$nbr_car_max." caractères)
" ; Include ("../include/debut_theme.inc") ; Echo "" ; If ($theme [2][1] == 0) { Echo "" ; } Echo "" ; Echo "" ; Echo "
".$titre_fenetre."
" ; Echo "" ; Echo "" ; Echo "
" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; If ($table_eleves [0] > 1) { Echo "" ; Echo "" ; } Else { Echo "" ; } Echo "
" ; Include ("../include/fin_theme.inc") ; } } Include ($_SESSION ["repertoire_config"]."/garennes_correcteur.inc") ; $param_theme = parametres_theme (themeparsession ($_SESSION ["code"])) ; $rep_themes = "../../images/themes/" ; Include ($rep_themes.$param_theme ["nom_repertoire"]."/".$param_theme ["fichier_config"]) ; //If (!IsSet ($nbr_car_max)) { $nbr_car_max = 230 ; } // Lire la soumisson If (IsSet ($annuler)) { Header ("Location: ./menu_classe.php?code=".$_SESSION ["code"]."&id_classe=".$id_classe) ; } // Liste des eleves $table_eleves = eleves_par_service_classe ($id_service_prof) ; If (($table_eleves [0] > 0) And ($type_discipline == 0)) { $serv_p = SQL_commande ("SELECT discipline,id_service_prof,classe,professeur FROM services_prof WHERE id_service_prof='".$id_service_prof."' LIMIT 1", $id_sql) ; $sp = SQL_ligne_suivante ($serv_p) ; $discipline = $sp [0] ; $id_sp = $sp [1] ; $id_classe = $sp [2] ; $id_professeur = $sp [3] ; $periode_actuelle = periode_valide ($id_classe) ; // Configuration en plusieurs colonnes ? $id_etablissement = id_etablissement_par_id_classe ($id_classe, $millesime) ; $nbr_col = restaure_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NBR_COLONNES") ; $nbr_car = restaure_configuration ("SYSTEME_PARAM", "SAISIE_APPRECIATIONS_".$id_etablissement, "TAILLE") ; If (($nbr_car == "") Or ($nbr_car == 0)) { If (IsSet ($nbr_car_max_saisie_appreciations) And ($nbr_car_max_saisie_appreciations > 0)) { sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_APPRECIATIONS_".$id_etablissement, "TAILLE", $nbr_car_max_saisie_appreciations) ; $nbr_car = $nbr_car_max_saisie_appreciations ; } Else { sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_APPRECIATIONS_".$id_etablissement, "TAILLE", 230) ; $nbr_car = 230 ; } } If (($nbr_col == "") Or ($nbr_col == 0)) { sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NBR_COLONNES", 1) ; $nbr_col = 1 ; sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NOM_COLONNE_1", "Appréciations") ; sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "TAILLE_COLONNE_1", $nbr_car) ; } If (IsSet ($valider)) { // Chercher si l'appreciation existe $nbr_maj = $nbr_nouv = 0 ; For ($i = 1 ; $i <= $nbr_col ; $i++) { $appreciation = var_courante ("appreciation_".$i, 0, "") ; $id_appr = var_courante ("id_appr_".$i, 0, 0) ; $el = $table_eleves [$eleve] ; If ($id_professeur < 0) { $alias = alias_enseignant_principal (-$id_professeur) ; $id_professeur = $alias [0] ; } $appr = appreciation ($el, $id_professeur, $discipline, $id_service_prof, $periode, $i) ; $appreciation = htmlspecialchars ($appreciation) ; $appreciation = filtrage ($appreciation) ; $appreciation = StripSlashes ($appreciation) ; If ($id_appr > 0) { // Mettre l'appreciation a jour $ok = SQL_commande ("UPDATE appreciations SET texte='".SubStr ($appreciation, 0, $nbr_car_max)."',date_maj='".Date ("Y-m-d H:i:s")."' WHERE id_appreciation='".$id_appr."' LIMIT 1", $id_sql) ; $nbr_maj++ ; } Else { $elv = SQL_commande ("SELECT id_eleve,repere1,repere2,classe,code_classe FROM eleves WHERE id_eleve='".$el."' LIMIT 1", $id_sql) ; $e = SQL_tableau_associatif ($elv, "") ; $pf = SQL_commande ("SELECT id_utilisateur,numen FROM utilisateurs WHERE id_utilisateur='".$id_professeur."' LIMIT 1", $id_sql) ; $p = SQL_tableau_associatif ($pf, "") ; $cd = SQL_commande ("SELECT code FROM disciplines WHERE id_discipline='".$discipline."' LIMIT 1", $id_sql) ; $d = SQL_tableau_associatif ($cd, "") ; $ok = SQL_commande ("INSERT INTO appreciations (eleve,repere1,repere2,classe,code_classe,professeur,numen,discipline,code_disc,service_prof,texte,periode,colonne,enregistrement,date_maj,millesime) VALUES ('".$el."','".$e ["repere1"]."','".$e ["repere2"]."','".$e ["classe"]."','".$e ["code_classe"]."', '".$id_professeur."','".$p ["numen"]."','".$discipline."','".$d ["code"]."','".$id_service_prof."', '".$appreciation."','".$periode."','".$i."','".Date ("Y-m-d H:i:s")."','".Date ("Y-m-d H:i:s")."','".$millesime."')", $id_sql) ; $nbr_nouv++ ; } } If (($nbr_maj > 0) And ($nbr_nouv == 0)) { $message = "Appréciation(s) modifiée(s) pour ".eleveparid ($table_eleves [$eleve])."." ; } ElseIf (($nbr_maj == 0) And ($nbr_nouv > 0)) { $message = "Appréciation(s) enregistrée(s) pour ".eleveparid ($table_eleves [$eleve])."." ; } Else { $message = "Appréciation(s) ajoutée(s) et modifiée(s) pour ".eleveparid ($table_eleves [$eleve])."." ; } } // Eleve : suivant ou par defaut If (IsSet ($nouvel_el)) { $eleve = $nouvel_el ; } Else { $eleve = 1 ; } $taille_chiffres = "WIDTH=\"8\" HEIGHT=\"10\"" ; // Gestion //$resultats = SQL_commande ("SELECT * FROM gestion LIMIT 1", $id_sql) ; $resultats = SQL_commande ("SELECT max FROM etablissements e,classes c WHERE c.id_classe='".$id_classe."' AND c.etablissement=e.id_etablissement LIMIT 1", $id_sql) ; $gestion = SQL_tableau_associatif ($resultats, "") ; $moyenne_aff = Round ($gestion ["max"]/2) ; // Periode If ($droit_courant > $droit_cpe) { If (IsSet ($periode) And ($periode > 0)) { $num_periode = $periode ; } Else { $num_periode = $periode = periode_valide ($id_classe) ; } } Else { $num_periode = $periode = periode_valide ($id_classe) ; } $nom_periode = nom_periode ($id_classe) ; $nom_periode = StrToUpper (SubStr ($nom_periode, 0, 1)).StrToLower (SubStr ($nom_periode, 1, StrLen ($nom_periode)-1)) ; // Fin reelle de session ! verif_droits ($droit_courant, $_SESSION ["code"]) ; Echo "" ; entete_html ("Garennes", "", 1) ; Echo styles ("none", "none", "none", $theme [0][32], "none") ; If (IsSet ($nom_frame)) { $acces = "top.".$nom_frame ; } Else { $acces = "top" ; } If ($droit_courant != $droit_prof) { $plus = "_1.travail_affichage_3" ; } If ($nbr_col > 1) { Echo "" ; } Else { Include ("./saisie_appreciations.js") ; } Include ("../../include/opacite.js") ; // Creation du Javascript a cause de IE (encore et toujours) $type_appre = SQL_commande ("SELECT * FROM types_appreciations ORDER BY nom", $id_sql) ; $nombre = SQL_nbr_lignes ($type_appre) ; If ($nombre > 0) { Echo "" ; } If ($nbr_col > 1) { // Gestion des onglets $onglet = var_courante ("onglet", 0, 0) ; Echo "" ; // Recherche de l'eleve $resultat = SQL_commande ("SELECT * FROM eleves WHERE id_eleve='".$table_eleves [$eleve]."' LIMIT 1", $id_sql) ; $el = SQL_tableau_associatif ($resultat, "") ; Echo "" ; Echo "
" ; If ($droit_courant > $droit_cpe) { Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "
 Modification/Saisie des appréciations : ".nom_disc_long_parid ($sp [0])."
 Enseignant : " ; If ($id_professeur < 0) { $t = alias_enseignant_principal (-$id_professeur) ; $id_professeur = $t [0] ; } $res = SQL_commande ("SELECT * FROM utilisateurs WHERE id_utilisateur='".$id_professeur."' LIMIT 1", $id_sql) ; $ligne = SQL_tableau_associatif ($res, "") ; Echo "".$ligne ["nom"]." ".$ligne ["prenom"]."" ; Echo " 
" ; // Choix de la periode Echo "" ; Echo "" ; If (($periode_actuelle < 2) Or (($periode_actuelle == 2) And (valide_periode ($classe, periode_valide ($classe))))) { Echo "" ; } Else { Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; } Echo "
  ".$nom_periode." : ".$periode." ".StrToUpper (SubStr ($nom_periode, 0,1)).StrToLower (SubStr ($nom_periode, 1, StrLen ($nom_periode)-1))." à afficher : 
 
" ; $titre_fenetre = "Modification/Saisie de notes." ; } Echo "" ; // Affichage entete : discipline + nom eleve Echo "" ; Echo "" ; Echo "" ; // Icone memo notes If ($droit_courant == $droit_prof) { Echo "" ; } Else { Echo "" ; } // Eleve Echo "" ; Echo "" ; // Separateur Echo "" ; // Affichage des resultats $photo = restaure_configuration ("PROF_".$id_professeur,"SAISIE","PHOTO") ; If ($photo == "") { $photo = 1 ; sauvegarde_configuration ("PROF_".$id_professeur,"SAISIE","PHOTO",$photo) ; } $elv = $el ; $el = $table_eleves [$eleve] ; $resultat_disc = SQL_commande ("SELECT id_service_classe FROM services_classe c, services_prof p WHERE p.id_service_prof='".$id_service_prof."' AND p.service_classe=c.id_service_classe LIMIT 1", $id_sql) ; $sc = SQL_ligne_suivante ($resultat_disc) ; If (($photo == 1) Or ($theme [2][1] == 0) Or ($periode > 1)) { Echo "" ; // Separateur Echo "" ; } $position_appreciation = restaure_configuration ("PROF_".$id_professeur,"SAISIE","POSITION_APPRECIATION") ; If ($position_appreciation == "") { $position_appreciation = 1 ; } If ($position_appreciation == 2) { affichage_saisie_appreciation () ; // Separateur Echo "" ; } $notes = notes_el_disc ($el, $id_service_prof, $periode) ; $moyenne = moyenne_el ($el, $id_classe, $periode, $discipline, $sc [0], $id_sp, 1, 0) ; Echo "" ; //Echo "
Appréciation : ".nom_disc_long_parid ($discipline)."
Mode d'arrondi des moyennes : ".nom_arrondi ($format_arrondi).".
" ; Echo "Élève : ".eleveparid ($table_eleves [$eleve])."" ; $p = prenom_eleve_parid ($table_eleves [$eleve]) ; If (StrPos ($p, " ")) { $prenom = SubStr ($p, 0, STrPos ($p, " ")) ; } Else { $prenom = $p ; } Echo "  ".$prenom." 
 
" ; // Photo If ($photo == 1) { Echo "" ; } If ($theme [2][1] == 0) { Echo "" ; If ($periode > 1) { Echo "" ; } Echo "" ; Echo "" ; Echo "" ; } Else { Echo "" ; } // Affiche les moyennes des periodes precedentes If ($periode > 1) { $titre_fenetre = " Moyenne" ; If ($periode > 2) { $titre_fenetre .= "s" ; } $titre_fenetre .= " et appréciation" ; If ($periode > 2) { $titre_fenetre .= "s" ; } $titre_fenetre .= " précédente" ; If ($periode > 2) { $titre_fenetre .= "s" ; } $titre_fenetre .= " " ; Echo "" ; If ($theme [2][1] == 1) { Echo "" ; } } Echo "
 " ; If (($elv ["photo"]) And (File_Exists ($repertoire_racine."/images/eleves/".$elv ["photo"]))) { $fiche_photo = $http_garennes."images/eleves/".$elv ["photo"] ; } Else { $fiche_photo = $http_garennes."images/eleves/anonyme.png" ; } Echo "    Moyenne" ; If ($periode > 2) { Echo "s" ; } Echo " précédente" ; If ($periode > 2) { Echo "s" ; } Echo "   Résultats - ".$nom_periode." ".$num_periode."
  " ; Include ("../include/debut_theme.inc") ; Echo "" ; For ($i = 1 ; $i < $periode ; $i++) { $moyenne = moyenne_el ($el, $id_classe, $i, $discipline, $sc [0], $id_sp, 1, 0) ; $app = appreciation ($el, $id_professeur, $discipline, $id_sp, $i, 0) ; Echo "" ; Echo "" ; Echo " ".Str_Replace (".", ",", arrondi_note ($moyenne, $format_arrondi))." " ; Echo "" ; } Echo "
".$nom_periode." ".$i." " ; //Echo "" ; //Echo "" ; //Echo "" ; //Echo "" ; //Echo "
   ".Str_Replace (".", ",", $moyenne)."   
  
  
   ".Str_Replace (".", ",", $gestion ["max"])."   
".$app."
" ; Include ("../include/fin_theme.inc") ; Echo "
  
 
 
" ; $titre_fenetre = "Résultats - ".$nom_periode." ".$num_periode ; Include ("../include/debut_theme.inc") ; If ($notes [0][0] > 0) { Echo "" ; Echo "" ; Echo "" ; For ($i = 0 ; $i < $notes [0][0] ; $i++) { Echo "" ; } Echo "" ; Echo "" ; Echo "" ; For ($i = 0 ; $i < $notes [0][0] ; $i++) { Echo "" ; } Echo "" ; Echo "" ; For ($i = 0 ; $i < $notes [0][0] ; $i++) { If (($notes [$i][1] != $code_absent) And ($notes [$i][1] != $code_non_rendu) And ($notes [$i][1] != $code_dispense) And ($notes [$i][1] != $code_aucune_note)) { If (($notes [$i][1]*$gestion ["max"])/$notes [$i][2] >= $moyenne_aff) { Echo "" ; } Else { Echo "" ; } } Else { Echo "" ; } } Echo "" ; For ($i = 0 ; $i < $notes [0][0] ; $i++) { If (($notes [$i][1] != $code_absent) And ($notes [$i][1] != $code_non_rendu) And ($notes [$i][1] != $code_dispense) And ($notes [$i][1] != $code_aucune_note)) { If (($notes [$i][1]*$gestion ["max"])/$notes [$i][2] < $moyenne_aff) { Echo "" ; } Else { Echo "" ; } } } Echo "
Description".SubStr ($notes [$i][4], 0, 10)."" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "
Moyenne : 
 
  ".Str_Replace (".", ",", $moyenne)."   
  
  
   ".Str_Replace (".", ",", $gestion ["max"])."   
" ; Echo "
Coeff.".Str_Replace (".", ",", $notes [$i][5])."
Notes >= ".Str_Replace (".", ",", $moyenne_aff)."".Str_Replace (".", ",", $notes [$i][1])."/".Str_Replace (".", ",", $notes [$i][2])." ".$notes [$i][1]."
Notes < ".Str_Replace (".", ",", $moyenne_aff)."".Str_Replace (".", ",", $notes [$i][1])."/".Str_Replace (".", ",", $notes [$i][2])." 
" ; } Else { Echo "" ; Echo "" ; Echo "
 Pas de notes... donc pas de résultats. 
" ; } Include ("../include/fin_theme.inc") ; Echo "
" ; //Echo "" ; //Echo "" ; // Separateur Echo " " ; // Affichage de la bibliotheque Echo " " ; $non_centrer = 1 ; $titre_fenetre = "Bibliothèque d'appréciations..." ; Include ("../include/debut_theme.inc") ; Echo ""; If ($theme [2][1] == 0) { Echo "" ; } Echo "
".$titre_fenetre."
" ; $type_appre = SQL_commande ("SELECT * FROM types_appreciations ORDER BY nom", $id_sql) ; $nombre = SQL_nbr_lignes ($type_appre) ; If ($nombre > 0) { $appre [0][0][0] = $nombre ; For ($i = 1 ; $i <= $nombre ; $i++) { $tp = SQL_tableau_associatif ($type_appre, "") ; $appreciations = SQL_commande ("SELECT * FROM biblio_appreciations WHERE type_appreciation='".$tp ["id_type_appreciation"]."' ORDER BY nom", $id_sql) ; $appre [0][$i][0] = $tp ["nom"] ; For ($j = 1 ; $j <= SQL_nbr_lignes ($appreciations) ; $j++) { $ap = SQL_tableau_associatif ($appreciations, "") ; $appre [$i][0][0] = SQL_nbr_lignes ($appreciations) ; $appre [$i][$j][0] = filtrage_utf8 ($ap ["nom"]) ; $appre [$i][$j][1] = $ap ["id_biblio_appreciation"] ; $appre [$i][$j][2] = $ap ["type_appreciation"] ; } } Echo ""; Echo "" ; For ($i = 1 ; $i <= $appre [0][0][0] ; $i++) { Echo "" ; } Echo "" ; Echo "" ; For ($i = 1 ; $i <= $appre [0][0][0] ; $i++) { Echo ""; Echo "" ; } Echo "
".$appre [0][$i][0]."
" ; } Echo "
" ; Include ("../include/fin_theme.inc") ; Echo "" ; If ($position_appreciation == 1) { // Separateur Echo " " ; affichage_saisie_appreciation () ; } Echo "" ; If (IsSet ($message)) { Echo "".$message."" ; } } Else { // Aucun eleve ou pas le droit : A COMPLETER Echo "" ; entete_html ("Garennes", "", 1) ; Echo styles ("none", "none", "none", $theme [0][32], "none") ; Echo "" ; Echo "" ; Echo "
Aucune saisie d'appréciations n'est possible pour cette matière :
" ; If ($table_eleves [0] <= 0) { Echo "Vous n'avez aucun élève !" ; } ElseIf ($type_discipline == 3) { Echo "Les appréciations de cette discipline sont automatisées !" ; } } Echo "" ; ?>" ; $type_champ_auto = "INT(11) AUTO_INCREMENT PRIMARY KEY" ; $type_donnees = "TEXT" ; $attribut_donnees = "NOT NULL" ; // // STRUCTURE DU XML sts_emp_RNE_ANNEE.xml NON RECURSIF // $structures_xml [1][0][0][0] = 13 ; // Nombre de pointeurs $structures_xml [1][0][0][1] = $chaine_pointeur ; // Chaine de pointage $structures_xml [1][0][0][2] = "STRUCTURE" ; // Entete de nom des tables // UAJ $structures_xml [1][1][0][0] = 15 ; // Nombre d'elements $structures_xml [1][1][0][1] = "STS_EDT".$chaine_pointeur."PARAMETRES".$chaine_pointeur."UAJ" ; // Pointeur $structures_xml [1][1][0][2] = "UAJ" ; // Nom de la table precedee par $sql_sconet $structures_xml [1][1][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [1][1][0][4] = "CODE" ; // Nom de l'attribut a enregistrer $structures_xml [1][1][0][5] = "CODE" ; // Nom du champ pour l'attribut $structures_xml [1][1][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][1][1][1] = "ACADEMIE".$chaine_pointeur."CODE" ; // element (avec -> pointeur) $structures_xml [1][1][1][2] = "ACADEMIE_CODE" ; // Nom du champ destination $structures_xml [1][1][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][1][2][1] = "ACADEMIE".$chaine_pointeur."LIBELLE" ; // element (avec -> pointeur) $structures_xml [1][1][2][2] = "ACADEMIE_LIBELLE" ; // Nom du champ destination $structures_xml [1][1][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][1][3][1] = "DENOM_PRINC" ; // element (avec -> pointeur) $structures_xml [1][1][3][2] = "DENOM_PRINC" ; // Nom du champ destination $structures_xml [1][1][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][1][4][1] = "DENOM_COMPL" ; // element (avec -> pointeur) $structures_xml [1][1][4][2] = "DENOM_COMPL" ; // Nom du champ destination $structures_xml [1][1][5][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][1][5][1] = "CODE_NATURE" ; // element (avec -> pointeur) $structures_xml [1][1][5][2] = "CODE_NATURE" ; // Nom du champ destination $structures_xml [1][1][6][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][1][6][1] = "CODE_CATEGORIE" ; // element (avec -> pointeur) $structures_xml [1][1][6][2] = "CODE_CATEGORIE" ; // Nom du champ destination $structures_xml [1][1][7][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][1][7][1] = "MENTION_DISTRIBUTION" ; // element (avec -> pointeur) $structures_xml [1][1][7][2] = "MENTION_DISTRIBUTION" ; // Nom du champ destination $structures_xml [1][1][8][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][1][8][1] = "ADRESSE" ; // element (avec -> pointeur) $structures_xml [1][1][8][2] = "ADRESSE" ; // Nom du champ destination $structures_xml [1][1][9][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][1][9][1] = "COMMUNE" ; // element (avec -> pointeur) $structures_xml [1][1][9][2] = "COMMUNE" ; // Nom du champ destination $structures_xml [1][1][10][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][1][10][1] = "CODE_POSTAL" ; // element (avec -> pointeur) $structures_xml [1][1][10][2] = "CODE_POSTAL" ; // Nom du champ destination $structures_xml [1][1][11][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][1][11][1] = "BOITE_POSTALE" ; // element (avec -> pointeur) $structures_xml [1][1][11][2] = "BOITE_POSTALE" ; // Nom du champ destination $structures_xml [1][1][12][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][1][12][1] = "CEDEX" ; // element (avec -> pointeur) $structures_xml [1][1][12][2] = "CEDEX" ; // Nom du champ destination $structures_xml [1][1][13][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][1][13][1] = "TELEPHONE" ; // element (avec -> pointeur) $structures_xml [1][1][13][2] = "TELEPHONE" ; // Nom du champ destination $structures_xml [1][1][14][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][1][14][1] = "STATUT" ; // element (avec -> pointeur) $structures_xml [1][1][14][2] = "STATUT" ; // Nom du champ destination $structures_xml [1][1][15][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][1][15][1] = "ETABLISSEMENT_SENSIBLE" ; // element (avec -> pointeur) $structures_xml [1][1][15][2] = "ETABLISSEMENT_SENSIBLE" ; // Nom du champ destination // ANNEE SCOLAIRE $structures_xml [1][2][0][0] = 2 ; // Nombre d'elements $structures_xml [1][2][0][1] = "STS_EDT".$chaine_pointeur."PARAMETRES".$chaine_pointeur."ANNEE_SCOLAIRE" ; $structures_xml [1][2][0][2] = "ANNEE_SCOLAIRE" ; // Nom de la table precedee par $sql_sconet $structures_xml [1][2][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [1][2][0][4] = "ANNEE" ; // Nom de l'attribut a enregistrer $structures_xml [1][2][0][5] = "ANNEE" ; // Nom du champ pour l'attribut $structures_xml [1][2][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][2][1][1] = "DATE_DEBUT" ; // element (avec -> pointeur) $structures_xml [1][2][1][2] = "DATE_DEBUT" ; // Nom du champ destination $structures_xml [1][2][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][2][2][1] = "DATE_FIN" ; // element (avec -> pointeur) $structures_xml [1][2][2][2] = "DATE_FIN" ; // Nom du champ destination // NOMENCLATURES -> TYPES AHE $structures_xml [1][3][0][0] = 2 ; // Nombre d'elements $structures_xml [1][3][0][1] = "STS_EDT".$chaine_pointeur."NOMENCLATURES".$chaine_pointeur."TYPES_AHE".$chaine_pointeur."TYPE_AHE" ; $structures_xml [1][3][0][2] = "TYPES_AHE" ; // Nom de la table precedee par $sql_sconet $structures_xml [1][3][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [1][3][0][4] = "CODE" ; // Nom de l'attribut a enregistrer $structures_xml [1][3][0][5] = "CODE" ; // Nom du champ pour l'attribut $structures_xml [1][3][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][3][1][1] = "LIBELLE_COURT" ; // element (avec -> pointeur) $structures_xml [1][3][1][2] = "LIBELLE_COURT" ; // Nom du champ destination $structures_xml [1][3][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][3][2][1] = "LIBELLE_LONG" ; // element (avec -> pointeur) $structures_xml [1][3][2][2] = "LIBELLE_LONG" ; // Nom du champ destination // NOMENCLATURES -> CIVILITES $structures_xml [1][4][0][0] = 2 ; // Nombre d'elements $structures_xml [1][4][0][1] = "STS_EDT".$chaine_pointeur."NOMENCLATURES".$chaine_pointeur."CIVILITES".$chaine_pointeur."CIVILITE" ; $structures_xml [1][4][0][2] = "CIVILITES" ; // Nom de la table precedee par $sql_sconet $structures_xml [1][4][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [1][4][0][4] = "CODE" ; // Nom de l'attribut a enregistrer $structures_xml [1][4][0][5] = "CODE" ; // Nom du champ pour l'attribut $structures_xml [1][4][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][4][1][1] = "LIBELLE_COURT" ; // element (avec -> pointeur) $structures_xml [1][4][1][2] = "LIBELLE_COURT" ; // Nom du champ destination $structures_xml [1][4][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][4][2][1] = "LIBELLE_LONG" ; // element (avec -> pointeur) $structures_xml [1][4][2][2] = "LIBELLE_LONG" ; // Nom du champ destination // NOMENCLATURES -> MEFSTATS4 $structures_xml [1][5][0][0] = 3 ; // Nombre d'elements $structures_xml [1][5][0][1] = "STS_EDT".$chaine_pointeur."NOMENCLATURES".$chaine_pointeur."MEFSTATS4".$chaine_pointeur."MEFSTAT4" ; $structures_xml [1][5][0][2] = "MEFSTATS4" ; // Nom de la table precedee par $sql_sconet $structures_xml [1][5][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [1][5][0][4] = "CODE" ; // Nom de l'attribut a enregistrer $structures_xml [1][5][0][5] = "CODE" ; // Nom du champ pour l'attribut $structures_xml [1][5][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][5][1][1] = "LIBELLE_COURT" ; // element (avec -> pointeur) $structures_xml [1][5][1][2] = "LIBELLE_COURT" ; // Nom du champ destination $structures_xml [1][5][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][5][2][1] = "LIBELLE_LONG" ; // element (avec -> pointeur) $structures_xml [1][5][2][2] = "LIBELLE_LONG" ; // Nom du champ destination $structures_xml [1][5][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][5][3][1] = "INDEMNITE_PP_AUTORISEE" ; // element (avec -> pointeur) $structures_xml [1][5][3][2] = "INDEMNITE_PP_AUTORISEE" ; // Nom du champ destination // NOMENCLATURES -> TAUX PONDS $structures_xml [1][6][0][0] = 1 ; // Nombre d'elements $structures_xml [1][6][0][1] = "STS_EDT".$chaine_pointeur."NOMENCLATURES".$chaine_pointeur."TAUX_PONDS".$chaine_pointeur."TAUX_POND" ; $structures_xml [1][6][0][2] = "TAUX_PONDS" ; // Nom de la table precedee par $sql_sconet $structures_xml [1][6][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [1][6][0][4] = "TAUX" ; // Nom de l'attribut a enregistrer $structures_xml [1][6][0][5] = "TAUX" ; // Nom du champ pour l'attribut $structures_xml [1][6][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][6][1][1] = "CPGE_BTS" ; // element (avec -> pointeur) $structures_xml [1][6][1][2] = "CPGE_BTS" ; // Nom du champ destination // NOMENCLATURES -> MODS COURS $structures_xml [1][7][0][0] = 3 ; // Nombre d'elements $structures_xml [1][7][0][1] = "STS_EDT".$chaine_pointeur."NOMENCLATURES".$chaine_pointeur."MODS_COURS".$chaine_pointeur."MOD_COURS" ; $structures_xml [1][7][0][2] = "MODS_COURS" ; // Nom de la table precedee par $sql_sconet $structures_xml [1][7][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [1][7][0][4] = "CODE" ; // Nom de l'attribut a enregistrer $structures_xml [1][7][0][5] = "CODE" ; // Nom du champ pour l'attribut $structures_xml [1][7][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][7][1][1] = "LIBELLE_COURT" ; // element (avec -> pointeur) $structures_xml [1][7][1][2] = "LIBELLE_COURT" ; // Nom du champ destination $structures_xml [1][7][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][7][2][1] = "LIBELLE_LONG" ; // element (avec -> pointeur) $structures_xml [1][7][2][2] = "LIBELLE_LONG" ; // Nom du champ destination $structures_xml [1][7][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][7][3][1] = "CO_ENS" ; // element (avec -> pointeur) $structures_xml [1][7][3][2] = "CO_ENS" ; // Nom du champ destination // NOMENCLATURES -> MATIERES $structures_xml [1][8][0][0] = 4 ; // Nombre d'elements $structures_xml [1][8][0][1] = "STS_EDT".$chaine_pointeur."NOMENCLATURES".$chaine_pointeur."MATIERES".$chaine_pointeur."MATIERE" ; $structures_xml [1][8][0][2] = "MATIERES" ; // Nom de la table precedee par $sql_sconet $structures_xml [1][8][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [1][8][0][4] = "CODE" ; // Nom de l'attribut a enregistrer $structures_xml [1][8][0][5] = "CODE" ; // Nom du champ pour l'attribut $structures_xml [1][8][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][8][1][1] = "CODE_GESTION" ; // element (avec -> pointeur) $structures_xml [1][8][1][2] = "CODE_GESTION" ; // Nom du champ destination $structures_xml [1][8][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][8][2][1] = "LIBELLE_COURT" ; // element (avec -> pointeur) $structures_xml [1][8][2][2] = "LIBELLE_COURT" ; // Nom du champ destination $structures_xml [1][8][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][8][3][1] = "LIBELLE_LONG" ; // element (avec -> pointeur) $structures_xml [1][8][3][2] = "LIBELLE_LONG" ; // Nom du champ destination $structures_xml [1][8][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][8][4][1] = "LIBELLE_EDITION" ; // element (avec -> pointeur) $structures_xml [1][8][4][2] = "LIBELLE_EDITION" ; // Nom du champ destination // NOMENCLATURES -> MEFS $structures_xml [1][9][0][0] = 6 ; // Nombre d'elements $structures_xml [1][9][0][1] = "STS_EDT".$chaine_pointeur."NOMENCLATURES".$chaine_pointeur."MEFS".$chaine_pointeur."MEF" ; $structures_xml [1][9][0][2] = "MEFS" ; // Nom de la table precedee par $sql_sconet $structures_xml [1][9][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [1][9][0][4] = "CODE" ; // Nom de l'attribut a enregistrer $structures_xml [1][9][0][5] = "CODE" ; // Nom du champ pour l'attribut $structures_xml [1][9][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][9][1][1] = "FORMATION" ; // element (avec -> pointeur) $structures_xml [1][9][1][2] = "FORMATION" ; // Nom du champ destination $structures_xml [1][9][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][9][2][1] = "SPECIALITE" ; // element (avec -> pointeur) $structures_xml [1][9][2][2] = "SPECIALITE" ; // Nom du champ destination $structures_xml [1][9][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][9][3][1] = "LIBELLE_LONG" ; // element (avec -> pointeur) $structures_xml [1][9][3][2] = "LIBELLE_LONG" ; // Nom du champ destination $structures_xml [1][9][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][9][4][1] = "LIBELLE_EDITION" ; // element (avec -> pointeur) $structures_xml [1][9][4][2] = "LIBELLE_EDITION" ; // Nom du champ destination $structures_xml [1][9][5][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][9][5][1] = "MEFSTAT11" ; // element (avec -> pointeur) $structures_xml [1][9][5][2] = "MEFSTAT11" ; // Nom du champ destination $structures_xml [1][9][6][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][9][6][1] = "MEFSTAT4" ; // element (avec -> pointeur) $structures_xml [1][9][6][2] = "MEFSTAT4" ; // Nom du champ destination // NOMENCLATURES -> PROGRAMMES $structures_xml [1][10][0][0] = 3 ; // Nombre d'elements $structures_xml [1][10][0][1] = "STS_EDT".$chaine_pointeur."NOMENCLATURES".$chaine_pointeur."PROGRAMMES".$chaine_pointeur."PROGRAMME" ; $structures_xml [1][10][0][2] = "PROGRAMMES" ; // Nom de la table precedee par $sql_sconet $structures_xml [1][10][0][3] = 0 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [1][10][0][4] = "" ; // Nom de l'attribut a enregistrer $structures_xml [1][10][0][5] = "" ; // Nom du champ pour l'attribut $structures_xml [1][10][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][10][1][1] = "CODE_MEF" ; // element (avec -> pointeur) $structures_xml [1][10][1][2] = "CODE_MEF" ; // Nom du champ destination $structures_xml [1][10][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][10][2][1] = "CODE_MATIERE" ; // element (avec -> pointeur) $structures_xml [1][10][2][2] = "CODE_MATIERE" ; // Nom du champ destination $structures_xml [1][10][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][10][3][1] = "HORAIRE" ; // element (avec -> pointeur) $structures_xml [1][10][3][2] = "HORAIRE" ; // Nom du champ destination // DONNEES -> INDIVIDUS $structures_xml [1][11][0][0] = 8 ; // Nombre d'elements $structures_xml [1][11][0][1] = "STS_EDT".$chaine_pointeur."DONNEES".$chaine_pointeur."INDIVIDUS".$chaine_pointeur."INDIVIDU" ; $structures_xml [1][11][0][2] = "INDIVIDUS" ; // Nom de la table precedee par $sql_sconet $structures_xml [1][11][0][3] = 2 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [1][11][0][4] = "ID" ; // Nom de l'attribut a enregistrer $structures_xml [1][11][0][5] = "ID" ; // Nom du champ pour l'attribut $structures_xml [1][11][0][6] = "TYPE" ; // Nom de l'attribut a enregistrer $structures_xml [1][11][0][7] = "TYPE" ; // Nom du champ pour l'attribut $structures_xml [1][11][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][11][1][1] = "SEXE" ; // element (avec -> pointeur) $structures_xml [1][11][1][2] = "SEXE" ; // Nom du champ destination $structures_xml [1][11][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][11][2][1] = "CIVILITE" ; // element (avec -> pointeur) $structures_xml [1][11][2][2] = "CIVILITE" ; // Nom du champ destination $structures_xml [1][11][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][11][3][1] = "NOM_USAGE" ; // element (avec -> pointeur) $structures_xml [1][11][3][2] = "NOM_USAGE" ; // Nom du champ destination $structures_xml [1][11][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][11][4][1] = "NOM_PATRONYMIQUE" ; // element (avec -> pointeur) $structures_xml [1][11][4][2] = "NOM_PATRONYMIQUE" ; // Nom du champ destination $structures_xml [1][11][5][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][11][5][1] = "PRENOM" ; // element (avec -> pointeur) $structures_xml [1][11][5][2] = "PRENOM" ; // Nom du champ destination $structures_xml [1][11][6][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][11][6][1] = "DATE_NAISSANCE" ; // element (avec -> pointeur) $structures_xml [1][11][6][2] = "DATE_NAISSANCE" ; // Nom du champ destination $structures_xml [1][11][7][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][11][7][1] = "GRADE" ; // element (avec -> pointeur) $structures_xml [1][11][7][2] = "GRADE" ; // Nom du champ destination $structures_xml [1][11][8][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][11][8][1] = "FONCTION" ; // element (avec -> pointeur) $structures_xml [1][11][8][2] = "FONCTION" ; // Nom du champ destination // DONNEES -> STRUCTURE -> DIVISIONS $structures_xml [1][12][0][0] = 3 ; // Nombre d'elements $structures_xml [1][12][0][1] = "STS_EDT".$chaine_pointeur."DONNEES".$chaine_pointeur."STRUCTURE".$chaine_pointeur."DIVISIONS".$chaine_pointeur."DIVISION" ; $structures_xml [1][12][0][2] = "DIVISIONS" ; // Nom de la table precedee par $sql_sconet $structures_xml [1][12][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [1][12][0][4] = "CODE" ; // Nom de l'attribut a enregistrer $structures_xml [1][12][0][5] = "CODE_DIVISION" ; // Nom du champ pour l'attribut $structures_xml [1][12][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][12][1][1] = "LIBELLE_LONG" ; // element (avec -> pointeur) $structures_xml [1][12][1][2] = "LIBELLE_LONG" ; // Nom du champ destination $structures_xml [1][12][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][12][2][1] = "EFFECTIF_PREVU" ; // element (avec -> pointeur) $structures_xml [1][12][2][2] = "EFFECTIF_PREVU" ; // Nom du champ destination $structures_xml [1][12][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][12][3][1] = "EFFECTIF_CALCULE" ; // element (avec -> pointeur) $structures_xml [1][12][3][2] = "EFFECTIF_CALCULE" ; // Nom du champ destination // DONNEES -> STRUCTURE -> GROUPES $structures_xml [1][13][0][0] = 4 ; // Nombre d'elements $structures_xml [1][13][0][1] = "STS_EDT".$chaine_pointeur."DONNEES".$chaine_pointeur."STRUCTURE".$chaine_pointeur."GROUPES".$chaine_pointeur."GROUPE" ; $structures_xml [1][13][0][2] = "GROUPES" ; // Nom de la table precedee par $sql_sconet $structures_xml [1][13][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [1][13][0][4] = "CODE" ; // Nom de l'attribut a enregistrer $structures_xml [1][13][0][5] = "CODE_GROUPE" ; // Nom du champ pour l'attribut $structures_xml [1][13][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][13][1][1] = "LIBELLE_LONG" ; // element (avec -> pointeur) $structures_xml [1][13][1][2] = "LIBELLE_LONG" ; // Nom du champ destination $structures_xml [1][13][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][13][2][1] = "EFFECTIF_PREVU" ; // element (avec -> pointeur) $structures_xml [1][13][2][2] = "EFFECTIF_PREVU" ; // Nom du champ destination $structures_xml [1][13][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][13][3][1] = "EFFECTIF_CALCULE" ; // element (avec -> pointeur) $structures_xml [1][13][3][2] = "EFFECTIF_CALCULE" ; // Nom du champ destination $structures_xml [1][13][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [1][13][4][1] = "EFFECTIF_MAX_EDT" ; // element (avec -> pointeur) $structures_xml [1][13][4][2] = "EFFECTIF_MAX_EDT" ; // Nom du champ destination // // STRUCTURE DU XML sts_emp_RNE_ANNEE.xml RECURSIF // $structures_xml_recursif [1][0][0][0] = 1 ; // Nombre de pointeurs $structures_xml_recursif [1][0][0][1] = $chaine_pointeur ; // Chaine de pointage $structures_xml_recursif [1][0][0][2] = "STRUC_REC" ; // Entete de nom des tables // // STRUCTURE DU XML EleveAvecAdresses.xml NON RECURSIF // $structures_xml [2][0][0][0] = 5 ; // Nombre de pointeurs $structures_xml [2][0][0][1] = $chaine_pointeur ; // Chaine de pointage $structures_xml [2][0][0][2] = "ELEVES" ; // Entete de nom des tables // PARAMETRES $structures_xml [2][1][0][0] = 4 ; // Nombre d'elements $structures_xml [2][1][0][1] = "BEE_ELEVES".$chaine_pointeur."PARAMETRES" ; // Pointeur $structures_xml [2][1][0][2] = "PARAMETRES" ; // Nom de la table precedee par $sql_sconet $structures_xml [2][1][0][3] = 0 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [2][1][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][1][1][1] = "UAJ" ; // element (avec -> pointeur) $structures_xml [2][1][1][2] = "UAJ" ; // Nom du champ destination $structures_xml [2][1][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][1][2][1] = "ANNEE_SCOLAIRE" ; // element (avec -> pointeur) $structures_xml [2][1][2][2] = "ANNEE_SCOLAIRE" ; // Nom du champ destination $structures_xml [2][1][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][1][3][1] = "DATE_EXPORT" ; // element (avec -> pointeur) $structures_xml [2][1][3][2] = "DATE_EXPORT" ; // Nom du champ destination $structures_xml [2][1][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][1][4][1] = "HORODATAGE" ; // element (avec -> pointeur) $structures_xml [2][1][4][2] = "HORODATAGE" ; // Nom du champ destination // ELEVES $structures_xml [2][2][0][0] = 28 ; // Nombre d'elements $structures_xml [2][2][0][1] = "BEE_ELEVES".$chaine_pointeur."DONNEES".$chaine_pointeur."ELEVES".$chaine_pointeur."ELEVE" ; // Pointeur $structures_xml [2][2][0][2] = "ELEVES" ; // Nom de la table precedee par $sql_sconet $structures_xml [2][2][0][3] = 2 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [2][2][0][4] = "ELEVE_ID" ; // Nom de l'attribut a enregistrer $structures_xml [2][2][0][5] = "ELEVE_ID" ; // Nom du champ pour l'attribut $structures_xml [2][2][0][6] = "ELENOET" ; // Nom de l'attribut a enregistrer $structures_xml [2][2][0][7] = "ELENOET" ; // Nom du champ pour l'attribut $structures_xml [2][2][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][1][1] = "ID_NATIONAL" ; // element (avec -> pointeur) $structures_xml [2][2][1][2] = "ID_NATIONAL" ; // Nom du champ destination $structures_xml [2][2][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][2][1] = "ID_ELEVE_ETAB" ; // element (avec -> pointeur) $structures_xml [2][2][2][2] = "ID_ELEVE_ETAB" ; // Nom du champ destination $structures_xml [2][2][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][3][1] = "NOM" ; // element (avec -> pointeur) $structures_xml [2][2][3][2] = "NOM" ; // Nom du champ destination $structures_xml [2][2][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][4][1] = "PRENOM" ; // element (avec -> pointeur) $structures_xml [2][2][4][2] = "PRENOM" ; // Nom du champ destination $structures_xml [2][2][5][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][5][1] = "PRENOM2" ; // element (avec -> pointeur) $structures_xml [2][2][5][2] = "PRENOM2" ; // Nom du champ destination $structures_xml [2][2][6][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][6][1] = "PRENOM3" ; // element (avec -> pointeur) $structures_xml [2][2][6][2] = "PRENOM3" ; // Nom du champ destination $structures_xml [2][2][7][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][7][1] = "DATE_NAISS" ; // element (avec -> pointeur) $structures_xml [2][2][7][2] = "DATE_NAISS" ; // Nom du champ destination $structures_xml [2][2][8][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][8][1] = "DOUBLEMENT" ; // element (avec -> pointeur) $structures_xml [2][2][8][2] = "DOUBLEMENT" ; // Nom du champ destination $structures_xml [2][2][9][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][9][1] = "TEL_PROFESSIONNEL" ; // element (avec -> pointeur) $structures_xml [2][2][9][2] = "TEL_PROFESSIONNEL" ; // Nom du champ destination $structures_xml [2][2][10][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][10][1] = "CODE_PAYS" ; // element (avec -> pointeur) $structures_xml [2][2][10][2] = "CODE_PAYS" ; // Nom du champ destination $structures_xml [2][2][11][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][11][1] = "ACCEPTE_SMS" ; // element (avec -> pointeur) $structures_xml [2][2][11][2] = "ACCEPTE_SMS" ; // Nom du champ destination $structures_xml [2][2][12][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][12][1] = "DATE_MODIFICATION" ; // element (avec -> pointeur) $structures_xml [2][2][12][2] = "DATE_MODIFICATION" ; // Nom du champ destination $structures_xml [2][2][13][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][13][1] = "DATE_SORTIE" ; // element (avec -> pointeur) $structures_xml [2][2][13][2] = "DATE_SORTIE" ; // Nom du champ destination $structures_xml [2][2][14][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][14][1] = "MEL" ; // element (avec -> pointeur) $structures_xml [2][2][14][2] = "MEL" ; // Nom du champ destination $structures_xml [2][2][15][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][15][1] = "CODE_REGIME" ; // element (avec -> pointeur) $structures_xml [2][2][15][2] = "CODE_REGIME" ; // Nom du champ destination $structures_xml [2][2][16][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][16][1] = "DATE_ENTREE" ; // element (avec -> pointeur) $structures_xml [2][2][16][2] = "DATE_ENTREE" ; // Nom du champ destination $structures_xml [2][2][17][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][17][1] = "VILLE_NAISS" ; // element (avec -> pointeur) $structures_xml [2][2][17][2] = "VILLE_NAISS" ; // Nom du champ destination $structures_xml [2][2][18][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][18][1] = "ADRESSE_ID" ; // element (avec -> pointeur) $structures_xml [2][2][18][2] = "ADRESSE_ID" ; // Nom du champ destination $structures_xml [2][2][19][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][19][1] = "CODE_MOTIF_SORTIE" ; // element (avec -> pointeur) $structures_xml [2][2][19][2] = "CODE_MOTIF_SORTIE" ; // Nom du champ destination $structures_xml [2][2][20][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][20][1] = "TEL_PERSONNEL" ; // element (avec -> pointeur) $structures_xml [2][2][20][2] = "TEL_PERSONNEL" ; // Nom du champ destination $structures_xml [2][2][21][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][21][1] = "CODE_SEXE" ; // element (avec -> pointeur) $structures_xml [2][2][21][2] = "CODE_SEXE" ; // Nom du champ destination $structures_xml [2][2][22][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][22][1] = "TEL_PORTABLE" ; // element (avec -> pointeur) $structures_xml [2][2][22][2] = "TEL_PORTABLE" ; // Nom du champ destination $structures_xml [2][2][23][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][23][1] = "CODE_PAYS_NAT" ; // element (avec -> pointeur) $structures_xml [2][2][23][2] = "CODE_PAYS_NAT" ; // Nom du champ destination $structures_xml [2][2][24][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][24][1] = "CODE_MEF" ; // element (avec -> pointeur) $structures_xml [2][2][24][2] = "CODE_MEF" ; // Nom du champ destination $structures_xml [2][2][25][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][25][1] = "CODE_DEPARTEMENT_NAISS" ; // element (avec -> pointeur) $structures_xml [2][2][25][2] = "CODE_DEPARTEMENT_NAISS" ; // Nom du champ destination $structures_xml [2][2][26][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][26][1] = "CODE_COMMUNE_INSEE" ; // element (avec -> pointeur) $structures_xml [2][2][26][2] = "CODE_COMMUNE_INSEE" ; // Nom du champ destination $structures_xml [2][2][27][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][27][1] = "ADHESION_TRANSPORT" ; // element (avec -> pointeur) $structures_xml [2][2][27][2] = "ADHESION_TRANSPORT" ; // Nom du champ destination $structures_xml [2][2][28][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][2][28][1] = "CODE_PROVENANCE" ; // element (avec -> pointeur) $structures_xml [2][2][28][2] = "CODE_PROVENANCE" ; // Nom du champ destination // OPTIONS $structures_xml [2][3][0][0] = 3 ; // Nombre d'elements $structures_xml [2][3][0][1] = "BEE_ELEVES".$chaine_pointeur."DONNEES".$chaine_pointeur."OPTIONS".$chaine_pointeur."OPTION" ; // Pointeur $structures_xml [2][3][0][2] = "OPTIONS" ; // Nom de la table precedee par $sql_sconet $structures_xml [2][3][0][3] = 2 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [2][3][0][4] = "ELEVE_ID" ; // Nom de l'attribut a enregistrer $structures_xml [2][3][0][5] = "ELEVE_ID" ; // Nom du champ pour l'attribut $structures_xml [2][3][0][6] = "ELENOET" ; // Nom de l'attribut a enregistrer $structures_xml [2][3][0][7] = "ELENOET" ; // Nom du champ pour l'attribut $structures_xml [2][3][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][3][1][1] = "NUM_OPTION" ; // element (avec -> pointeur) $structures_xml [2][3][1][2] = "NUM_OPTION" ; // Nom du champ destination $structures_xml [2][3][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][3][2][1] = "CODE_MODALITE_ELECT" ; // element (avec -> pointeur) $structures_xml [2][3][2][2] = "CODE_MODALITE_ELECT" ; // Nom du champ destination $structures_xml [2][3][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][3][3][1] = "CODE_MATIERE" ; // element (avec -> pointeur) $structures_xml [2][3][3][2] = "CODE_MATIERE" ; // Nom du champ destination // BOURSES $structures_xml [2][4][0][0] = 1 ; // Nombre d'elements $structures_xml [2][4][0][1] = "BEE_ELEVES".$chaine_pointeur."DONNEES".$chaine_pointeur."BOURSES".$chaine_pointeur."BOURSE" ; // Pointeur $structures_xml [2][4][0][2] = "BOURSES" ; // Nom de la table precedee par $sql_sconet $structures_xml [2][4][0][3] = 2 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [2][4][0][4] = "ELEVE_ID" ; // Nom de l'attribut a enregistrer $structures_xml [2][4][0][5] = "ELEVE_ID" ; // Nom du champ pour l'attribut $structures_xml [2][4][0][6] = "ELENOET" ; // Nom de l'attribut a enregistrer $structures_xml [2][4][0][7] = "ELENOET" ; // Nom du champ pour l'attribut $structures_xml [2][4][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][4][1][1] = "CODE_BOURSE" ; // element (avec -> pointeur) $structures_xml [2][4][1][2] = "CODE_BOURSE" ; // Nom du champ destination // ADRESSES $structures_xml [2][5][0][0] = 12 ; // Nombre d'elements $structures_xml [2][5][0][1] = "BEE_ELEVES".$chaine_pointeur."DONNEES".$chaine_pointeur."ADRESSES".$chaine_pointeur."ADRESSE" ; // Pointeur $structures_xml [2][5][0][2] = "ADRESSES" ; // Nom de la table precedee par $sql_sconet $structures_xml [2][5][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [2][5][0][4] = "ADRESSE_ID" ; // Nom de l'attribut a enregistrer $structures_xml [2][5][0][5] = "ADRESSE_ID" ; // Nom du champ pour l'attribut $structures_xml [2][5][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][5][1][1] = "LIGNE1_ADRESSE" ; // element (avec -> pointeur) $structures_xml [2][5][1][2] = "LIGNE1_ADRESSE" ; // Nom du champ destination $structures_xml [2][5][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][5][2][1] = "LIGNE2_ADRESSE" ; // element (avec -> pointeur) $structures_xml [2][5][2][2] = "LIGNE2_ADRESSE" ; // Nom du champ destination $structures_xml [2][5][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][5][3][1] = "LIGNE3_ADRESSE" ; // element (avec -> pointeur) $structures_xml [2][5][3][2] = "LIGNE3_ADRESSE" ; // Nom du champ destination $structures_xml [2][5][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][5][4][1] = "LIGNE4_ADRESSE" ; // element (avec -> pointeur) $structures_xml [2][5][4][2] = "LIGNE4_ADRESSE" ; // Nom du champ destination $structures_xml [2][5][5][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][5][5][1] = "BOITE_POSTALE" ; // element (avec -> pointeur) $structures_xml [2][5][5][2] = "BOITE_POSTALE" ; // Nom du champ destination $structures_xml [2][5][6][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][5][6][1] = "COMMUNE_ETRANGERE" ; // element (avec -> pointeur) $structures_xml [2][5][6][2] = "COMMUNE_ETRANGERE" ; // Nom du champ destination $structures_xml [2][5][7][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][5][7][1] = "CODE_POSTAL" ; // element (avec -> pointeur) $structures_xml [2][5][7][2] = "CODE_POSTAL" ; // Nom du champ destination $structures_xml [2][5][8][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][5][8][1] = "CODE_PAYS" ; // element (avec -> pointeur) $structures_xml [2][5][8][2] = "CODE_PAYS" ; // Nom du champ destination $structures_xml [2][5][9][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][5][9][1] = "CODE_COMMUNE_INSEE" ; // element (avec -> pointeur) $structures_xml [2][5][9][2] = "CODE_COMMUNE_INSEE" ; // Nom du champ destination $structures_xml [2][5][10][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][5][10][1] = "LL_PAYS" ; // element (avec -> pointeur) $structures_xml [2][5][10][2] = "LL_PAYS" ; // Nom du champ destination $structures_xml [2][5][11][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][5][11][1] = "CODE_DEPARTEMENT" ; // element (avec -> pointeur) $structures_xml [2][5][11][2] = "CODE_DEPARTEMENT" ; // Nom du champ destination $structures_xml [2][5][12][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [2][5][12][1] = "LIBELLE_POSTAL" ; // element (avec -> pointeur) $structures_xml [2][5][12][2] = "LIBELLE_POSTAL" ; // Nom du champ destination // // STRUCTURE DU XML ResponsablesAvecAdresses.xml NON RECURSIF // $structures_xml [3][0][0][0] = 4 ; // Nombre de pointeurs $structures_xml [3][0][0][1] = $chaine_pointeur ; // Chaine de pointage $structures_xml [3][0][0][2] = "RESPONSABLES" ; // Entete de nom des tables // PARAMETRES $structures_xml [3][1][0][0] = 4 ; // Nombre d'elements $structures_xml [3][1][0][1] = "BEE_RESPONSABLES".$chaine_pointeur."PARAMETRES" ; // Pointeur $structures_xml [3][1][0][2] = "PARAMETRES" ; // Nom de la table precedee par $sql_sconet $structures_xml [3][1][0][3] = 0 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [3][1][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][1][1][1] = "UAJ" ; // element (avec -> pointeur) $structures_xml [3][1][1][2] = "UAJ" ; // Nom du champ destination $structures_xml [3][1][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][1][2][1] = "ANNEE_SCOLAIRE" ; // element (avec -> pointeur) $structures_xml [3][1][2][2] = "ANNEE_SCOLAIRE" ; // Nom du champ destination $structures_xml [3][1][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][1][3][1] = "DATE_EXPORT" ; // element (avec -> pointeur) $structures_xml [3][1][3][2] = "DATE_EXPORT" ; // Nom du champ destination $structures_xml [3][1][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][1][4][1] = "HORODATAGE" ; // element (avec -> pointeur) $structures_xml [3][1][4][2] = "HORODATAGE" ; // Nom du champ destination // PERSONNES $structures_xml [3][2][0][0] = 12 ; // Nombre d'elements $structures_xml [3][2][0][1] = "BEE_RESPONSABLES".$chaine_pointeur."DONNEES".$chaine_pointeur."PERSONNES".$chaine_pointeur."PERSONNE" ; // Pointeur $structures_xml [3][2][0][2] = "PERSONNES" ; // Nom de la table precedee par $sql_sconet $structures_xml [3][2][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [3][2][0][4] = "PERSONNE_ID" ; // Nom de l'attribut a enregistrer $structures_xml [3][2][0][5] = "PERSONNE_ID" ; // Nom du champ pour l'attribut $structures_xml [3][2][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][2][1][1] = "LC_CIVILITE" ; // element (avec -> pointeur) $structures_xml [3][2][1][2] = "LC_CIVILITE" ; // Nom du champ destination $structures_xml [3][2][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][2][2][1] = "LL_CIVILITE" ; // element (avec -> pointeur) $structures_xml [3][2][2][2] = "LL_CIVILITE" ; // Nom du champ destination $structures_xml [3][2][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][2][3][1] = "NOM" ; // element (avec -> pointeur) $structures_xml [3][2][3][2] = "NOM" ; // Nom du champ destination $structures_xml [3][2][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][2][4][1] = "PRENOM" ; // element (avec -> pointeur) $structures_xml [3][2][4][2] = "PRENOM" ; // Nom du champ destination $structures_xml [3][2][5][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][2][5][1] = "TEL_PERSONNEL" ; // element (avec -> pointeur) $structures_xml [3][2][5][2] = "TEL_PERSONNEL" ; // Nom du champ destination $structures_xml [3][2][6][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][2][6][1] = "TEL_PORTABLE" ; // element (avec -> pointeur) $structures_xml [3][2][6][2] = "TEL_PORTABLE" ; // Nom du champ destination $structures_xml [3][2][7][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][2][7][1] = "ACCEPTE_SMS" ; // element (avec -> pointeur) $structures_xml [3][2][7][2] = "ACCEPTE_SMS" ; // Nom du champ destination $structures_xml [3][2][8][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][2][8][1] = "TEL_PROFESSIONNEL" ; // element (avec -> pointeur) $structures_xml [3][2][8][2] = "TEL_PROFESSIONNEL" ; // Nom du champ destination $structures_xml [3][2][9][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][2][9][1] = "MEL" ; // element (avec -> pointeur) $structures_xml [3][2][9][2] = "MEL" ; // Nom du champ destination $structures_xml [3][2][10][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][2][10][1] = "COMMUNICATION_ADRESSE" ; // element (avec -> pointeur) $structures_xml [3][2][10][2] = "COMMUNICATION_ADRESSE" ; // Nom du champ destination $structures_xml [3][2][11][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][2][11][1] = "ADRESSE_ID" ; // element (avec -> pointeur) $structures_xml [3][2][11][2] = "ADRESSE_ID" ; // Nom du champ destination $structures_xml [3][2][12][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][2][12][1] = "CODE_PROFESSION" ; // element (avec -> pointeur) $structures_xml [3][2][12][2] = "CODE_PROFESSION" ; // Nom du champ destination // RESPONSABLES $structures_xml [3][3][0][0] = 7 ; // Nombre d'elements $structures_xml [3][3][0][1] = "BEE_RESPONSABLES".$chaine_pointeur."DONNEES".$chaine_pointeur."RESPONSABLES".$chaine_pointeur."RESPONSABLE_ELEVE" ; // Pointeur $structures_xml [3][3][0][2] = "RESPONSABLES" ; // Nom de la table precedee par $sql_sconet $structures_xml [3][3][0][3] = 0 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [3][3][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][3][1][1] = "ELEVE_ID" ; // element (avec -> pointeur) $structures_xml [3][3][1][2] = "ELEVE_ID" ; // Nom du champ destination $structures_xml [3][3][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][3][2][1] = "PERSONNE_ID" ; // element (avec -> pointeur) $structures_xml [3][3][2][2] = "PERSONNE_ID" ; // Nom du champ destination $structures_xml [3][3][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][3][3][1] = "RESP_LEGAL" ; // element (avec -> pointeur) $structures_xml [3][3][3][2] = "RESP_LEGAL" ; // Nom du champ destination $structures_xml [3][3][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][3][4][1] = "CODE_PARENTE" ; // element (avec -> pointeur) $structures_xml [3][3][4][2] = "CODE_PARENTE" ; // Nom du champ destination $structures_xml [3][3][5][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][3][5][1] = "RESP_FINANCIER" ; // element (avec -> pointeur) $structures_xml [3][3][5][2] = "RESP_FINANCIER" ; // Nom du champ destination $structures_xml [3][3][6][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][3][6][1] = "PERS_PAIEMENT" ; // element (avec -> pointeur) $structures_xml [3][3][6][2] = "PERS_PAIEMENT" ; // Nom du champ destination $structures_xml [3][3][7][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][3][7][1] = "PERS_CONTACT" ; // element (avec -> pointeur) $structures_xml [3][3][7][2] = "PERS_CONTACT" ; // Nom du champ destination // ADRESSES $structures_xml [3][4][0][0] = 12 ; // Nombre d'elements $structures_xml [3][4][0][1] = "BEE_RESPONSABLES".$chaine_pointeur."DONNEES".$chaine_pointeur."ADRESSES".$chaine_pointeur."ADRESSE" ; // Pointeur $structures_xml [3][4][0][2] = "ADRESSES" ; // Nom de la table precedee par $sql_sconet $structures_xml [3][4][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer $structures_xml [3][4][0][4] = "ADRESSE_ID" ; // Nom de l'attribut a enregistrer $structures_xml [3][4][0][5] = "ADRESSE_ID" ; // Nom du champ pour l'attribut $structures_xml [3][4][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][4][1][1] = "LIGNE1_ADRESSE" ; // element (avec -> pointeur) $structures_xml [3][4][1][2] = "LIGNE1_ADRESSE" ; // Nom du champ destination $structures_xml [3][4][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][4][2][1] = "LIGNE2_ADRESSE" ; // element (avec -> pointeur) $structures_xml [3][4][2][2] = "LIGNE2_ADRESSE" ; // Nom du champ destination $structures_xml [3][4][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][4][3][1] = "LIGNE3_ADRESSE" ; // element (avec -> pointeur) $structures_xml [3][4][3][2] = "LIGNE3_ADRESSE" ; // Nom du champ destination $structures_xml [3][4][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][4][4][1] = "LIGNE4_ADRESSE" ; // element (avec -> pointeur) $structures_xml [3][4][4][2] = "LIGNE4_ADRESSE" ; // Nom du champ destination $structures_xml [3][4][5][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][4][5][1] = "BOITE_POSTALE" ; // element (avec -> pointeur) $structures_xml [3][4][5][2] = "BOITE_POSTALE" ; // Nom du champ destination $structures_xml [3][4][6][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][4][6][1] = "COMMUNE_ETRANGERE" ; // element (avec -> pointeur) $structures_xml [3][4][6][2] = "COMMUNE_ETRANGERE" ; // Nom du champ destination $structures_xml [3][4][7][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][4][7][1] = "CODE_POSTAL" ; // element (avec -> pointeur) $structures_xml [3][4][7][2] = "CODE_POSTAL" ; // Nom du champ destination $structures_xml [3][4][8][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][4][8][1] = "CODE_PAYS" ; // element (avec -> pointeur) $structures_xml [3][4][8][2] = "CODE_PAYS" ; // Nom du champ destination $structures_xml [3][4][9][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][4][9][1] = "CODE_COMMUNE_INSEE" ; // element (avec -> pointeur) $structures_xml [3][4][9][2] = "CODE_COMMUNE_INSEE" ; // Nom du champ destination $structures_xml [3][4][10][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][4][10][1] = "LL_PAYS" ; // element (avec -> pointeur) $structures_xml [3][4][10][2] = "LL_PAYS" ; // Nom du champ destination $structures_xml [3][4][11][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][4][11][1] = "CODE_DEPARTEMENT" ; // element (avec -> pointeur) $structures_xml [3][4][11][2] = "CODE_DEPARTEMENT" ; // Nom du champ destination $structures_xml [3][4][12][0] = 1 ; // Type element : 0=Attribut,1=Donnee $structures_xml [3][4][12][1] = "LIBELLE_POSTAL" ; // element (avec -> pointeur) $structures_xml [3][4][12][2] = "LIBELLE_POSTAL" ; // Nom du champ destination /* * Extraction de l'attribut $nom dans la chaine $chaine * @param string $nom Nom de l'attribut sans "=" * @param string $chaine Chaine contenant ou pas l'attribut * @return string Contenu de l'attribut */ Function attribut ($nom, $chaine) { $code = "" ; $tmp1 = Explode ($nom."=", $chaine) ; If (IsSet ($tmp1 [1])) { $tmp2 = Explode ("\"", $tmp1 [1]) ; $tmp3 = Str_Replace ("'", "\'", $tmp2 [1]) ; $code = Str_Replace ("'", "\'", $tmp3) ; // filtrage_utf8 ( } Return $code ; } /* * Extraction d'un champ XML * @param string $c Chaine a extraire * @param mixed $table Table de pointeurs ou champ a extraire * @return array Table extraite */ Function extraction ($c, $table) { Global $recursif, $max_recursif ; If (Is_Array ($table) And (SizeOf ($table) > 1)) { $recursif++ ; If ($recursif > $max_recursif) { Exit ; } $f1 = extraction ($c, $table [0]) ; If ($f1 [0][0] > 1) { $f2 [0][0] = 0 ; For ($i = 1 ; $i <= $f1 [0][0] ; $i++) { $f3 = extraction ($f1 [$i][1], Array_Slice ($table, 1)) ; For ($j = 1 ; $j <= $f3 [0][0] ; $j++) { $f2 [0][0]++ ; $f2 [$f2 [0][0]][0] = $f3 [$j][0] ; $f2 [$f2 [0][0]][1] = $f3 [$j][1] ; } } Return $f2 ; } Else { If (IsSet ($f1 [1][1])) { $f2 = extraction ($f1 [1][1], Array_Slice ($table, 1)) ; Return $f2 ; } Else { $t [0][0] = 0 ; Return $t ; } } } Else { If (Is_Array ($table)) { $champ = $table [0] ; } Else { $champ = $table ; } $c5 [0][0] = 0 ; $c5 [0][1] = $champ ; If ((!StrPos ($c, "<".$champ." />")) And ((StrPos ($c, "<".$champ." ")) Or (StrPos ($c, "<".$champ.">")))) { While (StrPos ($c, "<".$champ)) { // Recherche champ $p1 = StrPos ($c, "<".$champ) ; $p11 = StrPos ($c, "<".$champ." ") ; $p12 = StrPos ($c, "<".$champ.">") ; If (($p1 != $p11) And ($p1 != $p12)) { If ($p11) { $p1 = $p11 ; } Else { $p1 = $p12 ; } } $p2 = StrPos ($c, "") ; If (!$p2) { $p1 = $p2 = StrPos ($c, "<".$champ."/>") ; } $p3 = $p2-$p1 ; $c1 = SubStr ($c, $p1, $p3) ; // Suite chaine $p4 = $p2+StrLen ("") ; $p5 = StrLen ($c)-$p4 ; $c = SubStr ($c, $p4, $p5) ; // Recherche d'attributs $c2 = Explode ("<", $c1) ; If (IsSet ($c2 [1])) { $c3 = Explode (">", $c2 [1]) ; If (!StrPos ($c3 [0], "=")) { $c4 = StrLen ("<".$champ.">") ; $c1 = SubStr ($c1, $c4, StrLen ($c1)-$c4) ; $c3 [0] = "" ; } Else { $c4 = StrPos ($c1, ">") ; $c1 = SubStr ($c1, $c4+1, StrLen ($c1)-$c4+1) ; } } Else { $c3 [0] = "" ; } // Enregistrement $c5 [0][0]++ ; $c5 [$c5 [0][0]][0] = $c3 [0] ; // Attributs filtrage_utf8 $c5 [$c5 [0][0]][1] = $c1 ; // Champ filtrage_utf8 } } Return $c5 ; } } /* * Creation des tables SQL a partir d'une extraction XML * @param string $chaine Chaine a extraire * @param string $s_xml Tableau de la structure a appliquer * @param int $numero Numero de la structure */ Function creation_tables ($chaine, $s_xml, $numero) { Global $id_sql, $recursif, $sql_sconet, $type_champ_auto, $type_donnees, $attribut_donnees, $table ; $chaine_pointeur = $s_xml [$numero][0][0][1] ; For ($i = 1 ; $i <= $s_xml [$numero][0][0][0] ; $i++) { $requete_destruction = "DROP TABLE ".$sql_sconet."_".$s_xml [$numero][0][0][2]."_".$s_xml [$numero][$i][0][2] ; $requete_creation = "CREATE TABLE ".$sql_sconet."_".$s_xml [$numero][0][0][2]."_".$s_xml [$numero][$i][0][2]." (ID_".$s_xml [$numero][$i][0][2]." ".$type_champ_auto ; // Attributs For ($j = 1 ; $j <= $s_xml [$numero][$i][0][3] ; $j++) { $requete_creation .= ",".$s_xml [$numero][$i][0][3+$j*2]." ".$type_donnees." ".$attribut_donnees ; } // Champs avec attributs et donnees For ($j = 1 ; $j <= $s_xml [$numero][$i][0][0] ; $j++) { $requete_creation .= "," ; If ($s_xml [$numero][$i][$j][0] == 1) { $requete_creation .= $s_xml [$numero][$i][$j][2] ; } Else { $requete_creation .= $s_xml [$numero][$i][$j][3] ; } $requete_creation .= " ".$type_donnees." ".$attribut_donnees ; } $requete_creation .= ")" ; $requete_insertion = "INSERT INTO ".$sql_sconet."_".$s_xml [$numero][0][0][2]."_".$s_xml [$numero][$i][0][2]." VALUES " ; $recursif = 0 ; $tableau1 = extraction ($chaine, Explode ($chaine_pointeur, $s_xml [$numero][$i][0][1])) ; If (IsSet ($tableau1) And Is_Array ($tableau1)) { If ($tableau1 [0][0] > 0) { $table [0]++ ; $table [$table [0]] = $sql_sconet."_".$s_xml [$numero][0][0][2]."_".$s_xml [$numero][$i][0][2] ; For ($j = 1 ; $j <= $tableau1 [0][0] ; $j++) { If ($j > 1) { $requete_insertion .= "," ; } $requete_insertion .= "(''" ; // Attributs If ($s_xml [$numero][$i][0][3] > 0) { For ($k = 1 ; $k <= $s_xml [$numero][$i][0][3] ; $k++) { $requete_insertion .= ",'".attribut ($s_xml [$numero][$i][0][2+$k*2], $tableau1 [$j][0])."'" ; } } // Champs For ($k = 1 ; $k <= $s_xml [$numero][$i][0][0] ; $k++) { $recursif = 0 ; $tableau2 = extraction ($tableau1 [$j][1], Explode ($chaine_pointeur, $s_xml [$numero][$i][$k][1])) ; If ($s_xml [$numero][$i][$k][0] == 0) { // Attribut $requete_insertion .= ",'".attribut ($s_xml [$numero][$i][$k][2], $tableau2 [1][0])."'" ; } Else { // Donnee $requete_insertion .= ",'" ; If (IsSet ($tableau2 [1][1])) { $requete_insertion .= Str_Replace ("'", "\'", $tableau2 [1][1]) ; } $requete_insertion .= "'" ; } } $requete_insertion .= ")" ; } //echo "Création de la table ".$table [$table [0]]."->".$tableau1 [0][0]."
" ; $ok = SQL_commande ($requete_destruction, $id_sql) ; $ok = SQL_commande ($requete_creation, $id_sql) ; $ok = SQL_commande ($requete_insertion, $id_sql) ; } } } } /** * Importation de la structure en recursif * @param string $chaine Chaine a extraire * @param string $entete Entete du nom des tables a creer */ Function importation_recursive_structure ($chaine, $entete) { Global $id_sql, $table, $sql_sconet, $type_champ_auto, $type_donnees, $attribut_donnees ; // Gestion des individus // INDIVIDUS $recursif = 0 ; // Traitement DISCIPLINES $table [0]++ ; $table [$table [0]] = $sql_sconet."_".$entete."_DISCIPLINES" ; $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_DISCIPLINES" ; $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_DISCIPLINES (ID_DISCIPLINES ".$type_champ_auto."," ; $requete_creation .= "ID_INDIVIDU ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "CODE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "LIBELLE_COURT ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "NB_HEURES ".$type_donnees." ".$attribut_donnees.")" ; //echo "Création de la table ".$sql_sconet."_".$entete."_DISCIPLINES
" ; $ok = SQL_commande ($requete_destruction, $id_sql) ; $ok = SQL_commande ($requete_creation, $id_sql) ; // Traitement PROFS_PRINC $table [0]++ ; $table [$table [0]] = $sql_sconet."_".$entete."_PROFS_PRINC" ; $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_PROFS_PRINC" ; $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_PROFS_PRINC (ID_PROFS_PRINC ".$type_champ_auto."," ; $requete_creation .= "ID_INDIVIDU ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "CODE_STRUCTURE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "DATE_DEBUT ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "DATE_FIN ".$type_donnees." ".$attribut_donnees.")" ; //echo "Création de la table ".$sql_sconet."_".$entete."_PROFS_PRINC
" ; $ok = SQL_commande ($requete_destruction, $id_sql) ; $ok = SQL_commande ($requete_creation, $id_sql) ; $tableau = extraction ($chaine, Array ("STS_EDT","DONNEES","INDIVIDUS","INDIVIDU")) ; For ($i = 1 ; $i <= $tableau [0][0] ; $i++) { $ok = 0 ; // Recuperation du ID INDIVIDU $id_individu = attribut ("ID", $tableau [$i][0]) ; // Traitement DISCIPLINES $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_DISCIPLINES VALUES " ; $tableau2 = extraction ($tableau [$i][1], Array ("DISCIPLINES")) ; For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++) { $tableau3 = extraction ($tableau2 [$j][1], Array ("DISCIPLINE")) ; For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++) { // Recuperation du CODE $code = attribut ("CODE", $tableau3 [$k][0]) ; $tableau4 = extraction ($tableau3 [$k][1], Array ("LIBELLE_COURT")) ; $tableau5 = extraction ($tableau3 [$k][1], Array ("NB_HEURES")) ; If ($ok == 1) { $requete_insertion .= "," ; } $requete_insertion .= "('','".$id_individu."','".$code."','".Str_Replace ("'", "\'", $tableau4 [1][1])."','".Str_Replace ("'", "\'", $tableau5 [1][1])."')" ; $ok = 1 ; } } If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; } // Traitement PROFS_PRINC $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_PROFS_PRINC VALUES " ; $tableau2 = extraction ($tableau [$i][1], Array ("PROFS_PRINC")) ; $ok = 0 ; For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++) { $tableau3 = extraction ($tableau2 [$j][1], Array ("PROF_PRINC")) ; For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++) { $tableau4 = extraction ($tableau3 [$k][1], Array ("CODE_STRUCTURE")) ; $tableau5 = extraction ($tableau3 [$k][1], Array ("DATE_DEBUT")) ; $tableau6 = extraction ($tableau3 [$k][1], Array ("DATE_FIN")) ; If ($ok == 1) { $requete_insertion .= "," ; } $requete_insertion .= "('','".$id_individu."','".Str_Replace ("'", "\'", $tableau4 [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $tableau5 [1][1])."','".Str_Replace ("'", "\'", $tableau6 [1][1])."')" ; $ok = 1 ; } } If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; } } // Gestion des divisions // DIVISIONS $recursif = 0 ; // Traitement MEF APPARTENANCE DIVISIONS $table [0]++ ; $table [$table [0]] = $sql_sconet."_".$entete."_MEFS_APPARTENANCE_DIVISIONS" ; $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_DIVISIONS" ; $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_DIVISIONS (ID_MEFS_APPARTENANCE_DIVISIONS ".$type_champ_auto."," ; $requete_creation .= "CODE_DIVISION ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "CODE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "EFFECTIF_PREVU ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "EFFECTIF_CALCULE ".$type_donnees." ".$attribut_donnees.")" ; //echo "Création de la table ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_DIVISIONS
" ; $ok = SQL_commande ($requete_destruction, $id_sql) ; $ok = SQL_commande ($requete_creation, $id_sql) ; // Traitement SERVICES DIVISIONS $table [0]++ ; $table [$table [0]] = $sql_sconet."_".$entete."_SERVICES_DIVISIONS" ; $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_SERVICES_DIVISIONS" ; $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_SERVICES_DIVISIONS (ID_SERVICES_DIVISIONS ".$type_champ_auto."," ; $requete_creation .= "CODE_DIVISION ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "CODE_MATIERE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "CODE_MODS_COURS ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "HEURES_STRUCTURE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "CO_ENS ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "ENSEIGNANT_ID ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "ENSEIGNANT_TYPE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "HEURES_AGENT ".$type_donnees." ".$attribut_donnees.",OK ".$type_donnees." ".$attribut_donnees.")" ; //echo "Création de la table ".$sql_sconet."_".$entete."_SERVICES_DIVISIONS
" ; $ok = SQL_commande ($requete_destruction, $id_sql) ; $ok = SQL_commande ($requete_creation, $id_sql) ; $tableau = extraction ($chaine, Array ("STS_EDT","DONNEES","DIVISIONS","DIVISION")) ; For ($i = 1 ; $i <= $tableau [0][0] ; $i++) { // Recuperation du CODE DIVISION $code_division = attribut ("CODE", $tableau [$i][0]) ; // Traitement MEF APPARTENANCE $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_DIVISIONS VALUES " ; $tableau2 = extraction ($tableau [$i][1], Array ("MEFS_APPARTENANCE")) ; $ok = 0 ; For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++) { $tableau3 = extraction ($tableau2 [$j][1], Array ("MEF_APPARTENANCE")) ; For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++) { // Recuperation du CODE $code = attribut ("CODE", $tableau3 [$k][0]) ; $tableau4 = extraction ($tableau3 [$k][1], Array ("EFFECTIF_PREVU")) ; $tableau5 = extraction ($tableau3 [$k][1], Array ("EFFECTIF_CALCULE")) ; If ($ok == 1) { $requete_insertion .= "," ; } $requete_insertion .= "('','".$code_division."','".$code."','".Str_Replace ("'", "\'", $tableau4 [1][1])."','".Str_Replace ("'", "\'", $tableau5 [1][1])."')" ; $ok = 1 ; } } If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; } // Traitement SERVICES $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_SERVICES_DIVISIONS VALUES " ; $tableau2 = extraction ($tableau [$i][1], Array ("SERVICES")) ; $ok = 0 ; For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++) { $tableau3 = extraction ($tableau2 [$j][1], Array ("SERVICE")) ; For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++) { // Recuperation du CODE MATIERE $code_matiere = attribut ("CODE_MATIERE", $tableau3 [$k][0]) ; // Recuperation du CODE MOD COURS $code_mod_cours = attribut ("CODE_MOD_COURS", $tableau3 [$k][0]) ; $tableau4 = extraction ($tableau3 [$k][1], Array ("HEURES_STRUCTURE")) ; $tableau5 = extraction ($tableau3 [$k][1], Array ("CO_ENS")) ; $tableau6 = extraction ($tableau3 [$k][1], Array ("ENSEIGNANTS")) ; If ($tableau6 [0][0] > 0) { For ($l = 1 ; $l <= $tableau6 [0][0] ; $l++) { $tableau7 = extraction ($tableau6 [$l][1], Array ("ENSEIGNANT")) ; For ($m = 1 ; $m <= $tableau7 [0][0] ; $m++) { // Recuperation du ID $id_enseignant = attribut ("ID", $tableau7 [$m][0]) ; // Recuperation du TYPE $type_enseignant = attribut ("TYPE", $tableau7 [$m][0]) ; $tableau8 = extraction ($tableau7 [$m][1], Array ("HEURES_AGENT")) ; If ($ok == 1) { $requete_insertion .= "," ; } $requete_insertion .= "('','".$code_division."','".$code_matiere."','".$code_mod_cours."','".Str_Replace ("'", "\'", $tableau4 [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $tableau5 [1][1])."','".$id_enseignant."','".$type_enseignant."','".Str_Replace ("'", "\'", $tableau8 [1][1])."','0')" ; $ok = 1 ; } } } Else { If ($ok == 1) { $requete_insertion .= "," ; } $requete_insertion .= "('','".$code_division."','".$code_matiere."','".$code_mod_cours."','".Str_Replace ("'", "\'", $tableau4 [1][1])."','".Str_Replace ("'", "\'", $tableau5 [1][1])."','','','','0')" ; $ok = 1 ; } } } If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; } } // Gestion des groupes // GROUPES $recursif = 0 ; // Traitement DIVISIONS APPARTENANCE GROUPES $table [0]++ ; $table [$table [0]] = $sql_sconet."_".$entete."_DIVISIONS_APPARTENANCE_GROUPES" ; $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_DIVISIONS_APPARTENANCE_GROUPES" ; $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_DIVISIONS_APPARTENANCE_GROUPES (ID_DIVISIONS_APPARTENANCE_GROUPES ".$type_champ_auto."," ; $requete_creation .= "CODE_GROUPE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "CODE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "EFFECTIF_PREVU ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "EFFECTIF_CALCULE ".$type_donnees." ".$attribut_donnees.")" ; //echo "Création de la table ".$sql_sconet."_".$entete."_DIVISIONS_APPARTENANCE_GROUPES
" ; $ok = SQL_commande ($requete_destruction, $id_sql) ; $ok = SQL_commande ($requete_creation, $id_sql) ; // Traitement MEF APPARTENANCE GROUPES $table [0]++ ; $table [$table [0]] = $sql_sconet."_".$entete."_MEFS_APPARTENANCE_GROUPES" ; $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_GROUPES" ; $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_GROUPES (ID_MEFS_APPARTENANCE_GROUPES ".$type_champ_auto."," ; $requete_creation .= "CODE_GROUPE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "CODE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "EFFECTIF_PREVU ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "EFFECTIF_CALCULE ".$type_donnees." ".$attribut_donnees.")" ; //echo "Création de la table ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_GROUPES
" ; $ok = SQL_commande ($requete_destruction, $id_sql) ; $ok = SQL_commande ($requete_creation, $id_sql) ; // Traitement SERVICES GROUPES $table [0]++ ; $table [$table [0]] = $sql_sconet."_".$entete."_SERVICES_GROUPES" ; $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_SERVICES_GROUPES" ; $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_SERVICES_GROUPES (ID_SERVICES_GROUPES ".$type_champ_auto."," ; $requete_creation .= "CODE_GROUPE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "CODE_MATIERE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "CODE_MODS_COURS ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "HEURES_STRUCTURE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "CO_ENS ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "ENSEIGNANT_ID ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "ENSEIGNANT_TYPE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "HEURES_AGENT ".$type_donnees." ".$attribut_donnees.")" ; //echo "Création de la table ".$sql_sconet."_".$entete."_SERVICES_GROUPES
" ; $ok = SQL_commande ($requete_destruction, $id_sql) ; $ok = SQL_commande ($requete_creation, $id_sql) ; $tableau = extraction ($chaine, Array ("STS_EDT","DONNEES","GROUPES","GROUPE")) ; For ($i = 1 ; $i <= $tableau [0][0] ; $i++) { // Recuperation du CODE GROUPE $code_groupe = attribut ("CODE", $tableau [$i][0]) ; // Traitement DIVISIONS APPARTENANCE GROUPES $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_DIVISIONS_APPARTENANCE_GROUPES VALUES " ; $tableau2 = extraction ($tableau [$i][1], Array ("DIVISIONS_APPARTENANCE")) ; $ok = 0 ; For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++) { $tableau3 = extraction ($tableau2 [$j][1], Array ("DIVISION_APPARTENANCE")) ; For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++) { // Recuperation du CODE $code = attribut ("CODE", $tableau3 [$k][0]) ; $tableau4 = extraction ($tableau3 [$k][1], Array ("EFFECTIF_PREVU")) ; $tableau5 = extraction ($tableau3 [$k][1], Array ("EFFECTIF_CALCULE")) ; If ($ok == 1) { $requete_insertion .= "," ; } $requete_insertion .= "('','".$code_groupe."','".$code."','".Str_Replace ("'", "\'", $tableau4 [1][1])."','".Str_Replace ("'", "\'", $tableau5 [1][1])."')" ; $ok = 1 ; } } If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; } // Traitement MEF APPARTENANCE GROUPES $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_GROUPES VALUES " ; $tableau2 = extraction ($tableau [$i][1], Array ("MEFS_APPARTENANCE")) ; $ok = 0 ; For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++) { $tableau3 = extraction ($tableau2 [$j][1], Array ("MEF_APPARTENANCE")) ; For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++) { // Recuperation du CODE $code = attribut ("CODE", $tableau3 [$k][0]) ; $tableau4 = extraction ($tableau3 [$k][1], Array ("EFFECTIF_PREVU")) ; $tableau5 = extraction ($tableau3 [$k][1], Array ("EFFECTIF_CALCULE")) ; If ($ok == 1) { $requete_insertion .= "," ; } $requete_insertion .= "('','".$code_groupe."','".$code."','".Str_Replace ("'", "\'", $tableau4 [1][1])."','".Str_Replace ("'", "\'", $tableau5 [1][1])."')" ; $ok = 1 ; } } If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; } // Traitement SERVICES GROUPES $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_SERVICES_GROUPES VALUES " ; $tableau2 = extraction ($tableau [$i][1], Array ("SERVICES")) ; $ok = 0 ; For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++) { $tableau3 = extraction ($tableau2 [$j][1], Array ("SERVICE")) ; For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++) { // Recuperation du CODE MATIERE $code_matiere = attribut ("CODE_MATIERE", $tableau3 [$k][0]) ; // Recuperation du CODE MOD COURS $code_mod_cours = attribut ("CODE_MOD_COURS", $tableau3 [$k][0]) ; $tableau4 = extraction ($tableau3 [$k][1], Array ("HEURES_STRUCTURE")) ; $tableau5 = extraction ($tableau3 [$k][1], Array ("CO_ENS")) ; $tableau6 = extraction ($tableau3 [$k][1], Array ("ENSEIGNANTS")) ; If ($tableau6 [0][0] > 0) { For ($l = 1 ; $l <= $tableau6 [0][0] ; $l++) { $tableau7 = extraction ($tableau6 [$l][1], Array ("ENSEIGNANT")) ; For ($m = 1 ; $m <= $tableau7 [0][0] ; $m++) { // Recuperation du ID $id_enseignant = attribut ("ID", $tableau7 [$m][0]) ; // Recuperation du TYPE $type_enseignant = attribut ("TYPE", $tableau7 [$m][0]) ; $tableau8 = extraction ($tableau7 [$m][1], Array ("HEURES_AGENT")) ; If ($ok == 1) { $requete_insertion .= "," ; } $requete_insertion .= "('','".$code_groupe."','".$code_matiere."','".$code_mod_cours."','".Str_Replace ("'", "\'", $tableau4 [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $tableau5 [1][1])."','".$id_enseignant."','".$type_enseignant."','".Str_Replace ("'", "\'", $tableau8 [1][1])."')" ; $ok = 1 ; } } } Else { If ($ok == 1) { $requete_insertion .= "," ; } $requete_insertion .= "('','".$code_groupe."','".$code_matiere."','".$code_mod_cours."','".Str_Replace ("'", "\'", $tableau4 [1][1])."','".Str_Replace ("'", "\'", $tableau5 [1][1])."','','','')" ; $ok = 1 ; } } } If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; } } } /** * Importation des eleves en recursif * @param string $chaine Chaine a extraire * @param string $entete Entete du nom des tables a creer */ Function importation_recursive_eleves ($chaine, $entete) { Global $id_sql, $table, $sql_sconet, $type_champ_auto, $type_donnees, $attribut_donnees ; // Gestion des individus // INDIVIDUS $recursif = 0 ; // Traitement Scolarite an dernier $table [0]++ ; $table [$table [0]] = $sql_sconet."_".$entete."_SCOLARITE_AN_DERNIER" ; $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_SCOLARITE_AN_DERNIER" ; $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_SCOLARITE_AN_DERNIER (ID_SCOLARITE_AN_DERNIER ".$type_champ_auto."," ; $requete_creation .= "ELEVE_ID ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "ELENOET ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "CODE_MEF ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "CODE_STRUCTURE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "CODE_RNE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "CODE_NATURE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "SIGLE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "DENOM_PRINC ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "DENOM_COMPL ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "LIGNE1_ADRESSE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "LIGNE2_ADRESSE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "LIGNE3_ADRESSE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "LIGNE4_ADRESSE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "BOITE_POSTALE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "COMMUNE_ETRANGERE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "MEL ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "TELEPHONE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "CODE_COMMUNE_INSEE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "LL_COMMUNE_INSEE ".$type_donnees." ".$attribut_donnees.")" ; //echo "Création de la table ".$sql_sconet."_".$entete."_SCOLARITE_AN_DERNIER
" ; $ok = SQL_commande ($requete_destruction, $id_sql) ; $ok = SQL_commande ($requete_creation, $id_sql) ; $tableau = extraction ($chaine, Array ("BEE_ELEVES","DONNEES","ELEVES","ELEVE")) ; For ($i = 1 ; $i <= $tableau [0][0] ; $i++) { $ok = 0 ; // Recuperation du ELEVE_ID et ELENOET $eleve_id = attribut ("ELEVE_ID", $tableau [$i][0]) ; $elenoet = attribut ("ELENOET", $tableau [$i][0]) ; // Traitement DISCIPLINES $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_SCOLARITE_AN_DERNIER VALUES " ; $tableau2 = extraction ($tableau [$i][1], Array ("SCOLARITE_AN_DERNIER")) ; For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++) { // Recuperation des CODES $code_mef = extraction ($tableau2 [$j][1], Array ("CODE_MEF")) ; $code_structure = extraction ($tableau2 [$j][1], Array ("CODE_STRUCTURE")) ; $code_rne = extraction ($tableau2 [$j][1], Array ("CODE_RNE")) ; $code_nature = extraction ($tableau2 [$j][1], Array ("CODE_NATURE")) ; $sigle = extraction ($tableau2 [$j][1], Array ("SIGLE")) ; $denom_princ = extraction ($tableau2 [$j][1], Array ("DENOM_PRINC")) ; $denom_compl = extraction ($tableau2 [$j][1], Array ("DENOM_COMPL")) ; $ligne1_adresse = extraction ($tableau2 [$j][1], Array ("LIGNE1_ADRESSE")) ; $ligne2_adresse = extraction ($tableau2 [$j][1], Array ("LIGNE2_ADRESSE")) ; $ligne3_adresse = extraction ($tableau2 [$j][1], Array ("LIGNE3_ADRESSE")) ; $ligne4_adresse = extraction ($tableau2 [$j][1], Array ("LIGNE4_ADRESSE")) ; $boite_postale = extraction ($tableau2 [$j][1], Array ("BOITE_POSTALE")) ; $commune_etrangere = extraction ($tableau2 [$j][1], Array ("COMMUNE_ETRANGERE")) ; $mel = extraction ($tableau2 [$j][1], Array ("MEL")) ; $telephone = extraction ($tableau2 [$j][1], Array ("TELEPHONE")) ; $code_commune_insee = extraction ($tableau2 [$j][1], Array ("CODE_COMMUNE_INSEE")) ; $ll_commune_insee = extraction ($tableau2 [$j][1], Array ("LL_COMMUNE_INSEE")) ; If ($ok == 1) { $requete_insertion .= "," ; } $requete_insertion .= "('','".$eleve_id."','".$elenoet."','".Str_Replace ("'","\'",$code_mef [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $code_structure [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $code_rne [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $code_nature [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $sigle [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $denom_princ [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $denom_compl [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $ligne1_adresse [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $ligne2_adresse [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $ligne3_adresse [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $ligne4_adresse [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $boite_postale [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $commune_etrangere [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $mel [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $telephone [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $code_commune_insee [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $ll_commune_insee [1][1])."'" ; $requete_insertion .= ")" ; $ok = 1 ; } If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; } // Traitement PROFS_PRINC $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_PROFS_PRINC VALUES " ; $tableau2 = extraction ($tableau [$i][1], Array ("PROFS_PRINC")) ; $ok = 0 ; For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++) { $tableau3 = extraction ($tableau2 [$j][1], Array ("PROF_PRINC")) ; For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++) { $tableau4 = extraction ($tableau3 [$k][1], Array ("CODE_STRUCTURE")) ; $tableau5 = extraction ($tableau3 [$k][1], Array ("DATE_DEBUT")) ; $tableau6 = extraction ($tableau3 [$k][1], Array ("DATE_FIN")) ; If ($ok == 1) { $requete_insertion .= "," ; } $requete_insertion .= "('','".$id_individu."','".Str_Replace ("'", "\'", $tableau4 [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $tableau5 [1][1])."','".Str_Replace ("'", "\'", $tableau6 [1][1])."')" ; $ok = 1 ; } } If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; } } // Traitement Structures $table [0]++ ; $table [$table [0]] = $sql_sconet."_".$entete."_STRUCTURES" ; $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_STRUCTURES" ; $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_STRUCTURES (ID_STRUCTURE ".$type_champ_auto."," ; $requete_creation .= "ELEVE_ID ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "ELENOET ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "CODE_STRUCTURE ".$type_donnees." ".$attribut_donnees."," ; $requete_creation .= "TYPE_STRUCTURE ".$type_donnees." ".$attribut_donnees.")" ; //echo "Création de la table ".$table [$table [0]]."
" ; $ok = SQL_commande ($requete_destruction, $id_sql) ; $ok = SQL_commande ($requete_creation, $id_sql) ; $tableau = extraction ($chaine, Array ("BEE_ELEVES","DONNEES","STRUCTURES","STRUCTURES_ELEVE")) ; For ($i = 1 ; $i <= $tableau [0][0] ; $i++) { $ok = 0 ; // Recuperation du ELEVE_ID et ELENOET $eleve_id = attribut ("ELEVE_ID", $tableau [$i][0]) ; $elenoet = attribut ("ELENOET", $tableau [$i][0]) ; // Traitement DISCIPLINES $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_STRUCTURES VALUES " ; $tableau2 = extraction ($tableau [$i][1], Array ("STRUCTURE")) ; For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++) { // Recuperation des CODES $code_structure = extraction ($tableau2 [$j][1], Array ("CODE_STRUCTURE")) ; $type_structure = extraction ($tableau2 [$j][1], Array ("TYPE_STRUCTURE")) ; If ($ok == 1) { $requete_insertion .= "," ; } $requete_insertion .= "('','".$eleve_id."','".$elenoet."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $code_structure [1][1])."'," ; $requete_insertion .= "'".Str_Replace ("'", "\'", $type_structure [1][1])."'" ; $requete_insertion .= ")" ; $ok = 1 ; } If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; } } } /** * Fonction d'importation des regimes non existants * @param int $code Code du regime sconet * @param string $nom_court Libelle court sconet * @param string $nom_long Libelle long sconet * @param int $millesime Millesime * @return string Requete d'insertion */ Function insertion_regimes ($code, $nom_court, $nom_long, $millesime) { Global $nbr_regimes, $id_sql ; $req = "" ; $r = SQL_commande ("SELECT * FROM types_regimes WHERE nom_court='".$nom_court."' LIMIT 1", $id_sql) ; //echo "SELECT * FROM types_regimes WHERE nom_court='".$nom_court."' LIMIT 1
" ; If (SQL_nbr_lignes ($r) == 0) { If ($nbr_regimes > 0) { $req .= "," ; } $req .= "('".$code."','".$nom_court."','".$nom_long."','".$millesime."')" ; $nbr_regimes++ ; } Return $req ; } /** * Insertion/Mise a jour de la structure * @param string $entete Entete du nom des tables * @return mixed Etat de l'insertion/mise a jour -1:Retour en arriere millesime (erreur) ou [0]=etab, [1]=regime, [2]=profs, [3]=disc_division, [4]=disc_groupe, [5]=classe */ Function ins_maj_structure ($entete) { Global $id_sql, $sql_sconet, $note_par_defaut ; Global $droit_direction, $droit_secretariat, $droit_cpe, $droit_surveillant, $droit_trombinoscope, $droit_prof ; If ($note_par_defaut <= 0) { $note_par_defaut = 20 ; } // Variables de comptage $ok_etab = 0 ; $ok_regime = 0 ; $ok_profs = 0 ; $ok_disc_division = $ok_disc_groupe = 0 ; $ok_classe = 0 ; // Annee scolaire $r0 = SQL_commande ("SELECT ANNEE FROM ".$sql_sconet."_".$entete."_ANNEE_SCOLAIRE LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r0) == 1) { $l0 = SQL_ligne_suivante ($r0) ; } Else { $l0 [0] = Date ("Y") ; } $millesime = $l0 [0] ; $l0 ["millesime"] = millesime (0) ; If ($l0 ["millesime"] < $millesime) { // Changement de millesime $requete = "INSERT INTO gestion (nombre_chiffres,millesime,nombre_groupes,enregistrement_cnil,dico,page_login) VALUES " ; $requete .= "('".$l0 ["nombre_chiffres"]."','".$millesime."','".$l0 ["nombre_groupes"]."','".$l0 ["enregistrement_cnil"]."','".$l0 ["dico"]."','".$l0 ["page_login"]."')" ; $r0 = SQL_commande ($requete, $id_sql) ; // Recopie des utilisateurs direction, secretariat, cpe et trombinoscope sur le nouveau millesime $requete = "SELECT * FROM utilisateurs WHERE (droits='".$droit_direction."' OR droits='".$droit_secretariat."' " ; $requete .= "OR droits='".$droit_cpe."' OR droits='".$droit_surveillant."' OR droits='".$droit_trombinoscope."') AND millesime='".$l0 ["millesime"]."'" ; $r0 = SQL_commande ($requete, $id_sql) ; $n0 = SQL_nbr_lignes ($r0) ; $requete = "INSERT INTO utilisateurs (nom,prenom,login,passe,droits,civilite,theme,numen,photo,millesime) VALUES" ; For ($i = 0 ; $i < $n0 ; $i++) { $l0 = SQL_tableau_associatif ($r0, "") ; If ($i > 0) { $requete .= "," ; } $requete .= "('".$l0 ["nom"]."','".$l0 ["prenom"]."','".$l0 ["login"]."','".$l0 ["passe"]."','".$l0 ["droits"]."','".$l0 ["civilite"]."'," ; $requete .= "'".$l0 ["theme"]."','".$l0 ["numen"]."','".$l0 ["photo"]."','".$millesime."')" ; } $r0 = SQL_commande ($requete, $id_sql) ; } ElseIf ($l0 ["millesime"] > $millesime) { // On revient en arriere ??? Return -1 ; } // Remplissage de la table etablissements $r0 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_UAJ LIMIT 1", $id_sql) ; $ok_maj = 0 ; If (SQL_nbr_lignes ($r0) == 1) { $l0 = SQL_tableau_associatif ($r0, "") ; $resultat = SQL_commande ("SELECT * FROM etablissements WHERE numero='".$l0 ["CODE"]."' ORDER BY millesime DESC LIMIT 1", $id_sql) ; //$r = SQL_commande ("SELECT id_signature FROM signatures ORDER BY id_signature", $id_sql) ; //$s = SQL_ligne_suivante ($r) ; If (SQL_nbr_lignes ($resultat) > 0) { $ligne = SQL_tableau_associatif ($resultat, "") ; If ($ligne ["millesime"] == $millesime) { $ok_maj = 1 ; } Else { $ok_maj = -1 ; } } } Else { UnSet ($ligne) ; } If ($ok_maj <= 0) { $requete = "INSERT INTO etablissements (nom,adresse,cp,ville,telephone,fax,numero,mel,academie,cahier_textes,debut_cahier_textes,fin_cahier_textes," ; $requete .= "heure_debut,heure_fin,heure_pas,cahier_public,visu_devoirs,taille_fichier,taille_espace,rep_stockage," ; $requete .= "moyenne,nombre_chiffres,max,aff_evolution,seuil_bas,seuil_haut," ; $requete .= "aff_nombre_notes,entete_bulletins,imprimer_logo_bulletins,logo_bulletins,entete_releves,imprimer_logo_releves,logo_releves," ; $requete .= "coefficient,examen_blanc,aff_moy_nc,aff_moy_c,aff_nc,aff_c,bulletin_cpe,signature,millesime) VALUES " ; If (IsSet ($l0)) { $requete .= "('".filtrage ($l0 ["DENOM_PRINC"])." ".filtrage ($l0 ["DENOM_COMPL"])."','".filtrage ($l0 ["ADRESSE"])."','".$l0 ["CODE_POSTAL"]."','".filtrage ($l0 ["COMMUNE"])."'," ; $requete .= "'".$l0 ["TELEPHONE"]."','','".$l0 ["CODE"]."','','".filtrage ($l0 ["ACADEMIE_LIBELLE"])."'," ; $ok_etab = 1 ; } Else { $requete .= "('','','','','','','00000000','',''," ; $l0 ["CODE"] = "00000000" ; $ok_etab = 0 ; } If ($ok_maj == 0) { $requete .= "1,'','','08:00:00','17:30:00','30',0,0,'100','5000','documents/'," ; $requete .= "0,1,'".$note_par_defaut."',1,'0.5','0.5'," ; $requete .= "0,0,0,'logo_bulletin',0,0,'logo_releve'," ; $requete .= "1,1,0,0,0,0,0,'".$s [0]."','".$millesime."')" ; } ElseIf (IsSet ($ligne)) { If ($ligne ["max"] <= 0) { $ligne ["max"] = 20 ; } $requete .= "'".$ligne ["cahier_textes"]."','".$ligne ["debut_cahier_textes"]."','".$ligne ["fin_cahier_textes"]."'," ; $requete .= "'".$ligne ["heure_debut"]."','".$ligne ["heure_fin"]."','".$ligne ["heure_pas"]."','".$ligne ["cahier_public"]."'," ; $requete .= "'".$ligne ["visu_devoirs"]."','".$ligne ["taille_fichier"]."','".$ligne ["taille_espace"]."','".$ligne ["rep_stockage"]."'," ; $requete .= "'".$ligne ["moyenne"]."','".$ligne ["nombre_chiffres"]."','".$ligne ["max"]."','".$ligne ["aff_evolution"]."'," ; $requete .= "'".$ligne ["seuil_bas"]."','".$ligne ["seuil_haut"]."'," ; $requete .= "'".$ligne ["aff_nombre_notes"]."','".$ligne ["entete_bulletins"]."','".$ligne ["imprimer_logo_bulletins"]."'," ; $requete .= "'".$ligne ["logo_bulletins"]."','".$ligne ["entete_releves"]."','".$ligne ["imprimer_logo_releves"]."','".$ligne ["logo_releves"]."'," ; $requete .= "'".$ligne ["coefficient"]."','".$ligne ["examen_blanc"]."','".$ligne ["aff_moy_nc"]."','".$ligne ["aff_moy_c"]."','".$ligne ["aff_nc"]."','".$ligne ["aff_c"]."','".$ligne ["bulletin_cpe"]."'," ; $requete .= "'".$ligne ["signature"]."','".$millesime."')" ; } } Else { $requete = "UPDATE etablissements SET nom='".filtrage ($l0 ["DENOM_PRINC"])." ".filtrage ($l0 ["DENOM_COMPL"])."',adresse='".filtrage ($l0 ["ADRESSE"])."',cp='".$l0 ["CODE_POSTAL"]."'," ; $requete .= "ville='".filtrage ($l0 ["COMMUNE"])."',telephone='".$l0 ["TELEPHONE"]."',academie='".filtrage ($l0 ["ACADEMIE_LIBELLE"])."'" ; If ($ligne ["heure_debut"] == "") { $requete .= ",heure_debut='08:00:00',heure_fin='17:30:00',heure_pas='30'" ; } If ($ligne ["taille_fichier"] == 0) { $requete .= ",taille_fichier='100',taille_espace='5000',rep_stockage='documents/'" ; } If ($ligne ["max"] == 0) { $requete .= ",nombre_chiffres='1',max='".$note_par_defaut."'" ; } If ($ligne ["coefficient"] == 0) { $requete .= ",coefficient='1'" ; } If ($ligne ["seuil_bas"] == 0) { $requete .= ",seuil_bas='0.5',seuil_haut='0.5'" ; } If ($ligne ["logo_bulletins"] == "") { $requete .= ",logo_bulletins='logo_bulletin',logo_releves='logo_releve'" ; } If ($ligne ["signature"] == 0) { $requete .= ",signature='".$s [0]."'" ; } $requete .= " WHERE id_etablissement='".$ligne ["id_etablissement"]."' LIMIT 1" ; $ok_etab = 1 ; } $resultat = SQL_commande ($requete, $id_sql) ; $resultat = SQL_commande ("SELECT id_etablissement FROM etablissements WHERE numero='".$l0 ["CODE"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; $ligne = SQL_ligne_suivante ($resultat) ; $numero = $ligne [0] ; // Recherche des codes regimes et insertion $table [13] $resultat = SQL_commande ("SELECT * FROM types_regimes WHERE millesime='".$millesime."' LIMIT 1", $id_sql) ; $nbr = SQL_nbr_lignes ($resultat) ; If (($nbr == 0) Or ($nbr < 28)) { $nbr_regimes = 0 ; $requete = "INSERT INTO types_regimes (code,nom_court,nom_long,millesime) VALUES " ; $requete .= insertion_regimes ("0","EXTERN","EXTERNE LIBRE",$millesime) ; $requete .= insertion_regimes ("0","EXT.","EXTERNE",$millesime) ; $requete .= insertion_regimes ("1","EX.SUR","EXTERNE SURVEILLE",$millesime) ; $requete .= insertion_regimes ("2","1/2 P.","1/2 PENSION",$millesime) ; $requete .= insertion_regimes ("2","DP DAN","DEMI-PENSIONNAIRE DANS L\'ETABLISSEMENT",$millesime) ; $requete .= insertion_regimes ("3","INTERN","INTERNE DANS L\'ETABLISSEMENT",$millesime) ; $requete .= insertion_regimes ("3","INT.","INTERNE",$millesime) ; $requete .= insertion_regimes ("4","INT.EX","INTERNE EXTERNE",$millesime) ; $requete .= insertion_regimes ("5","IN.HEB","INTERNE HEBERGE",$millesime) ; $requete .= insertion_regimes ("6","DP HOR","DEMI-PENSIONNAIRE HORS L\'ETABLISSEMENT",$millesime) ; $requete .= insertion_regimes ("7","1/2INT","1/2 INTERNE",$millesime) ; $requete .= insertion_regimes ("8","INT-WE","INTERNE WEEK-END",$millesime) ; $requete .= insertion_regimes ("21","DP DAN 1J","DEMI-PENSIONNAIRE DANS L\"ETABLISSEM 1J",$millesime) ; $requete .= insertion_regimes ("22","DP DAN 2J","DEMI-PENSIONNAIRE DANS L\"ETABLISSEM 2J",$millesime) ; $requete .= insertion_regimes ("23","DP DAN 3J","DEMI-PENSIONNAIRE DANS L\"ETABLISSEM 3J",$millesime) ; $requete .= insertion_regimes ("24","DP DAN 4J","DEMI-PENSIONNAIRE DANS L\"ETABLISSEM 4J",$millesime) ; $requete .= insertion_regimes ("25","DP DAN 5J","DEMI-PENSIONNAIRE DANS L\"ETABLISSEM 5J",$millesime) ; $requete .= insertion_regimes ("26","DP DAN 6J","DEMI-PENSIONNAIRE DANS L\"ETABLISSEM 6J",$millesime) ; $requete .= insertion_regimes ("29","AU TICKET","1/2 PENS. AU TICKET",$millesime) ; $requete .= insertion_regimes ("29","AU TIC","DEMI-PENSIONNAIRE AU TICKET",$millesime) ; $requete .= insertion_regimes ("31","INT 1J","INTERNE 1 JOUR",$millesime) ; $requete .= insertion_regimes ("32","INT 2J","INTERNE 2 JOURS",$millesime) ; $requete .= insertion_regimes ("33","INT 3J","INTERNE 3 JOURS",$millesime) ; $requete .= insertion_regimes ("34","INT 4J","INTERNE 4 JOURS",$millesime) ; $requete .= insertion_regimes ("35","INT 5J","INTERNE 5 JOURS",$millesime) ; $requete .= insertion_regimes ("36","INT 6J","INTERNE 6 JOURS",$millesime) ; $requete .= insertion_regimes ("38","1/2 IN","DEMI INTERNE",$millesime) ; $requete .= insertion_regimes ("39","INT WE","INTERNE WEEK END",$millesime) ; If ($nbr_regimes > 0) { $ok = SQL_commande ($requete, $id_sql) ; } $ok_regime = 1 ; } // Recherche des classes et profs principaux et insertion $resultats = SQL_commande ("SELECT CODE_DIVISION,LIBELLE_LONG FROM ".$sql_sconet."_".$entete."_DIVISIONS ORDER BY CODE_DIVISION,LIBELLE_LONG", $id_sql) ; $nbr = SQL_nbr_lignes ($resultats) ; If ($nbr > 0) { For ($i = 0 ; $i < $nbr ; $i++) { $ligne = SQL_ligne_suivante ($resultats) ; $r = SQL_commande ("SELECT * FROM classes WHERE nom_bref='".filtrage ($ligne [0])."' AND millesime='".$millesime."'", $id_sql) ; If (SQL_nbr_lignes ($r) == 0) { // Nouvelle classe $requete = "INSERT INTO classes (nom,nom_bref,numen_prof_princ,etablissement,signature,periode,num_periode,millesime) VALUES " ; $requete .= "('".filtrage ($ligne [1])."','".filtrage ($ligne [0])."','" ; $r = SQL_commande ("SELECT i.TYPE,i.ID FROM ".$sql_sconet."_".$entete."_PROFS_PRINC p, ".$sql_sconet."_".$entete."_INDIVIDUS i WHERE p.CODE_STRUCTURE='".$ligne [0]."' AND p.ID_INDIVIDU=i.ID LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r) == 1) { $pp = SQL_ligne_suivante ($r) ; $requete .= $pp [0].$pp [1] ; } $r = SQL_commande ("SELECT id_type_periode FROM types_periode WHERE millesime='".$millesime."' ORDER BY nombre DESC LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r) == 1) { $type_periode = SQL_ligne_suivante ($r) ; } Else { $r = SQL_commande ("INSERT INTO types_periode (nom_periode,nombre,millesime) VALUES ('trimestre','3','".$millesime."'),('semestre','2','".$millesime."')", $id_sql) ; $r = SQL_commande ("SELECT id_type_periode FROM types_periode WHERE millesime='".$millesime."' ORDER BY nombre DESC LIMIT 1", $id_sql) ; $type_periode = SQL_ligne_suivante ($r) ; } $requete .= "','".$numero."','1','".$type_periode [0]."','1','".$millesime."')" ; } Else { // MAJ $rr = SQL_tableau_associatif ($r, "") ; $requete = "UPDATE classes SET nom='".filtrage ($ligne [1])."',nom_bref='".filtrage ($ligne [0])."',numen_prof_princ='" ; $r = SQL_commande ("SELECT i.TYPE,i.ID FROM ".$sql_sconet."_".$entete."_PROFS_PRINC p,".$sql_sconet."_".$entete."_INDIVIDUS i WHERE p.CODE_STRUCTURE='".$ligne [0]."' AND p.ID_INDIVIDU=i.ID LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r) == 1) { $pp = SQL_ligne_suivante ($r) ; $requete .= $pp [0].$pp [1] ; } $requete .= "',etablissement='".$numero."',signature='".$rr ["signature"]."',periode='".$rr ["periode"]."'," ; $requete .= "num_periode='".$rr ["num_periode"]."' WHERE id_classe='".$rr ["id_classe"]."' LIMIT 1" ; } $r = SQL_commande ($requete, $id_sql) ; } $ok_classe = 1 ; } // Recherche des profs et insertion $r1 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_INDIVIDUS WHERE (TYPE='epp' OR TYPE='local') AND (FONCTION='ENS' OR FONCTION='FIJ') ORDER BY NOM_USAGE,PRENOM,DATE_NAISSANCE", $id_sql) ; For ($i = 0 ; $i < SQL_nbr_lignes ($r1) ; $i++) { $l1 = SQL_tableau_associatif ($r1, "") ; Switch ($l1 ["CIVILITE"]) { Case 1 : $civ = 2 ; Break ; Case 2 : $civ = 0 ; Break ; Case 3 : $civ = 1 ; Break ; Default : $civ = 0 ; Break ; } $r2 = SQL_commande ("SELECT * FROM utilisateurs WHERE numen='".$l1 ["TYPE"].$l1 ["ID"]."' AND droits='".$droit_prof."' AND millesime='".$millesime."'", $id_sql) ; If (SQL_nbr_lignes ($r2) == 0) { // Nouveau prof $requete = "INSERT INTO utilisateurs (nom,prenom,droits,civilite,theme,numen,millesime) VALUES " ; $requete .= "('".filtrage ($l1 ["NOM_USAGE"])."','".filtrage ($l1 ["PRENOM"])."','".$droit_prof."','".$civ."','1','".$l1 ["TYPE"].$l1 ["ID"]."','".$millesime."')" ; $ok_profs++ ; } Else { // MAJ avec nouveau prof $requete = "UPDATE utilisateurs SET nom='".filtrage ($l1 ["NOM_USAGE"])."',prenom='".filtrage ($l1 ["PRENOM"])."',droits='".$droit_prof."'," ; $requete .= "civilite='".$civ."',millesime='".$millesime."' WHERE numen='".$l1 ["TYPE"].$l1 ["ID"]."'" ; $ok_profs++ ; } $r2 = SQL_commande ($requete, $id_sql) ; // Recupere le nouvel id du professeur $r3 = SQL_commande ("SELECT id_utilisateur FROM utilisateurs WHERE numen='".$l1 ["TYPE"].$l1 ["ID"]."' AND droits='".$droit_prof."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; $l3 = SQL_ligne_suivante ($r3) ; // Recherche disciplines DIVISION $r4 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_SERVICES_DIVISIONS WHERE ENSEIGNANT_ID='".$l1 ["ID"]."' ORDER BY CODE_DIVISION", $id_sql) ; //echo SQL_nbr_lignes ($r4)."+" ; If (SQL_nbr_lignes ($r4) > 0) { For ($j = 0 ; $j < SQL_nbr_lignes ($r4) ; $j++) { $ok_disc_division++ ; $l4 = SQL_tableau_associatif ($r4, "") ; $r24 = SQL_commande ("UPDATE ".$sql_sconet."_".$entete."_SERVICES_DIVISIONS SET OK=1 WHERE ID_SERVICES_DIVISIONS='".$l4 ["ID_SERVICES_DIVISIONS"]."' LIMIT 1", $id_sql) ; // Recupere le nouveau numero de la discipline $r5 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_MATIERES WHERE CODE='".filtrage ($l4 ["CODE_MATIERE"])."' LIMIT 1", $id_sql) ; $l5 = SQL_tableau_associatif ($r5, "") ; // La discipline est-elle deja enregistree ? $r6 = SQL_commande ("SELECT id_discipline FROM disciplines WHERE code='".filtrage ($l4 ["CODE_MATIERE"])."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r6) == 0) { // NON ! donc on enregistre... $requete = "INSERT INTO disciplines (nom_long,nom_court,nom_bref,code,millesime) VALUES " ; $requete .= "('".filtrage ($l5 ["LIBELLE_LONG"])."','".filtrage ($l5 ["LIBELLE_COURT"])."','".filtrage ($l5 ["CODE_GESTION"])."','".filtrage ($l4 ["CODE_MATIERE"])."','".$millesime."')" ; $r7 = SQL_commande ($requete, $id_sql) ; $r6 = SQL_commande ("SELECT id_discipline FROM disciplines WHERE code='".filtrage ($l4 ["CODE_MATIERE"])."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; } Else { // MAJ $l6 = SQL_tableau_associatif ($r6, "") ; $requete = "UPDATE disciplines SET nom_long='".filtrage ($l5 ["LIBELLE_LONG"])."',nom_court='".filtrage ($l5 ["LIBELLE_COURT"])."'," ; $requete .= "nom_bref='".filtrage ($l5 ["CODE_GESTION"])."',code='".filtrage ($l4 ["CODE_MATIERE"])."' WHERE id_discipline='".$l6 ["id_discipline"]."' LIMIT 1" ; $r7 = SQL_commande ($requete, $id_sql) ; $r6 = SQL_commande ("SELECT id_discipline FROM disciplines WHERE code='".filtrage ($l4 ["CODE_MATIERE"])."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; } $l5 = SQL_ligne_suivante ($r6) ; // Definition service professeur $r7 = SQL_commande ("SELECT id_classe FROM classes WHERE nom_bref='".filtrage ($l4 ["CODE_DIVISION"])."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; $l7 = SQL_ligne_suivante ($r7) ; // Recherche double service classe (BIS REPETITAS) // Recherche id services classe $requete = "SELECT id_service_classe FROM services_classe WHERE discipline='".filtrage ($l5 [0])."' AND code_disc='".filtrage ($l4 ["CODE_MATIERE"])."' " ; $requete .= "AND classe='".filtrage ($l7 [0])."' AND code_classe='".filtrage ($l4 ["CODE_DIVISION"])."' AND optionnelle='0' AND groupe='0' AND millesime='".$millesime."' LIMIT 1" ; $r11 = SQL_commande ($requete, $id_sql) ; If (SQL_nbr_lignes ($r11) == 0) { // Pas de service classe -> Insertion $requete = "INSERT INTO services_classe (discipline,code_disc,classe,code_classe,optionnelle,groupe,millesime) VALUES " ; $requete .= "('".filtrage ($l5 [0])."','".filtrage ($l4 ["CODE_MATIERE"])."','".filtrage ($l7 [0])."','".filtrage ($l4 ["CODE_DIVISION"])."','0','0','".$millesime."')" ; $r12 = SQL_commande ($requete, $id_sql) ; // Recherche id services classe $requete = "SELECT id_service_classe FROM services_classe WHERE code_disc='".filtrage ($l4 ["CODE_MATIERE"])."' AND discipline='".filtrage ($l5 [0])."' " ; $requete .= "AND classe='".filtrage ($l7 [0])."' AND code_classe='".filtrage ($l4 ["CODE_DIVISION"])."' AND optionnelle='0' AND groupe='0' AND millesime='".$millesime."'" ; $r11 = SQL_commande ($requete, $id_sql) ; } // Id services classe For ($dr = 0 ; $dr < SQL_nbr_lignes ($r11) ; $dr++) { $l11 = SQL_ligne_suivante ($r11) ; } // Recherche double service prof $requete = "SELECT id_service_prof FROM services_prof WHERE professeur='".$l3 [0]."' AND numen_prof='".$l1 ["TYPE"].$l1 ["ID"]."' " ; $requete .= "AND discipline='".$l5 [0]."' AND code_disc='".filtrage ($l4 ["CODE_MATIERE"])."' AND classe='".filtrage ($l7 [0])."'" ; $requete .= "AND code_classe='".filtrage ($l4 ["CODE_DIVISION"])."' AND service_classe='".filtrage ($l11 [0])."' AND groupe_classe='0' AND millesime='".$millesime."' LIMIT 1" ; $r9 = SQL_commande ($requete, $id_sql) ; If (SQL_nbr_lignes ($r9) == 0) { // Pas de doubles -> on enregistre.. $requete = "INSERT INTO services_prof (professeur,numen_prof,discipline,code_disc,classe,code_classe,service_classe,groupe_classe,coefficient,millesime) VALUES " ; $requete .= "('".$l3 [0]."','".$l1 ["TYPE"].$l1 ["ID"]."','".$l5 [0]."','".filtrage ($l4 ["CODE_MATIERE"])."','".filtrage ($l7 [0])."','".filtrage ($l4 ["CODE_DIVISION"])."'," ; $requete .= "'".filtrage ($l11 [0])."','0','1','".$millesime."')" ; $r10 = SQL_commande ($requete, $id_sql) ; } } } // Recherche disciplines groupe et insertion $r4 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_SERVICES_GROUPES WHERE ENSEIGNANT_ID='".$l1 ["ID"]."' ORDER BY CODE_GROUPE", $id_sql) ; If (SQL_nbr_lignes ($r4) > 0) { For ($j = 0 ; $j < SQL_nbr_lignes ($r4) ; $j++) { $ok_disc_groupe++ ; $l4 = SQL_tableau_associatif ($r4, "") ; // Recupere le nouveau numero de la discipline $r5 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_MATIERES WHERE CODE='".filtrage ($l4 ["CODE_MATIERE"])."' LIMIT 1", $id_sql) ; $l5 = SQL_tableau_associatif ($r5, "") ; // La discipline est-elle deja enregistree ? $r6 = SQL_commande ("SELECT id_discipline FROM disciplines WHERE code='".filtrage ($l4 ["CODE_MATIERE"])."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r6) == 0) { // NON ! donc on enregistre... $requete = "INSERT INTO disciplines (nom_long,nom_court,nom_bref,code,millesime) VALUES " ; $requete .= "('".filtrage ($l5 ["LIBELLE_LONG"])."','".filtrage ($l5 ["LIBELLE_COURT"])."','".filtrage ($l5 ["CODE_GESTION"])."','".filtrage ($l4 ["CODE_MATIERE"])."','".$millesime."')" ; $r7 = SQL_commande ($requete, $id_sql) ; $r6 = SQL_commande ("SELECT id_discipline FROM disciplines WHERE code='".filtrage ($l4 ["CODE_MATIERE"])."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; } $l5 = SQL_ligne_suivante ($r6) ; // Recherche id_classe $r7 = SQL_commande ("SELECT id_classe,nom_bref FROM classes c,".$sql_sconet."_".$entete."_DIVISIONS_APPARTENANCE_GROUPES a WHERE a.CODE_GROUPE='".filtrage ($l4 ["CODE_GROUPE"])."' AND a.CODE=c.nom_bref AND c.millesime='".$millesime."' LIMIT 1", $id_sql) ; $l7 = SQL_ligne_suivante ($r7) ; // Recherche id services classe $requete = "SELECT id_service_classe FROM services_classe WHERE discipline='".filtrage ($l5 [0])."' AND code_disc='".filtrage ($l4 ["CODE_MATIERE"])."' "; $requete .= "AND classe='".$l7 [0]."' AND code_classe='".filtrage ($l7 [1])."' AND optionnelle='0' AND groupe='1' AND millesime='".$millesime."' LIMIT 1" ; $r12 = SQL_commande ($requete, $id_sql) ; If (SQL_nbr_lignes ($r12) == 0) { // Enregistre le service classe $requete = "INSERT INTO services_classe (discipline,code_disc,classe,code_classe,optionnelle,groupe,millesime) VALUES " ; $requete .= "('".filtrage ($l5 [0])."','".filtrage ($l4 ["CODE_MATIERE"])."','".$l7 [0]."','".filtrage ($l7 [1])."','0','1','".$millesime."')" ; $r12 = SQL_commande ($requete, $id_sql) ; // Recherche nouvel id services classe $requete = "SELECT id_service_classe FROM services_classe WHERE code_disc='".filtrage ($l4 ["CODE_MATIERE"])."' AND discipline='".filtrage ($l5 [0])."' " ; $requete .= "AND classe='".filtrage ($l7 [0])."' AND code_classe='".filtrage ($l7 [1])."' AND optionnelle='0' AND groupe='1' AND millesime='".$millesime."'" ; $r12 = SQL_commande ($requete, $id_sql) ; } // Lecture des ID For ($dr = 0 ; $dr < SQL_nbr_lignes ($r12) ; $dr++) { $l12 = SQL_ligne_suivante ($r12) ; } // Recherche double groupe classe $requete = "SELECT id_groupe_classe FROM groupes_classe WHERE code_groupe='".filtrage ($l4 ["CODE_GROUPE"])."' AND classe='".$l7 [0]."' " ; $requete .= "AND code_classe='".filtrage ($l7 [1])."' AND discipline='".$l5 [0]."' AND code_disc='".filtrage ($l4 ["CODE_MATIERE"])."' " ; $requete .= "AND service_classe='".$l12 [0]."' AND millesime='".$millesime."' LIMIT 1" ; $r11 = SQL_commande ($requete, $id_sql) ; // Definit le groupe If (SQL_nbr_lignes ($r11) == 0) { // Insertion du nouveau groupe classe $requete = "INSERT INTO groupes_classe (code_groupe,classe,code_classe,discipline,code_disc,service_classe,millesime) VALUES " ; $requete .= "('".filtrage ($l4 ["CODE_GROUPE"])."','".$l7 [0]."','".filtrage ($l7 [1])."','".$l5 [0]."'," ; $requete .= "'".filtrage ($l4 ["CODE_MATIERE"])."','".$l12 [0]."','".$millesime."')" ; $r11 = SQL_commande ($requete, $id_sql) ; // Recherche id groupe classe $requete = "SELECT MAX(id_groupe_classe) FROM groupes_classe WHERE code_groupe='".filtrage ($l4 ["CODE_GROUPE"])."' AND classe='".$l7 [0]."' "; $requete .= "AND code_classe='".filtrage ($l7 [1])."' AND discipline='".$l5 [0]."' AND code_disc='".filtrage ($l4 ["CODE_MATIERE"])."' " ; $requete .= "AND service_classe='".$l12 [0]."' AND millesime='".$millesime."'" ; $r11 = SQL_commande ($requete, $id_sql) ; } // Lecture des ID For ($dr = 0 ; $dr < SQL_nbr_lignes ($r11) ; $dr++) { $l11 = SQL_ligne_suivante ($r11) ; } // Recherche double service prof professeur='".$l3 [0]."' AND discipline='".$l5 [0]."' AND classe='".$l7 [0]."' $requete = "SELECT id_service_prof FROM services_prof WHERE professeur='".$l3 [0]."' AND numen_prof='".$l1 ["TYPE"].$l1 ["ID"]."' " ; $requete .= "AND discipline='".$l5 [0]."' AND code_disc='".filtrage ($l4 ["CODE_MATIERE"])."' AND classe='".$l7 [0]."' " ; $requete .= "AND code_classe='".filtrage ($l7 [1])."' AND service_classe='".$l12 [0]."' AND groupe_classe='".$l11 [0]."' AND millesime='".$millesime."' LIMIT 1" ; $r9 = SQL_commande ($requete, $id_sql) ; If (SQL_nbr_lignes ($r9) == 0) { // Pas de double -> on enregistre... $requete = "INSERT INTO services_prof (professeur,numen_prof,discipline,code_disc,classe,code_classe,service_classe,groupe_classe,coefficient,millesime) VALUES " ; $requete .= "('".$l3 [0]."','".$l1 ["TYPE"].$l1 ["ID"]."','".$l5 [0]."','".filtrage ($l4 ["CODE_MATIERE"])."','".$l7 [0]."','".filtrage ($l7 [1])."'," ; $requete .= "'".$l12 [0]."','".$l11 [0]."','1','".$millesime."')" ; $r10 = SQL_commande ($requete, $id_sql) ; } } } } // Insertion des matieres si aucun service If ($ok_disc_division == 0) { $r5 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_MATIERES ORDER BY LIBELLE_LONG,LIBELLE_COURT", $id_sql) ; For ($i = 0 ; $i < SQL_nbr_lignes ($r5) ; $i++) { $l5 = SQL_tableau_associatif ($r5, "") ; // La discipline est-elle deja enregistree ? $r6 = SQL_commande ("SELECT id_discipline FROM disciplines WHERE code='".filtrage ($l5 ["CODE"])."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r6) == 0) { // NON ! donc on enregistre... $requete = "INSERT INTO disciplines (nom_long,nom_court,nom_bref,code,millesime) VALUES " ; $requete .= "('".filtrage ($l5 ["LIBELLE_LONG"])."','".filtrage ($l5 ["LIBELLE_COURT"])."','".filtrage ($l5 ["CODE_GESTION"])."','".filtrage ($l5 ["CODE"])."','".$millesime."')" ; $r7 = SQL_commande ($requete, $id_sql) ; //$r6 = SQL_commande ("SELECT id_discipline FROM disciplines WHERE code='".filtrage ($l5 ["CODE"])."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; } //$l5 = SQL_ligne_suivante ($r6) ; } } // Insertion direction $r1 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_INDIVIDUS WHERE (TYPE='epp' OR TYPE='local') AND FONCTION LIKE 'DIR%' ORDER BY NOM_USAGE,PRENOM,DATE_NAISSANCE", $id_sql) ; For ($i = 0 ; $i < SQL_nbr_lignes ($r1) ; $i++) { $l1 = SQL_tableau_associatif ($r1, "") ; Switch ($l1 ["CIVILITE"]) { Case 1 : $civ = 2 ; Break ; Case 2 : $civ = 0 ; Break ; Case 3 : $civ = 1 ; Break ; Default : $civ = 0 ; Break ; } $r2 = SQL_commande ("SELECT * FROM utilisateurs WHERE numen='".$l1 ["TYPE"].$l1 ["ID"]."' AND droits='".$droit_direction."' AND millesime='".$millesime."'", $id_sql) ; If (SQL_nbr_lignes ($r2) == 0) { // Nouveau prof $requete = "INSERT INTO utilisateurs (nom,prenom,droits,civilite,theme,numen,millesime) VALUES " ; $requete .= "('".filtrage ($l1 ["NOM_USAGE"])."','".filtrage ($l1 ["PRENOM"])."','".$droit_direction."','".$civ."','1','".$l1 ["TYPE"].$l1 ["ID"]."','".$millesime."')" ; $ok_profs++ ; } Else { // MAJ $r3 = SQL_tableau_associatif ($r2, "") ; $requete = "UPDATE utilisateurs SET nom='".filtrage ($l1 ["NOM_USAGE"])."',prenom='".filtrage ($l1 ["PRENOM"])."',civilite='".$civ."',millesime='".$millesime."'" ; $requete .= " WHERE id_utilisateur='".$r3 ["id_utilisateur"]."' LIMIT 1" ; } $r2 = SQL_commande ($requete, $id_sql) ; } // Insertion CPE $r1 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_INDIVIDUS WHERE (TYPE='epp' OR TYPE='local') AND FONCTION LIKE 'EDU%' ORDER BY NOM_USAGE,PRENOM,DATE_NAISSANCE", $id_sql) ; For ($i = 0 ; $i < SQL_nbr_lignes ($r1) ; $i++) { $l1 = SQL_tableau_associatif ($r1, "") ; Switch ($l1 ["CIVILITE"]) { Case 1 : $civ = 2 ; Break ; Case 2 : $civ = 0 ; Break ; Case 3 : $civ = 1 ; Break ; Default : $civ = 0 ; Break ; } $r2 = SQL_commande ("SELECT * FROM utilisateurs WHERE numen='".$l1 ["TYPE"].$l1 ["ID"]."' AND droits='".$droit_cpe."' AND millesime='".$millesime."'", $id_sql) ; If (SQL_nbr_lignes ($r2) == 0) { // Nouveau prof $requete = "INSERT INTO utilisateurs (nom,prenom,droits,civilite,theme,numen,millesime) VALUES " ; $requete .= "('".filtrage ($l1 ["NOM_USAGE"])."','".filtrage ($l1 ["PRENOM"])."','".$droit_cpe."','".$civ."','1','".$l1 ["TYPE"].$l1 ["ID"]."','".$millesime."')" ; $ok_profs++ ; } Else { // MAJ $r3 = SQL_tableau_associatif ($r2, "") ; $requete = "UPDATE utilisateurs SET nom='".filtrage ($l1 ["NOM_USAGE"])."',prenom='".filtrage ($l1 ["PRENOM"])."',civilite='".$civ."',millesime='".$millesime."'" ; $requete .= " WHERE id_utilisateur='".$r3 ["id_utilisateur"]."' LIMIT 1" ; } $r2 = SQL_commande ($requete, $id_sql) ; } // Etape finale : Mise a jour des profs principaux $pprof = SQL_commande ("SELECT u.id_utilisateur,u.numen,c.id_classe FROM utilisateurs u,classes c WHERE c.numen_prof_princ=u.numen AND c.millesime='".$millesime."'", $id_sql) ; For ($i = 0 ; $i < SQL_nbr_lignes ($pprof) ; $i++) { $pp = SQL_ligne_suivante ($pprof) ; $ok = SQL_commande ("UPDATE classes SET id_prof_princ='".$pp [0]."',numen_prof_princ='".$pp [1]."' WHERE id_classe='".$pp [2]."' LIMIT 1", $id_sql) ; } // Etat de sortie $struc [0] = $ok_etab ; $struc [1] = $ok_regime ; $struc [2] = $ok_profs ; $struc [3] = $ok_disc_division ; $struc [4] = $ok_disc_groupe ; $struc [5] = $ok_classe ; Return $struc ; } /** * Insertion/Mise a jour des eleves * @return mixed Etat de l'insertion/mise a jour * Codes de sortie : -4 : Pas d'etablissement scolaire * -3 : Aucune indication de millesime * -2 : Fichier qui ne correspond pas a l'annee courant * -1 : Retour en arriere millesime (erreur) * ou * Table de sortie : * [0][0][0]=Nombre d'eleves a mettre a jour (notes) * [1][x][0]=id_eleve nouveau ou changement classe (x allant de 1 a [0][0][0]) * * [0][0][1]=Nombre d'eleves ou il y a plusieurs choix possibles * [2][x][0]=Nombre d'eleve * [2][x][y]=id_eleve en double (x allant de 1 a [0][0][1]) * * [0][0][2]=Nombre d'eleves qui doivent changer de classe * [3][x][0]=id eleve * * [0][0][3]=Eleves a verifier (nom, prenom, classe) * [4][x][0]=id eleve */ Function ins_maj_eleves ($entete) { Global $id_sql, $sql_sconet, $note_par_defaut, $desactivation_eleve ; $millesime = millesime (0) ; $etat [0][0][0] = $etat [0][0][1] = $etat [0][0][2] = $etat [0][0][3] = 0 ; // Verification de l'annee courante et de l'etablissement $r0 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_PARAMETRES LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r0) == 1) { $l0 = SQL_tableau_associatif ($r0, "") ; If ($l0 ["ANNEE_SCOLAIRE"] == $millesime) { // Etablissement a traiter $r1 = SQL_commande ("SELECT * FROM etablissements WHERE numero='".$l0 ["UAJ"]."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r1) == 1) { $l1 = SQL_tableau_associatif ($r1, "") ; $r2 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_ELEVES WHERE DATE_SORTIE=''", $id_sql) ; $n2 = SQL_nbr_lignes ($r2) ; For ($i = 0 ; $i < $n2 ; $i++) { $l2 = SQL_tableau_associatif ($r2, "") ; // Recherche code classe $r4 = SQL_commande ("SELECT s.CODE_STRUCTURE,c.id_classe,c.nom_bref FROM ".$sql_sconet."_".$entete."_STRUCTURES s,classes c WHERE s.ELEVE_ID='".$l2 ["ELEVE_ID"]."' AND s.ELENOET='".$l2 ["ELENOET"]."' AND s.CODE_STRUCTURE=c.nom_bref AND c.millesime='".$millesime."'", $id_sql) ; $n4 = SQL_nbr_lignes ($r4) ; If ($n4 == 1) { $l4 = SQL_ligne_suivante ($r4) ; // L'eleve existe-t-il dans la base ? $requete = "SELECT id_eleve,classe,nom,prenoms FROM eleves WHERE (exterieur='0' OR exterieur='-".$desactivation_eleve."') AND nom='".filtrage ($l2 ["NOM"])."' AND date_naissance='".encode_date ($l2 ["DATE_NAISS"])."' " ; $requete .= "AND sexe='" ; If ($l2 ["CODE_SEXE"] == 1) { $requete .= "M" ; } Else { $requete .= "F" ; } $requete .= "' AND repere3='".$l2 ["ELEVE_ID"]."' AND millesime='".$millesime."'" ; $r3 = SQL_commande ($requete, $id_sql) ; $n3 = SQL_nbr_lignes ($r3) ; $ok_maj = 0 ; If ($n3 > 0) { // Maj If (StrPos ($l2 ["PRENOM"], " ")) { $prenom = SubStr ($l2 ["PRENOM"], 0, StrPos ($l2 ["PRENOM"], " ")) ; } Else { $prenom = $l2 ["PRENOM"] ; } If (StrPos ($prenom, "-")) { $prenom = SubStr ($prenom, 0, StrPos ($prenom, "-")) ; } $prenom = StrToUpper (filtrage_accents (filtrage ($prenom))) ; For ($j = 0 ; $j < $n3 ; $j++) { $l3 = SQL_ligne_suivante ($r3) ; $elv [$j][0] = $l3 [0] ; $elv [$j][1] = $l3 [1] ; $elv [$j][2] = $l3 [2] ; If (StrPos ($l3 [3], " ")) { $elv [$j][3] = SubStr ($l3 [3], 0, StrPos ($l3 [3], " ")) ; } Else { $elv [$j][3] = $l3 [3] ; } If (StrPos ($elv [$j][3], "-")) { $elv [$j][3] = SubStr ($elv [$j][3], 0, StrPos ($elv [$j][3], "-")) ; } $elv [$j][3] = StrToUpper (filtrage_accents (filtrage (filtrage_utf8 ($elv [$j][3])))) ; // Meme classe et meme prenom ? If (($l4 [1] == $elv [$j][1]) And ($prenom == $elv [$j][3])) { $elv [$j][4] = 1 ; $ok_maj++ ; } Else { $elv [$j][4] = 0 ; } } } If ($ok_maj == 1) { $eleve = 0 ; For ($j = 0 ; $j < $n3 ; $j++) { If ($elv [$j][4] == 1) { $eleve = $elv [$j][0] ; } } If ($eleve > 0) { $requete = "UPDATE eleves SET nom='".filtrage ($l2 ["NOM"])."',prenoms='".filtrage ($l2 ["PRENOM"])."',date_naissance='".encode_date ($l2 ["DATE_NAISS"])."'," ; $requete .= "repere1='".$l2 ["ELENOET"]."',repere2='".$l2 ["ID_NATIONAL"]."',repere3='".$l2 ["ELEVE_ID"]."',classe='".$l4 [1]."',code_classe='".$l4 [2]."'" ; If ($l2 ["CODE_SEXE"] == 1) { $requete .= ",sexe='M'" ; } Else { $requete .= ",sexe='F'" ; } If ($l2 ["DOUBLEMENT"] == 0) { $requete .= ",redoublant='N'" ; } Else { $requete .= ",redoublant='O'" ; } $requete .= ",regime='".$l2 ["CODE_REGIME"]."',maj='1',millesime='".$millesime."'" ; $requete .= " WHERE id_eleve='".$eleve."' LIMIT 1" ; $r5 = SQL_commande ($requete, $id_sql) ; $repere1 = $l2 ["ELENOET"] ; $repere2 = $l2 ["ID_NATIONAL"] ; $repere3 = $l2 ["ELEVE_ID"] ; } } ElseIf (($ok_maj > 1) Or (($ok_maj == 0) And ($n3 > 0))) { $eleve = 0 ; If ($n3 > 1) { //echo "Plusieurs choix possibles (".$l4 [1]."|".$l3 [1].")->".$requete."
" ; //echo $l2 ["ID_ELEVES"]."
" ; $etat [0][0][1]++ ; $etat [2][$etat [0][0][1]][0] = $n3 ; For ($j = 1 ; $j <= $n3 ; $j++) { $etat [2][$etat [0][0][1]][$j] = $elv [$j-1][0] ; //echo $l4 [1]."==".$elv [$j-1][1]."->".$prenom."==".$elv [$j-1][3]."
" ; } } Else { If ($l4 [1] == $elv [0][1]) { // Eleve seul, meme classe, mais pas meme prenom } Else { // Eleve seul, classe differente, prenom different //echo "Changement classe (".$l4 [1]."|".$l3 [1].")->".$requete."
" ; //echo $l2 ["ID_ELEVES"]."
" ; $etat [0][0][3]++ ; $etat [4][$etat [0][0][3]][0] = $elv [0][0] ; //echo $l4 [1]."==".$elv [0][1]."->".$prenom."==".$elv [0][3]."
" ; } } } Else { // Insertion $requete = "INSERT INTO eleves (nom,prenoms,date_naissance,repere1,repere2,repere3,classe,code_classe,sexe,redoublant,regime,maj,millesime) VALUES " ; $requete .= "('".filtrage ($l2 ["NOM"])."','".filtrage ($l2 ["PRENOM"])."','".encode_date ($l2 ["DATE_NAISS"])."','".$l2 ["ELENOET"]."'," ; $requete .= "'".$l2 ["ID_NATIONAL"]."','".$l2 ["ELEVE_ID"]."','".$l4 [1]."','".$l4 [2]."'" ; If ($l2 ["CODE_SEXE"] == 1) { $requete .= ",'M'" ; } Else { $requete .= ",'F'" ; } If ($l2 ["DOUBLEMENT"] == 0) { $requete .= ",'N'" ; } Else { $requete .= ",'O'" ; } $requete .= ",'".$l2 ["CODE_REGIME"]."','1','".$millesime."')" ; $r5 = SQL_commande ($requete, $id_sql) ; // Recherche eleve $requete = "SELECT id_eleve,repere1,repere2 FROM eleves WHERE nom='".filtrage ($l2 ["NOM"])."' AND prenoms='".filtrage ($l2 ["PRENOM"])."' AND date_naissance='".encode_date ($l2 ["DATE_NAISS"])."' " ; $requete .= "AND repere1='".$l2 ["ELENOET"]."' AND repere2='".$l2 ["ID_NATIONAL"]."' AND repere3='".$l2 ["ELEVE_ID"]."' AND classe='".$l4 [1]."' AND code_classe='".$l4 [2]."' AND sexe='" ; If ($l2 ["CODE_SEXE"] == 1) { $requete .= "M" ; } Else { $requete .= "F" ; } $requete .= "' AND redoublant='" ; If ($l2 ["DOUBLEMENT"] == 0) { $requete .= "N" ; } Else { $requete .= "O" ; } $requete .= "' AND regime='".$l2 ["CODE_REGIME"]."' AND maj='1' AND millesime='".$millesime."' LIMIT 1" ; //echo $requete."
" ; $r6 = SQL_commande ($requete, $id_sql) ; If (SQL_nbr_lignes ($r6) == 1) { $l6 = SQL_ligne_suivante ($r6) ; $etat [0][0][0]++ ; $etat [1][$etat [0][0][0]][0] = $l6 [0] ; $eleve = $l6 [0] ; $repere1 = $l6 [1] ; $repere2 = $l6 [2] ; } } // Insertion/maj des options If ($eleve > 0) { $r7 = SQL_commande ("SELECT s.* FROM ".$sql_sconet."_".$entete."_ELEVES e,".$sql_sconet."_".$entete."_OPTIONS o,services_classe s WHERE e.ELEVE_ID='".$l2 ["ELEVE_ID"]."' AND o.ELEVE_ID=e.ELEVE_ID AND e.DATE_SORTIE='' AND s.classe='".$l4 [1]."' AND s.code_disc=o.CODE_MATIERE AND s.millesime='".$millesime."'", $id_sql) ; $n7 = SQL_nbr_lignes ($r7) ; For ($i = 0 ; $i < $n7 ; $i++) { $l7 = SQL_tableau_associatif ($r7, "") ; If (($l7 ["optionnelle"] != 0) Or ($l7 ["groupe"] != 0)) { // Traite si c'est declare optionnelle ou groupe (ou les deux) If ($l7 ["optionnelle"] != 0) { // Est-ce que l'eleve fait parti du groupe optionnel $r8 = SQL_commande ("SELECT id_option_eleve FROM options_eleve WHERE eleve='".$eleve."' AND discipline='".$l7 ["discipline"]."' AND service_classe='".$l7 ["id_service_classe"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r8) == 0) { // On ajoute l'eleve $r9 = SQL_commande ("INSERT INTO options_eleve (eleve,repere1,repere2,discipline,code_disc,service_classe,millesime) VALUES ('".$eleve."','".$repere1."','".$repere2."','".$l7 ["discipline"]."','".$l7 ["code_disc"]."','".$l7 ["id_service_classe"]."','".$millesime."')", $id_sql) ; } } ElseIf ($l7 ["groupe"] != 0) { // Est-ce que l'eleve fait parti du groupe $r8 = SQL_commande ("SELECT id_groupe_eleve FROM groupes_eleve WHERE eleve='".$eleve."' AND discipline='".$l7 ["discipline"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r8) == 0) { // Recherche groupe classe $r9 = SQL_commande ("SELECT id_groupe_classe FROM groupes_classe WHERE service_classe='".$l7 ["id_service_classe"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r9) == 1) { $l9 = SQL_ligne_suivante ($r9) ; // On ajoute l'eleve $r10 = SQL_commande ("INSERT INTO groupes_eleve (eleve,repere1,repere2,discipline,code_disc,groupe,millesime) VALUES ('".$eleve."','".$repere1."','".$repere2."','".$l7 ["discipline"]."','".$l7 ["code_disc"]."','".$l9 [0]."','".$millesime."')", $id_sql) ; } Else { // On ajoute le groupe et l'eleve $r10 = SQL_commande ("SELECT u.nom FROM utilisateurs u,services_prof p WHERE p.service_classe='".$l7 ["id_service_classe"]."' AND p.professeur=u.id_utilisateur LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r10) == 1) { $l10 = SQL_ligne_suivante ($r10) ; } Else { $l10 [0] = "PDP" ; } $l10 [0] = StrToUpper (filtrage_accents ($l10 [0])) ; $nom_groupe = SubStr (SubStr ($l10 [0], 0, 3)."_".$l7 ["id_service_classe"], 0, 8) ; $r11 = SQL_commande ("INSERT INTO groupes_classe (code_groupe,classe,code_classe,discipline,code_disc,service_classe,millesime) VALUES ('".$nom_groupe."','".$l4 [1]."','".$l4 [2]."','".$l7 ["discipline"]."','".$l7 ["code_disc"]."','".$l7 ["id_service_classe"]."','".$millesime."')", $id_sql ) ; $r12 = SQL_commande ("SELECT id_group_classe FROM groupes_classe WHERE code_groupe='".$nom_groupe."' AND classe='".$l4 [1]."' AND code_classe='".$l4 [2]."' AND discipline='".$l7 ["discipline"]."' AND code_disc='".$l7 ["code_disc"]."' AND service_classe='".$l7 ["id_service_classe"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r12) == 1) { $l12 = SQL_ligne_suivante ($l12) ; // On ajoute l'eleve $r13 = SQL_commande ("INSERT INTO groupes_eleve (eleve,repere1,repere2,discipline,code_disc,groupe,millesime) VALUES ('".$eleve."','".$repere1."','".$repere2."','".$l7 ["discipline"]."','".$l7 ["code_disc"]."','".$l12 [0]."','".$millesime."')", $id_sql) ; } } } } //echo $l7 ["id_service_classe"]."->".$l7 ["optionnelle"]."-".$l7 ["groupe"]."
" ; } } } } Else { // Division non unique : Bizarre ! //echo "PAS DIV UNIQ:".$l2 ["NOM"]."-".$l2 ["PRENOM"]."
" ; } } Return $etat ; } Else { Return -4 ; } // Aucun etablissement scolaire entree -> A inserer d'abord } Else { Return -2 ; } // Ce n'est pas la meme annee } Else { Return -3 ; } // Aucune annee } /** * Insertion/Mise a jour des responsables eleves * @return mixed Etat de l'insertion/mise a jour * Codes de sortie : -5 : Aucun responsable dans le fichier joint * -4 : Pas d'etablissement scolaire * -3 : Aucune indication de millesime * -2 : Fichier qui ne correspond pas a l'annee courant * -1 : Retour en arriere millesime (erreur) * ou * Table de sortie : * [0][0][0]=Nombre d'eleves a mettre a jour (notes) * [1][x][0]=id_eleve nouveau ou changement classe (x allant de 1 a [0][0][0]) * * [0][0][1]=Nombre d'eleves ou il y a plusieurs choix possibles * [2][x][0]=Nombre d'eleve * [2][x][y]=id_eleve en double (x allant de 1 a [0][0][1]) * * [0][0][2]=Nombre d'eleves qui doivent changer de classe * [3][x][0]=id eleve */ Function ins_maj_responsables ($entete) { Global $id_sql, $sql_sconet, $note_par_defaut ; $millesime = millesime (0) ; $etat [0][0][0] = $etat [0][0][1] = $etat [0][0][2] = 0 ; // Verification de l'annee courante et de l'etablissement $r0 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_PARAMETRES LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r0) == 1) { $l0 = SQL_tableau_associatif ($r0, "") ; If ($l0 ["ANNEE_SCOLAIRE"] == $millesime) { // Etablissement a traiter $r1 = SQL_commande ("SELECT * FROM etablissements WHERE numero='".$l0 ["UAJ"]."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r1) == 1) { // Recherche des classes concernees $r1 = SQL_commande ("SELECT c.id_classe FROM classes c,etablissements e WHERE c.etablissement=e.id_etablissement AND e.numero='".$l0 ["UAJ"]."'", $id_sql) ; $n1 = SQL_nbr_lignes ($r1) ; If ($n1 > 0) { For ($i = 0 ; $i < $n1 ; $i++) { $l1 = SQL_ligne_suivante ($r1) ; $r2 = SQL_commande ("SELECT id_eleve,repere3 FROM eleves WHERE classe='".$l1 [0]."'", $id_sql) ; $n2 = SQL_nbr_lignes ($r2) ; If ($n2 > 0) { For ($j = 0 ; $j < $n2 ; $j++) { $l2 = SQL_ligne_suivante ($r2) ; $r3 = SQL_commande ("SELECT PERSONNE_ID,RESP_LEGAL,PERS_CONTACT FROM ".$sql_sconet."_".$entete."_RESPONSABLES WHERE ELEVE_ID='".$l2 [1]."' AND (RESP_LEGAL>0 OR PERS_CONTACT>0) ORDER BY RESP_LEGAL", $id_sql) ; $n3 = SQL_nbr_lignes ($r3) ; If ($n3 > 0) { $num = 0 ; $requete = "UPDATE eleves SET " ; For ($k = 0 ; $k < $n3 ; $k++) { $l3 = SQL_ligne_suivante ($r3) ; $r4 = SQL_commande ("SELECT p.LC_CIVILITE,p.NOM,p.PRENOM,p.TEL_PERSONNEL,p.TEL_PROFESSIONNEL, a.LIGNE1_ADRESSE,a.LIGNE2_ADRESSE,a.LIGNE3_ADRESSE,a.LIGNE4_ADRESSE,a.CODE_POSTAL,a.LIBELLE_POSTAL FROM ".$sql_sconet."_".$entete."_PERSONNES p,".$sql_sconet."_".$entete."_ADRESSES a WHERE p.PERSONNE_ID='".$l3 [0]."' AND p.ADRESSE_ID=a.ADRESSE_ID LIMIT 1", $id_sql) ; $n4 = SQL_nbr_lignes ($r4) ; If ($n4 == 1) { $l4 = SQL_ligne_suivante ($r4) ; If (($l3 [1] == 0) And ($n3 == 1)) { // Un seul responsable -> PERS_CONTACT $requete .= "civilite_parents='".filtrage ($l4 [0])."',nom_parents='".filtrage ($l4 [1])."',prenom_parents='".filtrage ($l4 [2])."',adresse1='".filtrage ($l4 [5])."',adresse2='".filtrage ($l4 [6])."',cp='".filtrage ($l4 [9])."',ville='".filtrage ($l4 [10])."',telephone='".filtrage ($l4 [3])."',telephone_travail='".filtrage ($l4 [4])."'," ; $requete .= "civilite_parents_p2='',nom_parents_p2='',prenom_parents_p2='',adresse1_p2='',adresse2_p2='',cp_p2='',ville_p2='',telephone_p2='',telephone_travail_p2=''" ; } Else { If ($l3 [1] == 1) { $requete .= "civilite_parents='".filtrage ($l4 [0])."',nom_parents='".filtrage ($l4 [1])."',prenom_parents='".filtrage ($l4 [2])."',adresse1='".filtrage ($l4 [5])."',adresse2='".filtrage ($l4 [6])."',cp='".filtrage ($l4 [9])."',ville='".filtrage ($l4 [10])."',telephone='".filtrage ($l4 [3])."',telephone_travail='".filtrage ($l4 [4])."'" ; } ElseIf ($l3 [1] == 2) { $requete .= ",civilite_parents_p2='".filtrage ($l4 [0])."',nom_parents_p2='".filtrage ($l4 [1])."',prenom_parents_p2='".filtrage ($l4 [2])."',adresse1_p2='".filtrage ($l4 [5])."',adresse2_p2='".filtrage ($l4 [6])."',cp_p2='".filtrage ($l4 [9])."',ville_p2='".filtrage ($l4 [10])."',telephone_p2='".filtrage ($l4 [3])."',telephone_travail_p2='".filtrage ($l4 [4])."'" ; } } } } $requete .= ",millesime='".$millesime."' WHERE id_eleve='".$l2 [0]."' LIMIT 1" ; //echo $requete."
" ; $r5 = SQL_commande ($requete, $id_sql) ; $etat [0][0][0]++ ; } } } } Return $etat ; } Else { Return -5 ; } // Aucun responsable dans le fichier } Else { Return -4 ; } // Aucun etablissement scolaire entree -> A inserer d'abord } Else { Return -2 ; } // Ce n'est pas la meme annee } Else { Return -3 ; } // Aucune annee } ?>".$vg [0].".".$vg [1].".".$vg [2]."" ; $nombre_generation_code_session = ($vg [0]+$vg [1]*10+$vg [2]*100)*753 ; // Extension des fichiers textes de sauvegarde/restauration $ext_texte = ".csv" ; $ext_sql = ".sql" ; // Taille photos $hauteur_photo = 180 ; // En pixels $largeur_photo = 130 ; // En pixels // Memo notes $hauteur_memo_popup = 280 ; $largeur_memo_popup = 550 ; $hauteur_memo_edition = 200 ; $largeur_memo_edition = 500 ; // Taille moitie photos $hauteur_petite_photo = $hauteur_photo/2 ; $largeur_petite_photo = $largeur_photo/2 ; $nbr_photo_largeur = 7 ; // Taille du graphique pour afficher le bilan eleve $largeur_graphe_defaut = 460 ; // Taille X totale $hauteur_graphe_defaut = 380 ; // Taille Y totale $largeur_graphe_mini_defaut = 320 ; // Taille X totale $hauteur_graphe_mini_defaut = 200 ; // Taille Y totale $largeur_graphe_maxi_defaut = 1600 ; // Taille X totale $hauteur_graphe_maxi_defaut = 1200 ; // Taille Y totale $graphe_pas_largeur_defaut = 1.1 ; // Pas pour augmentation ou reduction graphe en largeur $graphe_pas_hauteur_defaut = 1.1 ; // Pas pour augmentation ou reduction graphe en hauteur $couleur_fond_defaut = "#EFEFDC" ; // Couleur fond globale $couleur_fond_graphe_defaut = "#EFEFDC" ; // Couleur fond du graphe uniquement $couleur_comparaison_classe_fond_defaut = "#DDDDDD" ; // Couleur fond du graphe comparaison classe $couleur_comparaison_classe_contour_defaut = "#000000" ; // Couleur contour du graphe comparaison classe $couleur_comparaison_classe_moyenne_defaut = "#8FBCF7" ; // Couleur trace du graphe comparaison classe moyen $couleur_comparaison_classe_moyenne_contour_defaut = "#000F0F" ; // Couleur contour du graphe comparaison classe moyen // Type de graphique : cercle $taille_fonte_ordonnees_cercle_defaut = "2" ; // Taille fonte ordonnees $marge_matiere_graphique_cercle_defaut = 2 ; // Marge entre la matiere et la graphe $couleur_trait_repere_cercle_defaut = "#000000" ; // Couleur du reperage vertical $couleur_fond_vert_defaut = "#ADFF9F" ; // Couleur fond partie verte 60% a 100% $couleur_fond_orange_defaut = "#FFE2AF"; // Couleur fond partie verte 60% a 100% $couleur_fond_rouge_defaut = "#FFB5AF" ; // Couleur fond partie verte 60% a 100% $couleur_fond_rouge_final_defaut = "#FF4B0C" ; // Couleur fond partie verte 60% a 100% $taille_fonte_matiere_cercle_defaut = "5" ; // Taille fonte matieres $couleur_cercle_defaut [1] = "#0000FF" ; // Couleur cercle periode 1 $couleur_cercle_defaut [2] = "#ED00FF" ; // Couleur cercle periode 2 $couleur_cercle_defaut [3] = "#AB00FF" ; // Couleur cercle periode 3 $couleur_cercle_defaut [4] = "#60BCB4" ; // Couleur cercle periode 4 $couleur_cercle_defaut [5] = "#8C00FF" ; // Couleur cercle periode 5 $couleur_cercle_defaut [6] = "#FFDD00" ; // Couleur cercle periode 6 $couleur_cercle_compare_defaut [1] = "#0000FF" ; // Couleur cercle comparaison periode 1 $couleur_cercle_compare_defaut [2] = "#ED00FF" ; // Couleur cercle comparaison periode 2 $couleur_cercle_compare_defaut [3] = "#AB00FF" ; // Couleur cercle comparaison periode 3 $couleur_cercle_compare_defaut [4] = "#60BCF4" ; // Couleur cercle comparaison periode 4 $couleur_cercle_compare_defaut [5] = "#8C00FF" ; // Couleur cercle comparaison periode 5 $couleur_cercle_compare_defaut [6] = "#FFDD00" ; // Couleur cercle comparaison periode 6 $couleur_contour_point_cercle_defaut [1] = "#0000FF" ; // Couleur points periode 1 $couleur_contour_point_cercle_defaut [2] = "#ED00FF" ; // Couleur points periode 2 $couleur_contour_point_cercle_defaut [3] = "#AB00FF" ; // Couleur points periode 3 $couleur_contour_point_cercle_defaut [4] = "#60BCF4" ; // Couleur points periode 4 $couleur_contour_point_cercle_defaut [5] = "#8C00FF" ; // Couleur points periode 5 $couleur_contour_point_cercle_defaut [6] = "#FFDD00" ; // Couleur points periode 6 $taille_point_cercle_defaut [1] = 7 ; // Taille des points $taille_point_cercle_defaut [2] = 7 ; // Taille des points $taille_point_cercle_defaut [3] = 7 ; // Taille des points $taille_point_cercle_defaut [4] = 7 ; // Taille des points $taille_point_cercle_defaut [5] = 7 ; // Taille des points $taille_point_cercle_defaut [6] = 7 ; // Taille des points $forme_point_cercle_defaut [1] = 1 ; // Forme des points $forme_point_cercle_defaut [2] = 3 ; // Forme des points $forme_point_cercle_defaut [3] = 2 ; // Forme des points $forme_point_cercle_defaut [4] = 1 ; // Forme des points $forme_point_cercle_defaut [5] = 3 ; // Forme des points $forme_point_cercle_defaut [6] = 2 ; // Forme des points $couleur_point_compare_cercle_defaut [1] = "#E6E7E6" ; // Couleur point comparaison periode 1 $couleur_point_compare_cercle_defaut [2] = "#E6E7E6" ; // Couleur point comparaison periode 2 $couleur_point_compare_cercle_defaut [3] = "#E6E7E6" ; // Couleur point comparaison periode 3 $couleur_point_compare_cercle_defaut [4] = "#E6E7E6" ; // Couleur point comparaison periode 4 $couleur_point_compare_cercle_defaut [5] = "#E6E7E6" ; // Couleur point comparaison periode 5 $couleur_point_compare_cercle_defaut [6] = "#E6E7E6" ; // Couleur point comparaison periode 6 $couleur_contour_point_compare_cercle_defaut [1] = "#0000FF" ; // Couleur contour point comparaison periode 1 $couleur_contour_point_compare_cercle_defaut [2] = "#ED00FF" ; // Couleur contour point comparaison periode 2 $couleur_contour_point_compare_cercle_defaut [3] = "#AB00FF" ; // Couleur contour point comparaison periode 3 $couleur_contour_point_compare_cercle_defaut [4] = "#60BCF4" ; // Couleur contour point comparaison periode 4 $couleur_contour_point_compare_cercle_defaut [5] = "#8C00FF" ; // Couleur contour point comparaison periode 5 $couleur_contour_point_compare_cercle_defaut [6] = "#FFDD00" ; // Couleur contour point comparaison periode 6 $taille_point_compare_cercle_defaut [1] = 7 ; // Taille points comparaison periode 1 $taille_point_compare_cercle_defaut [2] = 7 ; // Taille points comparaison periode 2 $taille_point_compare_cercle_defaut [3] = 7 ; // Taille points comparaison periode 3 $taille_point_compare_cercle_defaut [4] = 7 ; // Taille points comparaison periode 4 $taille_point_compare_cercle_defaut [5] = 7 ; // Taille points comparaison periode 5 $taille_point_compare_cercle_defaut [6] = 7 ; // Taille points comparaison periode 6 $forme_point_compare_cercle_defaut [1] = 1 ; // Forme des points comparaison periode 1 $forme_point_compare_cercle_defaut [2] = 3 ; // Forme des points comparaison periode 2 $forme_point_compare_cercle_defaut [3] = 2 ; // Forme des points comparaison periode 3 $forme_point_compare_cercle_defaut [4] = 1 ; // Forme des points comparaison periode 4 $forme_point_compare_cercle_defaut [5] = 3 ; // Forme des points comparaison periode 5 $forme_point_compare_cercle_defaut [6] = 2 ; // Forme des points comparaison periode 6 // Legende $couleur_fond_legende_defaut = "#FFFFFF" ; // Couleur fond legende $couleur_contour_legende_defaut = "#000000" ; // Couleur fond legende $legende_3d = 1 ; // 1=3D, 0=2D $couleur_contour_3d_legende_defaut = "#888888" ; // Couleur fond legende $espace_entre_legende_h_defaut = 10 ; // Espace entre les legendes a l'horizontale $espace_entre_legende_v_defaut = 5 ; // Espace entre les legendes a la verticale $marge_legende_droite_defaut = 5 ; // Marge droite interieur legende $marge_legende_gauche_defaut = 5 ; // Marge gauche interieur legende $marge_legende_haut_defaut = 2 ; // Marge haut interieur legende $marge_legende_bas_defaut = 2 ; // Marge bas interieur legende $marge_legende_matiere_defaut = 5 ; // Marge entre la legende et les matieres $taille_fonte_legende_defaut = 2 ; // Taille fonte legende $taille_car_periode_legende_defaut = 5 ; // Nombre de caracteres du nom de periode (0=tout) $espace_entre_barre_defaut = 3 ; // Espace entre les barres $decalage_barre_compare_defaut = 3 ; // Espace entre les barres $taille_avant_grille_h_defaut = 2 ; $taille_arriere_grille_h_defaut = 1 ; $couleur_trait_grille_h_defaut = "#000000" ; $taille_avant_grille_v_defaut = 2 ; $taille_arriere_grille_v_defaut = 1 ; $couleur_trait_grille_v_defaut = "#000000" ; // Type de graphique : Barre $couleur_barre_defaut [1] = "#8FBCF7" ; // Couleur rectangle periode 1 $couleur_barre_defaut [2] = "#FF7700" ; // Couleur rectangle periode 2 $couleur_barre_defaut [3] = "#FF00B6" ; // Couleur rectangle periode 3 $couleur_barre_defaut [4] = "#60BCF4" ; // Couleur rectangle periode 4 $couleur_barre_defaut [5] = "#8C00FF" ; // Couleur rectangle periode 5 $couleur_barre_defaut [6] = "#FFDD00" ; // Couleur rectangle periode 6 $couleur_barre_compare_defaut [1] = "#8F9AF7" ; // Couleur rectangle comparaison periode 1 $couleur_barre_compare_defaut [2] = "#FF6500" ; // Couleur rectangle comparaison periode 2 $couleur_barre_compare_defaut [3] = "#FEEDB6" ; // Couleur rectangle comparaison periode 3 $couleur_barre_compare_defaut [4] = "#60AAF4" ; // Couleur rectangle comparaison periode 4 $couleur_barre_compare_defaut [5] = "#8BEDFF" ; // Couleur rectangle comparaison periode 5 $couleur_barre_compare_defaut [6] = "#FFCB00" ; // Couleur rectangle comparaison periode 6 $couleur_barre_compare_point_defaut [1] = "#000000" ; // Couleur des points dans le rectangle comparaison periode 1 $couleur_barre_compare_point_defaut [2] = "#000000" ; // Couleur des points dans le rectangle comparaison periode 2 $couleur_barre_compare_point_defaut [3] = "#000000" ; // Couleur des points dans le rectangle comparaison periode 3 $couleur_barre_compare_point_defaut [4] = "#000000" ; // Couleur des points dans le rectangle comparaison periode 4 $couleur_barre_compare_point_defaut [5] = "#000000" ; // Couleur des points dans le rectangle comparaison periode 5 $couleur_barre_compare_point_defaut [6] = "#000000" ; // Couleur des points dans le rectangle comparaison periode 6 $couleur_contour_barre_defaut [1] = "#000000" ; // Couleur contour rectangle periode 1 $couleur_contour_barre_defaut [2] = "#000000" ; // Couleur contour rectangle periode 2 $couleur_contour_barre_defaut [3] = "#000000" ; // Couleur contour rectangle periode 3 $couleur_contour_barre_defaut [4] = "#000000" ; // Couleur contour rectangle periode 4 $couleur_contour_barre_defaut [5] = "#000000" ; // Couleur contour rectangle periode 5 $couleur_contour_barre_defaut [6] = "#000000" ; // Couleur contour rectangle periode 6 $couleur_contour_barre_compare_defaut [1] = "#000000" ; // Couleur contour rectangle comparaison periode 1 $couleur_contour_barre_compare_defaut [2] = "#000000" ; // Couleur contour rectangle comparaison periode 2 $couleur_contour_barre_compare_defaut [3] = "#000000" ; // Couleur contour rectangle comparaison periode 3 $couleur_contour_barre_compare_defaut [4] = "#000000" ; // Couleur contour rectangle comparaison periode 4 $couleur_contour_barre_compare_defaut [5] = "#000000" ; // Couleur contour rectangle comparaison periode 5 $couleur_contour_barre_compare_defaut [6] = "#000000" ; // Couleur contour rectangle comparaison periode 6 // Type de graphique : Ligne avec et sans points $couleur_ligne_defaut [1] = "#0000FF" ; // Couleur ligne periode 1 $couleur_ligne_defaut [2] = "#FF7700" ; // Couleur ligne periode 2 $couleur_ligne_defaut [3] = "#FF00B6" ; // Couleur ligne periode 3 $couleur_ligne_defaut [4] = "#60BCB4" ; // Couleur ligne periode 4 $couleur_ligne_defaut [5] = "#8C00FF" ; // Couleur ligne periode 5 $couleur_ligne_defaut [6] = "#FFDD00" ; // Couleur ligne periode 6 $couleur_ligne_compare_defaut [1] = "#0000FF" ; // Couleur ligne comparaison periode 1 $couleur_ligne_compare_defaut [2] = "#FF7700" ; // Couleur ligne comparaison periode 2 $couleur_ligne_compare_defaut [3] = "#FF00B6" ; // Couleur ligne comparaison periode 3 $couleur_ligne_compare_defaut [4] = "#60BCF4" ; // Couleur ligne comparaison periode 4 $couleur_ligne_compare_defaut [5] = "#8C00FF" ; // Couleur ligne comparaison periode 5 $couleur_ligne_compare_defaut [6] = "#FFDD00" ; // Couleur ligne comparaison periode 6 // TYpe de graphique : Points $couleur_contour_point_defaut [1] = "#0000FF" ; // Couleur points periode 1 $couleur_contour_point_defaut [2] = "#FF7700" ; // Couleur points periode 2 $couleur_contour_point_defaut [3] = "#FF00B6" ; // Couleur points periode 3 $couleur_contour_point_defaut [4] = "#60BCF4" ; // Couleur points periode 4 $couleur_contour_point_defaut [5] = "#8C00FF" ; // Couleur points periode 5 $couleur_contour_point_defaut [6] = "#FFDD00" ; // Couleur points periode 6 $taille_point_defaut [1] = 7 ; // Taille des points $taille_point_defaut [2] = 7 ; // Taille des points $taille_point_defaut [3] = 7 ; // Taille des points $taille_point_defaut [4] = 7 ; // Taille des points $taille_point_defaut [5] = 7 ; // Taille des points $taille_point_defaut [6] = 7 ; // Taille des points $forme_point_defaut [1] = 1 ; // Forme des points $forme_point_defaut [2] = 3 ; // Forme des points $forme_point_defaut [3] = 2 ; // Forme des points $forme_point_defaut [4] = 1 ; // Forme des points $forme_point_defaut [5] = 3 ; // Forme des points $forme_point_defaut [6] = 2 ; // Forme des points $couleur_point_defaut [1] = "#0000FF" ; // Couleur point periode 1 $couleur_point_defaut [2] = "#FF7700" ; // Couleur point periode 2 $couleur_point_defaut [3] = "#FF00B6" ; // Couleur point periode 3 $couleur_point_defaut [4] = "#60BCF4" ; // Couleur point periode 4 $couleur_point_defaut [5] = "#8C00FF" ; // Couleur point periode 5 $couleur_point_defaut [6] = "#FFDD00" ; // Couleur point periode 6 $couleur_point_compare_defaut [1] = "#E6E7E6" ; // Couleur point comparaison periode 1 $couleur_point_compare_defaut [2] = "#E6E7E6" ; // Couleur point comparaison periode 2 $couleur_point_compare_defaut [3] = "#E6E7E6" ; // Couleur point comparaison periode 3 $couleur_point_compare_defaut [4] = "#E6E7E6" ; // Couleur point comparaison periode 4 $couleur_point_compare_defaut [5] = "#E6E7E6" ; // Couleur point comparaison periode 5 $couleur_point_compare_defaut [6] = "#E6E7E6" ; // Couleur point comparaison periode 6 $couleur_contour_point_compare_defaut [1] = "#0000FF" ; // Couleur contour point comparaison periode 1 $couleur_contour_point_compare_defaut [2] = "#FF7700" ; // Couleur contour point comparaison periode 2 $couleur_contour_point_compare_defaut [3] = "#FF00B6" ; // Couleur contour point comparaison periode 3 $couleur_contour_point_compare_defaut [4] = "#60BCF4" ; // Couleur contour point comparaison periode 4 $couleur_contour_point_compare_defaut [5] = "#8C00FF" ; // Couleur contour point comparaison periode 5 $couleur_contour_point_compare_defaut [6] = "#FFDD00" ; // Couleur contour point comparaison periode 6 $taille_point_compare_defaut [1] = 7 ; // Taille points comparaison periode 1 $taille_point_compare_defaut [2] = 7 ; // Taille points comparaison periode 2 $taille_point_compare_defaut [3] = 7 ; // Taille points comparaison periode 3 $taille_point_compare_defaut [4] = 7 ; // Taille points comparaison periode 4 $taille_point_compare_defaut [5] = 7 ; // Taille points comparaison periode 5 $taille_point_compare_defaut [6] = 7 ; // Taille points comparaison periode 6 $forme_point_compare_defaut [1] = 1 ; // Forme des points comparaison periode 1 $forme_point_compare_defaut [2] = 3 ; // Forme des points comparaison periode 2 $forme_point_compare_defaut [3] = 2 ; // Forme des points comparaison periode 3 $forme_point_compare_defaut [4] = 1 ; // Forme des points comparaison periode 4 $forme_point_compare_defaut [5] = 3 ; // Forme des points comparaison periode 5 $forme_point_compare_defaut [6] = 2 ; // Forme des points comparaison periode 6 $taille_point_seuls_defaut [1] = 10 ; // Taille des points seuls $taille_point_seuls_defaut [2] = 10 ; // Taille des points seuls $taille_point_seuls_defaut [3] = 10 ; // Taille des points seuls $taille_point_seuls_defaut [4] = 10 ; // Taille des points seuls $taille_point_seuls_defaut [5] = 10 ; // Taille des points seuls $taille_point_seuls_defaut [6] = 10 ; // Taille des points seuls $taille_point_seuls_compare_defaut = 10 ; // Taille des points seuls comparaison $forme_point_seuls_defaut [1] = 1 ; // Forme des points seuls 1=rond, 2=carre, 3=croix $forme_point_seuls_defaut [2] = 3 ; // Forme des points seuls 1=rond, 2=carre, 3=croix $forme_point_seuls_defaut [3] = 2 ; // Forme des points seuls 1=rond, 2=carre, 3=croix $forme_point_seuls_defaut [4] = 1 ; // Forme des points seuls 1=rond, 2=carre, 3=croix $forme_point_seuls_defaut [5] = 3 ; // Forme des points seuls 1=rond, 2=carre, 3=croix $forme_point_seuls_defaut [6] = 2 ; // Forme des points seuls 1=rond, 2=carre, 3=croix $forme_point_seuls_compare_defaut [1] = 1 ; // Forme des points seuls comparaison $forme_point_seuls_compare_defaut [2] = 3 ; // Forme des points seuls comparaison $forme_point_seuls_compare_defaut [3] = 2 ; // Forme des points seuls comparaison $forme_point_seuls_compare_defaut [4] = 1 ; // Forme des points seuls comparaison $forme_point_seuls_compare_defaut [5] = 3 ; // Forme des points seuls comparaison $forme_point_seuls_compare_defaut [6] = 2 ; // Forme des points seuls comparaison // Axes, grille, titre $couleur_axes_defaut = "#000000" ; // Couleur des axes V et H $couleur_traits_horizontaux_defaut = "#CCCCCC" ; // Couleur traits H $couleur_traits_verticaux_defaut = "#CCCCCC" ; // Couleur traits V $couleur_trait_horizontal_indic_40_defaut = "#FF0000" ; // Couleur traits 40%max $couleur_trait_horizontal_moyenne_defaut = "#FF7700" ; // Couleur traits moyen $couleur_trait_horizontal_indic_60_defaut = "#2BA02B" ; // Couleur traits 60%max $couleur_fonte_defaut = "#FFFFFF" ; // Couleur fonte $couleur_titre_defaut = "#000000" ; // Couleur titre $couleur_titre_3d_defaut = "#AAAAAA" ; // Couleur onbre 3d titre $titre_3d = 1 ; // Couleur titre en 3D $taille_fonte_ordonnees_defaut = "3" ; // Taille fonte ordonnees $taille_fonte_matiere_defaut = "3" ; // Taille fonte matieres $taille_fonte_titre_defaut = "5" ; // Taille fonte titre $marge_gauche_defaut = 5 ; // Marge gauche $marge_droite_defaut = 10 ; // Marge droite $marge_bas_defaut = 5 ; // Marge bas $marge_haut_defaut = 5 ; // Marge haut $marge_titre_defaut = 10 ; // Marge titre $pas_graphe [0] = 5 ; // Nombre de pas $pas_graphe [1] = 2 ;// Pas d'affichage des graphes $pas_graphe [2] = 4 ; $pas_graphe [3] = 5 ; $pas_graphe [4] = 10 ; $pas_graphe [5] = 20 ; /** * Definition des noms des mois * @global array $nom_mois */ $nom_mois [1] = "janvier" ; $nom_mois [2] = "février" ; $nom_mois [3] = "mars" ; $nom_mois [4] = "avril" ; $nom_mois [5] = "mai" ; $nom_mois [6] = "juin" ; $nom_mois [7] = "juillet" ; $nom_mois [8] = "août" ; $nom_mois [9] = "septembre" ; $nom_mois [10] = "octobre" ; $nom_mois [11] = "novembre" ; $nom_mois [12] = "décembre" ; /** * Definition des noms des jours * @global array $nom_jour */ $nom_jour [0] = "dimanche" ; $nom_jour [1] = "lundi" ; $nom_jour [2] = "mardi" ; $nom_jour [3] = "mercredi" ; $nom_jour [4] = "jeudi" ; $nom_jour [5] = "vendredi" ; $nom_jour [6] = "samedi" ; /** * Civilites * @global array $civilites */ $civilites [0] = "Mme" ; $civilites [1] = "Mlle" ; $civilites [2] = "M." ; /** * Definition des types de table pour changement eventuel * @global array $type_table */ $type_table [0][0] = 4 ; $type_table [1][0] = "MYISAM" ; $type_table [1][1] = "MyISAM" ; $type_table [2][0] = "HEAP" ; $type_table [2][1] = "Heap" ; $type_table [3][0] = "BDB" ; $type_table [3][1] = "Berkeley Data Base" ; $type_table [4][0] = "ISAM" ; $type_table [4][1] = "ISAM" ; /** * Adresse du site de la cite scolaire Edouard Branly de Châtellerault pour la licence d'utilisation et le dictionnaire * @global array $adresse_etablissement_scolaire */ $adresse_etablissement_scolaire [0][0] = 1 ; $adresse_etablissement_scolaire [1][0] = "jfcampan.free.fr" ; $adresse_etablissement_scolaire [1][1] = "/enregistrement/dictionnaire_fr.csv" ; /** * Adresse du site pour recuperation du flux rss */ $adresse_flux_rss = "http://adullact.net/export/rss_sfnews.php" ; $identification_garennes = "Garennes" ; $affichage_rss [0][0] = 5 ; $affichage_rss [1][0] = "" ; $affichage_rss [1][1] = "" ; $affichage_rss [1][2] = 1 ; // A afficher en titre $affichage_rss [2][0] = "" ; $affichage_rss [2][1] = "" ; $affichage_rss [2][2] = 2 ; // Lien $affichage_rss [3][0] = "" ; $affichage_rss [3][1] = "" ; $affichage_rss [3][2] = 3 ; // Contenu $affichage_rss [4][0] = "" ; $affichage_rss [4][1] = "" ; $affichage_rss [4][2] = 4 ; // Signature $affichage_rss [5][0] = "" ; $affichage_rss [5][1] = "" ; $affichage_rss [5][2] = 5 ; // Date /** * Adresse mel du chef de projet * @global string $mel_chef_projet */ $mel_chef_projet = "jean-francois.campan@ac-poitiers.fr" ; /** * Definition des differents separateurs pour importation CSV * @global array $separateurs */ $separateurs [0][0] = 7 ; $separateurs [1][0] = ";" ; $separateurs [1][1] = "point virgule" ; $separateurs [2][0] = "," ; $separateurs [2][1] = "virgule" ; $separateurs [3][0] = ":" ; $separateurs [3][1] = "deux points" ; $separateurs [4][0] = "." ; $separateurs [4][1] = "point" ; $separateurs [5][0] = "-" ; $separateurs [5][1] = "tiret" ; $separateurs [6][0] = "=" ; $separateurs [6][1] = "égal" ; $separateurs [7][0] = "_" ; $separateurs [7][1] = "underscore" ; /** * Definition des differents delimiteurs pour importation CSV * @global array $delimiteurs */ $delimiteurs [0] = 4 ; $delimiteurs [1] = "Aucun" ; $delimiteurs [2] = Chr (34)." (guillemets)" ; $delimiteurs [3] = "' (côte gauche)" ; $delimiteurs [4] = "` (côte droite)" ; // ========================================================================================================== // Gestion SQL // ------------------------------------------------------------------------------- /** * Fonction de connexion et de selection de base de donnees. * @param string $ordi Nom du serveur SQL * @param string $user Identifiant de connexion SQL * @param string $pass Mot de passe SQL * @param string $basedd Nom de la base de donnees SQL * @return mixed Numero de la connexion SQL */ Function SQL_connexion ($ordi, $user, $pass, $basedd, $port) { Global $type_bdd, $debug_journal ; Switch ($type_bdd) { Case "MySQL" : If (($port > 0) Or ($port != "")) { $lien = @MySQL_Connect ($ordi.":".$port, $user, $pass) ; } Else { $lien = @MySQL_Connect ($ordi, $user, $pass) ; } $ok = @MySQL_Select_DB ($basedd) ; If (($lien) And ($debug_journal == 1)) { $ok = @MySQL_Query ("INSERT INTO journal (texte,script,date,adresse) VALUES ('".Session_Id()."-".$_SERVER ["PHP_SELF"]."','--DEBUT-SESSION--','".Date ("Y-m-d H:i:s")."','".$_SERVER ["REMOTE_ADDR"]."')", $lien) ; } Break ;; Case "mSQL" : $lien = @mSQL_PConnect ($ordi) ; @mSQL_Select_DB ($basedd) ; If (($lien) And ($debug_journal == 1)) { $ok = @mSQL_Query ("INSERT INTO journal (texte,script,date,adresse) VALUES ('".Session_Id()."-".$_SERVER ["PHP_SELF"]."','--DEBUT-SESSION--','".Date ("Y-m-d H:i:s")."','".$_SERVER ["REMOTE_ADDR"]."')", $lien) ; } Break ;; Case "PostgreSQL" : $lien = @PG_PConnect ("host=".$ordi." user=".$user." password=".$pass." port=".$port." dbname=".$basedd) ; If (($lien) And ($debug_journal == 1)) { $ok = @PG_Query ($lien,"INSERT INTO journal (texte,script,date,adresse) VALUES ('".Session_Id()."-".$_SERVER ["PHP_SELF"]."','--DEBUT-SESSION--','".Date ("Y-m-d H:i:s")."','".$_SERVER ["REMOTE_ADDR"]."')") ; } Break ;; Default : If (($port > 0) Or ($port != "")) { $lien = @MySQL_Connect ($ordi.":".$port, $user, $pass) ; } Else { $lien = @MySQL_Connect ($ordi, $user, $pass) ; } @MySQL_Select_DB ($basedd) ; If (($lien) And ($debug_journal == 1)) { $ok = @MySQL_Query ("INSERT INTO journal (texte,script,date,adresse) VALUES ('".Session_Id()."-".$_SERVER ["PHP_SELF"]."','--DEBUT-SESSION--','".Date ("Y-m-d H:i:s")."','".$_SERVER ["REMOTE_ADDR"]."')", $lien) ; } Break ;; } If (!$lien) { Echo "
".$ok."

" ; SQL_erreur (3) ; } Return $lien ; } /** * Fonction d'etabliseement de connexion. * @param string $ordi Nom du serveur SQL * @param string $user Identifiant de connexion SQL * @param string $pass Mot de passe SQL * @param string $port Numero de port SQL * @return mixed Numero de la connexion SQL */ Function SQL_etablissement_connexion ($ordi, $user, $pass, $port) { Global $type_bdd ; Switch ($type_bdd) { Case "MySQL" : If (($port > 0) Or ($port != "")) { $lien = @MySQL_PConnect ($ordi.":".$port, $user, $pass) ; } Else { $lien = @MySQL_PConnect ($ordi, $user, $pass) ; } Break ;; Case "mSQL" : $lien = @mSQL_PConnect ($ordi) ; Break ;; Case "PostgreSQL" : $lien = @PG_PConnect ("host=".$ordi." user=".$user." password=".$pass." port=".$port." dbname=template1") ; Break ;; Default : If (($port > 0) Or ($port != "")) { $lien = @MySQL_PConnect ($ordi.":".$port, $user, $pass) ; } Else { $lien = @MySQL_PConnect ($ordi, $user, $pass) ; } Break ;; } Return $lien ; } /** * Fonction de selection de base de donnees uniquement. * @param string $basedd Nom de la base de donnees SQL * @param string $id Numero de la connexion SQL * @return mixed Selection reussi ou pas */ Function SQL_selection_bd ($basedd, $id) { Global $type_bdd, $sql_adresse, $sql_qui, $sql_passe, $sql_port ; Switch ($type_bdd) { Case "MySQL" : $selection = @MySQL_Select_DB ($basedd, $id) ; Break ;; Case "mSQL" : $selection = @mSQL_Select_DB ($basedd, $id) ; Break ;; Case "PostgreSQL" : $selection = @PG_PConnect ("host=".$sql_adresse." user=".$sql_qui." password=".$sql_passe." port=".$sql_port." dbname=".$basedd) ; Break ;; Default : $selection = @MySQL_Select_DB ($basedd) ; Break ;; } Return $selection ; } /** * Execute une commande SQL. * @param string $commande Commande en syntaxe SQL * @param string $id Numero de la connexion SQL * @return mixed Resultat de la requete SQL */ Function SQL_commande ($commande, $id) { Global $type_bdd,$debug_SQL,$debug_journal ; If ($debug_SQL) { Echo "Commande SQL : ".$commande."
" ; } Switch ($type_bdd) { Case "MySQL" : $res = @MySQL_Query ($commande, $id) ; If ($debug_journal == 1) { $ok = @MySQL_Query ("INSERT INTO journal (texte,script,date,adresse) VALUES ('".Session_Id()."-".$_SERVER ["PHP_SELF"]."','".Str_Replace ("'", "\'", $commande)."','".Date ("Y-m-d H:i:s")."','".$_SERVER ["REMOTE_ADDR"]."')", $id) ; } Break ;; Case "mSQL" : $res = @mSQL_Query ($commande, $id) ; If ($debug_journal == 1) { $ok = @mSQL_Query ("INSERT INTO journal (texte,script,date,adresse) VALUES ('".Session_Id()."-".$_SERVER ["PHP_SELF"]."','".Str_Replace ("'", "\'", $commande)."','".Date ("Y-m-d H:i:s")."','".$_SERVER ["REMOTE_ADDR"]."')", $id) ; } Break ;; Case "PostgreSQL" : $res = @PG_Query ($id, $commande) ; If ($debug_journal == 1) { $ok = @PG_Query ($id, "INSERT INTO journal (texte,script,date,adresse) VALUES ('".Session_Id()."-".$_SERVER ["PHP_SELF"]."','".Str_Replace ("'", "\'", $commande)."','".Date ("Y-m-d H:i:s")."','".$_SERVER ["REMOTE_ADDR"]."')") ; } Break ;; Default : $res = @MySQL_Query ($commande, $id) ; If ($debug_journal == 1) { $ok = @MySQL_Query ("INSERT INTO journal (texte,script,date,adresse) VALUES ('".Session_Id()."-".$_SERVER ["PHP_SELF"]."','".Str_Replace ("'", "\'", $commande)."','".Date ("Y-m-d H:i:s")."','".$_SERVER ["REMOTE_ADDR"]."')", $id) ; } Break ;; } If ($debug_SQL) { Echo "Erreur SQL : ".SQL_message_erreur ($id)."
" ; } Return $res ; } /** * Retourne le nombre de lignes. * @param string $resultat Un resultat d'une commande SQL precedente * @return int Nombre de lignes du resultat */ Function SQL_nbr_lignes ($resultat) { Global $type_bdd ; Global $debug_SQL ; Switch ($type_bdd) { Case "MySQL" : $ligne = @MySQL_Num_Rows ($resultat) ; Break ;; Case "mSQL" : $ligne = @mSQL_Num_Rows ($resultat) ; Break ;; Case "PostgreSQL" : $ligne = @PG_Num_Rows ($resultat) ; Break ;; Default : $ligne = @MySQL_Num_Rows ($resultat) ; Break ;; } If ($debug_SQL) { Echo "Nombre de lignes : ".$ligne."
" ; } Return $ligne ; } /** * Retourne le nombre de champs. * @param string $resultat Un resultat d'une commande SQL precedente * @return int Nombre de champs du resultat */ Function SQL_nbr_champs ($resultat) { Global $type_bdd ; Global $debug_SQL ; Switch ($type_bdd) { Case "MySQL" : $ligne = @MySQL_Num_Fields ($resultat) ; Break ;; Case "mSQL" : $ligne = @mSQL_Num_Fields ($resultat) ; Break ;; Case "PostgreSQL" : $ligne = @PG_Num_Fields ($resultat) ; Break ;; Default : $ligne = @MySQL_Num_Fields ($resultat) ; Break ;; } If ($debug_SQL) { Echo "Nombre de champs : ".$ligne."
" ; } Return $ligne ; } /** * Retourne le nom d'un champs. * @param string $resultat Un resultat d'une commande SQL precedente * @param string $num Numero du champ dont on veut le nom * @return string Nom du champs */ Function SQL_nom_champs ($resultat, $num) { Global $type_bdd ; Global $debug_SQL ; Switch ($type_bdd) { Case "MySQL" : $ligne = @MySQL_Field_name ($resultat, $num) ; Break ;; Case "mSQL" : $ligne = @mSQL_FieldName ($resultat) ; Break ;; Case "PostgreSQL" : $ligne = @PG_Field_Name ($resultat) ; Break ;; Default : $ligne = @MySQL_Field_Name ($resultat) ; Break ;; } If ($debug_SQL) { Echo "Nom du champs ".$num." : ".$ligne."
" ; } Return $ligne ; } /** * Renvoi la ligne suivante du resultat * @param string $resultat Un resultat d'une commande SQL precedente * @return array Enregistrement suivant dans un table numerote */ Function SQL_ligne_suivante ($resultat) { Global $type_bdd ; Switch ($type_bdd) { Case "MySQL" : $ligne = array () ; $ligne = @MySQL_Fetch_Row ($resultat) ; Break ;; Case "mSQL" : $ligne = array () ; $ligne = @mSQL_Fetch_Row ($resultat) ; Break ;; Case "PostgreSQL": $ligne = array () ; $ligne = @PG_Fetch_Row ($resultat) ; Break ;; Default : $ligne = array () ; $ligne = @MySQL_Fetch_Row ($resultat) ; Break ;; } Return $ligne ; } /** * Fonction qui renvoi un tableau associatif contenant les attributs * de la ligne courante, et positionne le curseur sur la ligne suivante * @param string $res Un resultat d'une commande SQL precedente * @param string $nr * @return array Enregistrement suivant dans un table associatif */ Function SQL_tableau_associatif ($res, $nr) { Global $type_bdd ; Switch ($type_bdd) { Case "MySQL" : $row = array () ; $row = @MySQL_Fetch_Array ($res) ; Return $row ; Break ;; Case "mSQL" : $row = array () ; $row = @MSQL_Fetch_Array ($res) ; Return $row ; Break ;; Case "PostgreSQL" : $row = array () ; $row = @PG_Fetch_Array ($res,$nr) ; Return $row ; Break;; Default : $row = array () ; $row = @MySQL_Fetch_Array ($res) ; Return $row ; Break ;; } } /** * Fonction qui retourne le dernier id genere * @param string $table Nom de la table a tester * @param string $nom Nom du champ considere * @param string $res_id Numero de la connexion SQL * @return int Valeur maximale du champs considere */ Function SQL_dernier_id ($table, $nom, $res_id) { $requete = "SELECT max(".$nom.") FROM ".$table ; $res = SQL_commande ($requete, $res_id) ; $r = SQL_ligne_suivante ($res) ; Return $r [0] ; /* Global $type_bdd ; switch ($type_bdd) { Case "MySQL" : $res=@mysql_insert_id ($res_id) ; Return $res ; Break ;; Case "mSQL" : $res = @MSQL_Result ($res_id, $row, $mix) ; Return $res ; Break ;; Case "PostgreSQL" : $res = @PG_Result ($res_id, $row, $mix) ; Return $res ; Break ;; Default : $res = @MySQL_Insert_ID ($res_id) ; Return $res ; Break ;; } */ } /** * Fonction qui permet d'acceder directement a l'attribut $mix de la ligne $row * @param string $res_id Numero de la connexion SQL * @param string $row Ligne courante * @param string $mix Nom de l'atribut * @return mixed Resultat de l'acces */ Function SQL_acces_attribut ($res_id, $row, $mix) { Global $type_bdd ; Switch ($type_bdd) { Case "MySQL" : $res = @MySQL_Result ($res_id, $row, $mix) ; Return $res ; Break ;; Case "mSQL" : $res = @MSQL_Result ($res_id, $row, $mix) ; Return $res ; Break ;; Case "PostgreSQL" : $res = @PG_Result ($res_id, $row, $mix) ; Return $res ; Break ;; Default : $res = MySQL_Result ($res_id, $row, $mix) ; Return $res ; Break ;; } } /** * Positionne a la fin d'un enregistrement * @param string $res Un resultat d'une commande SQL precedente * @return array Dernier enregistrement */ Function SQL_positionne_fin ($resultat) { Global $type_bdd ; Global $debug_SQL ; Switch ($type_bdd) { Case "MySQL" : $ok = @MySQL_Field_Seek ($resultat) ; Break ;; Case "mSQL" : Break ;; Case "PostgreSQL" : Break ;; Default : $ok = @MySQL_Field_Seek ($resultat) ; Break ;; } Return $resultat ; } /** * Fermeture d'une connexion SQL * @param mixed $id Numero de la connexion SQL * @return mixed Booleen indiquant si la fermeture s'est bien passee */ Function SQL_fermeture ($id) { Global $type_bdd ; Global $debug_SQL ; Switch ($type_bdd) { Case "MySQL" : $res = @MySQL_Close ($id) ; Break ;; Case "mSQL" : $res = @mSQL_Close ($id) ; Break ;; Case "PostgreSQL" : $res = @PG_Close ($id) ; Break ;; Default : $res = @MySQL_Close ($id) ; Break ;; } Return $res ; } /** * Fonction permettant d'avoir les erreurs SQL * @param mixed $id Numero de la connexion SQL * @return string Erreur du SQL */ Function SQL_message_erreur ($id) { Global $type_bdd ; Switch ($type_bdd) { Case "MySQL" : $ligne = MySQL_Error() ; Break ;; Case "mSQL" : $ligne = MSQL_Error () ; Break ;; Case "PostgreSQL" : $ligne = PG_Last_Error ($id) ; Break ;; Default : $ligne = MySQL_Error () ; Break ;; } Return $ligne ; } /** * Fonction d'affichage des erreurs * @param int $numero Numero de l'erreur a afficher */ Function SQL_erreur ($numero) { Global $type_bdd, $version_garennes, $http_garennes ; $message [1] = "Erreur de connexion au serveur de base de données" ; $message [2] = "Message renvoyé par le serveur :" ; $message [3] = "Problème de connexion au serveur ".$type_bdd ; $message [4] = "Il peut être coupé, ou en maintenance..." ; Echo "" ; Echo "".$message [1]." : ".$message [$numero]."" ; Echo "" ; Echo "
v".$version_garennes."

".$message [1]."


" ; Echo $message [$numero]."
Raisons possibles : ".$message [4] ; Echo "
".$message [2]."
" ; Switch ($type_bdd) { Case "MySQL" : Echo MySQL_Error() ; Break ;; Case "mSQL" : Echo MSQL_Error () ; Break ;; Case "PostgreSQL" : Echo PG_Last_Error ($id) ; Break ;; Default : Echo MySQL_Error () ; Break ;; } Echo "

" ; Exit ; } /** * Fonction de chargement d'une table SQL * @param string $nom_fichier Emplacement et nom du fichier a charger * @param mixed $id Numero de la connexion SQL * @return mixed Booleen indiquant si le chargement s'est bien passee */ Function SQL_charge_table ($nom_fichier, $id) { Global $debug_fonction ; $requete = File ($nom_fichier) ; For ($i = 0 ; $i < SizeOf ($requete) ; $i++) { If ((SubStr ($requete [$i], 0, 1) != "#") And (Chop ($requete [$i]) != "")) { If ($debug_fonction) { Echo "REQUETE = ".Chop ($requete [$i])."
" ; } $resultats = SQL_commande (Chop ($requete [$i]), $id) ; } } } /** * Fonction qui renvoi un champ en particulier * @param string $s Nom du serveur SQL * @param string $u Identifiant de connexion SQL * @param string $p Mot de passe SQL * @param string $bdd Nom de la base de donnee * @param array $table Table de travail * @param int $num_enreg Numero de l'enregistrement * @param int $c Numero du champs a retourner * @return mixed Tableau associatif contenu du champs */ Function valeur_champ ($s, $u, $p, $bdd, $table, $num_enreg) { Global $debug_fonction ; $id = SQL_connexion ($s, $u, $p, $bdd) ; $requete = "SELECT * FROM ".$table." WHERE id='".$num_enreg."'" ; $resultat = SQL_commande ($requete, $id) ; $ok = SQL_fermeture ($id) ; $r = SQL_tableau_associatif ($resultat, "") ; If ($debug_fonction) { Echo $requete."->".$table."-".$num_enreg."=".$resultat."-".$r ["id"]."
" ; } Return $r ; } // ========================================================================================================== // GESTION CONNEXIONS // ------------------------------------------------------------------------------- Function connexion_bdd ($adresse1,$adresse2,$adresse3,$qui,$passe,$base,$port,$timeout) { // Essai de connexion sans port $id_s = SQL_connexion ($adresse1, $qui, $passe, $base, "") ; If (!$id_s) { If ($f = @FSockOpen ($adresse1, $port, $errno, $errstr, $timeout)) { FClose ($f) ; // Essai de connexion avec port $id_s = SQL_connexion ($adresse1, $qui, $passe, $base, $port) ; If (!$id_s) { If ($adresse2 != "") { // Test le serveur secondaire si existe If ($f = @FSockOpen ($adresse2, $port, $errno, $errstr, $timeout)) { FClose ($f) ; $id_s = SQL_connexion ($adresse2, $qui, $passe, $base, $port) ; } ElseIf ($adresse3 != "") { // Test le serveur tertiaire si existe If ($f = @FSockOpen ($adresse3, $port, $errno, $errstr, $timeout)) { FClose ($f) ; $id_sql = SQL_connexion ($adresse3, $qui, $passe, $base, $port) ; } } } } } } If (IsSet ($id_s)) { Return $id_s ; } Else { Return Null ; } } // ========================================================================================================== // GESTION DES DATES // ------------------------------------------------------------------------------- /** * Renvoi le millesime avec decalage ou pas * @param int $decalage Decalage par rapport a l'annee courante * @return int Millesime-Decalage-Delta_millesime (si existe) */ Function millesime ($decalage) { Global $id_sql, $delta_millesime ; $resultat = SQL_commande ("SELECT millesime FROM gestion ORDER BY millesime DESC LIMIT 1", $id_sql) ; $r = SQL_ligne_suivante ($resultat) ; $m = $r [0]-$decalage ; If (IsSet ($delta_millesime)) { $m -= $delta_millesime ; } Return $m ; } /** * Renvoi l'identifiant du millesime courant * @return int Id millesime */ Function id_millesime ($annee) { Global $id_sql ; $resultat = SQL_commande ("SELECT id_gestion FROM gestion WHERE millesime='".$annee."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $r = SQL_ligne_suivante ($resultat) ; } Else { $r [0] = 0 ; } Return $r [0] ; } /** * Renvoi la date et heure courantes sous le format : AAAA-MM-JJ HH:MM:SS * @return string Date formattee */ Function date_heure () { Return Date ("Y-m-d H:i:s", Time ()) ; } /** * Traduction d'une date JJ/MM/AAAA en AAAA-MM-JJ * @param string $madate Date a traduire en format JJ/MM/AAAA * @return string Date formattee */ Function encode_date ($madate) { $table = Explode ("/", $madate) ; $madate = $table [2]."-".$table [1]."-".$table [0] ; Return $madate ; } /** * Traduction d'une date AAAA-MM-JJ en JJ/MM/AAAA * @param string $madate Date a traduire en format AAAA-MM-JJ * @return string Date formattee */ Function decode_date_1 ($madate) { $table = Explode ("-", $madate) ; $madate = $table [2]."/".$table [1]."/".$table [0] ; Return $madate ; } /** * Traduction d'une date/heure AAAA-MM-JJ HH:MM:SS en JJ/MM * @param string $madate Date a traduire en format AAAA-MM-JJ HH:MM:SS * @return string Date formattee */ Function decode_date_2 ($madate) { $table = Explode (" ", $madate) ; $madate = $table [0] ; $table = Explode ("-", $madate) ; Return "$table[2]/$table[1]" ; } /** * Traduction d'une date/heure AAAA-MM-JJ HH:MM:SS en jour mois annee avec des espace differents de   * @param string $madate Date a traduire en format AAAA-MM-JJ HH:MM:SS * @return string Date formattee */ Function decode_date_3 ($madate) { $nom_mois [1] = "janvier" ; $nom_mois [2] = "février" ; $nom_mois [3] = "mars" ; $nom_mois [4] = "avril" ; $nom_mois [5] = "mai" ; $nom_mois [6] = "juin" ; $nom_mois [7] = "juillet" ; $nom_mois [8] = "août" ; $nom_mois [9] = "septembre" ; $nom_mois [10] = "octobre" ; $nom_mois [11] = "novembre" ; $nom_mois [12] = "décembre" ; $table = Explode ("-", $madate) ; Return ($table [2]." ".$nom_mois [(int)$table [1]]." ".$table[0]) ; } /** * Traduction d'une date/heure AAAA-MM-JJ HH:MM:SS en jour mois annee avec des espace   * @param string $madate Date a traduire en format AAAA-MM-JJ HH:MM:SS * @return string Date formattee */ Function decode_date_4 ($madate) { $nom_mois [1] = "janvier" ; $nom_mois [2] = "février" ; $nom_mois [3] = "mars" ; $nom_mois [4] = "avril" ; $nom_mois [5] = "mai" ; $nom_mois [6] = "juin" ; $nom_mois [7] = "juillet" ; $nom_mois [8] = "août" ; $nom_mois [9] = "septembre" ; $nom_mois [10] = "octobre" ; $nom_mois [11] = "novembre" ; $nom_mois [12] = "décembre" ; $madate2 = Explode (" ", $madate) ; $table = Explode ("-", $madate2 [0]) ; Return ($table [2]." ".$nom_mois [(int)$table [1]]." ".$table[0]) ; } /** * Traduction d'une date/heure AAAA-MM-JJ HH:MM:SS en heure minute avec des espace   * @param string $madate Date a traduire en format AAAA-MM-JJ HH:MM:SS * @return string Date formattee */ Function decode_date_5 ($madate) { $madate2 = Explode (" ", $madate) ; $table = Explode (":", $madate2 [1]) ; Return ($table [0]."H".$table [1]) ; } /** * Traduction d'une date/heure AAAA-MM-JJ HH:MM:SS en JJ/MM/AAAA * @param string $madate Date a traduire en format AAAA-MM-JJ HH:MM:SS * @return string Date formattee */ Function decode_date_mysql ($madate) { $madate = SubStr ($madate, 0, 10) ; $table = Explode ("-", $madate) ; Return ("$table[2]/$table[1]/$table[0]") ; } /** * Renvoie une date en francais jour mois annee format HTML * @param string $madate Date a traduire en format AAAA-MM-JJ ou AAAA-MM-JJ HH:II:SS * @return string Date formattee */ Function affiche_date ($madate) { Global $nom_mois ; $madate2 = Explode (" ", $madate) ; $table = Explode ("-", SubStr ($madate2 [0], 0, 10)) ; Return ($table [2]." ".$nom_mois [(int)$table [1]]." ".$table[0]) ; } /** * Renvoi le nom du jour d'une date/heure AAAA-MM-JJ HH:MM:SS * @param string $madate Date a traduire en format AAAA-MM-JJ HH:MM:SS * @param int $mode Mode de formattage en sortie (0:Aucun, 1:Premier lettre en majuscule) * @return string Nom du jour en format HTML */ Function jour_html ($madate, $mode) { Global $nom_jour ; $d1 = Explode (" ", $madate) ; $d2 = Explode ("-", $d1 [0]) ; $d3 = Explode (":", $d1 [1]) ; $nj = $nom_jour [(integer)Date ("w", MkTime ($d3 [0],$d3 [1],$d3 [2],$d2 [1],$d2 [2],$d2 [0]))] ; Switch ($mode) { Default : Break ; Case 1 : $nj = StrToUpper (SubSTr ($nj, 0, 1)).SubStr ($nj, 1, StrLen ($nj)-1) ; Break ; } Return $nj ; } // ========================================================================================================== // GESTION DES DROITS // ------------------------------------------------------------------------------- /** * Determine les droits utilisateur * @param string $ident Identifiant * @param string $passe Mot de passe * @return string Droit de l'utilisateur */ Function droits ($ident, $passe) { Global $auth_mode,$id_sql,$aucun_droit,$droit_eleve,$droit_secretariat,$droit_direction,$droit_admin ; Global $droit_supervision,$multi_etablissement,$multi_bases ; Global $sql_adresse_supervision,$sql_secondaire_supervision,$sql_tertiaire_supervision,$sql_qui_supervision ; Global $sql_passe_supervision,$sql_base_supervision,$sql_entete_supervision,$sql_port_supervision,$timeout ; //Global $debug_SQL ; //$debug_SQL=1; $ident = Str_Replace (" ", "", $ident) ; $ident = Str_Replace ("%20", "", $ident) ; $ident = AddSlashes ($ident) ; $passe = Str_Replace (" ", "", $passe) ; $passe = Str_Replace ("%20", "", $passe) ; $passe = AddSlashes ($passe) ; If (($ident == '') Or ($passe == '')) { Return $aucun_droit ; } /* If ($multi_etablissement == 1) { $debug_SQL=1; $id_sql_supervision = connexion_supervision ($sql_adresse_supervision,$sql_secondaire_supervision,$sql_tertiaire_supervision,$sql_qui_supervision, $sql_passe_supervision,$sql_base_supervision,$sql_entete_supervision,$sql_port_supervision,$timeout) ; If (IsSet ($id_sql_supervision)) { $resultat = SQL_commande ("SELECT droits FROM utilisateurs WHERE login='".$ident."' AND passe='".$passe."'", $id_sql_supervision) ; If (SQL_nbr_lignes ($resultat) > 0) { $ligne = SQL_ligne_suivante ($resultat) ; If ($ligne [0] == $droit_supervision) { Return $ligne [0] ; } } } } */ $millesime = millesime (0) ; Switch ($auth_mode) { Case 1 : // Est-ce un prof/admin/direction/secreteriat/cpe/surveillants (non ? -> eleve ?) $resultat = SQL_commande ("SELECT droits,millesime FROM utilisateurs WHERE login='".$ident."' AND passe='".$passe."'", $id_sql) ; $nbr = SQL_nbr_lignes ($resultat) ; If ($nbr > 0) { For ($i = 0 ; $i < $nbr ; $i++) { $ligne = SQL_ligne_suivante ($resultat) ; If ($ligne [1] != $millesime) { If (($ligne [0] == $droit_supervision) Or ($ligne [0] == $droit_admin) Or ($ligne [0] == $droit_direction) Or ($ligne [0] == $droit_secretariat)) { Return $ligne [0] ; } } ElseIf (($ligne [1] == $millesime) And ($ligne [0] > 0)) { Return $ligne [0] ; } Else { Return $aucun_droit ; } } } Else { // Sinon est-ce un eleve $resultat = SQL_commande ("SELECT id_eleve FROM eleves WHERE login='".$ident."' AND passe='".$passe."' AND millesime='".$millesime."' AND exterieur>='0'", $id_sql) ; If (SQL_nbr_lignes ($resultat) > 0) { If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; If ($ligne) { Return $droit_eleve ; } Else { Return $aucun_droit ; } } Else { Return $aucun_droit ; } } } Break ; Case 2 : // Authentification MySQL Break ; Case 3 : // Authentification LDAP Break ; } } // =============================================================================== // GESTION DES VARIABLES // ------------------------------------------------------------------------------- /** * Fonction de filtrage des variables venant d'un formulaire a destination du SQL * @param string $nom Variable a filtrer * @return string Variable filtree */ Function filtrage ($nom) { $nom = StripSlashes (Trim ($nom)) ; $nom = AddSlashes (StrTr ($nom, Chr (145).Chr (146).Chr (147).Chr (148).Chr (150).Chr (151).Chr (180), "''\"\"--'")) ; $nom = Str_Replace (Chr (133), "...", $nom) ; Return $nom ; } /** * Fonction de filtrage des accents : elimine * @param string $nom Variable a filtrer * @return string Variable filtree */ Function filtrage_accents ($nom) { $car1 = "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÉÈÊËÀÂÄÙÛÜ" ; $car2 = "CueaaaaceeeiiiAAEæÆooouuEEEEAAAUUU" ; For ($i = 0 ; $i < StrLen ($car1) ; $i++) { $nom = Str_Replace ($car1 [$i], $car2 [$i], $nom) ; } Return $nom ; } /** * Fonction de filtrage des accents : passe en majuscule * @param string $nom Variable a filtrer * @return string Variable filtree */ Function filtrage_accents_maj ($nom) { $car1 = "àáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ" ; $car2 = "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝY" ; For ($i = 0 ; $i < StrLen ($car1) ; $i++) { $nom = Str_Replace ($car1 [$i], $car2 [$i], $nom) ; } Return $nom ; } /** * Fonction de traduction des caracteres UTF8 * @param string $texte Variable a filtrer * @return string Variable filtree */ Function filtrage_utf8 ($texte) { //$texte = iconv ("UTF-8","ISO-8859-1//TRANSLIT",$texte) ; $table_utf8 = "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ" ; $double_utf8 [0][0] = 129 ; $double_utf8 [1][0] = Chr (192) ; $double_utf8 [1][1] = Chr (195).Chr (128) ; $double_utf8 [2][0] = Chr (193) ; $double_utf8 [2][1] = Chr (195).Chr (129) ; $double_utf8 [3][0] = Chr (194) ; $double_utf8 [3][1] = Chr (195).Chr (130) ; $double_utf8 [4][0] = Chr (195) ; $double_utf8 [4][1] = Chr (195).Chr (131) ; $double_utf8 [5][0] = Chr (196) ; $double_utf8 [5][1] = Chr (195).Chr (132) ; $double_utf8 [6][0] = Chr (197) ; $double_utf8 [6][1] = Chr (195).Chr (133) ; $double_utf8 [7][0] = Chr (198) ; $double_utf8 [7][1] = Chr (195).Chr (134) ; $double_utf8 [8][0] = Chr (199) ; $double_utf8 [8][1] = Chr (195).Chr (135) ; $double_utf8 [9][0] = Chr (200) ; $double_utf8 [9][1] = Chr (195).Chr (136) ; $double_utf8 [10][0] = Chr (201) ; $double_utf8 [10][1] = Chr (195).Chr (137) ; $double_utf8 [11][0] = Chr (202) ; $double_utf8 [11][1] = Chr (195).Chr (138) ; $double_utf8 [12][0] = Chr (203) ; $double_utf8 [12][1] = Chr (195).Chr (139) ; $double_utf8 [13][0] = Chr (204) ; $double_utf8 [13][1] = Chr (195).Chr (140) ; $double_utf8 [14][0] = Chr (205) ; $double_utf8 [14][1] = Chr (195).Chr (141) ; $double_utf8 [15][0] = Chr (206) ; $double_utf8 [15][1] = Chr (195).Chr (142) ; $double_utf8 [16][0] = Chr (207) ; $double_utf8 [16][1] = Chr (195).Chr (143) ; $double_utf8 [17][0] = Chr (208) ; $double_utf8 [17][1] = Chr (195).Chr (144) ; $double_utf8 [18][0] = Chr (209) ; $double_utf8 [18][1] = Chr (195).Chr (145) ; $double_utf8 [19][0] = Chr (210) ; $double_utf8 [19][1] = Chr (195).Chr (146) ; $double_utf8 [20][0] = Chr (211) ; $double_utf8 [20][1] = Chr (195).Chr (147) ; $double_utf8 [21][0] = Chr (212) ; $double_utf8 [21][1] = Chr (195).Chr (148) ; $double_utf8 [22][0] = Chr (213) ; $double_utf8 [22][1] = Chr (195).Chr (149) ; $double_utf8 [23][0] = Chr (214) ; $double_utf8 [23][1] = Chr (195).Chr (150) ; $double_utf8 [24][0] = Chr (215) ; $double_utf8 [24][1] = Chr (195).Chr (151) ; $double_utf8 [25][0] = Chr (216) ; $double_utf8 [25][1] = Chr (195).Chr (152) ; $double_utf8 [26][0] = Chr (217) ; $double_utf8 [26][1] = Chr (195).Chr (153) ; $double_utf8 [27][0] = Chr (218) ; $double_utf8 [27][1] = Chr (195).Chr (154) ; $double_utf8 [28][0] = Chr (219) ; $double_utf8 [28][1] = Chr (195).Chr (155) ; $double_utf8 [29][0] = Chr (220) ; $double_utf8 [29][1] = Chr (195).Chr (156) ; $double_utf8 [30][0] = Chr (221) ; $double_utf8 [30][1] = Chr (195).Chr (157) ; $double_utf8 [31][0] = Chr (222) ; $double_utf8 [31][1] = Chr (195).Chr (158) ; $double_utf8 [32][0] = Chr (223) ; $double_utf8 [32][1] = Chr (195).Chr (159) ; $double_utf8 [33][0] = Chr (224) ; $double_utf8 [33][1] = Chr (195).Chr (160) ; $double_utf8 [34][0] = Chr (225) ; $double_utf8 [34][1] = Chr (195).Chr (161) ; $double_utf8 [35][0] = Chr (226) ; $double_utf8 [35][1] = Chr (195).Chr (162) ; $double_utf8 [36][0] = Chr (227) ; $double_utf8 [36][1] = Chr (195).Chr (163) ; $double_utf8 [37][0] = Chr (228) ; $double_utf8 [37][1] = Chr (195).Chr (164) ; $double_utf8 [38][0] = Chr (229) ; $double_utf8 [38][1] = Chr (195).Chr (165) ; $double_utf8 [39][0] = Chr (230) ; $double_utf8 [39][1] = Chr (195).Chr (166) ; $double_utf8 [40][0] = Chr (231) ; $double_utf8 [40][1] = Chr (195).Chr (167) ; $double_utf8 [41][0] = Chr (232) ; $double_utf8 [41][1] = Chr (195).Chr (168) ; $double_utf8 [42][0] = Chr (233) ; $double_utf8 [42][1] = Chr (195).Chr (169) ; $double_utf8 [43][0] = Chr (234) ; $double_utf8 [43][1] = Chr (195).Chr (170) ; $double_utf8 [44][0] = Chr (235) ; $double_utf8 [44][1] = Chr (195).Chr (171) ; $double_utf8 [45][0] = Chr (236) ; $double_utf8 [45][1] = Chr (195).Chr (172) ; $double_utf8 [46][0] = Chr (237) ; $double_utf8 [46][1] = Chr (195).Chr (173) ; $double_utf8 [47][0] = Chr (238) ; $double_utf8 [47][1] = Chr (195).Chr (174) ; $double_utf8 [48][0] = Chr (239) ; $double_utf8 [48][1] = Chr (195).Chr (175) ; $double_utf8 [49][0] = Chr (240) ; $double_utf8 [49][1] = Chr (195).Chr (176) ; $double_utf8 [50][0] = Chr (241) ; $double_utf8 [50][1] = Chr (195).Chr (177) ; $double_utf8 [51][0] = Chr (242) ; $double_utf8 [51][1] = Chr (195).Chr (178) ; $double_utf8 [52][0] = Chr (243) ; $double_utf8 [52][1] = Chr (195).Chr (179) ; $double_utf8 [53][0] = Chr (244) ; $double_utf8 [53][1] = Chr (195).Chr (180) ; $double_utf8 [54][0] = Chr (245) ; $double_utf8 [54][1] = Chr (195).Chr (181) ; $double_utf8 [55][0] = Chr (246) ; $double_utf8 [55][1] = Chr (195).Chr (182) ; $double_utf8 [56][0] = Chr (247) ; $double_utf8 [56][1] = Chr (195).Chr (183) ; $double_utf8 [57][0] = Chr (248) ; $double_utf8 [57][1] = Chr (195).Chr (184) ; $double_utf8 [58][0] = Chr (249) ; $double_utf8 [58][1] = Chr (195).Chr (185) ; $double_utf8 [59][0] = Chr (250) ; $double_utf8 [59][1] = Chr (195).Chr (186) ; $double_utf8 [60][0] = Chr (251) ; $double_utf8 [60][1] = Chr (195).Chr (187) ; $double_utf8 [61][0] = Chr (252) ; $double_utf8 [61][1] = Chr (195).Chr (188) ; $double_utf8 [62][0] = Chr (253) ; $double_utf8 [62][1] = Chr (195).Chr (189) ; $double_utf8 [63][0] = Chr (254) ; $double_utf8 [63][1] = Chr (195).Chr (190) ; $double_utf8 [64][0] = Chr (255) ; $double_utf8 [64][1] = Chr (195).Chr (191) ; $double_utf8 [65][0] = Chr (128) ; $double_utf8 [65][1] = Chr (194).Chr (128) ; $double_utf8 [66][0] = Chr (129) ; $double_utf8 [66][1] = Chr (194).Chr (129) ; $double_utf8 [67][0] = Chr (130) ; $double_utf8 [67][1] = Chr (194).Chr (130) ; $double_utf8 [68][0] = Chr (131) ; $double_utf8 [68][1] = Chr (194).Chr (131) ; $double_utf8 [69][0] = Chr (132) ; $double_utf8 [69][1] = Chr (194).Chr (132) ; $double_utf8 [70][0] = Chr (133) ; $double_utf8 [70][1] = Chr (194).Chr (133) ; $double_utf8 [71][0] = Chr (134) ; $double_utf8 [71][1] = Chr (194).Chr (134) ; $double_utf8 [72][0] = Chr (135) ; $double_utf8 [72][1] = Chr (194).Chr (135) ; $double_utf8 [73][0] = Chr (136) ; $double_utf8 [73][1] = Chr (194).Chr (136) ; $double_utf8 [74][0] = Chr (137) ; $double_utf8 [74][1] = Chr (194).Chr (137) ; $double_utf8 [75][0] = Chr (138) ; $double_utf8 [75][1] = Chr (194).Chr (138) ; $double_utf8 [76][0] = Chr (139) ; $double_utf8 [76][1] = Chr (194).Chr (139) ; $double_utf8 [77][0] = Chr (140) ; $double_utf8 [77][1] = Chr (194).Chr (140) ; $double_utf8 [78][0] = Chr (141) ; $double_utf8 [78][1] = Chr (194).Chr (141) ; $double_utf8 [79][0] = Chr (142) ; $double_utf8 [79][1] = Chr (194).Chr (142) ; $double_utf8 [80][0] = Chr (143) ; $double_utf8 [80][1] = Chr (194).Chr (143) ; $double_utf8 [81][0] = Chr (144) ; $double_utf8 [81][1] = Chr (194).Chr (144) ; $double_utf8 [82][0] = Chr (145) ; $double_utf8 [82][1] = Chr (194).Chr (145) ; $double_utf8 [83][0] = Chr (146) ; $double_utf8 [83][1] = Chr (194).Chr (146) ; $double_utf8 [84][0] = Chr (147) ; $double_utf8 [84][1] = Chr (194).Chr (147) ; $double_utf8 [85][0] = Chr (148) ; $double_utf8 [85][1] = Chr (194).Chr (148) ; $double_utf8 [86][0] = Chr (149) ; $double_utf8 [86][1] = Chr (194).Chr (149) ; $double_utf8 [87][0] = Chr (150) ; $double_utf8 [87][1] = Chr (194).Chr (150) ; $double_utf8 [88][0] = Chr (151) ; $double_utf8 [88][1] = Chr (194).Chr (151) ; $double_utf8 [89][0] = Chr (152) ; $double_utf8 [89][1] = Chr (194).Chr (152) ; $double_utf8 [90][0] = Chr (153) ; $double_utf8 [90][1] = Chr (194).Chr (153) ; $double_utf8 [91][0] = Chr (154) ; $double_utf8 [91][1] = Chr (194).Chr (154) ; $double_utf8 [92][0] = Chr (155) ; $double_utf8 [92][1] = Chr (194).Chr (155) ; $double_utf8 [93][0] = Chr (156) ; $double_utf8 [93][1] = Chr (194).Chr (156) ; $double_utf8 [94][0] = Chr (157) ; $double_utf8 [94][1] = Chr (194).Chr (157) ; $double_utf8 [95][0] = Chr (158) ; $double_utf8 [95][1] = Chr (194).Chr (158) ; $double_utf8 [96][0] = Chr (159) ; $double_utf8 [96][1] = Chr (194).Chr (159) ; $double_utf8 [97][0] = Chr (160) ; $double_utf8 [97][1] = Chr (194).Chr (160) ; $double_utf8 [98][0] = Chr (161) ; $double_utf8 [98][1] = Chr (194).Chr (161) ; $double_utf8 [99][0] = Chr (162) ; $double_utf8 [99][1] = Chr (194).Chr (162) ; $double_utf8 [100][0] = Chr (163) ; $double_utf8 [100][1] = Chr (194).Chr (163) ; $double_utf8 [101][0] = Chr (164) ; $double_utf8 [101][1] = Chr (226).Chr (130).Chr (172) ; $double_utf8 [102][0] = Chr (165) ; $double_utf8 [102][1] = Chr (194).Chr (165) ; $double_utf8 [103][0] = Chr (166) ; $double_utf8 [103][1] = Chr (197).Chr (160) ; $double_utf8 [104][0] = Chr (167) ; $double_utf8 [104][1] = Chr (194).Chr (167) ; $double_utf8 [105][0] = Chr (168) ; $double_utf8 [105][1] = Chr (197).Chr (161) ; $double_utf8 [106][0] = Chr (169) ; $double_utf8 [106][1] = Chr (194).Chr (169) ; $double_utf8 [107][0] = Chr (170) ; $double_utf8 [107][1] = Chr (194).Chr (170) ; $double_utf8 [108][0] = Chr (171) ; $double_utf8 [108][1] = Chr (194).Chr (171) ; $double_utf8 [109][0] = Chr (172) ; $double_utf8 [109][1] = Chr (194).Chr (172) ; $double_utf8 [110][0] = Chr (173) ; $double_utf8 [110][1] = Chr (194).Chr (173) ; $double_utf8 [111][0] = Chr (174) ; $double_utf8 [111][1] = Chr (194).Chr (174) ; $double_utf8 [112][0] = Chr (175) ; $double_utf8 [112][1] = Chr (194).Chr (175) ; $double_utf8 [113][0] = Chr (176) ; $double_utf8 [113][1] = Chr (194).Chr (176) ; $double_utf8 [114][0] = Chr (177) ; $double_utf8 [114][1] = Chr (194).Chr (177) ; $double_utf8 [115][0] = Chr (178) ; $double_utf8 [115][1] = Chr (194).Chr (178) ; $double_utf8 [116][0] = Chr (179) ; $double_utf8 [116][1] = Chr (194).Chr (179) ; $double_utf8 [117][0] = Chr (180) ; $double_utf8 [117][1] = Chr (197).Chr (189) ; $double_utf8 [118][0] = Chr (181) ; $double_utf8 [118][1] = Chr (194).Chr (181) ; $double_utf8 [119][0] = Chr (182) ; $double_utf8 [119][1] = Chr (194).Chr (182) ; $double_utf8 [120][0] = Chr (183) ; $double_utf8 [120][1] = Chr (194).Chr (183) ; $double_utf8 [121][0] = Chr (184) ; $double_utf8 [121][1] = Chr (197).Chr (190) ; $double_utf8 [122][0] = Chr (185) ; $double_utf8 [122][1] = Chr (194).Chr (185) ; $double_utf8 [123][0] = Chr (186) ; $double_utf8 [123][1] = Chr (194).Chr (186) ; $double_utf8 [124][0] = Chr (187) ; $double_utf8 [124][1] = Chr (194).Chr (187) ; $double_utf8 [125][0] = Chr (188) ; $double_utf8 [125][1] = Chr (197).Chr (146) ; $double_utf8 [126][0] = Chr (189) ; $double_utf8 [126][1] = Chr (197).Chr (147) ; $double_utf8 [127][0] = Chr (190) ; $double_utf8 [127][1] = Chr (197).Chr (184) ; $double_utf8 [128][0] = Chr (191) ; $double_utf8 [128][1] = Chr (194).Chr (191) ; $double_utf8 [129][0] = Chr (168) ; $double_utf8 [129][1] = Chr (194).Chr (168) ; // Cas particuliers /* $texte = Str_Replace (Chr (195).Chr (175).Chr (194).Chr (191).Chr (194).Chr (189).Chr (63).Chr (195).Chr (130).Chr (194).Chr (169), Chr (233), $texte) ; // e aigu $texte = Str_Replace (Chr (195).Chr (175).Chr (194).Chr (191).Chr (194).Chr (189).Chr (63).Chr (195).Chr (130).Chr (194).Chr (168), Chr (232), $texte) ; // e grave $texte = Str_Replace (Chr (195).Chr (175).Chr (194).Chr (191).Chr (194).Chr (189).Chr (63).Chr (195).Chr (130).Chr (194).Chr (174), Chr (238), $texte) ; // i trema $texte = Str_Replace (Chr (195).Chr (175).Chr (194).Chr (191).Chr (194).Chr (189).Chr (63).Chr (195).Chr (130).Chr (194).Chr (160), Chr (224), $texte) ; // a grave $texte = Str_Replace (Chr (195).Chr (175).Chr (194).Chr (191).Chr (194).Chr (189).Chr (63), Chr (200), $texte) ; // E grave $texte = Str_Replace (Chr (195).Chr (0).Chr (63).Chr (195).Chr (0).Chr (194).Chr (169), Chr (233), $texte) ; // e aigu $texte = Str_Replace (Chr (195).Chr (175).Chr (194).Chr (191).Chr (194).Chr (189), Chr (233), $texte) ; // e aigu $texte = Str_Replace (Chr (195).Chr (131).Chr (63).Chr (195).Chr (130).Chr (194).Chr (169), Chr (233), $texte) ; // e aigu $texte = Str_Replace (Chr (195).Chr (131).Chr (63).Chr (195).Chr (130).Chr (194).Chr (174), Chr (238), $texte) ; // i trema $texte = Str_Replace (Chr (195).Chr (131).Chr (63).Chr (195).Chr (130).Chr (194).Chr (168), Chr (232), $texte) ; // e grave $texte = Str_Replace (Chr (239).Chr (191).Chr (189).Chr (63), Chr (200), $texte) ; // E grave $texte = Str_Replace (Chr (195).Chr (131).Chr (194).Chr (180), Chr (244), $texte) ; // o circ $texte = Str_Replace (Chr (195).Chr (131).Chr (63), Chr (244), $texte) ; // o circ $texte = Str_Replace (Chr (195).Chr (131).Chr (39), Chr (244), $texte) ; // o circ $texte = Str_Replace (Chr (239).Chr (191).Chr (189), Chr (233), $texte) ; // e aigu $texte = Str_Replace (Chr (195).Chr (39), Chr (244), $texte) ; // o circ */ $texte = Str_Replace (Chr (195).Chr (131).Chr (194).Chr (175).Chr (195).Chr (130).Chr (194).Chr (191).Chr (195).Chr (130).Chr (194).Chr (189).Chr (195).Chr (131).Chr (63).Chr (195).Chr (130).Chr (194).Chr (169), Chr (233), $texte) ; // e aigu $texte = Str_Replace (Chr (195).Chr (175).Chr (194).Chr (191).Chr (194).Chr (189).Chr (63).Chr (195).Chr (130).Chr (194).Chr (169), Chr (233), $texte) ; // e aigu $texte = Str_Replace (Chr (195).Chr (175).Chr (194).Chr (191).Chr (194).Chr (189).Chr (63).Chr (195).Chr (130).Chr (194).Chr (168), Chr (232), $texte) ; // e grave $texte = Str_Replace (Chr (195).Chr (175).Chr (194).Chr (191).Chr (194).Chr (189).Chr (63).Chr (195).Chr (130).Chr (194).Chr (174), Chr (238), $texte) ; // i trema $texte = Str_Replace (Chr (195).Chr (175).Chr (194).Chr (191).Chr (194).Chr (189).Chr (63).Chr (195).Chr (130).Chr (194).Chr (160), Chr (224), $texte) ; // a grave $texte = Str_Replace (Chr (195).Chr (175).Chr (194).Chr (191).Chr (194).Chr (189).Chr (63), Chr (200), $texte) ; // E grave $texte = Str_Replace (Chr (195).Chr (0).Chr (63).Chr (195).Chr (0).Chr (194).Chr (169), Chr (233), $texte) ; // e aigu $texte = Str_Replace (Chr (195).Chr (131).Chr (63).Chr (195).Chr (130).Chr (194).Chr (160), Chr (224), $texte) ; // a grave $texte = Str_Replace (Chr (195).Chr (131).Chr (63).Chr (195).Chr (130).Chr (194).Chr (162), Chr (226), $texte) ; // a circ $texte = Str_Replace (Chr (195).Chr (131).Chr (63).Chr (195).Chr (130).Chr (194).Chr (167), Chr (231), $texte) ; // c cedil $texte = Str_Replace (Chr (195).Chr (131).Chr (63).Chr (195).Chr (130).Chr (194).Chr (168), Chr (232), $texte) ; // e grave $texte = Str_Replace (Chr (195).Chr (131).Chr (63).Chr (195).Chr (130).Chr (194).Chr (169), Chr (233), $texte) ; // e aigu $texte = Str_Replace (Chr (195).Chr (131).Chr (63).Chr (195).Chr (130).Chr (194).Chr (170), Chr (234), $texte) ; // e circ $texte = Str_Replace (Chr (195).Chr (131).Chr (63).Chr (195).Chr (130).Chr (194).Chr (174), Chr (238), $texte) ; // i trema $texte = Str_Replace (Chr (195).Chr (175).Chr (194).Chr (191).Chr (194).Chr (189), Chr (233), $texte) ; // e aigu $texte = Str_Replace (Chr (239).Chr (191).Chr (189).Chr (63), Chr (200), $texte) ; // E grave $texte = Str_Replace (Chr (195).Chr (131).Chr (194).Chr (180), Chr (244), $texte) ; // o circ $texte = Str_Replace (Chr (195).Chr (131).Chr (63).Chr (39), Chr (244), $texte) ; // o circ $texte = Str_Replace (Chr (195).Chr (131).Chr (39), Chr (244), $texte) ; // o circ $texte = Str_Replace (Chr (239).Chr (191).Chr (189), Chr (233), $texte) ; // e aigu //$texte = Str_Replace (Chr (195).Chr (39), Chr (244), $texte) ; // o circ For ($i = 1 ; $i <= $double_utf8 [0][0] ; $i++) { $texte = Str_Replace ($double_utf8 [$i][1], $double_utf8 [$i][0], $texte) ; } For ($i = 1 ; $i <= $double_utf8 [0][0] ; $i++) { $texte = Str_Replace ($double_utf8 [$i][1], $double_utf8 [$i][0], $texte) ; } For ($i = 0 ; $i < 64 ; $i++) { $texte = Str_Replace (Chr (195).Chr (128+$i), $table_utf8 [$i], $texte) ; } $texte = Str_Replace (Chr (195).Chr (63).Chr (160), Chr (224), $texte) ; // a grave $texte = Str_Replace (Chr (195).Chr (63).Chr (169), Chr (233), $texte) ; // e aigu $texte = Str_Replace (Chr (195).Chr (63).Chr (168), Chr (232), $texte) ; // e grave $texte = Str_Replace (Chr (195).Chr (63).Chr (174), Chr (238), $texte) ; // i trema Return $texte ; } /** * Sauvegarde d'une variable personnelle dans la bdd, table configuration * @param string $identification Identifiant unique de la variable pour la retrouver * @param string $nom Nom de la variable * @param string $indice Indice ou nom supplementaire * @param string $valeur Valeur de la variable * @return int 1=MAJ, 2=Creation */ Function sauvegarde_configuration ($identification, $nom, $indice, $valeur) { Global $id_sql ; $ok = 0 ; $res = SQL_commande ("SELECT id_configuration FROM configuration WHERE identification='".$identification."' AND nom='".$nom."' AND indice='".$indice."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($res) == 1) { // Existe $conf = SQL_ligne_suivante ($res) ; $res = SQL_commande ("UPDATE configuration SET valeur='".$valeur."' WHERE id_configuration='".$conf [0]."' LIMIT 1", $id_sql) ; $ok = 1 ; } Else { // N'existe pas -> insertion $res = SQL_commande ("INSERT INTO configuration (identification,nom,indice,valeur,millesime) VALUES ('".$identification."','".$nom."','".$indice."','".$valeur."','".millesime (0)."')", $id_sql) ; $ok = 2 ; } Return $ok ; } /** * Restauration de la valeur d'une variable dans la bdd, table configuration * @param string $identification Identifiant unique de la variable pour la retrouver * @param string $nom Nom de la variable * @param string $indice Indice ou nom supplementaire * @return string Valeur de la variable (si n'existe pas retourne une chaine vide) */ Function restaure_configuration ($identification, $nom, $indice) { Global $id_sql ; $res = SQL_commande ("SELECT valeur FROM configuration WHERE identification='".$identification."' AND nom='".$nom."' AND indice='".$indice."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($res) == 1) { $v = SQL_ligne_suivante ($res) ; } Else { $v [0] = "" ; } Return $v [0] ; } /** * Efface la variable dans la bdd, table configuration * @param string $identification Identifiant unique de la variable pour la retrouver * @param string $nom Nom de la variable * @param string $indice Indice ou nom supplementaire */ Function detruire_configuration ($identification, $nom, $indice) { Global $id_sql ; $res = SQL_commande ("DELETE FROM configuration WHERE identification='".$identification."' AND nom='".$nom."' AND indice='".$indice."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; } /** * Retrouve la valeur de la variable courant passee en POST ou GET * @param string $nom Nom de la variable * @param int $mode Mode=0:POST et GET,1:POST,2:GET * @param mixed $defaut Valeur par defaut si non trouvee * @return mixed Contenu de la variable */ Function var_courante ($nom, $mode, $defaut) { Global $debug_SQL, $debug_fonction ; Switch ($mode) { Default : Case 0 : $variable = IsSet ($_POST [$nom]) ? $_POST [$nom] : (IsSet ($_GET [$nom]) ? $_GET [$nom] : $defaut) ; Break ; Case 1 : $variable = IsSet ($_POST [$nom]) ? $_POST [$nom] : $defaut ; Break ; Case 2 : $variable = IsSet ($_GET [$nom]) ? $_GET [$nom] : $defaut ; Break ; } If ($debug_fonction == 1) { Echo "Variable \$".$nom." = ".$variable."
" ; } Return $variable ; } /* Retrouve le premier RNE de l'etablisement gere * @param int $millesime Annee * @return string Numero RNE premier etablissement trouve */ Function retrouve_rne ($millesime) { Global $id_sql ; $v [0] = restaure_configuration ("SYSTEME_PARAM", "RNE", "GESTION") ; If ($v [0] == "") { $res = SQL_commande ("SELECT numero FROM etablissements WHERE numero!='' AND millesime='".$millesime."' ORDER BY numero LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($res) == 1) { $v = SQL_ligne_suivante ($res) ; sauvegarde_configuration ("SYSTEME_PARAM", "RNE", "GESTION", $v [0]) ; } Else { $v [0] = "" ; sauvegarde_configuration ("SYSTEME_PARAM", "RNE", "GESTION", Session_Id ()) ; } } Return $v [0] ; } // =============================================================================== // GESTION DES DISCIPLINES // ------------------------------------------------------------------------------- /** * Renvoi la valeur d'id_discipline la plus elevee * @return int Valeur MAX de l'id_discipline */ Function max_disciplines () { Global $id_sql ; $resultat = SQL_commande ("SELECT max(id_discipline) FROM disciplines WHERE millesime='".millesime (0)."'", $id_sql) ; $ligne = SQL_ligne_suivante ($resultat) ; Return $ligne [0] ; } /** * Renvoi le nom du champ $nom de la discipline $i * @param string $nom Nom du champs a renvoyer * @param int $id_discipline Id unique de la discipline * @return string Valeur du champ */ Function nom_disc_parid ($nom, $id_discipline) { Global $id_sql ; $resultat = SQL_commande ("SELECT ".$nom." FROM disciplines WHERE id_discipline='".$id_discipline."' LIMIT 1", $id_sql) ; $ligne = SQL_ligne_suivante ($resultat) ; Return filtrage_utf8 ($ligne [0]) ; } /** * Renvoi le contenu d'un champ $nom_champ de la discipline $i * @param string $nom_champ Nom du champs a renvoyer * @param int $id_discipline Id unique de la discipline * @return string Valeur du champ sans filtrage */ Function champ_disc_parid ($nom_champ, $id_discipline) { Global $id_sql ; $resultat = SQL_commande ("SELECT ".$nom_champ." FROM disciplines WHERE id_discipline='".$id_discipline."' LIMIT 1", $id_sql) ; $ligne = SQL_ligne_suivante ($resultat) ; Return $ligne [0] ; } /** * Renvoi le nom LONG de la discipline * @param int $i Id unique de la discipline * @return string Valeur du champ */ Function nom_disc_long_parid ($i) { Return nom_disc_parid ("nom_long", $i) ; } /** * Renvoi le nom COURT de la discipline * @param int $i Id unique de la discipline * @return string Valeur du champ */ Function nom_disc_court_parid ($i) { Return nom_disc_parid ("nom_court", $i) ; } /** * Renvoi le nom BREF de la discipline * @param int $i Id unique de la discipline * @return string Valeur du champ */ Function nom_disc_bref_parid ($i) { Return nom_disc_parid ("nom_bref", $i) ; } /** * Renvoi le contenu du champ type_discipline de la discipline * @param int $i Id unique de la discipline * @return string Valeur du champ */ Function champ_disc_type_discipline_parid ($i) { Return champ_disc_parid ("type_discipline", $i) ; } /** * Renvoi le contenu du champ type_moyenne de la discipline * @param int $i Id unique de la discipline * @return string Valeur du champ */ Function champ_disc_type_moyenne_parid ($i) { Return champ_disc_parid ("type_moyenne", $i) ; } /** * Renvoi le contenu du champ type_arrondi de la discipline * @param int $i Id unique de la discipline * @return string Valeur du champ */ Function champ_disc_type_arrondi_parid ($i) { Return champ_disc_parid ("type_arrondi", $i) ; } /** * Renvoi le contenu du champ type_discipline de la discipline * @param int $id_service_prof Identifiant unique du service prof * @return string Valeur du champ */ Function champ_disc_type_discipline_par_service_prof ($id_service_prof) { Global $id_sql ; $res = SQL_commande ("SELECT discipline FROM services_prof WHERE id_service_prof='".$id_service_prof."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($res) == 1) { $r = SQL_ligne_suivante ($res) ; Return champ_disc_parid ("type_discipline", $r [0]) ; } Else { Return 0 ; } } /** * Renvoi le contenu du champ type_moyenne de la discipline * @param int $id_service_prof Identifiant unique du service prof * @return string Valeur du champ */ Function champ_disc_type_moyenne_par_service_prof ($id_service_prof) { Global $id_sql ; $res = SQL_commande ("SELECT discipline FROM services_prof WHERE id_service_prof='".$id_service_prof."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($res) == 1) { $r = SQL_ligne_suivante ($res) ; Return champ_disc_parid ("type_moyenne", $r [0]) ; } Else { Return 0 ; } } /** * Renvoi le contenu du champ type_arrondi de la discipline * @param int $id_service_prof Identifiant unique du service prof * @return string Valeur du champ */ Function champ_disc_type_arrondi_par_service_prof ($id_service_prof) { Global $id_sql ; $res = SQL_commande ("SELECT discipline FROM services_prof WHERE id_service_prof='".$id_service_prof."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($res) == 1) { $r = SQL_ligne_suivante ($res) ; Return champ_disc_parid ("type_arrondi", $r [0]) ; } Else { Return 0 ; } } /** * Renvoi 0 si non optionnel et 1 si optionnel * @param int $d Id unique de la discipline correspondante * @param int $c Id unique de la classe a traiter * @param int $sc Id unique du service classe * @return int Valeur du champ optionnelle si existe, sinon -1 */ Function estoptionnelle ($d, $c, $sc) { Global $id_sql ; $resultat = SQL_commande ("SELECT optionnelle FROM services_classe WHERE classe='".$c."' AND discipline='".$d."' AND id_service_classe='".$sc."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) > 0) { $ligne = SQL_ligne_suivante ($resultat) ; Return $ligne [0] ; } Else { Return 0 ; } } /** * Renvoi le nom long de la discipline en fonction de l'identifiant du service prof * @param int $id_service_prof Identifiant du service prof * @return string Valeur du champ */ Function nom_discipline_long_par_id_service_prof ($id_service_prof) { Global $id_sql ; If ($id_service_prof > 0) { $resultat = SQL_commande ("SELECT d.nom_long FROM disciplines d,services_prof s WHERE d.id_discipline=s.discipline AND s.id_service_prof='".$id_service_prof."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return filtrage_utf8 ($ligne [0]) ; } Else { Return "" ; } } Else { Return "" ; } } /** * Renvoi le nom court de la discipline en fonction de l'identifiant du service prof * @param int $id_service_prof Identifiant du service prof * @return string Valeur du champ */ Function nom_discipline_court_par_id_service_prof ($id_service_prof) { Global $id_sql ; If ($id_service_prof > 0) { $resultat = SQL_commande ("SELECT d.nom_court FROM disciplines d,services_prof s WHERE d.id_discipline=s.discipline AND s.id_service_prof='".$id_service_prof."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return filtrage_utf8 ($ligne [0]) ; } Else { Return "" ; } } Else { Return "" ; } } /** * Renvoi le nom bref de la discipline en fonction de l'identifiant du service prof * @param int $id_service_prof Identifiant du service prof * @return string Valeur du champ */ Function nom_discipline_bref_par_id_service_prof ($id_service_prof) { Global $id_sql ; If ($id_service_prof > 0) { $resultat = SQL_commande ("SELECT d.nom_bref FROM disciplines d,services_prof s WHERE d.id_discipline=s.discipline AND s.id_service_prof='".$id_service_prof."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return filtrage_utf8 ($ligne [0]) ; } Else { Return "" ; } } Else { Return "" ; } } // =============================================================================== // GESTION DES GROUPES // ------------------------------------------------------------------------------- /** * Renvoi le nom du groupe d'ID $id_groupe * @param int $id_groupe Id unique du groupe classe a traiter * @return string Valeur du champ */ Function nom_groupe_parid ($id_groupe) { Global $id_sql ; $resultat = SQL_commande ("SELECT code_groupe FROM groupes_classe WHERE id_groupe_classe='".$id_groupe."'", $id_sql) ; $ligne = SQL_ligne_suivante ($resultat) ; Return $ligne [0] ; } /** * Renvoi 0 si n'appartient pas au groupe et 1 sinon * @param int $id_el Id unique de l'eleve * @param int $id_groupe Id unique du groupe a traiter * @return int 0 ou 1 */ Function appartient_au_groupe ($id_el, $id_groupe) { Global $id_sql ; If ($id_groupe > 0) { $resultat = SQL_commande ("SELECT id_groupe_eleve FROM groupes_eleve WHERE eleve='".$id_el."' AND groupe='".$id_groupe."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { Return 1 ; } Else { Return 0 ; } } Else { Return 0 ; } } // =============================================================================== // GESTION DES SERVICES // ------------------------------------------------------------------------------- /** * Renvoi la structure pedagogique d'une classe * @param int $id_classe Id unique de la classe * @return mixed Structure (retour directe du SQL) */ Function structure_pedagogique ($id_classe) { Global $id_sql ; // Recherche classement ou pas $resultat = SQL_commande ("SELECT classement FROM classes WHERE id_classe='".$id_classe."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; $res = SQL_ligne_suivante ($resultat) ; If ($res [0] == 1) { $resultat = SQL_commande ("SELECT d.nom_court,d.nom_long,s.optionnelle,s.groupe,s.id_service_classe, p.coefficient,p.professeur,p.numen_prof,p.id_service_prof,p.groupe_classe, p.discipline,p.sous_discipline,a.coefficient_vs FROM disciplines d,services_classe s,services_prof p,classement c,classes a WHERE s.classe='".$id_classe."' AND p.classe=s.classe AND s.discipline=d.id_discipline AND p.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe AND a.id_classe='".$id_classe."' AND a.millesime='".millesime (0)."' ORDER BY c.numero", $id_sql) ; $res [0] = SQL_nbr_lignes ($resultat) ; } // Pas de classement ou classement vide alors ordre alphabetique If ($res [0] == 0) { $resultat = SQL_commande ("SELECT d.nom_court,d.nom_long,s.optionnelle,s.groupe,s.id_service_classe, p.coefficient,p.professeur,p.numen_prof,p.id_service_prof,p.groupe_classe, p.discipline,p.sous_discipline,a.coefficient_vs FROM disciplines d,services_classe s,services_prof p,classes a WHERE s.classe='".$id_classe."' AND p.classe=s.classe AND s.discipline=d.id_discipline AND p.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND a.id_classe='".$id_classe."' AND a.millesime='".millesime (0)."' ORDER BY d.nom_court,p.id_service_prof,s.id_service_classe", $id_sql) ; } Return $resultat ; } /** * Renvoi l'id_classe d'un service prof * @param int $id_service_prof Id unique du service prof * @return int Identifiant de la classe si existe sinon 0 */ Function classe_service_prof ($id_service_prof) { Global $id_sql ; $resultat = SQL_commande ("SELECT classe FROM services_prof WHERE id_service_prof='".$id_service_prof."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return $ligne [0] ; } Else { Return 0 ; } } /** * Renvoi l'id_service_classe d'un service prof * @param int $id_service_prof Id unique du service prof * @return int Identifiant du service classe si existe sinon 0 */ Function service_classe_service_prof ($id_service_prof) { Global $id_sql ; $resultat = SQL_commande ("SELECT service_classe FROM services_prof WHERE id_service_prof='".$id_service_prof."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return $ligne [0] ; } Else { Return 0 ; } } /** * Renvoi l'id_discipline d'un service prof * @param int $id_service_prof Id unique du service prof * @return int Identifiant de la discipline si existe sinon 0 */ Function discipline_service_prof ($id_service_prof) { Global $id_sql ; $resultat = SQL_commande ("SELECT discipline FROM services_prof WHERE id_service_prof='".$id_service_prof."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return $ligne [0] ; } Else { Return 0 ; } } /** * Renvoi si l'eleve id_eleve suit le cours de service prof id_service_prof * @param int $id_eleve Identifiant de l'eleve * @param int $id_service_prof Identifiant du service prof * @param int 0=Non, 1=Oui */ Function eleve_suit_cours_service_prof ($id_eleve, $id_service_prof) { Global $id_sql ; $ok = 0 ; $car = SQL_commande ("SELECT c.optionnelle,c.groupe,p.groupe_classe,c.id_service_classe,c.discipline FROM services_classe c,services_prof p WHERE p.id_service_prof='".$id_service_prof."' AND p.service_classe=c.id_service_classe LIMIT 1", $id_sql) ; //echo "SELECT c.optionnelle,c.groupe,p.groupe_classe,c.id_service_classe,c.discipline FROM services_classe c,services_prof p WHERE p.id_service_prof='".$id_service_prof."' AND p.service_classe=c.id_service_classe LIMIT 1
" ; If (SQL_nbr_lignes ($car) == 1) { //echo "1
" ; $sc = SQL_ligne_suivante ($car) ; If (($sc [0] == 0) AND ($sc [1] == 0)) { $ok = 1 ; } Else { If ($sc [0] != 0) { // Optionnelle : Eleve suit-il l'option ? $opt = SQL_commande ("SELECT id_option_eleve FROM options_eleve WHERE eleve='".$id_eleve."' AND discipline='".$sc [4]."' AND service_classe='".$sc [3]."' LIMIT 1", $id_sql) ; //echo "SELECT id_option_eleve FROM options_eleve WHERE eleve='".$id_eleve."' AND discipline='".$sc [4]."' AND service_classe='".$sc [3]."' LIMIT 1
" ; If (SQL_nbr_lignes ($opt) == 1) { $ok = 1 ; } } ElseIf ($sc [1] != 0) { // Groupe : Appartient au groupe ? $grp = SQL_commande ("SELECT id_groupe_eleve FROM groupes_eleve WHERE eleve='".$id_eleve."' AND discipline='".$sc [4]."' AND groupe='".$sc [2]."' LIMIT 1", $id_sql) ; //echo "SELECT id_groupe_eleve FROM groupes_eleve WHERE eleve='".$id_eleve."' AND discipline='".$sc [3]."' AND groupe='".$sc [2]."' LIMIT 1
" ; If (SQL_nbr_lignes ($grp) == 1) { $ok = 1 ; } } } } //echo $ok."
" ; Return $ok ; } /** * Renvoi les enseignants d'une discipline en equipe (alias) * @param int $id_alias Identifiant de l'alias * @return array Tableau contenant : [0][0]=Nombre * [x][0]=Numero dans l'alias * [x][1]=Id enseignant * [x][2]=Civilite * [x][3]=Nom * [x][4]=Prenom */ Function alias_liste_enseignants ($id_alias) { Global $id_sql ; $resultats = SQL_commande ("SELECT a.numero,u.id_utilisateur,u.civilite,u.nom,u.prenom FROM utilisateurs u,groupes_alias a WHERE a.id_alias='".$id_alias."' AND a.id_utilisateur=u.id_utilisateur ORDER BY u.nom,u.prenom", $id_sql) ; $table [0][0] = SQL_nbr_lignes ($resultats) ; If ($table [0][0] > 0) { For ($i = 1 ; $i <= $table [0][0] ; $i++) { $l = SQL_ligne_suivante ($resultats) ; $table [$i][0] = $l [0] ; $table [$i][1] = $l [1] ; $table [$i][2] = $l [2] ; $table [$i][3] = $l [3] ; $table [$i][4] = $l [4] ; } } Return $table ; } /** * Renvoi l'enseignant principal d'une discipline en equipe (le premier) * @param int $id_alias Identifiant de l'alias * @return array Tableau contenant : [0]=Id enseignant * [1]=Civilite * [2]=Nom * [3]=Prenom */ Function alias_enseignant_principal ($id_alias) { Global $id_sql ; $resultats = SQL_commande ("SELECT u.id_utilisateur,u.civilite,u.nom,u.prenom FROM utilisateurs u,groupes_alias a WHERE a.id_alias='".$id_alias."' AND a.id_utilisateur=u.id_utilisateur AND a.numero='1' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultats) == 1) { $l = SQL_ligne_suivante ($resultats) ; $table [0] = $l [0] ; $table [1] = $l [1] ; $table [2] = $l [2] ; $table [3] = $l [3] ; } Return $table ; } // =============================================================================== // GESTION DES CLASSES // ------------------------------------------------------------------------------- /** * Renvoi l'id etablissement de la classe $id_classe * @param int $i Id de la classe * @param int $millesime Millesime a traiter * @return int Identifiant etablissement */ Function id_etablissement_par_id_classe ($id_classe) { Global $id_sql ; If ($id_classe > 0) { $resultat = SQL_commande ("SELECT etablissement FROM classes WHERE millesime='".millesime (0)."' AND id_classe='".$id_classe."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 0) { Return 0 ; } Else { $ligne = SQL_ligne_suivante ($resultat) ; Return $ligne [0] ; } } Else { Return 0 ; } } /** * Renvoi le champ $nom de la classe $id_classe * @param string $nom Nom du champ * @param int $i Id de la classe * @return string Valeur du champ */ Function classe_parid ($nom, $i) { Global $id_sql ; If ($i < 1) { $resultat = SQL_commande ("SELECT ".$nom." FROM classes WHERE millesime='".millesime (0)."' ORDER BY id_classe LIMIT 1", $id_sql) ; } Else { $resultat = SQL_commande ("SELECT ".$nom." FROM classes WHERE id_classe='".$i."' LIMIT 1", $id_sql) ; } If (SQL_nbr_lignes ($resultat) == 0) { $resultat = SQL_commande ("SELECT ".$nom." FROM classes WHERE millesime='".millesime (0)."' ORDER BY id_classe LIMIT 1", $id_sql) ; } $ligne = SQL_ligne_suivante ($resultat) ; Return filtrage_utf8 ($ligne [0]) ; } /** * Renvoi le nom LONG de la classe * @param int $i Id de la classe * @return string Valeur du champ */ Function nom_classe_long_parid ($i) { Return classe_parid ("nom", $i) ; } /** * Renvoi le nom BREF de la classe * @param int $i Id de la classe * @return string Valeur du champ */ Function nom_classe_bref_parid ($i) { Return classe_parid ("nom_bref", $i) ; } /** * Renvoi le nombre d'eleves * @param int $id_classe Id de la classe * @return int Nombre d'eleves */ Function effectif ($id_classe) { Global $id_sql ; $resultat = SQL_commande ("SELECT COUNT(*) FROM eleves WHERE classe='".$id_classe."' AND millesime='".millesime (0)."' AND exterieur>='0'", $id_sql) ; $ligne = SQL_ligne_suivante ($resultat) ; If ($ligne [0] > 0) { Return $ligne [0] ; } Else { Return 0 ; } } /** * Changement de discipline pour un professeur sans effacer les notes * @param int $id_sp Id du service prof correspondant * @param int $id_disc_new Id de la nouvelle discipline * @return int 1=OK ; -2=Service prof inexistant ; -1=Nouvelle discipline non trouvee */ Function change_discipline ($id_sp, $id_disc_new) { Global $id_sql ; // Recherche caracteristiques nouvelle discipline $car_disc = SQL_commande ("SELECT * FROM disciplines WHERE id_discipline='".$id_disc_new."' LIMIT 1", $id_sql) ; If ($car_disc) { $cdisc = SQL_tableau_associatif ($car_disc, "") ; $serv_prof = SQL_commande ("SELECT * FROM services_prof WHERE id_service_prof='".$id_sp."' LIMIT 1", $id_sql) ; If ($serv_prof) { $sp = SQL_tableau_associatif ($serv_prof, "") ; // Mise a jour du service prof $resultat = SQL_commande ("UPDATE services_prof SET discipline='".$id_disc_new."',code_disc='".$cdisc ["code"]."' WHERE id_service_prof='".$id_sp."' LIMIT 1", $id_sql) ; // Mise a jour du service classe $serv_classe = SQL_commande ("SELECT * FROM services_classe WHERE id_service_classe='".$sp ["service_classe"]."' LIMIT 1", $id_sql) ; $sc = SQL_tableau_associatif ($serv_classe, "") ; $resultat = SQL_commande ("UPDATE services_classe SET discipline='".$id_disc_new."',code_disc='".$cdisc ["code"]."' WHERE id_service_classe='".$sp ["service_classe"]."' LIMIT 1", $id_sql) ; // Mise a jour des appreciations $resultat = SQL_commande ("UPDATE appreciations SET discipline='".$id_disc_new."',code_disc='".$cdisc ["code"]."' WHERE service_prof='".$id_sp."'", $id_sql) ; // Mise a jour du calcul de moyennes $resultat = SQL_commande ("DELETE FROM calcul_moyenne WHERE classe='".$sp ["service_classe"]."' AND service_prof='".$sp ["id_service_prof"]."' AND service_classe='".$sp ["service_classe"]."' AND millesime='".millesime (0)."'", $id_sql) ; // Mise a jour des controles $resultat = SQL_commande ("UPDATE controles SET discipline='".$id_disc_new."',code_disc='".$cdisc ["code"]."' WHERE service_prof='".$id_sp."'", $id_sql) ; // Mise a jour des groupes de classe et des groupes eleves If ($sp ["groupe_classe"] > 0) { $resultat = SQL_commande ("UPDATE groupes_classe SET discipline='".$id_disc_new."',code_disc='".$cdisc ["code"]."' WHERE id_groupe_classe='".$sp ["groupe_classe"]."'", $id_sql) ; $resultat = SQL_commande ("UPDATE groupes_eleve SET discipline='".$id_disc_new."',code_disc='".$cdisc ["code"]."' WHERE groupe='".$sp ["groupe_classe"]."' AND millesime='".millesime (0)."'", $id_sql) ; } // Mise a jour des options eleves If ($sc ["optionnelle"] > 0) { $resultat = SQL_commande ("UPDATE options_classe SET discipline='".$id_disc_new."',code_disc='".$cdisc ["code"]."' WHERE service_classe='".$sp ["service_classe"]."' AND millesime='".millesime (0)."'", $id_sql) ; } Return 1 ; // OK } Else { Return -2 ; // Erreur : Le service prof n'existe pas } } Else { Return -1 ; // Erreur : Nouvelle discipline non trouvee } } /** * Renvoi l'identifiant du professeur principal d'une classe * @param int $id_classe Id de la classe * @return int Identifiant enseignant si existe sinon 0 */ Function professeur_principal ($id_classe) { Global $id_sql ; $resultat = SQL_commande ("SELECT id_prof_princ FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; $ligne = SQL_ligne_suivante ($resultat) ; If ($ligne [0] > 0) { Return $ligne [0] ; } Else { Return 0 ; } } /** * Renvoi le type de saisie CPE d'une classe * @param int $id_classe Id de la classe * @return int Type de saisie */ Function type_saisie_vie_scolaire ($id_classe) { Global $id_sql ; $resultat = SQL_commande ("SELECT c.type_saisie_cpe,e.bulletin_cpe FROM classes c,etablissements e WHERE c.id_classe='".$id_classe."' AND c.etablissement=e.id_etablissement LIMIT 1", $id_sql) ; $ligne = SQL_ligne_suivante ($resultat) ; If ($ligne [0] < 0) { Return $ligne [1] ; } Else { Return $ligne [0] ; } } // =============================================================================== // GESTION DES PERIODES // ------------------------------------------------------------------------------- /** * Renvoi la date de la periode $numero (debut ou fin ou duree_vs ou duree_secr ou duree_dir) * @param int $classe Id de la classe * @param int $numero Numero de periode * @param int $debut Numero du champ : 0=debut,1=fin,2=duree_vs,3=duree_secr,4=duree_dir * @return string Si numero invalide alors 1970-01-01 sinon si debut invalide alors 0 sinon date */ Function date_periode ($classe, $numero, $debut) { Global $id_sql ; // retourne la date de début de la periode $numero If ($numero < 1) { If (StrToUpper (SubStr (PHP_OS, 0, 3) == "WIN")) { Return "1980-01-01" ; } Else { Return "1970-01-01" ; } } //ElseIf ($numero > 3) { Return "9999-12-12" ; } Else { $resultat = SQL_commande ("SELECT debut,fin,duree_vs,duree_secr,duree_dir FROM periodes_classe WHERE classe='".$classe."' AND numero='".$numero."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; $ligne = SQL_ligne_suivante ($resultat) ; If (($debut >= 0) And ($debut <= 4)) { Return $ligne [$debut] ; } Else { Return "0000-00-00" ; } } } /** * Renvoi le debut de la periode * @param int $classe Id de la classe * @param int $numero Numero de periode * @return string Date de debut de periode (voir fonction date_periode) */ Function deb_periode ($classe, $numero) { Return date_periode ($classe, $numero, 0) ; } /** * Renvoi la fin de la periode * @param int $classe Id de la classe * @param int $numero Numero de periode * @return string Date de fin de periode (voir fonction date_periode) */ Function fin_periode ($classe, $numero) { Return date_periode ($classe, $numero, 1) ; } /** * Renvoi la duree de saisie de la vie scolaire * @param int $classe Id de la classe * @param int $numero Numero de periode * @return string Date duree vie scolaire (voir fonction date_periode) */ Function duree_vie_scolaire ($classe, $numero) { Return date_periode ($classe, $numero, 2) ; } /** * Renvoi la duree de saisie du secretariat * @param int $classe Id de la classe * @param int $numero Numero de periode * @return string Date duree secretariat (voir fonction date_periode) */ Function duree_secretariat ($classe, $numero) { Return date_periode ($classe, $numero, 3) ; } /** * Renvoi la duree de saisie de la direction * @param int $classe Id de la classe * @param int $numero Numero de periode * @return string Date duree direction (voir fonction date_periode) */ Function duree_direction ($classe, $numero) { Return date_periode ($classe, $numero, 4) ; } /** * Renvoi la fin de saisie relle * @param int $classe Id de la classe * @param int $numero Numero de periode * @param int $categorie Numero de categorie : 0=Direction ; 1=Secretariat ; 2=Vie scolaire ; 3=Professeur * @return string Date limit de fin de saisie (voir fonction date_periode entre autre) */ Function fin_saisie_reelle ($classe, $numero, $categorie) { $date_limite = fin_periode ($classe, $numero) ; If ($categorie > 0) { $duree_administration = duree_direction ($classe, $numero) ; If ($categorie > 1) { $duree_administration += duree_secretariat ($classe, $numero) ; } If ($categorie > 2) { $duree_administration += duree_vie_scolaire ($classe, $numero) ; } $table = Explode ("-", SubStr ($date_limite, 0, 10)) ; Return (Date ("Y-m-d", MkTime (0, 0, 0, $table [1], (integer)Abs($table [2]-$duree_administration), $table [0]))) ; } Else { Return $date_limite ; } } /** * Renvoie le numero de la periode actuelle pour la classe $id_classe * @param int $id_classe Id de la classe * @return int Numero de periode actuelle */ Function periode_actuelle ($id_classe) { Global $id_sql ; $resultat = SQL_commande ("SELECT num_periode FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; $ligne = SQL_ligne_suivante ($resultat) ; Return $ligne [0] ; /* $resultat = SQL_commande ("SELECT debut,fin FROM periodes_classe WHERE classe='".$id_classe."' ORDER BY debut", $id_sql) ; $ladate = time () ; $p = 0 ; If (SQL_nbr_lignes ($resultat) > 0) { Do { $p++ ; $ligne = SQL_ligne_suivante ($resultat) ; $l0 = Explode ("-", $ligne [0]) ; $l1 = Explode ("-", $ligne [1]) ; } While ((MkTime (0,0,0,$l0 [1],$l0 [2],$l0 [0]) < $ladate) And ($ladate > MkTime (0,0,0,$l1 [1],$l1 [2],$l1 [0])) And ($p < 3)) ; } Else { $p = 1 ; } Return $p ; */ } /** * Renvoie le numero de la periode valide * @param int $id_classe Id de la classe * @return int Numero de periode actuelle si existe sinon 0 */ Function periode_valide ($id_classe) { Global $id_sql ; $resultat = SQL_commande ("SELECT num_periode FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return $ligne [0] ; } Else { Return 0 ; } } /** * Renvoie le nom de la periode * @param int $id_classe Id de la classe * @return string Nom de la periode actuelle si existe sinon rien */ Function nom_periode ($id_classe) { Global $id_sql ; $resultat = SQL_commande ("SELECT t.nom_periode FROM types_periode t, classes c WHERE t.id_type_periode=c.periode AND c.id_classe='".$id_classe."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return filtrage_utf8 ($ligne [0]) ; } Else { Return "" ; } } /** * Renvoie le nombre de periodes * @param int $id_classe Id de la classe * @return string Nombre de periode sinon 0 */ Function nombre_periode ($id_classe) { Global $id_sql ; $resultat = SQL_commande ("SELECT t.nombre FROM types_periode t, classes c WHERE t.id_type_periode=c.periode AND c.id_classe='".$id_classe."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return $ligne [0] ; } Else { Return 0 ; } } /** * Valide la periode $numero de la classe $id_classe pour les professeurs * @param int $id_classe Id de la classe * @param int $numero Numero de periode a valider * @return int -1=Periode non commencee ; 0=Periode passee non valide ; 1=Valide */ Function valide_periode ($id_classe, $numero) { Global $id_sql ; $resultat = SQL_commande ("SELECT c.num_periode, p.nombre FROM classes c, types_periode p WHERE c.id_classe='".$id_classe."' AND p.id_type_periode=c.periode LIMIT 1", $id_sql) ; $ligne = SQL_ligne_suivante ($resultat) ; $table = Explode ("-", SubStr (deb_periode ($id_classe, $numero), 0, 10)) ; $date_debut = MkTime (0, 0, 0, (integer)$table [1], (integer)$table [2], (integer)$table [0]) ; $date_limite = fin_periode ($id_classe, $numero) ; $duree_administration = duree_direction ($id_classe, $numero) + duree_secretariat ($id_classe, $numero) + duree_vie_scolaire ($id_classe, $numero) ; $table = Explode ("-", SubStr ($date_limite, 0, 10)) ; $date_fin = MkTime (0, 0, 0, (integer)$table [1], (integer)Abs($table [2]-$duree_administration), (integer)$table [0]) ; $date_courante = MkTime (0, 0, 0, (integer)Date ("m"), (integer)Date ("d"), (integer)Date ("Y")) ; If (($date_courante < $date_debut) And ($numero == 1)) { Return "-1" ; } ElseIf ($date_courante < $date_debut) { Return "0" ; } ElseIf (($date_courante >= $date_debut) And ($date_courante <= $date_fin)) { Return "1" ; } Else { Return "0" ; } } /** * Changement de periode de toutes les classes * @return array [0][0]=Nombre,[i][0]=id_classe,[i][1]=(-1:Non commence;0:Pas de changements;1:Changement de periode immediatement;2:Entre deux periodes;3:Fini) */ Function change_periode_classes () { Global $id_sql ; // Nettoyage $ok = SQL_commande ("DELETE FROM calcul_moyenne WHERE periode='0'", $id_sql) ; $classes = SQL_commande ("SELECT id_classe,num_periode FROM classes WHERE millesime='".millesime (0)."'", $id_sql) ; $rapport [0][0] = SQL_nbr_lignes ($classes) ; For ($i = 0 ; $i < $rapport [0][0] ; $i++) { $cl = SQL_tableau_associatif ($classes, "") ; // Recherche de la periode existante en fonction de la date $periode = SQL_commande ("SELECT numero FROM periodes_classe WHERE classe='".$cl ["id_classe"]."' AND debut<='".Date ("Y-m-d")."' AND fin>='".Date ("Y-m-d")."' ORDER BY numero", $id_sql) ; If (SQL_nbr_lignes ($periode) > 0) { // Trouve donc on met a jour $p = SQL_ligne_suivante ($periode) ; $ok = SQL_commande ("UPDATE classes SET num_periode='".(integer)$p [0]."' WHERE id_classe='".$cl ["id_classe"]."' LIMIT 1", $id_sql) ; If ((integer)$p [0] != $cl ["num_periode"]) { $rapport [$i+1][1] = 1 ; } Else { $rapport [$i+1][1] = 0 ; } } Else { // Non trouve donc on recherche ou on est ! // Recherche du max $periode_max = SQL_commande ("SELECT MAX(numero) FROM periodes_classe WHERE classe='".$cl ["id_classe"]."'", $id_sql) ; $pm = SQL_ligne_suivante ($periode_max) ; // Est-on avant la premiere date : Non commence ? $periode = SQL_commande ("SELECT numero FROM periodes_classe WHERE classe='".$cl ["id_classe"]."' AND debut>'".Date ("Y-m-d")."' AND numero='1' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($periode) > 0) { // Trouve donc on met a jour $ok = SQL_commande ("UPDATE classes SET num_periode='1' WHERE id_classe='".$cl ["id_classe"]."' LIMIT 1", $id_sql) ; $rapport [$i+1][1] = -1 ; } Else { // Est-ce fini ? $periode = SQL_commande ("SELECT numero FROM periodes_classe WHERE classe='".$cl ["id_classe"]."' AND fin<'".Date ("Y-m-d")."' AND numero='".$pm [0]."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($periode) > 0) { // Trouve donc on met a jour $ok = SQL_commande ("UPDATE classes SET num_periode='".$pm [0]."' WHERE id_classe='".$cl ["id_classe"]."' LIMIT 1", $id_sql) ; $rapport [$i+1][1] = 3 ; } Else { // On se trouve entre deux periodes $date_courante = MkTime (0, 0, 0, Date ("m"), Date ("d"), Date ("Y")) ; $periodes = SQL_commande ("SELECT * FROM periodes_classe WHERE classe='".$cl ["id_classe"]."' ORDER BY numero", $id_sql) ; $j = 1 ; $ok_s = 0 ; While (($j <= SQL_nbr_lignes ($periodes)) And ($ok_s == 0)) { $periode = SQL_tableau_associatif ($periodes, "") ; $table = Explode ("-", $periode ["debut"]) ; $dd = MkTime (0, 0, 0, $table [1], $table [2], $table [0]) ; $table = Explode ("-", $periode ["fin"]) ; $df = MkTime (0, 0, 0, $table [1], $table [2], $table [0]) ; If (($date_courante > $dd) And ($date_courante < $df)) { // On est entre deux dates de saisie : Donc periode d'attente $ok = SQL_commande ("UPDATE classes SET num_periode='".$j."' WHERE id_classe='".$cl ["id_classe"]."' LIMIT 1", $id_sql) ; If ($ok) { $ok_s = 1 ; } } $j++ ; } $rapport [$i+1][1] = 2 ; } } } } Return $rapport ; } /** * Mise a jour de la periode d'une classe * @param int id_classe Numero id de la classe */ Function maj_periode_classe ($id_classe) { Global $id_sql ; // Nettoyage $ok = SQL_commande ("DELETE FROM calcul_moyenne WHERE periode='0'", $id_sql) ; $date_courante = MkTime (0, 0, 0, Date ("m"), Date ("d"), Date ("Y")) ; $classes = SQL_commande ("SELECT c.*, t.nombre FROM classes c, types_periode t WHERE c.id_classe='".$id_classe."' AND c.periode=t.id_type_periode LIMIT 1", $id_sql) ; $cl = SQL_tableau_associatif ($classes, "") ; // Test de la periode $i = 1 ; $ok = 0 ; While (($i <= $cl ["nombre"]) And ($ok == 0)) { $periodes = SQL_commande ("SELECT * FROM periodes_classe WHERE classe='".$id_classe."' AND numero='".$i."' LIMIT 1", $id_sql) ; $p = SQL_tableau_associatif ($periodes, "") ; // Calcul des dates debut et fin $table = Explode ("-", $p ["debut"]) ; $date_debut = MkTime (0, 0, 0, $table [1], $table [2], $table [0]) ; $table = Explode ("-", $p ["fin"]) ; $date_fin = MkTime (0, 0, 0, $table [1], $table [2], $table [0]) ; //echo $date_courante.">=".$date_debut."|".$date_courante."<=".$date_fin."
" ; If (($date_courante >= $date_debut) And ($date_courante <= $date_fin)) { // Oui $ok = SQL_commande ("UPDATE classes SET num_periode='".$i."' WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; //$ok = SQL_commande ("UPDATE calcul_moyenne SET ok='0' WHERE periode='".$i."' AND classe='".$id_classe."' LIMIT 1", $id_sql) ; $ok = 1 ; } $i++ ; } If ($ok == 0) { $ok = SQL_commande ("SELECT num_periode FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; $ligne = SQL_ligne_suivante ($ok) ; If ($ligne [0] <= 1) { $fin = SQL_commande ("SELECT fin FROM periodes_classe WHERE classe='".$id_classe."' AND numero='".$cl ["nombre"]."' LIMIT 1", $id_sql) ; $p = SQL_ligne_suivante ($fin) ; If (Date ("Y-m-d") >= $fin) { $ok = SQL_commande ("UPDATE classes SET num_periode='".$cl ["nombre"]."' WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; } Else { $ok = SQL_commande ("UPDATE classes SET num_periode=1 WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; } } } } // =============================================================================== // GESTION DES ELEVES // ------------------------------------------------------------------------------- /** * Renvoi le nom de l'eleve en fonction de son identifiant SQL * @param int $id Identifiant de l'eleve * @return string Nom de l'eleve */ Function eleveparid ($id) { Global $id_sql ; $resultat = SQL_commande ("SELECT nom FROM eleves WHERE id_eleve='".$id."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return filtrage_utf8 ($ligne [0]) ; } Else { Return "" ; } } /** * Renvoi le prenom de l'eleve en fonction de son identifiant SQL * @param int $id Identifiant de l'eleve * @return string Nom de l'eleve */ Function prenom_eleve_parid ($id) { Global $id_sql ; $resultat = SQL_commande ("SELECT prenoms FROM eleves WHERE id_eleve='".$id."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return filtrage_utf8 ($ligne [0]) ; } Else { Return "" ; } } /** * Renvoi le nom et le prenom de l'eleve en fonction de son identifiant SQL * @param int $id_eleve Identifiant de l'eleve * @param int $mode Mode de sortie (0 : Renvoi brut, 1 : Formattage om

renom) * @return array [0]=Nom,[1]=Prenom de l'eleve */ Function nom_prenom_eleve_par_id ($id_eleve, $mode) { Global $id_sql ; $resultat = SQL_commande ("SELECT nom,prenoms FROM eleves WHERE id_eleve='".$id_eleve."' LIMIT 1", $id_sql) ; $table [0] = $table [1] = "" ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; $table [0] = filtrage_utf8 ($ligne [0]) ; $prenom = Explode (" ", $ligne [1]) ; $table [1] = filtrage_utf8 ($prenom [0]) ; If ($m == 1) { $table [0] = StrToUpper (SubStr ($table [0], 0, 1)).StrToLower (SubStr ($table [0], 1, StrLen ($table [0])-1)) ; $table [1] = StrToUpper (SubStr ($table [1], 0, 1)).StrToLower (SubStr ($table [1], 1, StrLen ($table [1])-1)) ; } } Return $table ; } /** * Renvoi les options possibles d'une classe en fonction de l'identifiant SQL * @param $cl int Identifiant de la classe * @return array Options format [id_discipline]="nom court" */ Function options_classe ($cl) { Global $id_sql ; $resultat = SQL_commande ("SELECT d.nom_court,s.discipline FROM disciplines d,services_classe s WHERE d.id_discipline=s.discipline AND s.classe='".$cl."' AND s.optionnelle='1' ORDER BY d.nom_court", $id_sql) ; While ($ligne = SQL_ligne_suivante ($resultat)) { $options [filtrage_utf8 ($ligne [1])] = filtrage_utf8 ($ligne [0]) ; } Return $options ; } /** * Renvoi les id SQL des service_classe des options possibles d'une classe * @param int $cl Identifiant de la classe * @return array Options format [id_discipline]=id_service_classe */ Function options_id_classe ($cl) { Global $id_sql ; $resultat = SQL_commande ("SELECT s.id_service_classe,s.discipline FROM disciplines d, services_classe s WHERE d.id_discipline=s.discipline AND s.classe='".$cl."' AND s.optionnelle='1' ORDER BY d.nom_court", $id_sql) ; If (SQL_nbr_lignes ($resultat) > 0) { While ($ligne = SQL_ligne_suivante ($resultat)) { $options [$ligne [0]] = $ligne [1] ; } } Else { $options = "" ; } Return $options ; } /** * Nom Option en fonction de l'identifiant SQL du service classe * @param int $sc Identifiant du service classe * @return string Nom court si existe sinon chaine vide */ Function nom_option ($sc) { Global $id_sql ; $resultat = SQL_commande ("SELECT d.nom_court FROM disciplines d,services_classe s WHERE d.id_discipline=s.discipline AND s.id_service_classe='".$sc."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return filtrage_utf8 ($ligne [0]) ; } Else { Return "" ; } } /** * L'eleve $el suit l'option $op ou pas ? * @param int $el Identifiant eleve * @param int $op Identifiant discipline * @param int $sc Identifiant classe * @return int Identifiant de l'option si existe sinon 0 */ Function suit_loption ($el, $op, $sc) { Global $id_sql ; $resultat = SQL_commande ("SELECT id_option_eleve FROM options_eleve WHERE eleve='".$el."' AND discipline='".$op."' AND service_classe='".$sc."' ORDER BY id_option_eleve", $id_sql) ; $nombre = SQL_nbr_lignes ($resultat) ; If ($nombre == 1) { // Une seule et unique -> parfait $ligne = SQL_ligne_suivante ($resultat) ; Return $ligne [0] ; } ElseIf ($nombre > 1) { // Plusieurs options identiques pour le meme eleve, meme classe ? -> il y en a en trop (on purge) $chaine = "" ; For ($i = 1 ; $i < $nombre ; $i++) { $ligne = SQL_ligne_suivante ($resultat) ; If ($i > 1) { $chaine .= " OR " ; } $chaine .= "id_option_eleve='".$ligne [0]."'" ; } $ok = SQL_commande ("DELETE FROM options_eleve WHERE ".$chaine, $id_sql) ; $ligne = SQL_ligne_suivante ($resultat) ; Return $ligne [0] ; } Else { Return 0 ; } } /** * L'eleve $el a t-il une option identique a l'option $op ou pas ? * @param int $el Id eleve * @param int $opc Id discipline * @return int Nombre d'option eleve si existe sinon 0 */ Function option_identique ($el, $op) { Global $id_sql ; $resultat = SQL_commande ("SELECT id_option_eleve FROM options_eleve WHERE eleve='".$el."' AND discipline='".$op."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; $nombre = SQL_nbr_lignes ($resultat) ; Return $nombre ; } /** * Renvoi les groupes possibles d'une classe d'id $cl sinon 0 * @param int $cl Id classe * @return array Tous les groupes possibles */ Function groupes_classe ($cl) { Global $id_sql ; $resultat = SQL_commande ("SELECT d.nom_bref,s.discipline,s.id_service_classe FROM disciplines d,services_classe s WHERE d.id_discipline=s.discipline AND s.classe='".$cl."' AND s.groupe='1' ORDER BY d.nom_bref,s.id_service_classe", $id_sql) ; If (SQL_nbr_lignes ($resultat) > 0) { For ($i = 0 ; $i < SQL_nbr_lignes ($resultat) ; $i++) { $ligne = SQL_ligne_suivante ($resultat) ; $groupes [$ligne [1]][0] = filtrage_utf8 ($ligne [0]) ; $groupes [$ligne [1]][1] = $ligne [2] ; $res = SQL_commande ("SELECT * FROM groupes_classe WHERE discipline='".$ligne [1]."' AND classe='".$cl."' ORDER BY code_groupe", $id_sql) ; $groupes [$ligne [1]][2] = SQL_nbr_lignes ($res) ; For ($j = 0 ; $j < $groupes [$ligne [1]][2] ; $j++) { $gp = SQL_tableau_associatif ($res, "") ; $groupes [$ligne [1]][3+$j*2] = $gp ["id_groupe_classe"] ; $groupes [$ligne [1]][4+$j*2] = $gp ["code_groupe"] ; } } Return $groupes ; } Else { Return 0 ; } } /** * Renvoie l'id du groupe de l'eleve d'id $el pour la discipline d'id $disc * @param int $el Id eleve * @param int $disc Id discipline * @return int Renvoi groupe (>0) si existe, sinon 0 */ Function numero_groupe ($el, $disc) { Global $id_sql ; $resultat = SQL_commande ("SELECT groupe FROM groupes_eleve WHERE eleve='".$el."' AND discipline='".$disc."' AND millesime='".millesime (0)."'", $id_sql) ; If ($ligne = SQL_ligne_suivante ($resultat)) { Return $ligne [0] ; } Else { Return 0 ; } } /** * Renvoie tous les id du service classe de la classe $id_classe pour la discipline d'id $id_disc * @param int $id_classe Id classe * @param int $id_disc Id discipline * @return int Renvoi [0]=nbr,[x]=id_service_classe (>0) si existe, sinon [0]=0 */ Function ident_service_classe ($id_classe, $id_disc) { Global $id_sql ; $isc [0] = 0 ; $resultat = SQL_commande ("SELECT id_service_classe FROM services_classe WHERE classe='".$id_classe."' AND discipline='".$id_disc."'", $id_sql) ; If (SQL_nbr_lignes ($resultat) > 0) { $isc [0] = SQL_nbr_lignes ($resultat) ; For ($i = 1 ; $i <= $isc [0] ; $i++) { $ligne = SQL_ligne_suivante ($resultat) ; $isc [$i] = $ligne [0] ; } } Else { $isc [0] = 0 ; } Return $isc ; } /** * Renvoie tous les id du service prof de la classe $id_classe pour la discipline d'id $id_disc * @param int $id_classe Id classe * @param int $id_disc Id discipline * @param int $id_service_classe Id service classe * @return int Renvoi [0][0]=nbr,[x][0]=id_service_prof (>0) si existe,[x][1]=id_ groupe, sinon [0][0]=0 */ Function ident_service_prof ($id_classe, $id_disc, $id_service_classe) { Global $id_sql ; $isp [0][0] = 0 ; $resultat = SQL_commande ("SELECT id_service_prof,groupe_classe FROM services_prof WHERE discipline='".$id_disc."' AND classe='".$id_classe."' AND service_classe='".$id_service_classe."' AND millesime='".millesime (0)."'", $id_sql) ; If (SQL_nbr_lignes ($resultat) > 0) { $isp [0][0] = SQL_nbr_lignes ($resultat) ; For ($i = 1 ; $i <= $isp [0][0] ; $i++) { $ligne = SQL_ligne_suivante ($resultat) ; $isp [$i][0] = $ligne [0] ; $isp [$i][1] = $ligne [1] ; } } Else { $isp [0][0] = 0 ; } Return $isp ; } /** * Renvoie l'ID de groupes_eleve de l'eleve d'id $el pour la discipline d'id $disc * @param int $el Id eleve * @param int $disc Id discipline * @return int Renvoi id_groupe_eleve (>0) si existe, sinon 0 */ Function id_groupe ($el, $disc) { Global $id_sql ; $resultat = SQL_commande ("SELECT id_groupe_eleve FROM groupes_eleve WHERE eleve='".$el."' AND discipline='".$disc."' AND millesime='".millesime (0)."'", $id_sql) ; If ($ligne = SQL_ligne_suivante ($resultat)) { Return $ligne [0] ; } Else { Return 0 ; } } /** * Test si l'eleve suit cette matiere (methode rigoureuse) * @param int $id_disc Id discipline * @param int $id_classe Id classe * @param int $id_sc Id service classe * @param int $id_groupe Id groupe * @param int $id_eleve Id eleve * @return int 1 si OK, 0 sinon */ Function test_matiere ($id_disc, $id_classe, $id_sc, $id_groupe, $id_eleve) { // Test si la matiere est optionnelle $mok = 0 ; /* If (estoptionnelle ($id_disc, $id_classe, $id_sc) == 0) { // Pas Option mais en groupe. Appartient au groupe ? If ($id_groupe > 0) { If (appartient_au_groupe ($id_eleve, $id_groupe) == 1) { $mok = 1 ; } Else { $mok = 0 ; } } Else { $mok = 1 ; } } Else { // Sinon est-ce que l'eleve suit l'option ? If (suit_loption ($id_eleve, $id_disc, $id_sc) > 0) { $mok = 1 ; } } */ If (estoptionnelle ($id_disc, $id_classe, $id_sc) == 0) { // Discipline obligatoire If ($id_groupe > 0) { // En groupe If (appartient_au_groupe ($id_eleve, $id_groupe) == 1) { // Fait parti du groupe $mok = 1 ; } Else { // Ne fait pas parti du groupe $mok = 0 ; } } Else { // Pas de groupe donc ok $mok = 1 ; } } Else { // Discipline optionnelle If (suit_loption ($id_eleve, $id_disc, $id_sc) > 0) { // Suit l'option If ($id_groupe > 0) { If (appartient_au_groupe ($id_eleve, $id_groupe) == 1) { // Suit l'option et fait parti du groupe $mok = 1 ; } Else { // Suit l'option et ne fait pas parti du groupe $mok = 0 ; } } Else { // Suit l'option sans groupe $mok = 1 ; } } Else { // Ne suit pas l'option $mok = 0 ; } } Return $mok ; } /** * Test si l'eleve suit cette discipline (quel que soit l'enseignant) * @param int $id_disc Id discipline * @param int $id_classe Id classe * @param int $id_eleve Id eleve * @return array [0]=1 si OK, 0 sinon, [1]=id service classe, [2]=id service prof, [3]=id_groupe */ Function test_discipline ($id_disc, $id_classe, $id_eleve) { // Test si la matiere est optionnelle $mok [0] = 0 ; $id_sc = ident_service_classe ($id_classe, $id_disc) ; $num = 1 ; $ok = 0 ; While (($num <= $id_sc [0]) And ($ok == 0)) { If (estoptionnelle ($id_disc, $id_classe, $id_sc [$num]) == 0) { // Discipline obligatoire $isp = ident_service_prof ($id_classe, $id_disc, $id_sc [$num]) ; If ($isp [0][0] == 1) { If ($isp [1][1] > 0) { If (appartient_au_groupe ($id_eleve, $isp [1][1]) == 1) { $gp_ok = 1 ; } Else { $gp_ok = 0 ; } } Else { $gp_ok = 1 ; } If ($gp_ok == 1) { $mok [0] = 1 ; $mok [1] = $id_sc [$num] ; $mok [2] = $isp [1][0] ; $mok [3] = $isp [1][1] ; $ok = 1 ; } } } ElseIf (estoptionnelle ($id_disc, $id_classe, $id_sc [$num]) > 0) { // Discipline optionnelle ? If (suit_loption ($id_eleve, $id_disc, $id_sc [$num]) > 0) { // Suit l'option $isp = ident_service_prof ($id_classe, $id_disc, $id_sc [$num]) ; If ($isp [0][0] == 1) { If ($isp [1][1] > 0) { If (appartient_au_groupe ($id_eleve, $isp [1][1]) == 1) { $gp_ok = 1 ; } Else { $gp_ok = 0 ; } } Else { $gp_ok = 1 ; } If ($gp_ok == 1) { $mok [0] = 1 ; $mok [1] = $id_sc [$num] ; $mok [2] = $isp [1][0] ; $mok [3] = $isp [1][1] ; $ok = 1 ; } } } } $num++ ; } Return $mok ; } // =============================================================================== // GESTION DES UTILISATEURS // ------------------------------------------------------------------------------- /** * Renvoie le numero de l'utilisateur enregistre dans la session * @param string $code Code de session courante * @return int Identifiant de l'utilisateur */ Function utilparcode ($code) { Global $id_sql ; $resultat = SQL_commande ("SELECT utilisateur FROM sessions WHERE id_session='".$code."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return ($ligne [0]) ; } Else { Return 0 ; } } /** * Renvoie le nom de l'utilisateur d'ID $id * @param int $id Id de l'utilisateur * @return string Nom de l'utilisateur */ Function utilparid ($id) { Global $id_sql ; $resultat = SQL_commande ("SELECT nom FROM utilisateurs WHERE id_utilisateur='".$id."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; If ($ligne) { Return filtrage_utf8 ($ligne [0]) ; } } Else { Return "" ; } } /** * Renvoi l'ID de l'utilisateur en fonction de l'identifiant et du mot de passe * @param string $ident Identifiant * @param string $passe Mot de passe * @return int Identifiant de l'utilisateur si existe sinon 0 */ Function utilparpasse ($ident, $passe) { Global $id_sql, $droit_supervision, $droit_admin, $droit_direction, $droit_secretariat ; If (($ident == '') Or ($passe == '')) { Return 0 ; } $ident = AddSlashes ($ident) ; $passe = AddSlashes ($passe) ; $millesime = millesime (0) ; $resultat = SQL_commande ("SELECT id_utilisateur FROM utilisateurs WHERE login='".$ident."' AND passe='".$passe."' AND (millesime='".$millesime."' OR (millesime!='".$millesime."' AND (droits='".$droit_supervision."' OR droits='".$droit_admin."' OR droits='".$droit_direction."' OR droits='".$droit_secretariat."'))) LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return $ligne [0] ; } Else { Return 0 ; } } // =============================================================================== // GESTION DES THEMES // ------------------------------------------------------------------------------- /** * Renvoi le numero de theme de l'utilisateur en fonction de l'identifiant et du mot de passe * @param string $ident Identifiant * @param string $passe Mot de passe * @return int Numero du theme si existe sinon 1 (theme par defaut) */ Function themeparpasse ($ident, $passe) { Global $id_sql ; If (($ident == '') Or ($passe == '')) { Return 0 ; } $ident = AddSlashes ($ident) ; $passe = AddSlashes ($passe) ; $resultat = SQL_commande ("SELECT u.theme FROM utilisateurs u,themes t WHERE u.login='".$ident."' AND u.passe='".$passe."' AND t.id_theme=u.theme AND t.validation='1' AND u.millesime='".millesime (0)."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_tableau_associatif ($resultat, "") ; If ($ligne) { Return $ligne ["theme"] ; } Else { Return "1" ; } } Else { Return "1" ; } } /** * Renvoi le numero du theme d'un utilisateur possedant une session * @param int $s Identifiant de session * @return int Numero du theme si existe sinon 1 (theme par defaut) */ Function themeparsession ($s) { Global $id_sql ; //valide_delais () ; $resultat = SQL_commande ("SELECT theme FROM sessions WHERE id_session='".$s."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_tableau_associatif ($resultat, "") ; Return $ligne ["theme"] ; } Else { Return 1 ; } } /** * Inclut le theme numero $n * @param string $n Identifiant du theme utilise * @return array Contient [id_theme], [nom], [nom_repertoire], [fichier_config] et [validation] */ Function parametres_theme ($n) { Global $id_sql ; $resultat = SQL_commande ("SELECT * FROM themes WHERE id_theme='".$n."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_tableau_associatif ($resultat, "") ; //Include ("./themes/".$ligne ["nom_repertoire"]."/".$ligne ["fichier_config"]) ; Return $ligne ; } Else { $ligne ["id_theme"] = 1 ; $ligne ["nom"] = "Plastique" ; $ligne ["nom_repertoire"] = "plastique" ; $ligne ["fichier_config"] = "config.inc" ; $ligne ["validation"] = 1 ; Return $ligne ; } } // =============================================================================== // GESTION DES UTILISATEURS // ------------------------------------------------------------------------------- /** * Renvoie le nom et la civilite de l'utilisateur enregistre dans la session $c * @param int $c Code session identifiant l'utilisateur * @param int $m Mode de sortie (0 : Renvoi brut, 1 : Formattage om) * @return string Nom de l'utilisateur */ Function nom_utilparsession ($c, $m) { Global $civilites, $id_sql ; $resultat = SQL_commande ("SELECT civilite,nom FROM utilisateurs WHERE id_utilisateur='".utilparcode ($c)."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return $civilites [(integer)$ligne [0]]." ".filtrage_utf8 ($ligne [1]) ; } Else { Return "" ; } } /** * Renvoie le prenom de l'utilisateur enregistre dans la session $c * @param int $c Code session identifiant l'utilisateur * @return string Prenom de l'utilisateur */ Function prenom_utilparsession ($c) { Global $civilites, $id_sql ; $resultat = SQL_commande ("SELECT prenom FROM utilisateurs WHERE id_utilisateur='".utilparcode ($c)."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return filtrage_utf8 ($ligne [0]) ; } Else { Return "" ; } } /** * Renvoie le nom et la civilite de l'utilisateur enregistre * @param int $id Identifiant utilisateur * @param int $m Mode de sortie (0 : Renvoi brut, 1 : Formattage om) * @return string Nom de l'utilisateur */ Function nom_utilparid ($id, $m) { Global $civilites, $id_sql ; $resultat = SQL_commande ("SELECT civilite,nom FROM utilisateurs WHERE id_utilisateur='".$id."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; $ligne [1] = filtrage_utf8 ($ligne [1]) ; If ($m == 0) { Return $civilites [(integer)$ligne [0]]." ".$ligne [1] ; } Else { Return $civilites [(integer)$ligne [0]]." ".StrToUpper (SubStr ($ligne [1], 0, 1)).StrToLower (SubStr ($ligne [1], 1, StrLen ($ligne [1])-1)) ; } } Else { Return "" ; } } /** * Renvoie le prenom de l'utilisateur enregistre * @param int $id Identifiant utilisateur * @return string Prenom de l'utilisateur */ Function prenom_utilparid ($id) { Global $civilites, $id_sql ; $resultat = SQL_commande ("SELECT prenom FROM utilisateurs WHERE id_utilisateur='".$id."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return filtrage_utf8 ($ligne [0]) ; } Else { Return "" ; } } /** * Renvoie les disciplines enseignees si c'est un prof * @param int $id_prof Identifiant enseignant * @return string Nom des disciplines separees par "- " (D1 - D2 - ...) */ Function disciplines_prof ($id_prof) { Global $id_sql ; $resultat = SQL_commande ("SELECT d.nom FROM disciplines d, services_prof s WHERE s.discipline=d.id_discipline AND s.professeur='".$id_prof."' GROUP BY d.nom", $id_sql) ; $retour = "" ; While ($ligne = SQL_ligne_suivante ($resultat)) { $ligne [0] = filtrage_utf8 ($ligne [0]) ; If ($retour <> "") { $retour .= "- ".$ligne[0]." " ; } Else { $retour .= $ligne[0]." " ; } } Return $retour ; } // =============================================================================== // GESTION DES SESSIONS // ------------------------------------------------------------------------------- /** * Envoi les commandes de sortie en javascript * @param $fen int Indication d'une fenetre popup ou pas (1/0) * @param $err int Numero d'erreur de sortie */ Function sortie_javascript ($fen, $err) { Global $page_sortie ; Echo "" ; Exit ; } /** * Validation du delais d'utilisation directement dans la bdd SQL * @return int -1=Session sauvegardee ; 0=Plus de session ; >0=Session encore active (droit) */ Function valide_delais ($code) { Global $id_sql, $droit_courant ;//, $_SESSION ; //$code = $_SESSION ["code"] ; $maintenant = Time () ; $res = SQL_commande ("SELECT actif FROM sessions WHERE id_session='".$code."' LIMIT 1", $id_sql) ; $r_ok = SQL_ligne_suivante ($res) ; // Purge $ok = SQL_commande ("DELETE FROM sessions WHERE actif='0'", $id_sql) ; // Desactive en vue d'une sauvegarde des donnees de session en cours $ok = SQL_commande ("UPDATE sessions SET actif='0' WHERE (dateheure+duree_session)<'".$maintenant."'", $id_sql) ; // Verification session $requete ="SELECT id_session,dateheure,dh_maj,inactivite,duree_session,actif FROM sessions WHERE id_session='".$code."'" ; If (IsSet ($droit_courant)) { $requete .=" AND droits='".$droit_courant."'" ; } $resultat = SQL_commande ($requete." LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_tableau_associatif ($resultat, "") ; If ($ligne ["actif"] == 1) { $duree_connexion = $maintenant - $ligne ["dateheure"] ; If ($duree_connexion > $ligne ["duree_session"]) { $ok = SQL_commande ("DELETE FROM sessions WHERE id_session='".$ligne ["id_session"]."' LIMIT 1", $id_sql) ; Return 0 ; // Plus de connexion } Else { If ($maintenant - $ligne ["dh_maj"] > $ligne ["inactivite"]) { $ok = SQL_commande ("DELETE FROM sessions WHERE id_session='".$ligne ["id_session"]."' LIMIT 1", $id_sql) ; Return 0 ; // Plus de connexion } Else { $ok = SQL_commande ("UPDATE sessions SET dh_maj='".$maintenant."' WHERE id_session='".$ligne ["id_session"]."' LIMIT 1", $id_sql) ; Return $droit_courant ; } } } Else { // La session va prendre fin des le prochain test Return $droit_courant ; } } Else { If ($r_ok [0] == 0) { Return -1 ; } Else { Return 0 ; } } } /** * Calcul du temps restant * @return int Duree de la session courante restante moins le minimum ou minimum restant */ Function calcul_delais () { Global $id_sql, $droit_courant, $duree_session_minimum, $_SESSION ; $code = $_SESSION ["code"] ; $maintenant = Time () ; $resultat = SQL_commande ("SELECT dateheure,dh_maj,inactivite,duree_session FROM sessions WHERE id_session='".$code."' AND droits='".$droit_courant."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat, "") ; $duree_connexion = $maintenant - $ligne [0] ; $duree_inactivite = $maintenant - $ligne [1] ; If ($duree_connexion > $ligne [3]) { // Plus de connexion Return 0 ; } ElseIf ($duree_inactivite > $ligne [2]) { // Plus de connexion Return 0 ; } Else { $reste = $ligne [3]-$duree_connexion ; If ($reste < 0) { Return 0 ; } Else { Return $reste ; } } } Else { // Plus de connexion Return 0 ; } } /** * Renvoi la date de debut, la date de MAJ, l'inactivite et la duree de la session * @return array Format :[0]=Date Debut, [1]=Date MAJ, [2]=Inactivite, [3]=Duree Session Si Existe sinon 0 */ Function renseignements_session () { Global $id_sql, $droit_courant, $_SESSION ; $code = $_SESSION ["code"] ; $resultat = SQL_commande ("SELECT dateheure,dh_maj,inactivite,duree_session FROM sessions WHERE id_session='".$code."' AND droits='".$droit_courant."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $r = SQL_ligne_suivante ($resultat) ; } Else { $r [0] = $r [1] = $r [2] = $r [3] = 0 ; } Return $r ; } /** * Verification des droits * @param $droit int Droit courant * @param $id_session int Identifiant de session * @return int Droit */ Function verif_droits ($droit, $id_session) { Global $id_sql, $fenetre, $page_sortie ; $vd = valide_delais ($id_session) ; If ($vd <= 0) { sortie_javascript ($fenetre, 1-$vd*4) ; Exit ; } Else { $resultat = SQL_commande ("SELECT droits FROM sessions WHERE id_session='".$id_session."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 0) { sortie_javascript ($fenetre, 1) ; Exit ; } Else { $ligne = SQL_ligne_suivante ($resultat) ; If ($ligne [0] == $droit) { Return $droit ; } Else { sortie_javascript ($fenetre, 4) ; Exit ; } } } } /** * Renvoi les droits d'un utilisateur possedant une session * @param $id_session int Identifiant de session * @return int Droit */ Function droitsparsession ($id_session) { Global $id_sql, $fenetre, $page_sortie ; valide_delais ($id_session) ; $resultat = SQL_commande ("SELECT droits FROM sessions WHERE id_session='".$id_session."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_tableau_associatif ($resultat, "") ; Return $ligne ["droits"] ; } Else { //Header ("Location: ".$page_sortie) ; sortie_javascript ($fenetre, 4) ; Exit ; } } /** * Determine les temps de session et d'inactivite * @param int $droit Droit a tester * @param array Tableau contenant la duree de session [0] et la duree d'inactivite [1] */ Function determine_durees ($droit) { Global $troptard, $inactivite, $droit_supervision, $droit_admin, $droit_direction, $droit_secretariat, $droit_cpe, $droit_surveillant, $droit_prof, $droit_trombinoscope, $droit_eleve ; $t [0] = $t [1] = 0 ; If (IsSet ($troptard)) { Switch ($droit) { Case $droit_supervision : $t [0] = $troptard [$droit_supervision] ; $t [1] = $inactivite [$droit_supervision] ; Break ; Case $droit_admin : $t [0] = $troptard [$droit_admin] ; $t [1] = $inactivite [$droit_admin] ; Break ; Case $droit_direction : $t [0] = $troptard [$droit_direction] ; $t [1] = $inactivite [$droit_direction] ; Break ; Case $droit_secretariat : $t [0] = $troptard [$droit_secretariat] ; $t [1] = $inactivite [$droit_secretariat] ; Break ; Case $droit_cpe : $t [0] = $troptard [$droit_cpe] ; $t [1] = $inactivite [$droit_cpe] ; Break ; Case $droit_surveillant : $t [0] = $troptard [$droit_surveillant] ; $t [1] = $inactivite [$droit_surveillant] ; Break ; Case $droit_prof : $t [0] = $troptard [$droit_prof] ; $t [1] = $inactivite [$droit_prof] ; Break ; Case $droit_trombinoscope : $t [0] = $troptard [$droit_trombinoscope] ; $t [1] = $inactivite [$droit_trombinoscope] ; Break ; Case $droit_eleve : $t [0] = $troptard [$droit_eleve] ; $t [1] = $inactivite [$droit_eleve] ; Break ; Default : $t [0] = 600 ; $t [1] = 120 ; Break ; } } Else { Global $troptard_admin, $trop_prof ; Switch ($droit) { Case $droit_supervision : $t [0] = $troptard_admin ; $t [1] = $inactivite ; Break ; Case $droit_admin : $t [0] = $troptard_admin ; $t [1] = $inactivite ; Break ; Case $droit_direction : $t [0] = $troptard_admin ; $t [1] = $inactivite ; Break ; Case $droit_secretariat : $t [0] = $troptard_admin ; $t [1] = $inactivite ; Break ; Case $droit_cpe : $t [0] = $troptard_prof ; $t [1] = $inactivite ; Break ; Case $droit_surveillant : $t [0] = $troptard_prof ; $t [1] = $inactivite ; Break ; Case $droit_prof : $t [0] = $troptard_prof ; $t [1] = $inactivite ; Break ; Case $droit_trombinoscope : $t [0] = $troptard_prof ; $t [1] = $inactivite ; Break ; Case $droit_eleve : $t [0] = $troptard_prof ; $t [1] = $inactivite ; Break ; Default : $t [0] = 600 ; $t [1] = 120 ; Break ; } } If ($t [0] == 0) { $t [0] = 600 ; } If ($t [1] == 0) { $t [1] = 120 ; } Return $t ; } /** * Initialisation de la session * @param int $droits Droit courant * @param string $ident Identifiant * @param string $passe Mot de passe * @return int Identifiant de session ou 0 (Pas de session) */ Function init_session ($droits, $ident, $passe) { Global $auth_mode, $id_sql, $note_par_defaut, $_SERVER, $droit_eleve ; $ip_client = $_SERVER ["REMOTE_ADDR"] ; $millesime = millesime (0) ; If ($auth_mode == 1) { // Authentification interne If ($droits == $droit_eleve) { $eleve = SQL_commande ("SELECT id_eleve,theme FROM eleves WHERE login='".$ident."' AND passe='".$passe."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; $el = SQL_tableau_associatif ($eleve, "") ; $util = $el ["id_eleve"] ; $t = $el ["theme"] ; } Else { $util = utilparpasse ($ident, $passe) ; $t = themeparpasse ($ident, $passe) ; } If ($util > 0) { $dh = Time () ; $date_init = Date ("Y-m-d H:i:s") ; // -- Partie a changer pour une configuration via SQL $durees = determine_durees ($droits) ; //If ($droits < $droit_cpe) { $tt = $troptard_prof ; } Else { $tt = $troptard_admin ; } //$inactif = $inactivite ; // -- $ok = SQL_commande ("INSERT INTO sessions (droits,utilisateur,dateheure,dh_maj,date,description,coefficient,theme,examen,max,ip,inactivite,duree_session,actif) VALUES ('".$droits."','".$util."',".$dh.",".$dh.",'".$date_init."','','1','".$t."','0','".$note_par_defaut."','".$ip_client."','".$durees [1]."','".$durees [0]."','1')", $id_sql) ; $resultat = SQL_commande ("SELECT id_session FROM sessions WHERE droits='".$droits."' AND utilisateur='".$util."' AND dateheure='".$dh."' AND dh_maj='".$dh."' AND date='".$date_init."' AND ip='".$ip_client."' AND inactivite='".$durees [1]."' AND duree_session='".$durees [0]."' AND actif='1' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat) == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return $ligne [0] ; } Else { Return "0" ; } } Else { Return "0" ; } } ElseIf ($auth_mode == 2) { // Authentification MySQL } ElseIf ($auth_mode == 3) { // Authentification LDAP } } /** * Suite de la session en cours * @param $code int Identifiant session * @param $droit int Droit courant */ Function suite_session ($code, $droit) { Global $page_sortie ; $ok = SQL_connexion ($hote, $qui, $passe_sql, $bdd) ; $d = droitsparsession ($code) ; If ($d != $droit) { Header ("Location: ".$page_sortie) ; } } // =============================================================================== // GESTION DES CONTROLES // ------------------------------------------------------------------------------- /** * Renvoie une liste des controles pour une classe et une discipline (A TERMINER) * @param int $classe Identifiant SQL de la classe * @param int $periode Numero de la periode * @param int $disciplines Identifiant SQL de la discipline * @return string Nom de l'utilisateur */ Function controles ($classe, $periode, $disciplines) { Global $id_sql ; // Calcul des limites de la periode Switch ($periode) { Case 1 : $ddebut = '1970-01-01' ; $dfin = deb_tr ($classe, 2) ; Break ; Case 2 : $ddebut = deb_tr ($classe, 2) ; $dfin = deb_tr ($classe, 3) ; Break ; Case 3 : $debut = deb_tr ($classe, 3) ; $dfin = '9999-31-12' ; Break ; } $resultat = SQL_commande ("SELECT c.id_controle FROM controles c, classes cl WHERE c.id_classe='".$classe."' AND c.date", $id_sql) ; } /* * (A TERMINER) */ Function classe_controle ($id) { $resultat = SQL_commande ("SELECT id_classe FROM classes cl, controles ctr WHERE ctr.controle='".$id."' and cl.id_classe=ctr.classe AND cl.millesime='".millesime (0)."'") ; If ($ligne = SQL_ligne_suivante ($resultat)) { Return $ligne [0] ; } Else { Return False ; } } // =============================================================================== // GESTION DES TYPES // ------------------------------------------------------------------------------- /** * Renvoi le nom du type de discipline * @param int $id Identifiant de reperage de la discipline * @return string Nom du type */ Function nom_type_discipline ($id) { Global $types_disciplines ; $nom = "" ; For ($i = 1 ; $i <= $types_disciplines [0][0] ; $i++) { If ($types_disciplines [$i][1] == $id) { $nom = $types_disciplines [$i][0] ; } } Return $nom ; } /** * Renvoi le nom du type de moyenne * @param int $id Identifiant de reperage de la moyenne * @return string Nom du type */ Function nom_type_moyenne ($id) { Global $types_moyennes ; $nom = "" ; For ($i = 1 ; $i <= $types_moyennes [0][0] ; $i++) { If ($types_moyennes [$i][1] == $id) { $nom = $types_moyennes [$i][0] ; } } Return $nom ; } // =============================================================================== // GESTION DES NOTES // ------------------------------------------------------------------------------- /** * Renvoi la note arrondie suivant le mode * @param mixed $n Note a arrondir * @param int $mode Mode d'arrondi * 1 = 1 chiffre apres la virgule, 2 = chiffres apres la virgule * 3 = 1/10 points superieur, 4 = 1/2 points superieur * 5 = Point entier superieur, 6 = 1/10 points le plus proche * 7 = 1/2 point le plus proche, 8 = Point entier le plus proche * Par defaut arrondi en nombre entier * @return mixed Note arrondie */ Function arrondi_note ($n, $mode) { Switch ($mode) { // Nombre entier Default : $r = Round ($n, 0) ; Break ; // 1 chiffre apres la virgule Case 1 : $r = Round ($n, 1) ; Break ; // 2 chiffres apres la virgule Case 2 : $r = Round ($n, 2) ; Break ; // 1/10 points superieur Case 3 : $r = Round (Ceil (10*$n)/10, 1) ; Break ; // 1/2 points superieur Case 4 : $r = Round (Ceil (2*$n)/2, 1) ; Break ; // Point entier superieur Case 5 : $r = Round (Ceil ($n), 1) ; Break ; // 1/10 points inferieur Case 6 : $r = Round (Floor (10*$n)/10, 1) ; Break ; // 1/2 points inferieur Case 7 : $r = Round (Floor (2*$n)/2, 1) ; Break ; // Point entier inferieur Case 8 : $r = Round (Floor ($n), 1) ; Break ; // Sans arrondi Case 9 : $r = $n ; Break ; } Return $r ; } /** * Renvoi le nom de l'arrondi suivant le mode * @param int $mode Mode d'arrondi. Par defaut : nombre entier * @return string Nom de l'arrondi */ Function nom_arrondi ($mode) { Switch ($mode) { Default : $c = "Nombre entier avec arrondi" ; Break ; Case 1 : $c = "Un chiffre après la virgule" ; Break ; Case 2 : $c = "Deux chiffres après la virgule" ; Break ; Case 3 : $c = "Dixième de points supérieur" ; Break ; Case 4 : $c = "Demi-point supérieur" ; Break ; Case 5 : $c = "Point entier supérieur" ; Break ; Case 6 : $c = "Dixième de points inférieur" ; Break ; Case 7 : $c = "Demi-point inférieur" ; Break ; Case 8 : $c = "Point entier inférieur" ; Break ; Case 9 : $c = "Sans arrondi" ; Break ; } Return $c ; } /** * Renvoi le nombre d'arrondis possibles * @return int Nombre d'arrondis */ Function nombre_arrondi () { Return 9 ; } /** * Renvoi la note verifiee * @param mixed $n Note a formater * @return string Note formatee */ Function formate_note ($n) { Global $code_non_rendu, $code_absent, $code_dispense, $code_aucune_note ; // trimer $n = Trim ($n) ; // Note negative ??? If ($n < 0) { $n = -$n ; } // Absent par defaut If ((Empty ($n) && $n != "0") || $n == StrToLower ($code_absent) || $n == StrToUpper ($code_absent)) { Return ($code_absent) ; } // $code_absent = absent ElseIf ($n == StrToLower ($code_non_rendu) || $n == StrToUpper ($code_non_rendu)) { Return ($code_non_rendu) ; } // $code_non_rendu = non note ElseIf ($n == StrToLower ($code_dispense) || $n == StrToUpper ($code_dispense)) { Return ($code_dispense) ; } // $code_dispense = dispense ElseIf ($n == StrToLower ($code_aucune_note) || $n == StrToUpper ($code_aucune_note)) { Return ($code_aucune_note) ; } // $code_aucune_note = Aucune note Else { $n = Str_Replace (",", ".", $n) ; If (Is_Numeric ($n)) { Return $n ; } Else { Return ("err.") ; } } } /** * Renvoie un tableau note [id_eleve] du controle ctrl * @param int $ctrl Identifiant SQL du controle * @return array Ensemble des valeurs. (Format : [id_eleve]=valeur) */ Function notes_ctrl ($ctrl) { Global $id_sql ; $resultat = SQL_commande ("SELECT e.id_eleve,n.valeur FROM eleves e,notes n,controles c WHERE n.eleve=e.id_eleve AND c.id_controle='".$ctrl."' AND e.exterieur>='0'", $id_sql) ; While ($ligne = SQL_ligne_suivante ($resultat)) { $retour [$ligne ["e.id_eleve"]] = $ligne ["n.valeur"] ; } Return $retour ; } /** * Renvoie la moyenne d'un eleve d'une classe pour une discipline sur une periode pour un professeur * @param int $eleve Id eleve * @param int $classe Id classe * @param int $periode Numero de la periode * @param int $discipline Id discipline * @param int $code_sc Id service classe * @param int $code_sp Id service prof * @param int $formatage Formattage (=1) ou pas (=0) du resultat * @param int $type_moy Numero du type de moyenne * 0 note normale, 1 note d'examen blanc, 2 Moy controle normale, 3 Min controle normal, 4 Max controle normal, * 5 Moy classe normale, 6 Min classe normale, 7 Max classe normale * 8 Moy classe exam, 9 Min classe exam, 10 Max classe exam * 11 Moy sous-matiere normale, 12 Min sous-matiere normale, 13 Max sous-matiere normale * 14 Moy sous-matiere exam, 15 Min sous-matiere exam, 16 Max sous-matiere exam * 17 Moy sous-matiere classe normale, 18 Min sous-matiere classe normale, 19 Max sous-matiere normale * 20 Moy sous-matiere classe exam, 21 Min sous-matiere classe exam, 22 Max sous-matiere exam * @return float Moyenne ou code indiquant pourquoi il n'y a pas de note */ Function moyenne_el ($eleve, $classe, $periode, $discipline, $code_sc, $code_sp, $formatage, $type_moy) { Global $id_sql, $code_non_rendu, $code_absent, $code_dispense, $code_aucune_note, $code_pas_discipline ; $millesime = millesime (0) ; $type_moyenne = champ_disc_type_moyenne_parid ($discipline) ; $type_discipline = champ_disc_type_discipline_parid ($discipline) ; If ($type_discipline == 0) { $calcul = SQL_commande ("SELECT ok FROM calcul_moyenne WHERE classe='".$classe."' AND periode='".$periode."' AND service_classe='".$code_sc."' AND service_prof='".$code_sp."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($calcul) > 0) { $ok = SQL_ligne_suivante ($calcul) ; } Else { $calcul = SQL_commande ("INSERT INTO calcul_moyenne (classe,periode,service_prof,service_classe,ok,enregistrement,modification,millesime) VALUES ('".$classe."','".$periode."','".$code_sp."','".$code_sc."','0','".Date ("Y-m-j H:i:s")."','".Date ("Y-m-j H:i:s")."','".$millesime."')", $id_sql) ; $ok [0] = 0 ; } If ((integer)$ok [0] == 0) { $calcul = SQL_commande ("UPDATE calcul_moyenne SET modification='".Date ("Y-m-j H:i:s")."' WHERE classe='".$classe."' AND periode='".$periode."' AND service_classe='".$code_sc."' AND service_prof='".$code_sp."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; $resultat = SQL_commande ("SELECT * FROM services_classe WHERE id_service_classe='".$code_sc."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat)) { $res = SQL_tableau_associatif ($resultat, "") ; $ok = 0 ; If ($res ["optionnelle"] == 1) { // Discipline OPTIONNELLE If ($res ["groupe"] == 1) { // Option + Groupe // AND code_disc='".$res ["code_disc"]."' $res1 = SQL_commande ("SELECT id_option_eleve FROM options_eleve WHERE eleve='".$eleve."' AND discipline='".$res ["discipline"]."' AND service_classe='".$code_sc."' AND millesime='".$millesime."'", $id_sql) ; // AND e.code_disc='".$res ["code_disc"]."' AND c.code_disc='".$res ["code_disc"]."' $res2 = SQL_commande ("SELECT e.id_groupe_eleve,c.id_groupe_classe FROM groupes_eleve e, groupes_classe c WHERE e.eleve='".$eleve."' AND e.discipline='".$res ["discipline"]."' AND c.discipline='".$res ["discipline"]."' AND e.groupe=c.id_groupe_classe AND e.millesime='".$millesime."'", $id_sql) ; //If (SQL_nbr_lignes ($res1) And SQL_nbr_lignes ($res2)) { $ok = 3 ; } If (SQL_nbr_lignes ($res1) And SQL_nbr_lignes ($res2)) { $ok = 1 ; } } Else { // Option seule //AND code_disc='".$res ["code_disc"]."' $res1 = SQL_commande ("SELECT id_option_eleve FROM options_eleve WHERE eleve='".$eleve."' AND discipline='".$res ["discipline"]."' AND service_classe='".$code_sc."' AND millesime='".$millesime."'", $id_sql) ; If (SQL_nbr_lignes ($res1)) { $ok = 1 ; } } } Else { // Discipline OBLIGATOIRE If ($res ["groupe"]) { // Groupe seul //AND e.code_disc='".$res ["code_disc"]."' AND c.code_disc='".$res ["code_disc"]."' $res2 = SQL_commande ("SELECT e.id_groupe_eleve, c.id_groupe_classe FROM groupes_eleve e, groupes_classe c WHERE e.eleve='".$eleve."' AND e.discipline='".$res ["discipline"]."' AND c.discipline='".$res ["discipline"]."' AND e.groupe=c.id_groupe_classe AND c.service_classe='".$code_sc."' AND e.millesime='".$millesime."'", $id_sql) ; If (SQL_nbr_lignes ($res2)) { $ok = 1 ; } } Else { // Non optionnelle et pas de groupe : OBLIGATOIRE $ok = 1 ; } } If ($ok == 1) { // Recherche du format d'affichage des notes $resultat = SQL_commande ("SELECT * FROM gestion ORDER BY millesime DESC LIMIT 1", $id_sql) ; $format = SQL_tableau_associatif ($resultat, "") ; If (!IsSet ($format ["max"])) { $resultat = SQL_commande ("SELECT * FROM etablissements t, classes c WHERE c.id_classe='".$classe."' AND c.etablissement=t.id_etablissement LIMIT 1", $id_sql) ; $format = SQL_tableau_associatif ($resultat, "") ; } If ($format ["max"] <= 0) { If ($note_par_defaut > 0) { $format ["max"] = $note_par_defaut ; } Else { $format ["max"] = 20 ; } } // Recherche le nombre maxi de periode $nombre_p = SQL_commande ("SELECT t.nombre FROM classes c, types_periode t WHERE c.id_classe='".$classe."' AND t.id_type_periode=c.periode LIMIT 1", $id_sql) ; $nombre_p_max = SQL_ligne_suivante ($nombre_p) ; // Recherche et calcul moyenne $requete = "SELECT SUM(n.valeur*".$format ["max"]."*c.coefficient/c.max) AS somme,SUM(c.coefficient) AS diviseur FROM notes n, controles c WHERE n.valeur!='".$code_non_rendu."' AND n.valeur!='".$code_absent."' AND n.valeur!='".$code_aucune_note."' AND n.valeur!='".$code_dispense."' AND n.controle=c.id_controle AND n.eleve='".$eleve."' AND c.discipline='".$discipline."' AND c.classe='".$classe."' AND c.millesime='".$millesime."' AND c.service_prof='".$code_sp."'" ; If ($periode <= $nombre_p_max [0]) { $requete .= " AND c.periode='".$periode."'" ; } If ($type_moy == 1) { $requete .= " AND c.examen>'0'" ; } $resultat = SQL_commande ($requete, $id_sql) ; $ligne = SQL_ligne_suivante ($resultat) ; If ($ligne [1] > 0) { $ok = SQL_commande ("DELETE FROM moyennes WHERE eleve='".$eleve."' AND service_classe='".$code_sc."' AND service_prof='".$code_sp."' AND periode='".$periode."' AND type='".$type_moy."'", $id_sql) ; $ok = SQL_commande ("INSERT INTO moyennes (eleve,service_classe,service_prof,periode,valeur,type,millesime) VALUES ('".$eleve."','".$code_sc."','".$code_sp."','".$periode."','".($ligne [0]/$ligne [1])."','".$type_moy."','".$millesime."')", $id_sql) ; If ($type_moyenne == 0) { If ($formatage == 1) { Return arrondi_note ($ligne [0]/$ligne [1], $format ["nombre_chiffres"]) ; } Else { Return ($ligne [0]/$ligne [1]) ; } } Else { // Pourcentage If ($formatage == 1) { Return arrondi_note ((($ligne [0]/$ligne [1])*100/$format ["max"]), $format ["nombre_chiffres"]) ; } Else { Return (($ligne [0]/$ligne [1])*100/$format ["max"]) ; } } } Else { $requete = "SELECT n.valeur FROM notes n,controles c WHERE n.controle=c.id_controle AND n.eleve='".$eleve."'" ; $requete .= " AND c.discipline='".$discipline."' AND c.classe='".$classe."' AND c.millesime='".$millesime."' AND c.service_prof='".$code_sp."'" ; If ($periode <= $nombre_p_max [0]) { $requete .= " AND c.periode='".$periode."'" ; } If ($type_moy == 1) { $requete .= " AND c.examen>'0'" ; } $resultat = SQL_commande ($requete, $id_sql) ; $nbr_notes = SQL_nbr_lignes ($resultat) ; If ($nbr_notes > 0) { // On regarde combien il y de notes dans chaque categorie $nbr_abs = $nbr_dis = $nbr_nr = $nbr_an = 0 ; For ($i = 0 ; $i < $nbr_notes ; $i++) { $ligne = SQL_ligne_suivante ($resultat) ; If ($ligne [0] == $code_absent) { $nbr_abs++ ; } ElseIf ($ligne [0] == $code_dispense) { $nbr_dis++ ; } ElseIf ($ligne [0] == $code_non_rendu) { $nbr_nr++ ; } ElseIf ($ligne [0] == $code_aucune_note) { $nbr_an++ ; } } // Renvoi par ordre de priorite : DISPENSE,ABSENT,AUCUNE NOTE If ($nbr_dis > 0) { $code = $code_dispense ; } ElseIf ($nbr_abs > 0) { $code = $code_absent ; } Else { $code = $code_aucune_note ; } } Else { $code = $code_aucune_note ; } $ok = SQL_commande ("DELETE FROM moyennes WHERE eleve='".$eleve."' AND service_classe='".$code_sc."' AND service_prof='".$code_sp."' AND periode='".$periode."' AND type='".$type_moy."'", $id_sql) ; $ok = SQL_commande ("INSERT INTO moyennes (eleve,service_classe,service_prof,periode,valeur,type,millesime) VALUES ('".$eleve."','".$code_sc."','".$code_sp."','".$periode."','".$code."','".$type_moy."','".$millesime."')", $id_sql) ; Return $code ; } } Else { // Eleve qui ne suit pas cette discipline $ok = SQL_commande ("DELETE FROM moyennes WHERE eleve='".$eleve."' AND service_classe='".$code_sc."' AND service_prof='".$code_sp."' AND periode='".$periode."' AND type='".$type_moy."'", $id_sql) ; Return $code_pas_discipline ; } } } Else { // Calculs deja effectues If ($formatage == 1) { // Recherche du format d'affichage des notes $resultat = SQL_commande ("SELECT * FROM gestion ORDER BY millesime DESC LIMIT 1", $id_sql) ; $format = SQL_tableau_associatif ($resultat, "") ; If ((!IsSet ($format ["nombre_chiffres"])) Or (!IsSet ($format ["max"]))) { $resultat = SQL_commande ("SELECT * FROM etablissements t,eleves e,classes c WHERE e.id_eleve='".$eleve."' AND e.classe=c.id_classe AND c.etablissement=t.id_etablissement LIMIT 1", $id_sql) ; $format = SQL_tableau_associatif ($resultat, "") ; } If ($format ["max"] <= 0) { If ($note_par_defaut > 0) { $format ["max"] = $note_par_defaut ; } Else { $format ["max"] = 20 ; } } } // Recherche et calcul moyenne $resultat = SQL_commande ("SELECT valeur FROM moyennes WHERE eleve='".$eleve."' AND service_classe='".$code_sc."' AND service_prof='".$code_sp."' AND periode='".$periode."' AND type='".$type_moy."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; If ($ligne = SQL_ligne_suivante ($resultat)) { If ($type_moyenne == 0) { If ($formatage == 1) { Return arrondi_note ($ligne [0], $format ["nombre_chiffres"]) ; } Else { Return $ligne [0] ; } } Else { // Pourcentage If ($formatage == 1) { Return arrondi_note (($ligne [0]*100/$format ["max"]), $format ["nombre_chiffres"]) ; } Else { Return ($ligne [0]*100/$format ["max"]) ; } } } Else { Return $code_aucune_note ; } } } ElseIf ($type_discipline == 3) { // Discipline specifique avec une seul et unique note donc pas de moyenne a calculer $requete = "SELECT n.valeur FROM notes n,controles c WHERE n.controle=c.id_controle AND n.eleve='".$eleve."' AND c.discipline='".$discipline."' AND c.classe='".$classe."' AND c.millesime='".$millesime."' AND c.service_prof='".$code_sp."'" ; If ($periode <= $nombre_p_max [0]) { $requete .= " AND c.periode='".$periode."'" ; } If ($type_moy == 1) { $requete .= " AND c.examen>'0'" ; } $resultat = SQL_commande ($requete, $id_sql) ; $nbr_notes = SQL_nbr_lignes ($resultat) ; If ($nbr_notes == 1) { $ligne = SQL_ligne_suivante ($resultat) ; Return $ligne [0] ; } Else { $code = $code_aucune_note ; } } } /** * Renvoie la moyenne annuelle d'un eleve d'une classe pour une discipline pour un professeur. Cette moyenne est le calcul de la moyenne des moyennes des differentes periodes * @param int $eleve Id eleve * @param int $classe Id classe * @param int $discipline Id discipline * @param int $code_sc Id service classe * @param int $code_sp Id service prof * @param int $formatage Formattage (=1) ou pas (=0) du resultat * @param int $type_moy Numero du type de moyenne * 0 note normale, 1 note d'examen blanc, 2 Moy controle normale, 3 Min controle normal, 4 Max controle normal, * 5 Moy classe normale, 6 Min classe normale, 7 Max classe normale * 8 Moy classe exam, 9 Min classe exam, 10 Max classe exam * 11 Moy sous-matiere normale, 12 Min sous-matiere normale, 13 Max sous-matiere normale * 14 Moy sous-matiere exam, 15 Min sous-matiere exam, 16 Max sous-matiere exam * 17 Moy sous-matiere classe normale, 18 Min sous-matiere classe normale, 19 Max sous-matiere normale * 20 Moy sous-matiere classe exam, 21 Min sous-matiere classe exam, 22 Max sous-matiere exam * @return float Moyenne ou code indiquant pourquoi il n'y a pas de note */ Function moyenne_annuelle ($eleve, $classe, $discipline, $code_sc, $code_sp, $formatage, $type_moy) { Global $id_sql, $code_non_rendu, $code_absent, $code_dispense, $code_aucune_note, $code_pas_discipline ; $calcul = SQL_commande ("SELECT ok FROM calcul_moyenne WHERE classe='".$classe."' AND periode='".(nombre_periode ($classe)+1)."' AND service_classe='".$code_sc."' AND service_prof='".$code_sp."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($calcul) > 0) { $ok = SQL_ligne_suivante ($calcul) ; } Else { $calcul = SQL_commande ("INSERT INTO calcul_moyenne (classe,periode,service_classe,service_prof,ok,enregistrement,modification,millesime) VALUES ('".$classe."','".(nombre_periode ($classe)+1)."','".$code_sc."','".$code_sp."', '0','".Date ("Y-m-j H:i:s")."','".Date ("Y-m-j H:i:s")."','".millesime (0)."')", $id_sql) ; $ok [0] = 0 ; } If ($ok [0] == 0) { $calcul = SQL_commande ("UPDATE calcul_moyenne SET modification='".Date ("Y-m-j H:i:s")."' WHERE classe='".$classe."' AND periode='".(nombre_periode ($classe)+1)."' AND service_classe='".$code_sc."' AND service_prof='".$code_sp."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; $resultat = SQL_commande ("SELECT * FROM services_classe WHERE id_service_classe='".$code_sc."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat)) { $res = SQL_tableau_associatif ($resultat, "") ; $ok = 0 ; If ($res ["optionnelle"]) { // Discipline OPTIONNELLE If ($res ["groupe"]) { // Option + Groupe $res1 = SQL_commande ("SELECT id_option_eleve FROM options_eleve WHERE eleve='".$eleve."' AND discipline='".$res ["discipline"]."' AND service_classe='".$code_sc."' AND millesime='".millesime (0)."'", $id_sql) ; $res2 = SQL_commande ("SELECT e.id_groupe_eleve, c.id_groupe_classe FROM groupes_eleve e, groupes_classe c WHERE e.eleve='".$eleve."' AND e.discipline='".$res ["discipline"]."' AND c.discipline='".$res ["discipline"]."' AND e.groupe=c.id_groupe_classe AND e.millesime='".millesime (0)."'", $id_sql) ; If (SQL_nbr_lignes ($res2)) { $ok = 3 ; } } Else { // Option seule $res1 = SQL_commande ("SELECT id_option_eleve FROM options_eleve WHERE eleve='".$eleve."' AND discipline='".$res ["discipline"]."' AND service_classe='".$code_sc."' AND millesime='".millesime (0)."'", $id_sql) ; If (SQL_nbr_lignes ($res1)) { $ok = 1 ; } } } Else { // Discipline OBLIGATOIRE If ($res ["groupe"]) { // Groupe seul $res2 = SQL_commande ("SELECT e.id_groupe_eleve, c.id_groupe_classe FROM groupes_eleve e, groupes_classe c WHERE e.eleve='".$eleve."' AND e.discipline='".$res ["discipline"]."' AND c.discipline='".$res ["discipline"]."' AND e.groupe=c.id_groupe_classe AND c.service_classe='".$code_sc."' AND e.millesime='".millesime (0)."'", $id_sql) ; If (SQL_nbr_lignes ($res2)) { $ok = 2 ; } } Else { $ok = 1 ; } } If ($ok) { // Recherche du format d'affichage des notes $resultat = SQL_commande ("SELECT * FROM gestion LIMIT 1", $id_sql) ; $format = SQL_tableau_associatif ($resultat, "") ; If (!IsSet ($format ["moyenne"]) Or !IsSet ($format ["max"])) { $resultat = SQL_commande ("SELECT * FROM etablissements t,eleves e,classes c WHERE e.id_eleve='".$eleve."' AND e.classe=c.id_classe AND c.etablissement=t.id_etablissement LIMIT 1", $id_sql) ; $format = SQL_tableau_associatif ($resultat, "") ; } // Recherche le nombre maxi de periode $nombre_p = SQL_commande ("SELECT t.nombre FROM classes c,types_periode t WHERE c.id_classe='".$classe."' AND t.id_type_periode=c.periode LIMIT 1", $id_sql) ; $nombre_p_max = SQL_ligne_suivante ($nombre_p) ; // Recherche et calcul moyenne If ($format ["moyenne"] == 0) { // Methode de calcul de la moyenne des moyennes de chacune des periodes $moy_ann = 0 ; $nbr_moy = 0 ; For ($periode = 1 ; $periode <= $nombre_p_max [0] ; $periode++) { $m = moyenne_el ($eleve, $classe, $periode, $discipline, $code_sc, $code_sp, $formatage, $type_moy) ; If (($m != $code_non_rendu) And ($m != $code_absent) And ($m != $code_dispense) And ($m != $code_aucune_note) And ($m != $code_pas_discipline)) { $moy_ann += $m ; $nbr_moy++ ; } } If ($nbr_moy > 0) { $moy_ann = $moy_ann/$nbr_moy ; $ok = SQL_commande ("DELETE FROM moyennes WHERE eleve='".$eleve."' AND service_classe='".$code_sc."' AND service_prof='".$code_sp."' AND periode='".(nombre_periode ($classe)+1)."' AND type='".$type_moy."' AND millesime='".millesime (0)."'", $id_sql) ; $ok = SQL_commande ("INSERT INTO moyennes (eleve,service_classe,service_prof,periode,valeur,type,millesime) VALUES ('".$eleve."','".$code_sc."','".$code_sp."','".(nombre_periode ($classe)+1)."','".$moy_ann."','".$type_moy."','".millesime (0)."')", $id_sql) ; If ($formatage == 1) { Return arrondi_note ($moy_ann, $format ["nombre_chiffres"]) ; } Else { Return ($moy_ann) ; } } Else { Return $code_aucune_note ; } } Else { // Methode de la moyenne de l'ensemble des notes de l'annee $requete = "SELECT SUM(n.valeur*".$format ["max"]."*c.coefficient/c.max) AS somme,SUM(c.coefficient) AS diviseur FROM notes n, controles c WHERE n.valeur!='".$code_non_rendu."' AND n.valeur!='".$code_absent."' AND n.valeur!='".$code_aucune_note."' AND n.valeur!='".$code_dispense."' AND n.controle=c.id_controle AND n.eleve='".$eleve."' AND c.discipline='".$discipline."' AND c.classe='".$classe."' AND c.service_prof='".$code_sp."' AND c.millesime='".millesime (0)."'" ; $resultat = SQL_commande ($requete, $id_sql) ; $ligne = SQL_ligne_suivante ($resultat) ; If ($ligne [1] > 0) { $moy_ann += $ligne [0]/$ligne [1] ; $ok = SQL_commande ("DELETE FROM moyennes WHERE eleve='".$eleve."' AND service_classe='".$code_sc."' AND service_prof='".$code_sp."' AND periode='".(nombre_periode ($classe)+1)."' AND type='".$type_moy."' AND millesime='".millesime (0)."'", $id_sql) ; $ok = SQL_commande ("INSERT INTO moyennes (eleve,service_classe,service_prof,periode,valeur,type,millesime) VALUES ('".$eleve."','".$code_sc."','".$code_sp."','".(nombre_periode ($classe)+1)."','".$moy_ann."','".$type_moy."','".millesime (0)."')", $id_sql) ; If ($formatage == 1) { Return arrondi_note ($moy_ann, $format ["nombre_chiffres"]) ; } Else { Return ($moy_ann) ; } } Else { Return $code_aucune_note ; } } } Else { // Eleve qui ne suit pas cette discipline Return $code_pas_discipline ; } } } Else { // Calculs deja effectues If ($formatage == 1) { // Recherche du format d'affichage des notes $resultat = SQL_commande ("SELECT * FROM gestion ORDER BY millesime DESC LIMIT 1", $id_sql) ; $format = SQL_tableau_associatif ($resultat, "") ; If (!IsSet ($format ["nombre_chiffres"])) { $resultat = SQL_commande ("SELECT * FROM etablissements t,eleves e,classes c WHERE e.id_eleve='".$eleve."' AND e.classe=c.id_classe AND c.etablissement=t.id_etablissement LIMIT 1", $id_sql) ; $format = SQL_tableau_associatif ($resultat, "") ; } } // Recherche et calcul moyenne $resultat = SQL_commande ("SELECT valeur FROM moyennes WHERE eleve='".$eleve."' AND service_classe='".$code_sc."' AND service_prof='".$code_sp."' AND periode='".(nombre_periode ($classe)+1)."' AND type='".$type_moy."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; If ($ligne = SQL_ligne_suivante ($resultat)) { If ($formatage == 1) { Return arrondi_note ($ligne [0], $format ["nombre_chiffres"]) ; } Else { Return $ligne [0] ; } } Else { Return $code_aucune_note ; } } } /** * Calcul de la moyenne pour la classe $c, discipline $d et periode $t * @param int $c Id classe * @param int $d Id discipline * @param int $p Numero periode * @param int $sc Id service classe * @param int $sp Id service prof * @param int $type_moy Type de moyenne * 0 note normale, 1 note d'examen blanc, 2 Moy controle normale, 3 Min controle normal, 4 Max controle normal, * 5 Moy classe normale, 6 Min classe normale, 7 Max classe normale * 8 Moy classe exam, 9 Min classe exam, 10 Max classe exam * 11 Moy sous-matiere normale, 12 Min sous-matiere normale, 13 Max sous-matiere normale * 14 Moy sous-matiere exam, 15 Min sous-matiere exam, 16 Max sous-matiere exam * 17 Moy sous-matiere classe normale, 18 Min sous-matiere classe normale, 19 Max sous-matiere normale * 20 Moy sous-matiere classe exam, 21 Min sous-matiere classe exam, 22 Max sous-matiere exam * @return array Tableau contenant les champs "moy", "min" et "max" contenant la moyenne, le minimum et la maximum */ Function stats_disc ($c, $d, $p, $sc, $sp, $type_moy) { // $classe, $discipline, $trimestre // Liste des eleves Global $id_sql, $code_aucune_note, $code_pas_discipline, $code_absent, $code_dispense, $mini_max, $maxi_min ; // Recherche du format d'affichage des notes $resultat = SQL_commande ("SELECT * FROM gestion ORDER BY millesime DESC LIMIT 1", $id_sql) ; $format = SQL_tableau_associatif ($resultat, "") ; If (!IsSet ($format ["nombre_chiffres"])) { $resultat = SQL_commande ("SELECT * FROM etablissements t,eleves e,classes c WHERE e.id_eleve='".$eleve."' AND e.classe=c.id_classe AND c.etablissement=t.id_etablissement LIMIT 1", $id_sql) ; $format = SQL_tableau_associatif ($resultat, "") ; } // Recherche et calcul moyenne $resultat = SQL_commande ("SELECT id_eleve FROM eleves WHERE classe='".$c."' AND millesime='".millesime (0)."' AND exterieur>='0'", $id_sql) ; $diviseur = 0 ; $total = 0 ; $maxi = $mini_max ; $mini = $maxi_min ; $ok = 0 ; While ($ligne = SQL_ligne_suivante ($resultat)) { $cle = $ligne [0] ; If ($p <= nombre_periode ($c)) { $m = moyenne_el ($cle, $c, $p, $d, $sc, $sp, 0, $type_moy) ; } Else { $m = moyenne_annuelle ($cle, $c, $d, $sc, $sp, 0, $type_moy) ; } If (Is_Numeric ($m)) { If ($m < $mini) { $mini = $m ; } If ($m > $maxi) { $maxi = $m ; } $total += $m ; $diviseur++ ; } ElseIf (($m == $code_aucune_note) Or ($m == $code_pas_discipline) Or ($m == $code_absent) Or ($m == $code_dispense)) { $ok = 1 ; } } If ($diviseur > 0) { $retour ["moy"] = arrondi_note ($total/$diviseur, $format ["nombre_chiffres"]) ; $retour ["min"] = $mini ; $retour ["max"] = $maxi ; // Mise a jour de la base $res = SQL_commande ("DELETE FROM moyennes WHERE periode='".$p."' AND service_prof='".$sp."' AND service_classe='".$sc."' AND (type='".($type_moy*3+5)."' OR type='".($type_moy*3+6)."' OR type='".($type_moy*3+7)."') AND millesime='".millesime (0)."'", $id_sql) ; $res = SQL_commande ("INSERT INTO moyennes (eleve,controle,service_classe,service_prof,periode,valeur,type,millesime) VALUES ('0','0','".$sc."','".$sp."','".$p."','".($total/$diviseur)."','".($type_moy*3+5)."'), ('0','0','".$sc."','".$sp."','".$p."','".$retour ["min"]."','".($type_moy*3+6)."'), ('0','0','".$sc."','".$sp."','".$p."','".$retour ["max"]."','".($type_moy*3+7)."','".millesime (0)."')", $id_sql) ; } Else { $retour ["moy"] = $retour ["min"] = $retour ["max"] = $code_aucune_note ; //If ($ok) { $retour ["moy"] = $retour ["min"] = $retour ["max"] = $code_aucune_note ; } //Else { $retour ["moy"] = $retour ["min"] = $retour ["max"] = $code_pas_discipline ; } } Return $retour ; } /** * Renvoie la moyenne, le minimum et le maximum d'une classe pour une discipline pour un professeur. * @param int $c Id classe * @param int $d Id discipline * @param int $p Numero de la periode * @param int $sc Id service classe * @param int $sp Id service prof * @return array [0]=Moyenne, [1]=Minimum, [2]=Maximum ou code indiquant pourquoi il n'y a pas de note */ Function stat_moy_classe ($c, $d, $p, $sc, $sp) { // 5 Moy classe normale, 6 Min classe normale, 7 Max classe normale Global $id_sql, $code_aucune_note, $code_pas_discipline, $code_absent, $code_dispense ; For ($i = 0 ; $i < 3 ; $i++) { $table [$i] = $code_aucune_note ; } $smoy = SQL_commande ("SELECT valeur FROM moyennes WHERE eleve='0' AND controle='0' AND service_classe='".$sc."' AND service_prof='".$sp."' AND periode='".$p."' AND (type='5' OR type='6' OR type='7') AND millesime='".millesime (0)."' ORDER BY type", $id_sql) ; If (SQL_nbr_lignes ($smoy) == 3) { // C'est bon on recupere For ($i = 0 ; $i < 3 ; $i++) { $l = SQL_ligne_suivante ($smoy) ; $table [$i] = $l [0] ; } } Else { // On a pas assez d'info donc on recalcul tout ! $s = stats_disc ($c, $d, $p, $sc, $sp, 0) ; $table [0] = $s ["moy"] ; $table [1] = $s ["min"] ; $table [2] = $s ["max"] ; } Return $table ; } /** * Retourne tableau (chaine) des notes, valeur max, examen, description de $eleve en $sp sur $periode * @param int $eleve Identifiant SQL eleve * @param int $sp Identifiant SQL du service prof * @param int $periode Numero de la periode * @return array Ensemble de notes et caracteristiques (Format : [0][0]=Nombre et [][1]=valeur,[][2]=max,[][3]=examen,[][4]=description,[][5]=coefficient) */ Function notes_el_disc ($eleve, $sp, $periode) { Global $id_sql ; $retour = Array () ; $resultat = SQL_commande ("SELECT n.valeur,c.max,c.examen,c.description,c.coefficient FROM notes n, controles c WHERE n.eleve='".$eleve."' AND n.controle=c.id_controle AND c.periode='".$periode."' AND c.service_prof='".$sp."' AND c.millesime='".millesime (0)."' ORDER BY date ", $id_sql) ; $i = 0 ; While ($ligne = SQL_ligne_suivante ($resultat)) { $retour [$i][1] = $ligne [0] ; $retour [$i][2] = $ligne [1] ; $retour [$i][3] = $ligne [2] ; $retour [$i][4] = filtrage_utf8 ($ligne [3]) ; $retour [$i][5] = $ligne [4] ; $i++ ; } $retour [0][0] = $i ; Return $retour ; } /** * Fonction realisant un test entre une condition et une valeur * @param mixed $valeur Valeur a comparer * @param mixed $extremum Valeur de comparaison * @param int $condition Identifiant de la comparaison a effecture (1=<,2=<=,3==,4=>,5=>=) * @param int $sens Sens de comparaison (0=Valeur par rapport a extremum,1=Extremum par rapport a valeur) * @return int 0=Condition non OK,1=Condition OK */ Function test_conditionnel ($valeur, $extremum, $condition, $sens) { $ok = 0 ; If ($sens == 1) { $tempo = $valeur ; $valeur = $extremum ; $extremum = $tempo ; } Switch ($condition) { Case 1 : If ($extremum < $valeur) { $ok = 1 ; } Break ; Case 2 : If ($extremum <= $valeur) { $ok = 1 ; } Break ; Case 3 : If ($extremum = $valeur) { $ok = 1 ; } Break ; Case 4 : If ($extremum > $valeur) { $ok = 1 ; } Break ; Case 5 : If ($extremum >= $valeur) { $ok = 1 ; } Break ; } Return $ok ; } /** * Filtrage d'une appreciation comportant des champs de publipostage (discipline specifique) * @param string $appreciation Texte de l'appreciation a filtrer * @param int $id_eleve Identifiant de l'eleve * @param int $id_service_prof Identifiant du service professeur * @param int $periode Numero de la periode * @return string Appreciation filtree */ Function filtrage_appreciation_disc_specifique ($appreciation, $id_eleve, $id_service_prof, $periode) { Global $id_sql ; $champs = SQL_commande ("SELECT code_champ,type FROM champs ORDER BY code_champ", $id_sql) ; $nbr_champs = SQL_nbr_lignes ($champs) ; If ($nbr_champs > 0) { $service_prof = SQL_commande ("SELECT * FROM services_prof WHERE id_service_prof='".$id_service_prof."' LIMIT 1", $id_sql) ; $sp = SQL_tableau_associatif ($service_prof, "") ; For ($i = 0 ; $i < $nbr_champs ; $i++) { $champ = SQL_ligne_suivante ($champs) ; While (Is_Numeric (StrPos ($appreciation, filtrage_utf8 ($champ [0])))) { Switch ((integer)$champ [1]) { // Note eleve (si mono-note) Case 1 : $appreciation = Str_Replace (filtrage_utf8 ($champ [0]), moyenne_el ($id_eleve,$sp ["classe"],$periode,$sp ["discipline"],$sp ["service_classe"],$id_service_prof,0,0), $appreciation) ; Break ; // Moyenne eleve Case 2 : $appreciation = Str_Replace (filtrage_utf8 ($champ [0]), moyenne_el ($id_eleve,$sp ["classe"],$periode,$sp ["discipline"],$sp ["service_classe"],$id_service_prof,0,0), $appreciation) ; Break ; // Moyenne classe Case 3 : Break ; // Minimum classe Case 4 : Break ; // Maximum classe Case 5 : Break ; // Nom discipline long Case 6 : $appreciation = Str_Replace (filtrage_utf8 ($champ [0]), nom_discipline_long_par_id_service_prof ($id_service_prof), $appreciation) ; Break ; // Nom discipline court Case 7 : $appreciation = Str_Replace (filtrage_utf8 ($champ [0]), nom_discipline_court_par_id_service_prof ($id_service_prof), $appreciation) ; Break ; // Nom discipline bref Case 8 : $appreciation = Str_Replace (filtrage_utf8 ($champ [0]), nom_discipline_bref_par_id_service_prof ($id_service_prof), $appreciation) ; Break ; } } } } Return $appreciation ; } /** * Appreciations de $eleve dans $discipline pour $periode * @param int $eleve Identifiant SQL eleve * @param int $professeur Identifiant SQL enseignant * @param int $discipline Identifiant SQL discipline * @param int $serv_prof Identifiant SQL du service prof * @param int $periode Numero de la periode * @param int $colonne Numero de la colonne si multicolonne * @return string Texte de appreciation */ Function appreciation ($eleve, $professeur, $discipline, $serv_prof, $periode, $colonne) { Global $id_sql ; // Alias ? $ok = SQL_commande ("SELECT professeur,classe,service_classe FROM services_prof WHERE id_service_prof='".$serv_prof."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($ok) == 1) { $alias = SQL_ligne_suivante ($ok) ; // Est-ce une discipline normale ou pas ? $disc = SQL_commande ("SELECT type_discipline FROM disciplines WHERE id_discipline='".$discipline."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($disc) == 1) { $dsc = SQL_ligne_suivante ($disc) ; If ($dsc [0] == 0) { // Discipline Normale $requete = "SELECT texte FROM appreciations WHERE eleve='".$eleve."' AND discipline='".$discipline."' AND periode='".$periode."' " ; If (($alias [0] > 0) And ($alias [0] == $professeur)) { $requete .= "AND professeur='".$professeur."' " ; } Else { $resultats = SQL_commande ("SELECT id_utilisateur FROM groupes_alias WHERE code='1' AND id_alias='".(-$alias [0])."' ORDER BY numero", $id_sql) ; $nbr_res = SQL_nbr_lignes ($resultats) ; $requete .= "AND (" ; For ($i = 0 ; $i < $nbr_res ; $i++) { $lr = SQL_ligne_suivante ($resultats) ; If ($i > 0) { $requete .= " OR " ; } $requete .= "professeur='".$lr [0]."'" ; } $requete .= ") " ; } $requete .= "AND service_prof='".$serv_prof."'" ; If ($colonne > 0) { If ($colonne == 1) { $requete .= " AND (colonne='".$colonne."' OR colonne='0')" ; } Else { $requete .= " AND colonne='".$colonne."'" ; } } $requete .= " AND millesime='".millesime (0)."' LIMIT 1" ; $resultat = SQL_commande ($requete, $id_sql) ; If ($ligne = SQL_ligne_suivante ($resultat)) { Return filtrage_utf8 ($ligne [0]) ; } Else { Return "" ; } } ElseIf ($dsc [0] == 3) { // Discipline Specifique $resultat = SQL_commande ("SELECT min,max,condition_1,condition_2,phrase FROM phrases_specifiques WHERE id_discipline='".$discipline."' ORDER BY min", $id_sql) ; $moyenne = moyenne_el ($eleve, $alias [1], $periode, $discipline, $alias [2], $serv_prof, 0, 0) ; $nbr_r = SQL_nbr_lignes ($resultat) ; For ($i = 0 ; $i < $nbr_r ; $i++) { $r = SQL_ligne_suivante ($resultat) ; $ok1 = test_conditionnel ($moyenne, $r [0], $r [2], 0) ; $ok2 = test_conditionnel ($moyenne, $r [1], $r [3], 1) ; If (($ok1 == 1) And ($ok2 == 1)) { $phrase = $r [4] ; } } //Return $phrase ; Return filtrage_appreciation_disc_specifique ($phrase, $eleve, $serv_prof, $periode) ; } } Else { Return "" ; } } Else { Return "" ; } } /** * Identifiant de l'appreciations de $eleve dans $discipline pour $periode * @param int $eleve Identifiant SQL eleve * @param int $professeur Identifiant SQL enseignant * @param int $discipline Identifiant SQL discipline * @param int $serv_prof Identifiant SQL du service prof * @param int $periode Numero de la periode * @param int $colonne Numero de la colonne si multicolonne * @return int Identifiant SQL de l'appreciation, 0 sinon */ Function appreciation_id ($eleve, $professeur, $discipline, $serv_prof, $periode, $colonne) { Global $id_sql ; // Alias ? $ok = SQL_commande ("SELECT professeur FROM services_prof WHERE id_service_prof='".$serv_prof."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($ok) == 1) { $alias = SQL_ligne_suivante ($ok) ; $requete = "SELECT id_appreciation FROM appreciations WHERE eleve='".$eleve."' AND discipline='".$discipline."' AND periode='".$periode."' " ; If (($alias [0] > 0) And ($alias [0] == $professeur)) { $requete .= "AND professeur='".$professeur."' " ; } Else { $resultats = SQL_commande ("SELECT id_utilisateur FROM groupes_alias WHERE code='1' AND id_alias='".(-$alias [0])."' ORDER BY numero", $id_sql) ; $nbr_res = SQL_nbr_lignes ($resultats) ; $requete .= "AND (" ; For ($i = 0 ; $i < $nbr_res ; $i++) { $lr = SQL_ligne_suivante ($resultats) ; If ($i > 0) { $requete .= " OR " ; } $requete .= "professeur='".$lr [0]."'" ; } $requete .= ") " ; } $requete .= " AND service_prof='".$serv_prof."'" ; If ($colonne > 0) { If ($colonne == 1) { $requete .= " AND (colonne='".$colonne."' OR colonne='0')" ; } Else { $requete .= " AND colonne='".$colonne."'" ; } } $requete .= " AND millesime='".millesime (0)."' LIMIT 1" ; $resultat = SQL_commande ($requete, $id_sql) ; If ($ligne = SQL_ligne_suivante ($resultat)) { Return $ligne [0] ; } Else { Return 0 ; } } Else { Return 0 ; } } /** * Permet de savoir si une colonne d'appreciation particuliere a ete utilisee * @param int $colonne Numero de la colonne si multicolonne * @return int 0=Non utilise,1=Utilise */ Function colonne_appreciation_existe ($colonne) { Global $id_sql ; If ($colonne > 0) { $resultat = SQL_commande ("SELECT id_appreciation FROM appreciations WHERE colonne='".$colonne."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; If ($ligne = SQL_ligne_suivante ($resultat)) { Return $ligne [0] ; } Else { Return 0 ; } } Else { Return 0 ; } } /** * Renvoi le nom d'une colonne d'appreciation particuliere * @param int $num_colonne Numero de la colonne si multicolonne * @param int $id_etablissement Identifiant de l'etablissement * @return string Nom de la colonne */ Function nom_colonne_appreciation ($num_colonne, $id_etablissement) { Global $id_sql ; If ($num_colonne > 0) { $nom = restaure_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NOM_COLONNE_".$num_colonne) ; Return $nom ; } Else { Return "Appréciations" ; } } /** * Appreciations de l'equipe pedagogique de $eleve pour $periode * @param int $id_eleve Identifiant SQL eleve * @param int $id_classe Identifiant SQL classe * @param int $periode Numero de la periode * @return string Texte de appreciation */ Function appreciation_equipe_pedagogique ($id_eleve, $id_classe, $periode) { Global $id_sql ; $ok = SQL_commande ("ALTER TABLE appreciations CHANGE professeur professeur INT(11) DEFAULT '0' NOT NULL", $id_sql) ; $resultat = SQL_commande ("SELECT texte FROM appreciations WHERE eleve='".$id_eleve."' AND classe='".$id_classe."' AND periode='".$periode."' AND professeur='-1' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; If ($ligne = SQL_ligne_suivante ($resultat)) { Return StripSlashes (filtrage_utf8 ($ligne [0])) ; } Else { Return "" ; } } /** * Saisie appreciations de l'equipe pedagogique de $eleve pour $periode * @param int $id_eleve Identifiant SQL eleve * @param int $id_classe Identifiant SQL classe * @param int $periode Numero de la periode * @param string $texte Texte de l'appreciation * @return boolean Indique si l'ecriture s'est bien passee */ Function ecriture_appreciation_equipe_pedagogique ($id_eleve, $id_classe, $periode, $texte) { Global $id_sql ; $ok = SQL_commande ("ALTER TABLE appreciations CHANGE professeur professeur INT(11) DEFAULT '0' NOT NULL", $id_sql) ; //$ok = SQL_commande ("DELETE from appreciations WHERE eleve='".$id_eleve."' AND classe='".$id_classe."' AND periode='".$periode."' AND professeur='-1' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; $ok = SQL_commande ("SELECT id_appreciation from appreciations WHERE eleve='".$id_eleve."' AND classe='".$id_classe."' AND periode='".$periode."' AND professeur='-1' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($ok) == 1) { $ok1 = SQL_ligne_suivante ($ok) ; $ok = SQL_commande ("UPDATE appreciations SET eleve='".$id_eleve."',classe='".$id_classe."',periode='".$periode."',texte='".$texte."',professeur='-1',millesime='".millesime (0)."',colonne='0' WHERE id_appreciation='".$ok1 [0]."' LIMIT 1", $id_sql) ; } Else { $ok = SQL_commande ("INSERT INTO appreciations (eleve,classe,periode,texte,professeur,colonne,millesime) VALUES ('".$id_eleve."','".$id_classe."','".$periode."','".$texte."','-1','0','".millesime (0)."')", $id_sql) ; } If ($ok) { Return True ; } Else { Return False ; } } /** * Renvoi le coefficient de calcul de la discipline vie scolaire * @param int $id_classe Identifiant de la classe * @return double Coefficient numerique */ Function coefficient_discipline_vie_scolaire ($id_classe) { Global $id_sql ; $resultat = SQL_commande ("SELECT coefficient_vs FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; If ($ligne = SQL_ligne_suivante ($resultat)) { Return $ligne [0] ; } Else { Return 0 ; } } /** * Renvoi l'identifiant du CPE * @param int $id_classe Identifiant de la classe * @return int Identifiant CPE si existe sinon 0 */ Function id_cpe_par_id_classe ($id_classe) { Global $id_sql ; $resultat = SQL_commande ("SELECT u.id_utilisateur FROM utilisateurs u,classes c WHERE c.id_classe='".$id_classe."' AND c.cpe=u.id_utilisateur LIMIT 1", $id_sql) ; If ($ligne = SQL_ligne_suivante ($resultat)) { Return $ligne [0] ; } Else { Return 0 ; } } // =============================================================================== // GESTION HTML // ------------------------------------------------------------------------------- /** * Formulaire de saisie de date * @param int $j Jour courant * @param int $m Mois courant * @param int $a Annee courante * @param int $debut Premiere annee * @param int $taille Nombre d'annees * @param string $var_jour Nom de la variable pour le jour * @param string $var_mois Nom de la variable pour le mois * @param string $var_annee Nom de la variable pour l'annee * @return string $f Chaine formattee contenant le formulaire */ Function saisie_date ($j, $m, $a, $debut, $taille, $var_jour, $var_mois, $var_annee) { $nom_mois [1] = "Janvier" ; $nom_mois [2] = "Février" ; $nom_mois [3] = "Mars" ; $nom_mois [4] = "Avril" ; $nom_mois [5] = "Mai" ; $nom_mois [6] = "Juin" ; $nom_mois [7] = "Juillet" ; $nom_mois [8] = "Août" ; $nom_mois [9] = "Septembre" ; $nom_mois [10] = "Octobre" ; $nom_mois [11] = "Novembre" ; $nom_mois [12] = "Décembre" ; $f = "" ; $f .= " " ; $f .= " " ; $f .= "" ; Return $f; } /** * Formulaire de saisie d'une heure * @param int $h Heure courante * @param int $m Minute courante * @param int $s Seconde courante * @param int $deb_h Heure de debut * @param int $fin_h Heure de fin * @param int $deb_m Minute de debut * @param int $fin_m Minute de fin * @param int $deb_s Secondes de debut * @param int $fin_s Secondes de fin * @param string $var_heure Nom de la variable pour l'heure * @param string $var_minute Nom de la variable pour les minutes * @param string $var_seconde Nom de la variable pour les secondes * @return string $f Chaine formattee contenant le formulaire */ Function saisie_heure ($h, $m, $s, $deb_h, $fin_h, $deb_m, $fin_m, $deb_s, $fin_s, $var_heure, $var_minute, $var_seconde) { $f = "" ; If ($deb_h >= 0) { $f .= "H" ; } Else { $f .= "" ; } If ($deb_m >= 0) { $f .= "" ; } Else { $f .= "" ; } If ($deb_s >= 0) { $f .= "m" ; } Else { $f .= "" ; } Return $f ; } /** * Recherche des couleurs des notes pour affichage * @param int $id_classe Identifiant de la classe * @param int $code_session Identifiant de session courante * @param string $identifiant Identifiant de connexion (login) * @return array Tableau contenant les intervalles de couleurs */ Function couleurs_notes ($id_classe, $code_session, $identifiant) { Global $id_sql, $note_par_defaut ; If ($id_classe > 0) { $gestion = SQL_commande ("SELECT e.max FROM etablissements e,classes c WHERE c.id_classe='".$id_classe."' AND c.etablissement=e.id_etablissement LIMIT 1", $id_sql) ; $gst = SQL_ligne_suivante ($gestion) ; } Else { $gst [0] = $note_par_defaut ; } $ut = SQL_commande ("SELECT utilisateur FROM sessions WHERE id_session='".$code_session."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($ut) == 1) { $u = SQl_ligne_suivante ($ut) ; // Existe-t-il des couleurs personnalisees ? $cp = SQL_commande ("SELECT indice,valeur FROM configuration WHERE identification='PROF_".$u [0]."' AND nom='COUL_NOTE_".$id_classe."' AND millesime='".millesime (0)."' ORDER BY indice", $id_sql) ; If (SQL_nbr_lignes ($cp) == 0) { $cp = SQL_commande ("SELECT indice,valeur FROM configuration WHERE identification='PROF_".$u [0]."' AND nom='COUL_NOTE_0' AND millesime='".millesime (0)."' ORDER BY indice", $id_sql) ; If (SQL_nbr_lignes ($cp) == 0) { $non_ok = 1 ; } Else { $non_ok = 0 ; } } Else { $non_ok = 0 ; } If ($non_ok == 0) { // Ok $couleurs [0][0] = SQL_nbr_lignes ($cp) ; For ($i = 1 ; $i <= $couleurs [0][0] ; $i++) { $clp = SQL_ligne_suivante ($cp) ; $couleurs [$i][0] = $clp [0]*$gst [0] ; // Intervalle $couleurs [$i][1] = $clp [1] ; // Couleur } } } Else { // L'utilisateur non trouve dans la session ??? $non_ok = 1 ; } If ($non_ok == 1) { // Couleurs par defaut $couleurs [0][0] = 3 ; // Nombre de couleurs $couleurs [1][0] = 0.4*$gst [0] ; // Intervalle 1 : de 0 a 40%MAX $couleurs [1][1] = "#ff0000" ; // Couleur rouge $couleurs [2][0] = 0.6*$gst [0] ; // Intervalle 2 : de 40%MAX a 60%MAX $couleurs [2][1] = "#e6872f" ; // Couleur orange $couleurs [3][0] = $gst [0] ; // Intervalle 3 :de 60%MAX a 100%MAX $couleurs [3][1] = "#2f9709" ; // Couleur vert } Return $couleurs ; } /** * Affichage d'une cellule * @param string $couleur Couleur du fond de la cellule * @param string $titre Titre a mettre en commentaire * @param int $taille Hauteur des caracteres * @param string $note Note a afficher * @param int $c 0:Decomposition note couleur defaut, 1:Decomposition avec couleur $c_car, 2:Une cellule avec couleur defaut, 3:Une cellule avec couleur $c_car * @param string $c_car Couleur de la note si $c==1 * @param array $cn Couleurs des notes en fontion de l'intervalle * @param int $vm Valeur maximale */ Function affiche_note ($couleur, $titre, $taille, $note, $c, $c_car, $cn, $vm) { Global $id_sql ; $note = Str_Replace (",",".",$note) ; If (($p = StrPos ($note, "(")) Or ($p = StrPos ($note, "["))) { $suppl = SubStr ($note, $p, StrLen ($note)-$p) ; $note = SubStr ($note, 0, $p) ; } If ($c < 2) { Echo " " ; If ($c == 0) { $i = 1 ; $ok = 0 ; If ($cn [$cn [0][0]][0] != 0) { $coefficient = $vm/$cn [$cn [0][0]][0] ; } Else { $coefficient = 1 ; } While (($i < $cn [0][0]) And ($ok == 0)) { If ($note < $coefficient*$cn [$i][0]) { $c_car = $cn [$i][1] ; $ok = 1 ; } $i++ ; } If ($ok == 0) { $c_car = $cn [$i][1] ; } } If (StrPos ($note, ".")) { Echo " " ; Echo "".SubStr ($note, 0, StrPos ($note, "."))."" ; Echo "" ; Echo "" ; Echo "," ; Echo "" ; Echo "" ; Echo "".SubStr ($note, StrPos ($note, ".")+1, StrLen ($note))."" ; Echo " " ; Echo " " ; If ($suppl) { Echo " ".$suppl ; } Echo "" ; } Else { Echo " " ; Echo "".$note."" ; Echo "" ; Echo "" ; If ($suppl) { Echo " ".$suppl ; } Else { Echo " " ; } Echo "" ; } } Else { If ($c == 2) { $i = 1 ; $ok = 0 ; If ($cn [$cn [0][0]][0] != 0) { $coefficient = $vm/$cn [$cn [0][0]][0] ; } Else { $coefficient = 1 ; } While (($i < $cn [0][0]) And ($ok == 0)) { If ($note < $coefficient*$cn [$i][0]) { $c_car = $cn [$i][1] ; $ok = 1 ; } $i++ ; } If ($ok == 0) { $c_car = $cn [$i][1] ; } } Echo " " ; If (StrPos ($note, ".")) { Echo Str_Replace (".",",",$note) ; } Else { Echo $note ; } Echo "" ; If ($suppl) { Echo " ".$suppl ; } Echo "" ; } } /** * Insertion de l'entete HTML * @param string $titre Titre de la page courante * @param string $cible Cible des pointages FORM * @param int $fin_session Numero de fin de session (0 : aucune ; 1 : courante) */ Function entete_html ($titre, $cible, $fin_session) { Global $http_garennes, $page_sortie, $droit_courant, $duree_deux_messages, $nombre_messages, $fenetre, $droit_courant, $droit_cpe, $repertoire_racine, $theme ; If ((integer)$duree_deux_messages < 30) { $duree_deux_messages = 30 ; } If ((integer)$nombre_messages < 1) { $nombre_messages = 3 ; } // Destruction des fichiers temporaires If (IsSet ($repertoire_racine)) { @Unlink ($repertoire_racine."tmp/f".Session_Id ().".pdf") ; @Unlink ($repertoire_racine."tmp/f".Session_Id ().".csv") ; @Unlink ($repertoire_racine."tmp/f".Session_Id ()) ; } Echo "" ; Echo "" ; If ($titre == "") { $titre = "Garennes." ; } Echo "".$titre."" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; // Styles Echo "" ; If ($cible != "") { Echo "" ; } If ((integer)$fenetre == 1) { Echo "" ; } If ($fin_session == 1) { $rs = renseignements_session () ; If ($duree_deux_messages <= 0) { $duree_deux_messages = 30 ; } $duree_messages = $nombre_messages*$duree_deux_messages ; $duree_restante_minute = Round ($duree_messages/60) ; If ($rs [2] < $duree_messages) { $rs [2] = $duree_messages+$duree_deux_messages+$duree_deux_messages-1 ; } If ((integer)$fenetre == 0) { //Echo "" ; Echo "" ; } ElseIf ((integer)$fenetre == 1) { //Echo "" ; Echo "" ; } } ElseIf ((integer)$fenetre == 1) { Echo "" ; } } /** * Insertion d'une fonction de patience de chargement de la page * @param string $message Titre de la page courante * @param string $coul_bord Couleur du bord de la fenetre * @param string $coul_fond Couleur du fond de la fenetre * @return string HTML du code de patience */ Function faire_patienter ($message, $coul_bord, $coul_fond) { Global $droit_courant ; $ligne = "

" ; $ligne .= "" ; Return $ligne ; } /** * Generation d'un mot de passe prononcable * @return string Mot de passe */ Function passe_mnemo () { If (func_num_args() == 1) { $nb = func_get_arg(0) ; } Else { $nb = 8 ; } // on utilise certains chiffres : 1 = i, 5 = S, 6=b, 3=E, 9=G, 0=O $lettre = Array () ; $lettre[0] = Array ('a','b','c','d','e','f','g','h','i', 'j','k','l','m','o','n','p','q','r', 's','t','u','v','w','x','y','z','A', 'B','C','D','E','F','G','H','I','J', 'K','L','M','N','O','P','Q','R','D', 'S','T','U','V','W','X','Y','Z','9', '0','6','5','1','3') ; $lettre[1] = Array ('a','e','i','o','u','y','A','E', 'I','O','U','Y' ,'1','3','0' ) ; $lettre[-1] = Array ('b','c','d','f','g','h','j','k', 'l','m','n','p','q','r','s','t', 'v','w','x','z','B','C','D','F', 'G','H','J','K','L','M','N','P', 'Q','R','S','T','V','W','X','Z', '5','6','9') ; $retour = "" ; $prec = 1 ; $precprec = -1 ; SRand ((double)microtime()*20001107) ; While (StrLen ($retour) < $nb) { // pour genere la suite de lettre, on dit : si les deux lettres sont // des consonnes (resp. des voyelles) on affiche des voyelles (resp, des consonnes). // si les lettres sont de type differents, on affiche une lettre de l'alphabet $type = ($precprec + $prec)/2 ; $r = $lettre [$type][array_rand ($lettre [$type], 1)] ; $retour .= $r ; $precprec = $prec ; $prec = in_array ($r, $lettre [-1]) - in_array ($r, $lettre [1]) ; } Return $retour ; } /** * Style de la frame * @param string $l_d Couleur du texte du lien * @param string $a_d Couleur du texte du lien actif * @param string $v_d Couleur du texte du lien visite * @param string $h_f Couleur de fond du lien parcouru * @param string $h_d Couleur du texte du lien parcouru * @return string HTML du style utilise */ Function styles ($l_d, $a_d, $v_d, $h_f, $h_d) { Global $droit_courant, $droit_admin ; $police = restaure_configuration ("SYSTEME_PARAM","GENERAL","POLICE") ; $taille_normale = restaure_configuration ("SYSTEME_PARAM","GENERAL","TAILLE_POLICE_NORMALE") ; $taille_h1 = restaure_configuration ("SYSTEME_PARAM","GENERAL","TAILLE_POLICE_H1") ; If ($police == "") { $police = "Arial,sans-serif" ; sauvegarde_configuration ("SYSTEME_PARAM","GENERAL","POLICE", $police) ; } If ($taille_normale == "") { $taille_normale = 10 ; sauvegarde_configuration ("SYSTEME_PARAM","GENERAL","TAILLE_POLICE_NORMALE", $taille_normale) ; } If ($taille_h1 == "") { $taille_h1 = 16 ; sauvegarde_configuration ("SYSTEME_PARAM","GENERAL","TAILLE_POLICE_h1", $taille_h1) ; } $style = "" ; Return $style ; } /** * Affichage du message lors d'une mise a jour ou insertion... * @param string $message Numero de message a afficher * @param array $rapport Rapport de verification (si existe : $rapport [0] > 0) */ Function affiche_message ($message, $rapport) { If (($message) Or (Is_Array ($rapport) And ($rapport [0] > 0))) { Echo "
" ; If (Is_Numeric ($message)) { If ($message > 0) { Echo "" ; Switch ($message) { Case 1 : Echo "Modification effectuée !" ; Break ; Case 2 : Echo "Mise à jour effectuée !" ; Break ; Case 3 : Echo "État de la vérification" ; Break ; Case 4 : Echo "Ajout effectué !" ; Break ; Case 5 : Echo "Problème d'ajout : Contactez l'administrateur !" ; Break ; Case 6 : Echo "Supression effectuée !" ; Break ; Case 7 : Echo "Problème de suppression : Contactez l'administrateur !" ; Break ; Case 8 : Echo "Déjà existant !" ; Break ; Case 9 : Echo "Champs non complets !" ; Break ; Case 10 : Echo "Problème de mise à jour : Non existant dans la base de données !" ; Break ; Default : Echo "Modification effectuée !" ; Break ; } } Echo "" ; } Else { Echo "".$message."" ; } If (Is_Array ($rapport) And ($rapport [0] > 0)) { Echo "
" ; } Echo "
" ; } } /** * Formattage du nom et prenom eleve avec sortie HTML ou texte * @param string $nom Nom de l'eleve * @param string $prenoms Prenoms de l'eleve * @param int $f_nom Type de formattage du nom (0=NOM/1=Nom/2=NOM/3=Nom/4=NOM/5=Nom/6=NOM/7=Nom) * @param int $f_prenom Type de formattage du prenom (voir f_nom pour les modes) * @param int $sortie Mode de sortie (0=HTML/1=texte) * @return string Formattage */ Function formatte_nom_eleve ($nom, $prenoms, $f_nom, $f_prenom, $sortie) { If (StrPos ($prenoms, " ") > 0) { $prenom = SubStr ($prenoms, 0, StrPos ($prenoms, " ")) ; } Else { $prenom = $prenoms ; } Switch ($f_nom) { Case 0 : Case 2 : Case 4 : Case 6 : $nom = StrToUpper ($nom) ; Break ; Case 1 : Case 3 : Case 5 : Case 7 : $nom = StrToUpper (SubStr ($nom,0,1)).StrToLower (SubStr ($nom,1,StrLen ($nom)-1)) ; Break ; } Switch ($f_prenom) { Case 0 : Case 2 : Case 4 : Case 6 : $prenom = StrToUpper ($prenom) ; Break ; Case 1 : Case 3 : Case 5 : Case 7 : $prenom = StrToUpper (SubStr ($prenom,0,1)).StrToLower (SubStr ($prenom,1,StrLen ($prenom)-1)) ; Break ; } If ($sortie == 0) { $espace = " " ; Switch ($f_nom) { Case 2 : Case 3 : $nom = "".$nom."" ; Break ; Case 4 : Case 5 : $nom = "".$nom."" ; Break ; Case 6 : Case 7 : $nom = "".$nom."" ; Break ; } Switch ($f_prenom) { Case 2 : Case 3 : $prenom = "".$prenom."" ; Break ; Case 4 : Case 5 : $prenom = "".$prenom."" ; Break ; Case 6 : Case 7 : $prenom = "".$prenom."" ; Break ; } } Else { $espace = " " ; } Return Str_Replace (" ",$espace,$nom).$espace.Str_Replace (" ",$espace,$prenom) ; } /** * Purge l'ensemble de la base de donnees * @param string $d Espace a positionner au debut du tableau (A ELIMINER) * @param string $ch Couleur de fond de la ligne d'entete du tableau du rapport * @param string $cf Couleur de fond du tableau du rapport * @param string $tf Taille de la police de caracteres utilise dans le tableau du rapport * @return string Rapport en HTML */ Function purger ($d, $ch, $cf, $tf) { Global $id_sql ; $millesime = millesime (0) ; // Efface les services prof sans relation $services_prof = SQL_commande ("SELECT * FROM services_prof WHERE millesime='".$millesime."' ORDER BY code_classe", $id_sql) ; For ($i = 0 ; $i < SQL_nbr_lignes ($services_prof) ; $i++) { $sp = SQL_tableau_associatif ($services_prof, "") ; $services_classe = SQL_commande ("SELECT id_service_classe FROM services_classe WHERE id_service_classe='".$sp ["service_classe"]."'" , $id_sql) ; If (SQL_nbr_lignes ($services_classe) == 0) { If ($sp ["groupe_classe"] > 0) { $groupes_classe = SQL_commande ("SELECT id_groupe_classe FROM services_classe WHERE id_groupe_classe='".$sp ["groupe_classe"]."' LIMIT 1" , $id_sql) ; If (SQL_nbr_lignes ($groupes_classe) > 0) { $ok = SQL_commande ("DELETE FROM groupes_classe WHERE id_groupe_classe='".$sp ["groupe_classe"]."' LIMIT 1", $id_sql) ; } } $ok = SQL_commande ("DELETE FROM services_prof WHERE id_service_prof='".$sp ["id_service_prof"]."' LIMIT 1", $id_sql) ; } } // Efface les services classe sans relation $services_classe = SQL_commande ("SELECT * FROM services_classe WHERE millesime='".$millesime."' ORDER BY code_classe", $id_sql) ; For ($i = 0 ; $i < SQL_nbr_lignes ($services_classe) ; $i++) { $sc = SQL_tableau_associatif ($services_classe, "") ; $services_prof = SQL_commande ("SELECT id_service_prof FROM services_prof WHERE service_classe='".$sc ["id_service_classe"]."' AND millesime='".$millesime."'" , $id_sql) ; If (SQL_nbr_lignes ($services_prof) == 0) { $ok = SQL_commande ("DELETE FROM services_classe WHERE id_service_classe='".$sc ["id_service_classe"]."' LIMIT 1", $id_sql) ; } } $l = $d."" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; $compteur = 0 ; $classes = SQL_commande ("SELECT * FROM classes WHERE millesime='".$millesime."' ORDER BY nom_bref", $id_sql) ; For ($j = 0 ; $j < SQL_nbr_lignes ($classes) ; $j++) { $cl = SQL_tableau_associatif ($classes, "") ; $disciplines = SQL_commande ("SELECT * FROM disciplines WHERE millesime='".$millesime."' ORDER BY nom_court", $id_sql) ; $nbr_d = SQL_nbr_lignes ($disciplines) ; For ($i = 0 ; $i < $nbr_d ; $i++) { $disc = SQL_tableau_associatif ($disciplines, "") ; $services_classe = SQL_commande ("SELECT * FROM services_classe WHERE classe='".$cl ["id_classe"]."' AND code_classe='".$cl ["nom_bref"]."' AND discipline='".$disc ["id_discipline"]."' AND code_disc='".$disc ["code"]."' AND optionnelle='0' AND millesime='".$millesime."' ORDER BY groupe", $id_sql) ; $sc = SQL_tableau_associatif ($services_classe, "") ; If ((SQL_nbr_lignes ($services_classe) >= 2) And ($sc ["groupe"] == 0)) { $sc = SQL_tableau_associatif ($services_classe, "") ; $services_prof = SQL_commande ("SELECT * FROM services_prof WHERE classe='".$cl ["id_classe"]."' AND code_classe='".$cl ["nom_bref"]."' AND discipline='".$disc ["id_discipline"]."' AND code_disc='".$disc ["code"]."' AND service_classe='".$sc ["id_service_classe"]."' AND millesime='".$millesime."'", $id_sql) ; $nbr_sp = SQL_nbr_lignes ($services_prof) ; If ($nbr_sp > 0) { For ($k = 1 ; $k <= $nbr_sp ; $k++) { $sp = SQL_tableau_associatif ($services_prof, "") ; $efface [$k][0] = $sp ["groupe_classe" ] ; $efface [$k][1] = $sp ["is_service_prof" ] ; $efface [$k][2] = $sp ["sous_discipline" ] ; $efface [$k][3] = 0 ; $efface [$k][4] = $sp ["service_classe" ] ; } $efface [0][0] = $k ; For ($k = 1 ; $k <= $efface [0][0]-1 ; $k++) { For ($ll = $k + 1 ; $ll <= $efface [0][0] ; $ll++) { If ($efface [$k][2] == $efface [$ll][2]) { $efface [$k][3]++ ; $efface [$ll][3]++ ; } } } For ($k = 1 ; $k <= $efface [0][0] ; $k++) { If ($efface [$k][3]) { $compteur++ ; //$sp = SQL_tableau_associatif ($services_prof, "") ; //$ok = SQL_commande ("DELETE FROM groupes_classe WHERE id_groupe_classe='".$sp ["groupe_classe"]."'", $id_sql) ; //$ok = SQL_commande ("DELETE FROM services_prof WHERE id_service_classe='".$sp ["id_service_prof"]."'", $id_sql) ; $ok = SQL_commande ("DELETE FROM groupes_classe WHERE id_groupe_classe='".$efface [$k][0]."'", $id_sql) ; $ok = SQL_commande ("DELETE FROM services_prof WHERE id_service_classe='".$sp [$k][1]."'", $id_sql) ; //echo "DELETE FROM groupes_classe WHERE id_groupe_classe='".$efface [$k][0]."'
" ; //echo "DELETE FROM services_prof WHERE id_service_classe='".$sp [$k][1]."'
" ; $ok = SQL_commande ("DELETE FROM services_classe WHERE id_service_classe='".$efface [$k][4]."'", $id_sql) ; //echo "DELETE FROM services_classe WHERE id_service_classe='".$efface [$k][4]."'
" ; $util = SQL_commande ("SELECT nom,prenom FROM utilisateurs WHERE numen='".$sp ["numen_prof"]."'", $id_sql) ; $u = SQL_ligne_suivante ($util) ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; } } //SQL_commande ("DELETE FROM services_classe WHERE id_service_classe='".$sc ["id_service_classe"]."'", $id_sql) ; //$util = SQL_commande ("SELECT nom,prenom FROM utilisateurs WHERE numen='".$sp ["numen_prof"]."'", $id_sql) ; //$u = SQL_ligne_suivante ($util) ; //$l .= $d."" ; //$l .= $d."" ; //$l .= $d."" ; //$l .= $d."" ; //$l .= $d."" ; } Else { $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; } } $services_classe = SQL_commande ("SELECT * FROM services_classe WHERE classe='".$cl ["id_classe"]."' AND code_classe='".$cl ["nom_bref"]."' AND discipline='".$disc ["id_discipline"]."' AND code_disc='".$disc ["code"]."' AND optionnelle='1' AND millesime='".$millesime."' ORDER BY groupe", $id_sql) ; $sc = SQL_tableau_associatif ($services_classe, "") ; If ((SQL_nbr_lignes ($services_classe) >= 2) And ($sc ["groupe"] == 0)) { $sc = SQL_tableau_associatif ($services_classe, "") ; $services_prof = SQL_commande ("SELECT * FROM services_prof WHERE classe='".$cl ["id_classe"]."' AND code_classe='".$cl ["nom_bref"]."' AND discipline='".$disc ["id_discipline"]."' AND code_disc='".$disc ["code"]."' AND service_classe='".$sc ["id_service_classe"]."' AND millesime='".$millesime."'", $id_sql) ; $compteur++ ; If (SQL_nbr_lignes ($services_prof) > 0) { For ($k = 0 ; $k < SQL_nbr_lignes ($services_prof) ; $k++) { $sp = SQL_tableau_associatif ($services_prof, "") ; $ok = SQL_commande ("DELETE FROM groupes_classe WHERE id_groupe_classe='".$sp ["groupe_classe"]."'", $id_sql) ; $ok = SQL_commande ("DELETE FROM services_prof WHERE id_service_classe='".$sp ["id_service_prof"]."'", $id_sql) ; } $ok = SQL_commande ("DELETE FROM services_classe WHERE id_service_classe='".$sc ["id_service_classe"]."'", $id_sql) ; $util = SQL_commande ("SELECT nom,prenom FROM utilisateurs WHERE numen='".$sp ["numen_prof"]."'", $id_sql) ; $u = SQL_ligne_suivante ($util) ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; } Else { $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; } } } } If ($compteur == 0) { $l = $d."
 Classe  Discipline  Enseignant 
 ".$cl ["nom"]." (".$cl ["nom_bref"].")  ".$disc ["nom_long"]."  ".$u [0]." ".$u [1]." 
 ".$cl ["nom"]." (".$cl ["nom_bref"].")  ".$disc ["nom_long"]."  ".$u [0]." ".$u [1]." 
 ".$cl ["nom_court"]." (".$cl ["nom_bref"].")  ".$disc ["nom_long"]."  Aucun service prof correspondant ! 
 ".$cl ["nom"]." (".$cl ["nom_bref"].")  ".$disc ["nom_long"]."  ".$u [0]." ".$u [1]." 
 ".$cl ["nom_court"]." (".$cl ["nom_bref"].")  ".$disc ["nom_long"]."  Aucun service prof correspondant ! 
" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; } $l .= $d."
  La base est déjà purgée !  
" ; Return $l ; } /** * Optimisation de la base des options * @param string $d Espace a positionner au debut du tableau (A ELIMINER) * @param string $ch Couleur de fond de la ligne d'entete du tableau du rapport * @param string $cf Couleur de fond du tableau du rapport * @param string $tf Taille de la police de caracteres utilise dans le tableau du rapport * @return string Rapport en HTML */ Function purger_options ($d, $ch, $cf, $tf) { Global $id_sql ; $millesime = millesime (0) ; $l = $d."" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; $compteur = 0 ; $classes = SQL_commande ("SELECT * FROM classes WHERE millesime='".$millesime."' ORDER BY nom_bref", $id_sql) ; For ($i = 0 ; $i < SQL_nbr_lignes ($classes) ; $i++) { $cl = SQL_tableau_associatif ($classes, "") ; $disciplines = SQL_commande ("SELECT * FROM disciplines WHERE millesime='".$millesime."' ORDER BY nom_court", $id_sql) ; For ($j = 0 ; $j < SQL_nbr_lignes ($disciplines) ; $j++) { $disc = SQL_tableau_associatif ($disciplines, "") ; $services_classe = SQL_commande ("SELECT * FROM services_classe WHERE classe='".$cl ["id_classe"]."' AND code_classe='".$cl ["nom_bref"]."' AND discipline='".$disc ["id_discipline"]."' AND code_disc='".$disc ["code"]."' AND optionnelle='1' AND groupe='0' AND millesime='".$millesime."'", $id_sql) ; For ($k = 0 ; $k < SQL_nbr_lignes ($services_classe) ; $k++) { $sc = SQL_tableau_associatif ($services_classe, "") ; $groupes_classe = SQL_commande ("SELECT g.code_groupe, p.id_service_prof FROM groupes_classe g, services_prof p, services_classe s WHERE g.classe='".$cl ["id_classe"]."' AND g.code_classe='".$cl ["nom_bref"]."' AND g.discipline='".$disc ["id_discipline"]."' AND g.code_disc='".$disc ["code"]."' AND g.id_groupe_classe=p.groupe_classe AND p.classe='".$cl ["id_classe"]."' AND p.code_classe='".$cl ["nom_bref"]."' AND p.discipline='".$disc ["id_discipline"]."' AND p.code_disc='".$disc ["code"]."' AND p.service_classe=s.id_service_classe AND p.millesime='".$millesime."'", $id_sql) ; If (SQL_nbr_lignes ($groupes_classe) == 1) { $compteur++ ; $gc = SQL_tableau_associatif ($groupes_classe, "") ; SQL_commande ("DELETE FROM groupes_classe WHERE id_groupe_classe='".$gc ["id_groupe_classe"]."'", $id_sql) ; SQL_commande ("UPDATE services_classe SET groupe='0' WHERE id_service_classe='".$sc ["id_service_classe"]."'", $id_sql) ; SQL_commande ("UPDATE services_prof SET groupe_classe='0' WHERE id_service_prof='".$gc ["id_service_prof"]."'", $id_sql) ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; } } //$disc = SQL_tableau_associatif ($disciplines, "") ; //$services_classe = SQL_commande ("SELECT * FROM services_classe // WHERE classe='".$cl ["id_classe"]."' // AND code_classe='".$cl ["nom_bref"]."' // AND discipline='".$disc ["id_discipline"]."' // AND code_disc='".$disc ["code"]."' // AND optionnelle='0' AND groupe='1'", $id_sql) ; //For ($k = 0 ; $k < SQL_nbr_lignes ($services_classe) ; $k++) //{ // $sc = SQL_tableau_associatif ($services_classe, "") ; // $groupes_classe = SQL_commande ("SELECT g.code_groupe, p.id_service_prof // FROM groupes_classe g, services_prof p, services_classe s // WHERE g.classe='".$cl ["id_classe"]."' // AND g.code_classe='".$cl ["nom_bref"]."' // AND g.discipline='".$disc ["id_discipline"]."' // AND g.code_disc='".$disc ["code"]."' // AND g.id_groupe_classe=p.groupe_classe // AND p.classe='".$cl ["id_classe"]."' // AND p.code_classe='".$cl ["nom_bref"]."' // AND p.discipline='".$disc ["id_discipline"]."' // AND p.code_disc='".$disc ["code"]."' // AND p.service_classe=s.id_service_classe", $id_sql) ; // If (SQL_nbr_lignes ($groupes_classe) == 1) // { // $compteur++ ; // $gc = SQL_tableau_associatif ($groupes_classe, "") ; // SQL_commande ("DELETE FROM groupes_classe WHERE id_groupe_classe='".$gc ["id_groupe_classe"]."'", $id_sql) ; // SQL_commande ("UPDATE services_classe // SET groupe='0' WHERE id_service_classe='".$sc ["id_service_classe"]."'", $id_sql) ; // SQL_commande ("UPDATE services_prof // SET groupe_classe='0' WHERE id_service_prof='".$gc ["id_service_prof"]."'", $id_sql) ; // $l .= $d." \n" ; // $l .= $d." \n" ; // $l .= $d." \n" ; // $l .= $d." \n" ; // $l .= $d." \n" ; // } //} } } If ($compteur == 0) { $l = $d."
 Classe  Discipline  Option 
 ".$cl ["nom"]." (".$cl ["nom_bref"].")  ".$disc ["nom_long"]."  ".$gc ["code_groupe"]." 
 ".$cl ["nom"]." (".$cl ["nom_bref"].")  ".$disc ["nom_long"]."  ".$gc ["code_groupe"]." 
" ; $l .= $d."" ; $l .= $d."" ; $l .= $d."" ; } $l .= $d."
  La base est déjà purgée !  
" ; Return $l ; } /** * Teste de coherence de la base des options * @param string $ch Couleur de fond de la ligne d'entete du tableau du rapport * @param string $cf Couleur de fond du tableau du rapport * @param string $tf Taille de la police de caracteres utilise dans le tableau du rapport * @return string Rapport en HTML */ Function coherence_options ($ch, $cf, $tf) { Global $id_sql ; $millesime = millesime (0) ; $l = "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $compteur = 0 ; // Est-ce que tous les eleves appartiennent a la bonne classe ? $services_classe = SQL_commande ("SELECT s.*,c.nom FROM services_classe s,classes c WHERE s.optionnelle='1' AND s.groupe='1' AND s.classe=c.id_classe AND s.millesime='".millesime (0)."' ORDER BY c.nom,s.code_classe", $id_sql) ; $nsc = SQL_nbr_lignes ($services_classe) ; For ($i = 0 ; $i < $nsc ; $i++) { $sc = SQL_tableau_associatif ($services_classe, "") ; // Recherche service prof $service_prof = SQL_commande ("SELECT s.*,d.nom_court,p.nom AS nom_prof,p.prenom AS prenom_prof FROM services_prof s,disciplines d,utilisateurs p WHERE s.service_classe='".$sc ["id_service_classe"]."' AND s.discipline=d.id_discipline AND s.professeur=p.id_utilisateur AND s.millesime='".$millesime."' LIMIT 1", $id_sql) ; $sp = SQL_tableau_associatif ($service_prof, "") ; // Recherche le groupe de classe correspondant $groupe_classe = SQL_commande ("SELECT * FROM groupes_classe WHERE id_groupe_classe='".$sp ["groupe_classe"]."' LIMIT 1", $id_sql) ; $nbr_gc = SQL_nbr_lignes ($groupe_classe) ; If ($nbr_gc > 0) { $tous_eleves = SQL_commande ("SELECT COUNT(id_groupe_eleve) FROM groupes_eleve WHERE groupe='".$sp ["groupe_classe"]."' AND millesime='".$millesime."'", $id_sql) ; $te = SQL_ligne_suivante ($tous_eleves) ; $eleves = SQL_commande ("SELECT COUNT(g.id_groupe_eleve) FROM groupes_eleve g,eleves e WHERE g.groupe='".$sp ["groupe_classe"]."' AND g.eleve=e.id_eleve AND e.classe='".$sp ["classe"]."' AND e.exterieur>='0'", $id_sql) ; $nbr = SQL_ligne_suivante ($eleves) ; If ($nbr [0] < $te [0]) { $compteur++ ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; } } } $services_classe = SQL_commande ("SELECT s.*,c.nom FROM services_classe s,classes c WHERE s.optionnelle='1' AND s.groupe='1' AND s.classe=c.id_classe AND s.millesime='".$millesime."' ORDER BY c.nom,s.code_classe", $id_sql) ; $nsc = SQL_nbr_lignes ($services_classe) ; For ($i = 0 ; $i < $nsc ; $i++) { $sc = SQL_tableau_associatif ($services_classe, "") ; // Recherche service prof $service_prof = SQL_commande ("SELECT s.*,d.nom_court,p.nom AS nom_prof,p.prenom AS prenom_prof FROM services_prof s,disciplines d,utilisateurs p WHERE s.service_classe='".$sc ["id_service_classe"]."' AND s.discipline=d.id_discipline AND s.professeur=p.id_utilisateur AND s.millesime='".$millesime."' LIMIT 1", $id_sql) ; $sp = SQL_tableau_associatif ($service_prof, "") ; // Recherche le groupe de classe correspondant $groupe_classe = SQL_commande ("SELECT * FROM groupes_classe WHERE id_groupe_classe='".$sp ["groupe_classe"]."' LIMIT 1", $id_sql) ; $nbr_gc = SQL_nbr_lignes ($groupe_classe) ; If ($nbr_gc > 0) { // On a un groupe classe // Recherche des eleves et du nombre d'eleve pour l'option $eleves_opt = SQL_commande ("SELECT o.*,e.nom,e.prenoms FROM options_eleve o,eleves e WHERE o.service_classe='".$sc ["id_service_classe"]."' AND o.eleve=e.id_eleve AND e.exterieur>='0' AND e.millesime='".$millesime."' ORDER BY o.eleve", $id_sql) ; $nbr_eleves_opt = SQL_nbr_lignes ($eleves_opt) ; $lgc = SQL_tableau_associatif ($groupe_classe, "") ; // Recherche des eleves et du nombre d'eleve pour le groupe $eleves_gc = SQL_commande ("SELECT g.*,e.nom,e.prenoms FROM groupes_eleve g,eleves e WHERE g.groupe='".$lgc ["id_groupe_classe"]."' AND g.eleve=e.id_eleve AND e.exterieur>='0' AND e.millesime='".$millesime."' ORDER BY g.eleve", $id_sql) ; $nbr_eleves_gc = SQL_nbr_lignes ($eleves_gc) ; If ($nbr_eleves_gc > $nbr_eleves_opt) { // Pas assez d'option declare donc il faut en ajouter $compteur++ ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; } ElseIf ($nbr_eleves_gc < $nbr_eleves_opt) { // Trop d'option declares par rapport au groupe -> Donc on enleve If ($nbr_eleves_gc > 0) { // Quelques groupes declares -> On tri $el_gc = SQL_tableau_associatif ($eleves_gc, "") ; $notes_el [0][0] = 0 ; $controles_el [0][0] = 0 ; $enleve_el [0][0] = 0 ; // Parcours des eleves et verification For ($j = 0 ; $j < $nbr_eleves_opt ; $j++) { $el_opt = SQL_tableau_associatif ($eleves_opt, "") ; If ((integer)$el_opt ["eleve"] != (integer)$el_gc ["eleve"]) { // Y a t-il des notes ? $controles = SQL_commande ("SELECT * FROM controles WHERE service_prof='".$sp ["id_service_prof"]."' AND millesime='".$millesime."'", $id_sql) ; $nbrc = SQL_nbr_lignes ($controles) ; For ($k = 0 ; $k < $nbrc ; $k++) { $ctrls = SQL_tableau_associatif ($controles, "") ; $notes = SQL_commande ("SELECT * FROM notes WHERE controle='".$ctrls ["id_controle"]."' AND eleve='".$el_opt ["eleve"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($notes) > 0) { // Il y a une note donc il faut donc creer un nouveau devoir et re-atribuer les notes si possible ! $nts = SQL_tableau_associatif ($notes, "") ; $notes_el [0][0]++ ; $notes_el [$notes_el [0][0]][0] = $el_opt ["eleve"] ; $notes_el [$notes_el [0][0]][1] = $nts ["id_note"] ; $notes_el [$notes_el [0][0]][2] = $ctrls ["id_controle"] ; // Verifie si le controle est enregistre $ok_controle = 0 ; For ($ll = 1 ; $ll <= $controles_el [0][0] ; $ll++) { If ($controles_el [$ll][0] == $ctrls ["id_controle"]) { $ok_controle = $ll ; } } // Non ! On enregistre. If ($ok_controle == 0) { $controles_el [0][0]++ ; $controles_el [$controles_el [0][0]][0] = $ctrls ["id_controle"] ; $controles_el [$controles_el [0][0]][1] = $ctrls ["date"] ; $controles_el [$controles_el [0][0]][2] = $ctrls ["classe"] ; $controles_el [$controles_el [0][0]][3] = $ctrls ["code_classe"] ; $controles_el [$controles_el [0][0]][4] = $ctrls ["professeur"] ; $controles_el [$controles_el [0][0]][5] = $ctrls ["numen"] ; $controles_el [$controles_el [0][0]][6] = $ctrls ["discipline"] ; $controles_el [$controles_el [0][0]][7] = $ctrls ["code_disc"] ; $controles_el [$controles_el [0][0]][8] = $ctrls ["description"] ; $controles_el [$controles_el [0][0]][9] = $ctrls ["coefficient"] ; $controles_el [$controles_el [0][0]][10] = $ctrls ["periode"] ; $controles_el [$controles_el [0][0]][11] = $ctrls ["enregistrement"] ; $controles_el [$controles_el [0][0]][12] = $ctrls ["date_maj"] ; $controles_el [$controles_el [0][0]][13] = $ctrls ["examen"] ; $controles_el [$controles_el [0][0]][14] = $ctrls ["max"] ; $controles_el [$controles_el [0][0]][15] = $ctrls ["id"] ; $notes_el [$notes_el [0][0]][5] = $controles_el [0][0] ; } Else { $notes_el [$notes_el [0][0]][5] = $ok_controle ; } } } // On enregistre l'option eleve a enlever $enleve_el [0][0]++ ; $enleve_el [$enleve_el [0][0]][0] = $el_opt ["id_option_eleve"] ; $enleve_el [$enleve_el [0][0]][1] = $el_opt ["eleve"] ; $enleve_el [$enleve_el [0][0]][2] = $el_opt ["nom"] ; $enleve_el [$enleve_el [0][0]][3] = $el_opt ["prenoms"] ; } Else { $el_gc = SQL_tableau_associatif ($eleves_gc, "") ; } } // S'il y a des notes alors recherche de la discipline enseignant correspondante If ($notes_el [0][0] > 0) { $disc = SQL_commande ("SELECT * FROM services_prof WHERE professeur='".$sp ["professeur"]."' AND discipline='".$sp ["discipline"]."' AND sous_discipline='".$sp ["sous_discipline"]."' AND classe='".$sp ["classe"]."' AND service_classe!='".$sp ["service_classe"]."' AND groupe_classe!='".$sp ["groupe_classe"]."' AND id_service_prof!='".$sp ["id_service_prof"]."' AND millesime='".$millesime."'", $id_sql) ; $nbrd = SQL_nbr_lignes ($disc) ; If ($nbrd > 0) { If ($nbrd > 1) { $l .= "Services possibles : " ; For ($k = 0 ; $k < $nbrd ; $k++) { $dsc = SQL_tableau_associatif ($disc, "") ; $l .= $dsc ["id_service_prof"]."-" ; } } Else { $dsc = SQL_tableau_associatif ($disc, "") ; //$l .= "Service possible : ".$dsc ["id_service_prof"] ; // On cree les controles For ($k = 1 ; $k <= $controles_el [0][0] ; $k++) { $ok = SQL_commande ("INSERT INTO controles (date,classe,code_classe,professeur,numen,discipline,code_disc,service_prof,description,coefficient,periode,enregistrement,date_maj,examen,max,id,millesime) VALUES ('".$controles_el [$k][1]."','".$controles_el [$k][2]."','".$controles_el [$k][3]."','".$controles_el [$k][4]."','".$controles_el [$k][5]."', '".$controles_el [$k][6]."','".$controles_el [$k][7]."','".$dsc ["id_service_prof"]."','".$controles_el [$k][8]."','".$controles_el [$k][9]."', '".$controles_el [$k][10]."','".$controles_el [$k][11]."','".$controles_el [$k][12]."','".$controles_el [$k][13]."','".$controles_el [$k][14]."', '".$controles_el [$k][15]."','".$millesime."')", $id_sql) ; $ct = SQL_commande ("SELECT id_controle FROM controles WHERE date='".$controles_el [$k][1]."' AND classe='".$controles_el [$k][2]."' AND code_classe='".$controles_el [$k][3]."' AND professeur='".$controles_el [$k][4]."' AND numen='".$controles_el [$k][5]."' AND discipline='".$controles_el [$k][6]."' AND code_disc='".$controles_el [$k][7]."' AND service_prof='".$dsc ["id_service_prof"]."' AND description='".$controles_el [$k][8]."' AND coefficient='".$controles_el [$k][9]."' AND periode='".$controles_el [$k][10]."' AND enregistrement='".$controles_el [$k][11]."' AND date_maj='".$controles_el [$k][12]."' AND examen='".$controles_el [$k][13]."' AND max='".$controles_el [$k][14]."' AND id='".$controles_el [$k][15]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; $c = SQL_ligne_suivante ($ct) ; $controles_el [$k][16] = $c [0] ; } For ($k = 1 ; $k <= $notes_el [0][0] ; $k++) { $ok = SQL_commande ("UPDATE notes SET controle='".$controles_el [$notes_el [$k][5]][15]."' WHERE id_note='".$notes_el [$k][1]."' AND millesime='".$millesime."' LIMIT 1", id_sql) ; //$l .= "
UPDATE notes SET controle='".$controles_el [$notes_el [$k][5]][16]."' WHERE id_note='".$notes_el [$k][1]."' LIMIT 1
" ; } // On peut enlever l'option $compteur++ ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; } ElseIf ($nbr_eleves_gc == $nbr_eleves_opt) { // Ok tout va bien ! //$l .= " \n" ; //$compteur++ ; } } Else { // Pas de groupe declare pour le service classe en groupe : Probleme sur la base ! // On peut directement enlever la declaration du groupe dans services_classe //$ok = SQL_commande ("UPDATE services_classe SET groupe='0' WHERE id_service_classe='".$sc ["id_service_classe"]."' LIMIT 1", $id_sql) $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $ok = SQL_commande ("UPDATE services_classe SET groupe='0' WHERE id_service_classe='".$sc ["id_service_classe"]."' LIMIT 1", $id_sql) ; $compteur++ ; } } If ($compteur == 0) { $l = "
 Test de cohérence des options et des groupes de classe. 
 Classe  Discipline  Enseignant  Action 
 ".Str_Replace (" ", " ", $sc ["nom"])."  ".Str_Replace (" ", " ", $sp ["nom_court"])." 
 Service ".$sp ["id_service_prof"]." 
 ".Str_Replace (" ", " ", $sp ["nom_prof"])." ".Str_Replace (" ", " ", $sp ["prenom_prof"])."  Il y a des élèves qui font parti du groupe sans faire parti de la mème classe.
" ; $eleves = SQL_commande ("SELECT e.nom,e.prenoms,c.nom,c.nom_bref FROM groupes_eleve g,eleves e,classes c WHERE g.groupe='".$sp ["groupe_classe"]."' AND g.eleve=e.id_eleve AND e.classe!='".$sp ["classe"]."' AND c.id_classe=e.classe AND e.exterieur>='0'", $id_sql) ; $nbre = SQL_nbr_lignes ($eleves) ; For ($i = 0 ; $i < $nbre ; $i++) { If ($i > 0) { $l .= "
" ; } $ele = SQL_ligne_suivante ($eleves) ; $l .= $ele [0]." ".$ele [1]." (".$ele [2]." [".$ele [3]."]) " ; } $l .= "
 ".Str_Replace (" ", " ", $sc ["nom"])."  ".Str_Replace (" ", " ", $sp ["nom_court"])." 
 Service ".$sp ["id_service_prof"]." 
 ".Str_Replace (" ", " ", $sp ["nom_prof"])." ".Str_Replace (" ", " ", $sp ["prenom_prof"])." " ; If ($nbr_eleves_opt > 0) { // Quelques options donc on tri $compteur++ ; $el_opt = SQL_tableau_associatif ($eleves_opt, "") ; For ($k = 0 ; $k < $nbr_eleves_gc ; $k++) { $el_gc = SQL_tableau_associatif ($eleves_gc, "") ; If ((integer)$el_gc ["eleve"] != (integer)$el_opt ["eleve"]) { $ok = SQL_commande ("INSERT INTO options_eleve (eleve,repere1,repere2,discipline,code_disc,service_classe,millesime) VALUES ('".$el_gc ["eleve"]."','".$el_gc ["repere1"]."','".$el_gc ["repere2"]."','".$sc ["discipline"]."','".$sc ["code_disc"]."','".$sc ["id_service_classe"]."','".$millesime."')", $id_sql) ; $l .= " L'option de l'élève ".$el_gc ["nom"]." ".$el_gc ["prenoms"]." a été ajoutée (".$el_gc ["eleve"]."). 
" ; } Else { $el_opt = SQL_tableau_associatif ($eleves_opt, "") ; } } } Else { // Aucun eleve en option declare -> On prend tous les eleves en groupe $compteur++ ; For ($k = 0 ; $k < $nbr_eleves_gc ; $k++) { $el_gc = SQL_tableau_associatif ($eleves_gc, "") ; $ok = SQL_commande ("INSERT INTO options_eleve (eleve,repere1,repere2,discipline,code_disc,service_classe,millesime) VALUES ('".$el_gc ["eleve"]."','".$el_gc ["repere1"]."','".$el_gc ["repere2"]."','".$sc ["discipline"]."','".$sc ["code_disc"]."','".$sc ["id_service_classe"]."','".$millesime."')", $id_sql) ; $l .= " L'option de l'élève ".$el_gc ["nom"]." ".$el_gc ["prenoms"]." a été ajoutée (".$el_gc ["eleve"]."). 
" ; } } $l .= "
 ".Str_Replace (" ", " ", $sc ["nom"])."  ".Str_Replace (" ", " ", $sp ["nom_court"])." 
 Service ".$sp ["id_service_prof"]." 
 ".Str_Replace (" ", " ", $sp ["nom_prof"])." ".Str_Replace (" ", " ", $sp ["prenom_prof"])." " ; For ($k = 1 ; $k <= $enleve_el [0][0] ; $k++) { $ok = SQL_commande ("DELETE FROM options_eleve WHERE id_option_eleve='".$enleve_el [$k][0]."' LIMIT 1", $id_sql) ; //$l .= "DELETE FROM options_eleve WHERE id_option_eleve='".$enleve_el [$k][0]."' LIMIT 1
" ; $l .= " L'option de l'élève ".$enleve_el [$k][2]." ".$enleve_el [$k][3]." a été effacée (".$enleve_el [$k][1]."). 
" ; } } } Else { // Aucune discipline de remplacement -> On ne peut pas effacer donc il faut attribuer des groupes //$l .= "Attribution de groupes.".$enleve_el [0][0] ; } } Else { // Pas de notes donc on enleve ! $compteur++ ; $l .= "
 ".Str_Replace (" ", " ", $sc ["nom"])."  ".Str_Replace (" ", " ", $sp ["nom_court"])." 
 Service ".$sp ["id_service_prof"]." 
 ".Str_Replace (" ", " ", $sp ["nom_prof"])." ".Str_Replace (" ", " ", $sp ["prenom_prof"])." " ; For ($k = 1 ; $k <= $enleve_el [0][0] ; $k++) { $ok = SQL_commande ("DELETE FROM options_eleve WHERE id_option_eleve='".$enleve_el [$k][0]."' LIMIT 1", $id_sql) ; //$l .= "DELETE FROM options_eleve WHERE id_option_eleve='".$enleve_el [$k][0]."' LIMIT 1
" ; $l .= " L'option de l'élève ".$enleve_el [$k][2]." ".$enleve_el [$k][3]." a été effacée (".$enleve_el [$k][1]."). " ; } } } Else { // Aucun eleve en groupe declare -> Juste optionnel -> OK $ok = SQL_commande ("UPDATE services_classe SET groupe='0' WHERE id_service_classe='".$sc ["id_service_classe"]."' LIMIT 1", $id_sql) ; $ok = SQL_commande ("UPDATE services_prof SET groupe_classe='0' WHERE id_service_prof='".$sp ["id_service_prof"]."' LIMIT 1", $id_sql) ; $l .= "
 ".Str_Replace (" ", " ", $sc ["nom"])."  ".Str_Replace (" ", " ", $sp ["nom_court"])." 
 Service ".$sp ["id_service_prof"]." 
 ".Str_Replace (" ", " ", $sp ["nom_prof"])." ".Str_Replace (" ", " ", $sp ["prenom_prof"])." " ; $l .= " L'option du service classe et enseignant a été enlevé (".$sc ["id_service_classe"].")/(".$sp ["id_service_prof"]."). 
" ; $compteur++ ; } $l .= "
Service classe ".$sc ["id_service_classe"]." -> Autant d'eleve que de groupes et d'options
 ".Str_Replace (" ", " ", $sc ["nom"])."  ".Str_Replace (" ", " ", $sp ["nom_court"])." 
 Service ".$sp ["id_service_prof"]." 
 ".Str_Replace (" ", " ", $sp ["nom_prof"])." ".Str_Replace (" ", " ", $sp ["prenom_prof"])."  Le groupe de classe est enlevé (".$sc ["id_service_classe"].")
" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; } $l .= $d."
 Test de cohérence des options et des groupes de classe. 
  La base est cohérente au niveau des options/groupes !  
" ; Return $l ; } /** * Optimisation de la base des groupes * @param string $d NON UTILISE : A ELIMINER * @param string $ch Couleur ligne entete * @param string $cf Couleur fond du tableau * @param string $tf Taille de la fonte * @return string Tableau HTML du resultat */ Function purger_groupes ($d, $ch, $cf, $tf) { Global $id_sql ; $l = "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $compteur = 0 ; $groupes = SQL_commande ("SELECT * FROM groupes_classe WHERE millesime='".millesime (0)."' ORDER BY code_classe", $id_sql) ; For ($i = 0 ; $i < SQL_nbr_lignes ($groupes) ; $i++) { $gp = SQL_tableau_associatif ($groupes, "") ; $service_prof = SQL_commande ("SELECT * FROM services_prof WHERE groupe_classe='".$gp ["id_groupe_classe"]."' AND millesime='".millesime (0)."'", $id_sql) ; If (SQL_nbr_lignes ($service_prof) == 0) { // Service enseignant n'existe pas $compteur++ ; //$ok = SQL_commande ("DELETE FROM groupes_classe WHERE id_groupe_classe='".$gp ["id_groupe_classe"]."'", $id_sql) ; $classe = SQL_commande ("SELECT nom,nom_bref FROM classes WHERE id_classe='".$gp ["classe"]."' LIMIT 1", $id_sql) ; $cl = SQL_ligne_suivante ($classe) ; $disc = SQL_commande ("SELECT nom_long FROM disciplines WHERE id_discipline='".$gp ["discipline"]."' LIMIT 1", $id_sql) ; $ds = SQL_ligne_suivante ($disc) ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; } Else { // Existe t-il un autre groupe classe avec le meme service prof ? $autre_gp = SQL_commande ("SELECT id_groupe_classe FROM groupes_classe WHERE id_groupe_classe!='".$gp ["id_groupe_classe"]."' AND classe='".$gp ["classe"]."' AND discipline='".$gp ["discipline"]."' AND service_classe='".$gp ["service_classe"]."' AND millesime='".millesime (0)."'", $id_sql) ; echo "SELECT id_groupe_classe FROM groupes_classe WHERE id_groupe_classe!='".$gp ["id_groupe_classe"]."' AND classe='".$gp ["classe"]."' AND discipline='".$gp ["discipline"]."' AND service_classe='".$gp ["service_classe"]."' AND millesime='".millesime (0)."'
" ; If (SQL_nbr_lignes ($autre_gp) > 0) { // Ah, AH ! For ($j = 0 ; $j < SQL_nbr_lignes ($autre_gp) ; $j++) { $agp = SQL_tableau_associatif ($autre_gp, "") ; $compteur++ ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $requete = "DELETE FROM groupes_classe WHERE id_groupe_classe='" ; If ($gp ["id_groupe_classe"] > $agp ["id_groupe_classe"]) { $requete .= $agp ["id_groupe_classe"] ; } Else { $requete .= $gp ["id_groupe_classe"] ; } } } } } If ($compteur == 0) { $l = "
 Classe  Discipline  Groupe 
 ".$cl [0]." (".$cl [1].")  ".$ds [0]."  ".$gp ["code_groupe"]."(".$gp ["id_groupe_classe"].") 
 ".$cl [0]." (".$cl [1].")  ".$ds [0]."  ".$agp ["code_groupe"]."(".$agp ["id_groupe_classe"].") en double (".$gp ["id_groupe_classe"].")
" ; $l .= "" ; $l .= "" ; $l .= "" ; } $l .= "
  La base est déjà purgée !  
" ; Return $l ; } /** * Reparation base des disciplines * @param string $d Espace a positionner au debut du tableau (A ELIMINER) * @param string $ch Couleur de fond de la ligne d'entete du tableau du rapport * @param string $cf Couleur de fond du tableau du rapport * @param string $tf Taille de la police de caracteres utilise dans le tableau du rapport * @param string $action Lien HTML pour le formulaire (adresse de la page de traitement) * @param string $img_sup Lien HTML de l'image "SUPPRIMER" * @param string $img_val Lien HTML de l'image "VALIDER" * @param string $img_ann Lien HTML de l'image "ANNULER" * @return string Rapport en HTML */ Function reparation_disciplines ($d, $ch, $cf, $cl, $tf, $action, $img_sup, $img_val, $img_ann) { Global $id_sql ; $compteur = 0 ; $services_prof = SQL_commande ("SELECT * FROM services_prof WHERE discipline='0' AND millesime='".millesime (0)."' ORDER BY code_classe", $id_sql) ; If (SQL_nbr_lignes ($services_prof) > 0) { $l = "
" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; For ($i = 0 ; $i < SQL_nbr_lignes ($services_prof) ; $i++) { $sp = SQL_tableau_associatif ($services_prof, "") ; $disciplines = SQL_commande ("SELECT * FROM disciplines WHERE code='".$sp ["code_disc"]."' AND millesime='".millesime (0)."'", $id_sql) ; $classes = SQL_commande ("SELECT * FROM classes WHERE nom_bref='".$sp ["code_classe"]."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; $clss = SQL_tableau_associatif ($classes, "") ; $utils = SQL_commande ("SELECT * FROM utilisateurs WHERE numen='".$sp ["numen_prof"]."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; $u = SQL_tableau_associatif ($utils, "") ; $services_classe = SQL_commande ("SELECT * FROM services_classe WHERE id_service_classe='".$sp ["service_classe"]."' LIMIT 1", $id_sql) ; $sc = SQL_tableau_associatif ($services_classe, "") ; If ($sc ["optionnelle"]) { $option = " CHECKED" ; } Else { $option = "" ; } If ($sc ["groupe"]) { $groupe = " CHECKED" ; } Else { $groupe = "" ; } If ($sp ["groupe_classe"]) { $groupes_classe = SQL_commande ("SELECT code_groupe,id_groupe_classe FROM groupes_classe WHERE id_groupe_classe='".$sp ["groupe_classe"]."' LIMIT 1", $id_sql) ; $gc = SQL_ligne_suivante ($groupes_classe, "") ; } Else { $gc [0] = "" ; $gc [1] = 0 ; } $l .= "" ; $l .= "" ; $l .= "" ; $l .= " ".$clss ["nom"]." (".$clss ["nom_bref"].") " ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; } $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "
 Classe  Professeur  Opt.  Grp.  Code Grp.  Disciplines possibles 
 ".$u ["nom"]." ".$u ["prenom"]."       " ; If (SQL_nbr_lignes ($disciplines) > 0) { If (SQL_nbr_lignes ($disciplines) == 1) { $disc = SQL_tableau_associatif ($disciplines, "") ; $l .= " ".$disc ["nom_court"]." " ; } Else { $l .= " " ; } } Else { $disciplines = SQL_commande ("SELECT * FROM disciplines WHERE millesime='".millesime (0)."' ORDER BY nom_court", $id_sql) ; $l .= " " ; } $l .= " " ; $l .= "" ; $l .= "
" ; $l .= "
" ; } Else { $l = "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "
  Aucune réparation n'est à faire !  
" ; } Return $l ; } /** * Verification de la base de tous les codes disciplines * @param string $tf Taille de la poilice de caractere * @return string Rapport en HTML */ Function verification_codes_disciplines_par_id ($tf) { Global $id_sql ; $disciplines = SQL_commande ("SELECT * FROM disciplines WHERE millesime='".millesime (0)."' ORDER BY nom_long", $id_sql) ; For ($i = 0 ; $i < SQL_nbr_lignes ($disciplines) ; $i++) { $disc = SQL_tableau_associatif ($disciplines, "") ; $ok = SQL_commande ("UPDATE appreciations SET code_disc='".$disc ["code"]."' WHERE discipline='".$disc ["id_discipline"]."' AND millesime='".millesime (0)."'", $id_sql) ; $ok = SQL_commande ("UPDATE controles SET code_disc='".$disc ["code"]."' WHERE discipline='".$disc ["id_discipline"]."' AND millesime='".millesime (0)."'", $id_sql) ; $ok = SQL_commande ("UPDATE groupes_classe SET code_disc='".$disc ["code"]."' WHERE discipline='".$disc ["id_discipline"]."' AND millesime='".millesime (0)."'", $id_sql) ; $ok = SQL_commande ("UPDATE groupes_eleve SET code_disc='".$disc ["code"]."' WHERE discipline='".$disc ["id_discipline"]."' AND millesime='".millesime (0)."'", $id_sql) ; $ok = SQL_commande ("UPDATE options_eleve SET code_disc='".$disc ["code"]."' WHERE discipline='".$disc ["id_discipline"]."' AND millesime='".millesime (0)."'", $id_sql) ; $ok = SQL_commande ("UPDATE services_classe SET code_disc='".$disc ["code"]."' WHERE discipline='".$disc ["id_discipline"]."' AND millesime='".millesime (0)."'", $id_sql) ; $ok = SQL_commande ("UPDATE services_prof SET code_disc='".$disc ["code"]."' WHERE discipline='".$disc ["id_discipline"]."' AND millesime='".millesime (0)."'", $id_sql) ; } $l = "" ; $l .= "
" ; $l .= "
  ".SQL_nbr_lignes ($disciplines)." discipline(s) vérifiée(s) !  
" ; $l .= "
" ; Return $l ; } /** * Verification de la base de tous les groupes de classe * @param string $tf Taille de la poilice de caractere * @return string Rapport en HTML */ Function verification_groupes_classe_par_id ($tf) { Global $id_sql ; $grp_classe = SQL_commande ("SELECT * FROM groupes_classe WHERE service_classe='0' ORDER BY code_classe", $id_sql) ; For ($i = 0 ; $i < SQL_nbr_lignes ($grp_classe) ; $i++) { $grp = SQL_tableau_associatif ($grp_classe, "") ; $serv_prof = SQL_commande ("SELECT service_classe FROM services_prof WHERE discipline='".$grp ["discipline"]."' AND classe='".$grp ["classe"]."' AND groupe_classe='".$grp ["id_groupe_classe"]."' AND millesime='".millesime (0)."'", $id_sql) ; $sp = SQL_ligne_suivante ($serv_prof) ; $ok = SQL_commande ("UPDATE groupes_classe SET service_classe='".$sp [0]."' WHERE id_groupe_classe='".$grp ["id_groupe_classe"]."' LIMIT 1", $id_sql) ; } $l = "" ; $l .= "
" ; If (SQL_nbr_lignes ($grp_classe) > 0) { $l .= "
  ".SQL_nbr_lignes ($grp_classe)." service(s) vérifiée(s) !  " ; } Else { $l .= "
  Tout est correct !  " ; } $l .= "
" ; Return $l ; } /** * Purge l'ensemble des services prof et classe * @param string $tf Taille de la poilice de caractere * @return string Rapport en HTML */ Function purge_services ($tf) { Global $id_sql ; // Efface les services prof sans relation $services_prof = SQL_commande ("SELECT * FROM services_prof WHERE millesime='".millesime (0)."' ORDER BY code_classe", $id_sql) ; For ($i = 0 ; $i < SQL_nbr_lignes ($services_prof) ; $i++) { $sp = SQL_tableau_associatif ($services_prof, "") ; $services_classe = SQL_commande ("SELECT id_service_classe FROM services_classe WHERE id_service_classe='".$sp ["service_classe"]."'" , $id_sql) ; If (SQL_nbr_lignes ($services_classe) == 0) { If ($sp ["groupe_classe"] > 0) { $groupes_classe = SQL_commande ("SELECT id_groupe_classe FROM services_classe WHERE id_groupe_classe='".$sp ["groupe_classe"]."' LIMIT 1" , $id_sql) ; If (SQL_nbr_lignes ($groupes_classe) > 0) { SQL_commande ("DELETE FROM groupes_classe WHERE id_groupe_classe='".$sp ["groupe_classe"]."' LIMIT 1", $id_sql) ; } } SQL_commande ("DELETE FROM services_prof WHERE id_service_prof='".$sp ["id_service_prof"]."' LIMIT 1", $id_sql) ; } } // Efface les services classe sans relation $services_classe = SQL_commande ("SELECT * FROM services_classe ORDER BY code_classe", $id_sql) ; For ($i = 0 ; $i < SQL_nbr_lignes ($services_classe) ; $i++) { $sc = SQL_tableau_associatif ($services_classe, "") ; $services_prof = SQL_commande ("SELECT id_service_prof FROM services_prof WHERE service_classe='".$sc ["id_service_classe"]."' AND millesime='".millesime (0)."'", $id_sql) ; If (SQL_nbr_lignes ($services_prof) == 0) { SQL_commande ("DELETE FROM services_classe WHERE id_service_classe='".$sc ["id_service_classe"]."' LIMIT 1", $id_sql) ; } } // Efface les groupes classe sans relation $groupes_classe = SQL_commande ("SELECT * FROM groupes_classe WHERE millesime='".millesime (0)."' ORDER BY code_classe", $id_sql) ; For ($i = 0 ; $i < SQL_nbr_lignes ($groupes_classe) ; $i++) { $sc = SQL_tableau_associatif ($groupes_classe, "") ; $services_classe = SQL_commande ("SELECT id_service_classe FROM services_classe WHERE id_service_classe='".$sc ["service_classe"]."'", $id_sql) ; If (SQL_nbr_lignes ($services_classe) == 0) { SQL_commande ("DELETE FROM groupes_classe WHERE id_groupe_classe='".$sc ["id_groupe_classe"]."' LIMIT 1", $id_sql) ; } } // Verification des id services classe dans services prof // S'il y en a plusieurs alors probleme $services_prof = SQL_commande ("SELECT * FROM services_prof WHERE millesime='".millesime (0)."' ORDER BY code_classe", $id_sql) ; $i = 0 ; While ($i <= SQL_nbr_lignes ($services_prof)) { $i++ ; $sp = SQL_tableau_associatif ($services_prof, "") ; // Recherche d'un numero de service classe identique dans services_prof $services_double = SQL_commande ("SELECT * FROM services_prof WHERE id_service_prof!='".$sp ["id_service_prof"]."' AND service_classe='".$sp ["service_classe"]."' AND millesime='".millesime (0)."'", $id_sql) ; If (SQL_nbr_lignes ($services_double) > 0) { For ($j = 0 ; $j < SQL_nbr_lignes ($services_double) ; $j++) { $sd = SQL_tableau_associatif ($services_double, "") ; $serv_classe = SQL_commande ("SELECT * FROM services_classe WHERE id_service_classe='".$sd ["service_classe"]."' LIMIT 1", $id_sql) ; $sc = SQL_tableau_associatif ($serv_classe, "") ; $ok = SQL_commande ("INSERT INTO services_classe (classe,code_classe,discipline,code_disc,optionnelle,groupe,millesime) VALUES ('".$sc ["classe"]."','".$sc ["code_classe"]."','".$sc ["discipline"]."','".$sc ["code_disc"]."', '".$sc ["optionnelle"]."','".$sc ["groupe"]."','".millesime (0)."')", $id_sql) ; $serv_classe = SQL_commande ("SELECT id_service_classe FROM services_classe WHERE id_service_classe!='".$sd ["service_classe"]."' AND classe='".$sc ["classe"]."' AND code_classe='".$sc ["code_classe"]."' AND discipline='".$sc ["discipline"]."' AND code_disc='".$sc ["code_disc"]."' AND optionnelle='".$sc ["optionnelle"]."' AND groupe='".$sc ["groupe"]."' AND millesime='".millesime (0)."' ORDER BY id_service_classe", $id_sql) ; For ($k = 0 ; $k < SQL_nbr_lignes ($serv_classe) ; $k++) { $sc = SQL_tableau_associatif ($serv_classe, "") ; } $ok = SQL_commande ("UPDATE services_prof SET service_classe='".$sc ["id_service_classe"]."' WHERE id_service_prof='".$sp ["id_service_prof"]."' LIMIT 1", $id_sql) ; } $services_prof = SQL_commande ("SELECT * FROM services_prof WHERE millesime='".millesime (0)."' ORDER BY code_classe", $id_sql) ; $i = 0 ; } } // Verification des id groupes classe dans services prof // S'il y en a plusieurs alors probleme $services_prof = SQL_commande ("SELECT * FROM services_prof WHERE millesime='".millesime (0)."' ORDER BY code_classe", $id_sql) ; $i = 0 ; While ($i <= SQL_nbr_lignes ($services_prof)) { $i++ ; $sp = SQL_tableau_associatif ($services_prof, "") ; If ($sp ["groupe_classe"] > 0) { // Recherche d'un numero de service classe identique dans services_prof $groupes_double = SQL_commande ("SELECT * FROM services_prof WHERE id_service_prof!='".$sp ["id_service_prof"]."' AND groupe_classe='".$sp ["groupe_classe"]."' AND millesime='".millesime (0)."'", $id_sql) ; If (SQL_nbr_lignes ($groupes_double) > 0) { For ($j = 0 ; $j < SQL_nbr_lignes ($groupes_double) ; $j++) { $gd = SQL_tableau_associatif ($groupes_double, "") ; $groupe_classe = SQL_commande ("SELECT * FROM groupes_classe WHERE id_groupe_classe='".$gd ["groupe_classe"]."' LIMIT 1", $id_sql) ; $gc = SQL_tableau_associatif ($groupe_classe, "") ; $ok = SQL_commande ("INSERT INTO groupes_classe (code_groupe,classe,code_classe,discipline,code_disc,service_classe,millesime) VALUES ('".$gc ["code_groupe"]."','".$gc ["classe"]."','".$gc ["code_classe"]."', '".$gc ["discipline"]."','".$gc ["code_disc"]."','".$gc ["service_classe"]."','".millesime (0)."')", $id_sql) ; $groupe_classe = SQL_commande ("SELECT id_groupe_classe FROM groupes_classe WHERE id_groupe_classe!='".$gd ["groupe_classe"]."' AND code_groupe='".$gc ["code_groupe"]."' AND classe='".$gc ["classe"]."' AND code_classe='".$gc ["code_classe"]."' AND discipline='".$gc ["discipline"]."' AND code_disc='".$gc ["code_disc"]."' AND service_classe='".$gc ["service_classe"]."' AND millesime='".millesime (0)."' ORDER BY id_groupe_classe", $id_sql) ; For ($k = 0 ; $k < SQL_nbr_lignes ($groupe_classe) ; $k++) { $gc = SQL_tableau_associatif ($groupe_classe, "") ; } $ok = SQL_commande ("UPDATE services_prof SET groupe_classe='".$gc ["id_groupe_classe"]."' WHERE id_service_prof='".$sp ["id_service_prof"]."' LIMIT 1", $id_sql) ; } $services_prof = SQL_commande ("SELECT * FROM services_prof WHERE millesime='".millesime (0)."' ORDER BY code_classe", $id_sql) ; $i = 0 ; } } } $services_prof = SQL_commande ("SELECT * FROM services_prof WHERE millesime='".millesime (0)."'", $id_sql) ; $services_classe = SQL_commande ("SELECT * FROM services_classe WHERE millesime='".millesime (0)."'", $id_sql) ; $groupes_classe = SQL_commande ("SELECT * FROM groupes_classe WHERE millesime='".millesime (0)."'", $id_sql) ; $l = "" ; $l .= "
" ; $l .= "
  Base vérifiée !  " ; $l .= "
  Il y a ".SQL_nbr_lignes ($services_prof)." service(s) professeur  " ; $l .= "
  Il y a ".SQL_nbr_lignes ($services_classe)." service(s) classe  " ; $l .= "
  Il y a ".SQL_nbr_lignes ($groupes_classe)." groupe(s) classe  
" ; $l .= "
" ; Return $l ; } /** * Liste des eleves sans Numero national * @param string $tf Taille de la police de caracteres utilise dans le tableau du rapport * @param string $ct Couleur de fond de la ligne d'entete du tableau du rapport * @param string $cf Couleur de fond du tableau du rapport * @param string $cl Couleur d'une ligne sur deux dans le tableau du rapport * @return string Rapport en HTML */ Function liste_eleves_sans_num_nat ($tf, $ct, $cf, $cl) { Global $id_sql ; // Efface les services prof sans relation $eleves = SQL_commande ("SELECT * FROM eleves WHERE repere2='' AND exterieur='0' AND millesime='".millesime (0)."' ORDER BY nom,prenoms", $id_sql) ; $nbre = SQL_nbr_lignes ($eleves) ; If ($nbre > 0) { If ($nbre > 0) { $l = "" ; $l .= "" ; $compteur = 0 ; For ($i = 0 ; $i < $nbre ; $i++) { $el = SQL_tableau_associatif ($eleves, "") ; If (($el ["nom"] == "") And ($el ["prenoms"] == "")) { $ok = SQL_commande ("DELETE FROM eleves WHERE id_eleve='".$el ["id_eleve"]."' LIMIT 1", $id_sql) ; } Else { $l .= " ".$el ["nom"]." " ; $l .= "" ; $l .= "" ; $l .= "" ; } } $l .= "
 Nom  Prénom  Num GEP 
".$el ["prenoms"]." ".$el ["repere1"]." 
" ; } Else { $l = "" ; $l .= "" ; $l .= "
Tout est OK !
" ; } } Return $l ; } /** * Liste des eleves sans Photo * @param string $tf Taille de la police de caracteres utilise dans le tableau du rapport * @param string $ct Couleur de fond de la ligne d'entete du tableau du rapport * @param string $cf Couleur de fond du tableau du rapport * @param string $cl Couleur d'une ligne sur deux dans le tableau du rapport * @return string Rapport en HTML */ Function liste_eleves_sans_photo ($tf, $ct, $cf, $cl) { Global $id_sql, $repertoire_racine ; // Efface les services prof sans relation $eleves = SQL_commande ("SELECT e.nom,e.prenoms,e.photo,e.code_classe,c.nom AS nom_classe,c.nom_bref FROM eleves e, classes c WHERE e.exterieur='0' AND e.classe=c.id_classe AND c.millesime='".millesime (0)."' ORDER BY e.code_classe,e.nom,e.prenoms", $id_sql) ; $nbre = SQL_nbr_lignes ($eleves) ; If ($nbre > 0) { $ok = 0 ; $compteur = 0 ; For ($i = 0 ; $i < $nbre ; $i++) { $ligne = SQL_tableau_associatif ($eleves, "") ; If (($ligne ["photo"]) And (File_Exists ($repertoire_racine."/images/eleves/".$ligne ["photo"]))) { } Else { If ($ok == 0) { $l = "" ; $l .= "" ; $ok = 1 ; $cc = $ligne ["code_classe"] ; $coul = 1 ; } If ($cc <> $ligne ["code_classe"]) { $cc = $ligne ["code_classe"] ; If ($coul == 1) { $rjt .= " bgcolor=\"".$cl."\"" ; $coul = 0 ; } Else { $rjt = "" ; $coul = 1 ; } } $l .= "" ; $compteur++ ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; $l .= "" ; } } If ($ok > 0) { $l .= "
 Nom  Prénoms  Classe 
 ".$compteur."  ".$ligne ["nom"]." ".$ligne ["prenoms"]." ".$ligne ["nom_classe"]." (".$ligne ["nom_bref"].") 
\n" ; } Else { $l = "" ; $l .= "" ; $l .= "
Aucune photo n'a été oubliée !
" ; } } Else { $l = "" ; $l .= "" ; $l .= "
Aucun élève !
" ; } Return $l ; } /** * Renvoi un tableau contenant le nombre d'eleves pour le service ($id_service_prof) d'un prof * @param string $id_service_prof Identifiant SQL du service enseignant * @return string Tableau rapport (Format : [0] = Nombre d'eleves et [1..$t [0]] = Id eleve numero j (de 1 a $t [$i][1][0]) pour le service $i) */ Function eleves_par_service_classe ($id_service_prof) { Global $id_sql ; $millesime = millesime (0) ; $nbr_eleves = 0 ; $liste_eleves [0] = 0 ; // Cherche le service prof $service = SQL_commande ("SELECT * FROM services_prof WHERE id_service_prof='".$id_service_prof."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($service) == 1) { $ligne = SQL_tableau_associatif ($service, "") ; // Recherche service classe associe $serv_classe = SQL_commande ("SELECT * FROM services_classe WHERE id_service_classe='".$ligne ["service_classe"]."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($serv_classe) == 1) { $sc = SQL_tableau_associatif ($serv_classe, "") ; If (($sc ["optionnelle"] == 1) Or ($sc ["groupe"] == 1)) { // Optionnelle ou groupe (ou les deux) // Traite l'option If ($sc ["optionnelle"] == 1) { // Traitement si optionnelle + groupe If ($sc ["groupe"] == 1) { $eleves = SQL_commande ("SELECT g.eleve FROM groupes_eleve g,options_eleve o,eleves e WHERE o.discipline='".$ligne ["discipline"]."' AND o.service_classe='".$ligne ["service_classe"]."' AND g.groupe='".$ligne ["groupe_classe"]."' AND g.eleve=e.id_eleve AND e.id_eleve=o.eleve AND e.classe='".$ligne ["classe"]."' AND e.exterieur>='0' AND e.millesime='".$millesime."' ORDER BY e.nom,e.prenoms", $id_sql) ; $nbr = SQL_nbr_lignes ($eleves) ; If ($nbr > 0) { $liste_eleves [0] = $nbr ; For ($j = 1 ; $j <= $nbr ; $j++) { $l = SQL_ligne_suivante ($eleves) ; $liste_eleves [$j] = $l [0] ; } } Else { // Option+Groupe -> Mais aucun groupe cree donc pas d'eleves $liste_eleves [0] = 0 ; } } Else { // Traitement OPTION SEULE AND o.code_disc='".$ligne ["code_disc"]."' $eleves = SQL_commande ("SELECT o.eleve FROM options_eleve o, eleves e WHERE o.discipline='".$ligne ["discipline"]."' AND e.classe='".$ligne ["classe"]."' AND e.id_eleve=o.eleve AND o.service_classe='".$ligne ["service_classe"]."' AND e.millesime='".$millesime."' AND e.exterieur>='0' ORDER BY e.nom,e.prenoms", $id_sql) ; If (SQL_nbr_lignes ($eleves) > 0) { $liste_eleves [0] = SQL_nbr_lignes ($eleves) ; For ($j = 1 ; $j <= SQL_nbr_lignes ($eleves) ; $j++) { $l = SQL_ligne_suivante ($eleves) ; $liste_eleves [$j] = $l [0] ; } } Else { // Option SEULE -> Mais aucun eleves $liste_eleves [0] = 0 ; } } } Else { // Si GROUPE sans option $liste_eleves [$liste_eleves [0][0][0]][1][0] = 0 ; } // Traite le groupe si non optionnelle If (($sc ["optionnelle"] == 0) And ($sc ["groupe"] == 1)) { $eleves = SQL_commande ("SELECT g.eleve FROM groupes_eleve g,eleves e WHERE g.groupe='".$ligne ["groupe_classe"]."' AND g.eleve=e.id_eleve AND e.classe='".$ligne ["classe"]."' AND e.millesime='".$millesime."' AND e.exterieur>='0' ORDER BY e.nom,e.prenoms", $id_sql) ; $nbr = SQL_nbr_lignes ($eleves) ; If ($nbr > 0) { $liste_eleves [0] = $nbr ; For ($j = 1 ; $j <= $nbr ; $j++) { $l = SQL_ligne_suivante ($eleves) ; $liste_eleves [$j] = $l [0] ; } } Else { // Groupe SEUL -> Mais aucun eleves $liste_eleves [0] = 0 ; } } } Else { // Classe entiere $classe = SQL_commande ("SELECT id_eleve FROM eleves WHERE classe='".$ligne ["classe"]."' AND code_classe='".$ligne ["code_classe"]."' AND exterieur>='0' AND millesime='".$millesime."' ORDER BY nom,prenoms", $id_sql) ; $nbr = SQL_nbr_lignes ($classe) ; If ($nbr > 0) { $liste_eleves [0] = $nbr ; For ($j = 1 ; $j <= $nbr ; $j++) { $l = SQL_ligne_suivante ($classe) ; $liste_eleves [$j] = $l [0] ; } } Else { // Pas d'eleves dans la classe $liste_eleves [0] = 0 ; } } } Else { // Pas de service classe associe $liste_eleves [0] = 0 ; } } Else { // Pas de service prof $liste_eleves [0] = 0 ; } Return $liste_eleves ; } /** * Renvoi un tableau contenant le nombre d'eleves pour tous les services d'un prof (id) * @param int $id Identifiant SQL du service enseignant * @return array Format : [0][0][0] = Nombre de services * [][0][0] = Id service prof pour le service $i * [][0][1] = Id service classe pour le service $i * [][0][2] = Id groupe classe pour le service $i * [][0][3] = Id discipline pour le service $i * [][0][4] = Id classe pour le service $i * [][0][5] = Id sous-discipline pour le service $i * [][1][0] = Nombre d'eleves pour l'option ou le groupe (voir optionnelle) du service $i * [][1][1..$t [$i][1][0]] = Id eleve numero j (de 1 a $t [$i][1][0]) pour le service $i */ Function eleves_par_prof ($id) { Global $id_sql ; $nbr_eleves = 0 ; $liste_eleves [0][0][0] = 0 ; $millesime = millesime (0) ; // Cherche le service prof //$service = SQL_commande ("SELECT * FROM services_prof WHERE professeur='".$id."' AND millesime='".$millesime."' ORDER BY code_classe", $id_sql) ; // Chercher si alias possible $alias_s = SQL_commande("SELECT id_service_prof FROM groupes_alias WHERE id_utilisateur='".$id."' AND code='1' AND millesime='".$millesime."'", $id_sql) ; $nbr_alias = SQL_nbr_lignes ($alias_s) ; $requete = "SELECT DISTINCT * FROM services_prof WHERE " ; If ($nbr_alias > 0) { $requete .= "(" ; } $requete .= "professeur='".$id."' AND millesime='".$millesime."'" ; If ($nbr_alias > 0) { $requete .= ")" ; For ($i = 0 ; $i < $nbr_alias ; $i++) { $ligne = SQL_ligne_suivante ($alias_s) ; $requete .= " OR (id_service_prof='".$ligne [0]."')" ; } } $requete .= " ORDER BY code_classe" ; $service = SQL_commande ($requete, $id_sql) ; If (SQL_nbr_lignes ($service) > 0) { // Parcours les services prof For ($i = 0 ; $i < SQL_nbr_lignes ($service) ; $i++) { $ligne = SQL_tableau_associatif ($service, "") ; // Recherche service classe $serv_classe = SQL_commande ("SELECT * FROM services_classe WHERE id_service_classe='".$ligne ["service_classe"]."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($serv_classe) > 0) { $sc = SQL_tableau_associatif ($serv_classe, "") ; If (($sc ["optionnelle"] == 1) Or ($sc ["groupe"] == 1)) { // Optionnelle ou groupe (ou les deux d'ailleurs) // Traite l'option If ($sc ["optionnelle"] == 1) { // Traitement si optionnelle + groupe avec le groupe en priorite If ($sc ["groupe"] == 1) { $eleves = SQL_commande ("SELECT g.eleve FROM groupes_eleve g,eleves e WHERE g.groupe='".$ligne ["groupe_classe"]."' AND g.eleve=e.id_eleve AND e.millesime='".$millesime."' AND e.exterieur>='0' ORDER BY e.nom,e.prenoms", $id_sql) ; $nbre = SQL_nbr_lignes ($eleves) ; If ($nbre > 0) { $liste_eleves [0][0][0]++ ; $liste_eleves [$liste_eleves [0][0][0]][0][0] = $ligne ["id_service_prof"] ; $liste_eleves [$liste_eleves [0][0][0]][0][1] = $ligne ["service_classe"] ; $liste_eleves [$liste_eleves [0][0][0]][0][2] = $ligne ["groupe_classe"] ; $liste_eleves [$liste_eleves [0][0][0]][0][3] = $ligne ["discipline"] ; $liste_eleves [$liste_eleves [0][0][0]][0][4] = $sc ["classe"] ; $liste_eleves [$liste_eleves [0][0][0]][0][5] = $ligne ["sous_discipline"] ; $liste_eleves [$liste_eleves [0][0][0]][1][0] = $nbre ; For ($j = 1 ; $j <= $nbre ; $j++) { $lgn = SQL_ligne_suivante ($eleves) ; $liste_eleves [$liste_eleves [0][0][0]][1][$j] = $lgn [0] ; } } Else { //$liste_eleves [$liste_eleves [0][0][0]][1][0] = 0 ; } } Else { // Traitement optionnelle seule $eleves = SQL_commande ("SELECT o.eleve FROM options_eleve o,eleves e WHERE o.discipline='".$ligne ["discipline"]."' AND o.code_disc='".$ligne ["code_disc"]."' AND e.classe='".$ligne ["classe"]."' AND e.id_eleve=o.eleve AND e.millesime='".$millesime."' AND e.exterieur>='0' ORDER BY e.nom,e.prenoms", $id_sql) ; $nbre = SQL_nbr_lignes ($eleves) ; If ($nbre > 0) { $liste_eleves [0][0][0]++ ; $liste_eleves [$liste_eleves [0][0][0]][0][0] = $ligne ["id_service_prof"] ; $liste_eleves [$liste_eleves [0][0][0]][0][1] = $ligne ["service_classe"] ; $liste_eleves [$liste_eleves [0][0][0]][0][2] = $ligne ["groupe_classe"] ; $liste_eleves [$liste_eleves [0][0][0]][0][3] = $ligne ["discipline"] ; $liste_eleves [$liste_eleves [0][0][0]][0][4] = $sc ["classe"] ; $liste_eleves [$liste_eleves [0][0][0]][0][5] = $ligne ["sous_discipline"] ; $liste_eleves [$liste_eleves [0][0][0]][1][0] = $nbre ; For ($j = 1 ; $j <= $nbre ; $j++) { $lgn = SQL_ligne_suivante ($eleves) ; $liste_eleves [$liste_eleves [0][0][0]][1][$j] = $lgn [0] ; } } Else { //$liste_eleves [$liste_eleves [0][0][0]][1][0] = 0 ; } } } Else { //$liste_eleves [$liste_eleves [0][0][0]][1][0] = 0 ; } // Traite le groupe si non optionnelle If (($sc ["optionnelle"] == 0) And ($sc ["groupe"] == 1)) { $eleves = SQL_commande ("SELECT g.eleve FROM groupes_eleve g,eleves e WHERE g.groupe='".$ligne ["groupe_classe"]."' AND g.eleve=e.id_eleve AND e.millesime='".$millesime."' AND e.exterieur>='0' ORDER BY e.nom,e.prenoms", $id_sql) ; $nbre = SQL_nbr_lignes ($eleves) ; If ($nbre > 0) { $liste_eleves [0][0][0]++ ; $liste_eleves [$liste_eleves [0][0][0]][0][0] = $ligne ["id_service_prof"] ; $liste_eleves [$liste_eleves [0][0][0]][0][1] = $ligne ["service_classe"] ; $liste_eleves [$liste_eleves [0][0][0]][0][2] = $ligne ["groupe_classe"] ; $liste_eleves [$liste_eleves [0][0][0]][0][3] = $ligne ["discipline"] ; $liste_eleves [$liste_eleves [0][0][0]][0][4] = $sc ["classe"] ; $liste_eleves [$liste_eleves [0][0][0]][0][5] = $ligne ["sous_discipline"] ; $liste_eleves [$liste_eleves [0][0][0]][1][0] = $nbre ; For ($j = 1 ; $j <= $nbre ; $j++) { $lgn = SQL_ligne_suivante ($eleves) ; $liste_eleves [$liste_eleves [0][0][0]][1][$j] = $lgn [0] ; } } Else { //$liste_eleves [$liste_eleves [0][0][0]][1][0] = 0 ; } } } Else { // Classe entiere $classe = SQL_commande ("SELECT id_eleve FROM eleves WHERE classe='".$ligne ["classe"]."' AND code_classe='".$ligne ["code_classe"]."' AND millesime='".$millesime."' AND exterieur>='0' ORDER BY nom,prenoms", $id_sql) ; $nbc = SQL_nbr_lignes ($classe) ; If ($nbc > 0) { $liste_eleves [0][0][0]++ ; $liste_eleves [$liste_eleves [0][0][0]][0][0] = $ligne ["id_service_prof"] ; $liste_eleves [$liste_eleves [0][0][0]][0][1] = $ligne ["service_classe"] ; $liste_eleves [$liste_eleves [0][0][0]][0][2] = $ligne ["groupe_classe"] ; $liste_eleves [$liste_eleves [0][0][0]][0][3] = $ligne ["discipline"] ; $liste_eleves [$liste_eleves [0][0][0]][0][4] = $sc ["classe"] ; $liste_eleves [$liste_eleves [0][0][0]][0][5] = $ligne ["sous_discipline"] ; $liste_eleves [$liste_eleves [0][0][0]][1][0] = $nbc ; For ($j = 1 ; $j <= $nbc ; $j++) { $lgn = SQL_ligne_suivante ($classe) ; $liste_eleves [$liste_eleves [0][0][0]][1][$j] = $lgn [0] ; } } } } } } Else { $liste_eleves [0][0][0] = 0 ; } Return $liste_eleves ; } // ---------------------------------------------------------- // Formatage de texte // ---------------------------------------------------------- /** * Renvoi une chaine formatee sur x caracteres par ligne * @param string $chaine Chaine de caracteres a formatter * @param int $nbr_cols Nombre de caracteres par ligne * @return string Chaine formattee en HTML */ Function formatage ($chaine, $nbr_cols) { $chaine = Str_Replace ("\n", "", $chaine) ; $tableau_mots = Explode (" ", $chaine) ; $chaine = $tableau_mots [0] ; $nbr_car = StrLen ($tableau_mots [0]) ; For ($i = 1 ; $i < SizeOf ($tableau_mots) ; $i++) { If (($nbr_car + StrLen ($tableau_mots [$i]) + 1) > $nbr_cols) { $chaine .= "
".$tableau_mots [$i] ; $nbr_car = StrLen ($tableau_mots [$i]) ; } Else { $chaine .= " ".$tableau_mots [$i] ; $nbr_car = $nbr_car + StrLen ($tableau_mots [$i]) + 1 ; } } Return $chaine ; } /** * Traduit une entree de ASCII vers ANSI * @param string $entree Texte a traduire en ASCII (venant de GEP par exemple) * @return string Chaine traduite */ Function ansi ($entree) { Define ("TABLE_ANSI","ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»€€€€€ÁÂÀ©€€€€¢¥€"); $resultat = "" ; For ($i = 0 ; $i < StrLen ($entree) ; $i++) { $car = $entree [$i] ; $num = Ord ($car); If (($num > 127) And ($num < 192)) { $car = SubStr (TABLE_ANSI, $num-128, 1) ; } $resultat .= $car ; } Return $resultat ; } /** * Activation de l'editeur de texte * @param int $hauteur Hauteur en pixels * @param int $largeur Largeur en pixels * @param string $barre_outils Nom de la barre d'outils a utiliser (Simple,Message,Tout) * @param string $nom_theme Nom du theme a utiliser * @param string $valeur_defaut Valeur par defaut dans la partie saisie */ Function active_editeur ($hauteur, $largeur, $barre_outils, $nom_theme, $valeur_defaut) { Global $http_garennes ; $valeur_defaut = Str_Replace ("\n", "", $valeur_defaut) ; $valeur_defaut = Str_Replace ("\t", "", $valeur_defaut) ; $valeur_defaut = Str_Replace ("\r", "", $valeur_defaut) ; $ligne = "" ; $ligne .= "" ; Return $ligne ; } /** * Lecture du flux rss depuis le serveur pre-defini et mise en page pour affichage * @param string $coul_fond Couleur du fond du tableau * @param string $coul_titre Couleur du texte du titre * @param string $fond_titre Couleur du fond du titre * @return string Mise en forme si flux existe */ Function flux_rss ($coul_fond, $coul_titre, $fond_titre) { Global $adresse_flux_rss,$identification_garennes,$affichage_rss, $timeout ; If (@FSockOpen ($adresse_flux_rss, "80", $errno, $errstr, $timeout)) { $id_flux = FOpen ($adresse_flux_rss, "r") ; $flux = "" ; While (!FEoF ($id_flux)) { $flux .= FGets ($id_flux, 4096) ; } FClose ($id_flux) ; $ligne = "" ; $ok = 0 ; If (StrLen ($flux) > 0) { $flux_rss = filtrage_utf8 ($flux) ; $titre [0] = 0 ; $lien [0] = 0 ; $description [0] = 0 ; $createur [0] = 0 ; $date_creation [0] = 0 ; While (StrPos ($flux_rss, "")) { $morceau = SubStr ($flux_rss, StrPos ($flux_rss, "")-StrPos ($flux_rss, "")+6, StrLen ($flux_rss)-StrPos ($flux_rss, "")-5) ; } // Mise en forme If ($ok == 1) { $ligne = "" ; For ($i = 1 ; $i <= $titre [0] ; $i++) { $ligne .= "" ; $ligne .= "" ; } $ligne .="
 FIL RSS -" ; If ($lien [$i]) { $ligne .= "" ; } $ligne .= " ".Str_Replace ("\n", "", $titre [$i])." " ; If ($lien [$i]) { $ligne .= "" ; } $ligne .= "
 ".Str_Replace ("&", "&", Str_Replace ("\n", "
 ", $description [$i]))." 
 ".$createur [$i]." (".$date_creation [$i].") 
" ; } } Return $ligne ; } Else { Return "" ; } } // ---------------------------------------------------------- // Gestion des memos notes // ---------------------------------------------------------- /** * Renvoi 1 si le memo note existe sinon 0 * @param int $ut Id utilisateur * @param int $el Id _eleve * @param string $r1 Repere1 eleve * @param string $r2 Repere2 eleve * @return int Renvoi 1 si existe, 0 si n'existe pas */ Function memo_note_existe ($ut, $el, $r1, $r2) { Global $id_sql ; $r0 = SQL_commande ("SELECT id_memo_note FROM memo_notes WHERE id_utilisateur='".$ut."' AND id_eleve='".$el."' AND repere1='".$r1."' AND repere2='".$r2."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r0) == 1) { Return 1 ; } Else { Return 0 ; } } /** * Renvoi l'id et le texte de la memo note si existe sinon 0 * @param int $ut Id utilisateur * @param int $el Id _eleve * @param string $r1 Repere1 eleve * @param string $r2 Repere2 eleve * @return array Renvoi un tableau [0]=ID, [1]=TEXTE si existe sinon [0] = 0 */ Function memo_note_texte ($ut, $el, $r1, $r2) { Global $id_sql ; $r0 = SQL_commande ("SELECT id_memo_note,texte FROM memo_notes WHERE id_utilisateur='".$ut."' AND id_eleve='".$el."' AND repere1='".$r1."' AND repere2='".$r2."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r0) == 1) { $ligne = SQL_ligne_suivante ($r0) ; } Else { $ligne [0] = 0 ; $ligne [1] = "" ; } Return $ligne ; } // ---------------------------------------------------------- // Gestion des cahiers de textes // ---------------------------------------------------------- /** * Renvoi 1 si le cahier de textes est actif sinon 0 * @param int $id_classe Id classe * @return int Renvoi 1 si actif sinon 0 */ Function cahier_textes_actif ($id_classe) { Global $id_sql ; $r0 = SQL_commande ("SELECT e.cahier_textes FROM etablissements e,classes c WHERE c.id_classe='".$id_classe."' AND c.etablissement=e.id_etablissement LIMIT 1", $id_sql) ; $ligne = SQL_ligne_suivante ($r0) ; If ($ligne [0] == 1) { Return 1 ; } Else { Return 0 ; } } /** * Renvoi l'heure de debut, l'heure de fin et le pas pour la saisie horaire * @param int $id_service_prof Id service prof * @return array Renvoi un tableau [0]=Heure debut, [1]=Heure de fin, [2]=pas si existe sinon [0]=0 */ Function cahier_textes_horaires ($id_service_prof) { Global $id_sql ; $r = SQL_commande ("SELECT e.heure_debut,e.heure_fin,e.heure_pas FROM etablissements e,classes c,services_prof p WHERE p.id_service_prof='".$id_service_prof."' AND p.classe=c.id_classe AND c.etablissement=e.id_etablissement LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r) == 1) { $ligne = SQL_ligne_suivante ($r) ; } Else { $ligne [0] = 0 ; } Return $ligne ; } /** * Renvoi 1 si le cahier de textes existe sinon 0 * @param int $id_service_prof Id service prof * @param int $date Date * @return int Renvoi 1 si existe, 0 si n'existe pas */ Function cahier_textes_existe ($id_service_prof, $date) { Global $id_sql ; $r0 = SQL_commande ("SELECT id_cahier_texte FROM cahier_textes WHERE id_service_prof='".$id_service_prof."' AND date='".$date."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r0) == 1) { Return 1 ; } Else { Return 0 ; } } /** * Renvoi le nom du repertoire de stokage des documents du cahier de textes si actif sinon rien * @param int $id_classe Id classe * @return int Renvoi 1 si actif sinon 0 */ Function cahier_textes_repertoire_stockage ($id_classe) { Global $id_sql, $base_choisie ; $r = SQL_commande ("SELECT e.rep_stockage FROM etablissements e,classes c WHERE c.id_classe='".$id_classe."' AND c.etablissement=e.id_etablissement AND e.cahier_textes='1' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r) == 1) { $ligne = SQL_ligne_suivante ($r) ; If (!File_Exists ($ligne [0].$base_choisie."/")) { @MkDir ($ligne [0].$base_choisie."/", 0755) ; } Return $ligne [0].$base_choisie."/" ; } Else { Return "" ; } } /** * Renvoi la taille maximale d'un document du cahier de textes * @param int $id_classe Id classe * @return int Taille en octets si definie sinon 0 */ Function cahier_textes_taille_document ($id_classe) { Global $id_sql ; $r = SQL_commande ("SELECT e.taille_fichier FROM etablissements e,classes c WHERE c.id_classe='".$id_classe."' AND c.etablissement=e.id_etablissement AND e.cahier_textes='1' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r) == 1) { $ligne = SQL_ligne_suivante ($r) ; Return $ligne [0] ; } Else { Return 0 ; } } /** * Renvoi la taille maximale d'un espace de stockage de documents pour une discipline * @param int $id_classe Id classe * @return int Taille en octets si definie sinon 0 */ Function cahier_textes_taille_espace_stockage ($id_classe) { Global $id_sql ; $r = SQL_commande ("SELECT e.taille_espace FROM etablissements e,classes c WHERE c.id_classe='".$id_classe."' AND c.etablissement=e.id_etablissement AND e.cahier_textes='1' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r) == 1) { $ligne = SQL_ligne_suivante ($r) ; Return $ligne [0] ; } Else { Return 0 ; } } /** * Renvoi la taille prise par un espace de stockage de documents pour une discipline * @param int $id_service_prof Id du service prof * @return int Taille en octets */ Function cahier_textes_taille_espace_utilise ($id_service_prof) { Global $id_sql ; $r = SQL_commande ("SELECT DISTINCT SUM(d.taille) FROM cahier_documents d,cahier_textes t WHERE d.id_cahier_texte=t.id_cahier_texte AND t.id_service_prof='".$id_service_prof."'", $id_sql) ; $ligne = SQL_ligne_suivante ($r) ; Return $ligne [0] ; } /** * Renvoi les tailles d'un fichier et de l'espace de stockage * @param int $id_classe Id classe * @return int Tailles en octets [0]=taille fichier,[1]=taille espace */ Function cahier_textes_tailles ($id_classe) { Global $id_sql ; $r = SQL_commande ("SELECT e.taille_fichier,e.taille_espace FROM etablissements e,classes c WHERE c.id_classe='".$id_classe."' AND c.etablissement=e.id_etablissement AND e.cahier_textes='1' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r) == 1) { $ligne = SQL_ligne_suivante ($r) ; Return $ligne ; } Else { $ligne [0] = $ligne [1] = 0 ; Return $ligne ; } } /** * Renvoi le nombre de fichiers et la taille totale * @param int $id_classe Id classe * @return int Tailles et nombre [0]=taille totale,[1]=Nombre de fichiers */ Function cahier_textes_nombre_fichiers ($id_service_prof) { Global $id_sql ; $r = SQL_commande ("SELECT DISTINCT SUM(d.taille),SUM(1) FROM cahier_documents d,cahier_textes t WHERE d.id_cahier_texte=t.id_cahier_texte AND t.id_service_prof='".$id_service_prof."'", $id_sql) ; If (SQL_nbr_lignes ($r) == 1) { $ligne = SQL_ligne_suivante ($r) ; } Else { $ligne [0] = $ligne [1] = 0 ; } Return $ligne ; } // ---------------------------------------------------------- // Gestion des sauvegardes automatiques // ---------------------------------------------------------- /** * */ Function calcul_nouvelle_sauvegarde () { $periode_sauvegarde = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","PERIODICITE") ; If ($periode_sauvegarde == "") { sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","PERIODICITE",0) ; $periode_sauvegarde = 0 ; } Switch ($periode_sauvegarde) { // Aucune Case 0 : detruire_configuration ("SYSTEME_PARAM","SAUVEGARDES","DATE") ; Break ; // A la semaine Case 1 : $numero = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","JOUR_NUMERO") ; If ($numero == "") { sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","JOUR_NUMERO",1) ; $numero = 1 ; } $comment = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","JOUR_COMMENT") ; If ($comment == "") { sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","JOUR_COMMENT",1) ; $comment = 1 ; } $quand = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","JOUR_QUAND") ; If ($quand == "") { sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","JOUR_QUAND",0) ; $quand = 0 ; } $mois = Date ("n") ; $jour = Date ("j") ; $annee = Date ("Y") ; Switch ($quand) { Case 0 : $heure = Rand (0, 23) ; Break ; Case 1 : $heure = Rand (0, 7) ; Break ; Case 2 : $heure = Rand (8, 11) ; Break ; Case 3 : $heure = Rand (8, 16) ; Break ; Case 4 : $heure = Rand (12, 16) ; Break ; Case 5 : $heure = Rand (17, 23) ; Break ; } $minute = Rand (0, 59) ; If ($numero == 8) { // Jour au hasard $nst = MkTime ($heure,$minute,0,$mois,$jour+Rand (0, 7),$annee) ; } Else { $i = 1 ; $ok = 0 ; While (($ok == 0) And ($i <= 14)) { $nst = MkTime ($heure,$minute,0,$mois,$jour+$i,$annee) ; $jr = Date ("w", $nst) ; If ($jr == $numero) { $ok = 1 ; } $i++ ; } } sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","DATE",$nst) ; Break ; // Au mois Case 2 : $millesime = millesime (0) ; $comment = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_COMMENT") ; If ($comment == "") { sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_COMMENT",1) ; $comment = 1 ; } $quand = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_QUAND") ; If ($quand == "") { sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_QUAND",0) ; $quand = 0 ; } For ($i = 1 ; $i <= 12 ; $i++) { $numero = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_NUMERO_".$i) ; If ($numero == "") { sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_NUMERO_".$i,1) ; $numero = 1 ; } If ($numero == 1) { // Calcul des dates $nst_courant = MkTime (Date ("H"),Date ("i"),0,Date ("m"),Date ("d"),Date ("Y")) ; $nbr_total = 1 ; If ($i < 9) { $m1 = $millesime+1 ; } Else { $m1 = $millesime ; } If ($i+1 < 9) { $m2 = $millesime+1 ; } Else { If ($i == 8) { $m2 = $millesime+1 ; } Else { $m2 = $millesime ; } } $delta = Round ((MkTime (0,0,-1,$i+1,1,$m2)-MkTime (0,0,0,$i,1,$m1))/($comment+2)) ; $debut = MkTime ($heure,$minute,0,$i,1,$m1)+Rand (0, Round ($delta/2)) ; For ($j = 0 ; $j < $comment ; $j++) { Switch ($quand) { Case 0 : $heure = Rand (0, 23) ; Break ; Case 1 : $heure = Rand (0, 7) ; Break ; Case 2 : $heure = Rand (8, 11) ; Break ; Case 3 : $heure = Rand (8, 16) ; Break ; Case 4 : $heure = Rand (12, 16) ; Break ; Case 5 : $heure = Rand (17, 23) ; Break ; } $minute = Rand (0, 59) ; $jour = Date ("d", $debut+$delta*$j+Rand (Round ($delta/2),$delta)) ; $nst = MkTime ($heure,$minute,0,$i,$jour,$m1) ; If ($nst_courant >= $nst) { $nbr_total++ ; } sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_DATE_".$i."_".($j+1),$nst) ; } sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_TOTAL_".$i,$nbr_total) ; } Else { For ($j = 0 ; $j < $comment ; $j++) { detruire_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_DATE_".$i."_".($j+1)) ; detruire_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_TOTAL_".$i) ; } } } Break ; } } /** * Renvoi 1 si on doit faire la sauvegarde tout de suite en verouillant celle-ci * @param int $fs Forcage sauvegarde (si entre deux periode, ou changement de periode) si option valide (3) * @return int 0:Pas de sauvegarde,1:Sauvegarde tout de suite */ Function sauvegarde_automatique ($fs) { //Global $debug_SQL; $ok = 0 ; $st_unix = Time () ; $periode_sauvegarde = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","PERIODICITE") ; If ($periode_sauvegarde == "") { sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","PERIODICITE",0) ; $periode_sauvegarde = 0 ; } Switch ($periode_sauvegarde) { // A la semaine Case 1 : $date_sauvegarde = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","DATE") ; If ($date_sauvegarde == "") { calcul_nouvelle_sauvegarde () ; } Else { If ($date_sauvegarde <= $st_unix) { $ok = 1 ; calcul_nouvelle_sauvegarde () ; } } Break ; // Au mois Case 2 : $num_mois = Date ("n") ; $numero = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_NUMERO_".$num_mois) ; If ($numero == "") { sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_NUMERO_".$num_mois,0) ; $numero = 0 ; } If ($numero == 1) { $nombre = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_COMMENT") ; If ($nombre == "") { sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_COMMENT",1) ; $nombre = 1 ; } $total = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_TOTAL_".$num_mois) ; If ($total == "") { sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_TOTAL_".$num_mois,0) ; $total = 0 ; } If ($total <= $nombre) { $num = 0 ; For ($i = $total ; $i <= $nombre ; $i++) { $nst = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_DATE_".$num_mois."_".$i) ; If ($nst <= $st_unix) { $num = $i ; } } If ($num > 0) { If ($num <= $nombre) { $num++ ; } sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_TOTAL_".$num_mois,$num) ; $ok = 1 ; } } } Break ; // Au changement de periode Case 3 : $ok = $fs ; Break ; } Return $ok ; } /** * Renvoi la date de la prochaine la sauvegarde automatique * @return int Date en format time stamp unix */ Function date_sauvegarde_automatique () { Global $id_sql ; $dts = 0 ; $st_unix = Time () ; $periode_sauvegarde = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","PERIODICITE") ; If ($periode_sauvegarde == "") { sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","PERIODICITE",0) ; $periode_sauvegarde = 0 ; } Switch ($periode_sauvegarde) { // A la semaine Case 1 : $date_sauvegarde = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","DATE") ; If ($date_sauvegarde <= $st_unix) { $dts = $date_sauvegarde ; } Break ; // Au mois Case 2 : $num_mois = Date ("n") ; $numero = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_NUMERO_".$num_mois) ; If ($numero == "") { sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_NUMERO_".$num_mois,0) ; $numero = 0 ; } If ($numero == 1) { $nombre = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_COMMENT") ; If ($nombre == "") { sauvegarde_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_COMMENT",1) ; $nombre = 1 ; } $total = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_TOTAL_".$num_mois) ; $ok = 0 ; For ($i = $total ; $i <= $nombre ; $i++) { $nst = restaure_configuration ("SYSTEME_PARAM","SAUVEGARDES","MOIS_DATE_".$num_mois."_".$i) ; If (($nst > $st_unix) And ($ok == 0)) { $dts = $nst ; $ok = 1 ; } } } Break ; // Au changement de periode Case 3 : $r = SQL_commande ("SELECT p.fin FROM classes c,periodes_classe p WHERE c.id_classe=p.classe AND c.num_periode=p.numero AND millesime='".millesime (0)."' ORDER BY p.fin DESC LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r) == 1) { $pdt = SQL_ligne_suivante ($r) ; $dt = Explode ("-", $pdt) ; $dts = MkTime (0,0,0,$dt [1],$dt [2],$dt [0]) ; } Break ; } Return $dts ; } /** * Effectue la sauvegarde en format SQL des donnees * @return string Sauvegarde */ Function faire_sauvegarde_donnees () { Global $id_sql, $ext_sql, $separateur_repertoire, $repertoire_sauvegarde ; $d1 = Date ("Y-m-d") ; $d2 = Date ("H-i-s") ; $nom_rep = "s".$d1."_".$d2 ; @MkDir ($repertoire_sauvegarde.$separateur_repertoire.$nom_rep) ; $nom_sql = "s".$d1."_".$d2 ; $ou = $repertoire_sauvegarde.$separateur_repertoire.$nom_rep ; $fichier = FOpen ($ou.$separateur_repertoire.$nom_sql.$ext_sql, "w") ; $resultats = SQL_commande ("SHOW TABLES", $id_sql) ; $f [0] = SQL_nbr_lignes ($resultats) ; For ($i = 1 ; $i <= $f [0] ; $i++) { $ligne = SQL_ligne_suivante ($resultats) ; $f [$i] = $ligne [0] ; } $d = donnees_table_SQL ($f) ; $d = filtrage_utf8 ($d) ; FPuts ($fichier, $d) ; FClose ($fichier) ; $taille = FileSize ($ou.$separateur_repertoire.$nom_sql.$ext_sql) ; /* If (PHP_OS == "Linux") { @Exec ("cd ".$ou."; tar cf ./".$nom_sql.".tar ./".$nom_sql.$ext_sql) ; @Exec ("cd ".$ou."; gzip ./".$nom_sql.".tar") ; @UnLink ($ou.$separateur_repertoire.$nom_sql.$ext_sql) ; $taille = FileSize ($ou.$separateur_repertoire.$nom) ; } */ $resultats = SQL_commande ("INSERT INTO sauvegardes (nom_repertoire,date,type,taille,compresse,transmis,separateur,commentaires) VALUES ('".$nom_rep."','".$d1." ".$d2."','Toutes_SQL','".$taille."','0','0','','Sauvegarde automatique')", $id_sql) ; $resultats = SQL_commande ("SELECT id_sauvegarde FROM sauvegardes WHERE date='".$d1." ".$d2."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultats) == 1) { $l = SQL_ligne_suivante ($resultats) ; $ok = SQL_commande ("INSERT INTO sauvegardes_fichiers (numero,nom,extension,taille) VALUES ('".$l [0]."','".$nom_sql."','".$ext_sql."','".$taille."')", $id_sql) ; } } // ---------------------------------------------------------- // Gestion des erreurs PHP // ---------------------------------------------------------- /** * Gestion des erreurs pour PHP * @param int $errno Numero de l'erreur * @param string $errstr Nom de l'erreur * @param string $errfile Nom du fichier contenant l'erreur * @param int $errline Numero de la ligne dans le fichier contenant l'erreur */ Function gestion_erreurs ($errno, $errstr, $errfile, $errline) { Switch ($errno) { Case E_USER_ERROR : Echo "ERREUR [".$errno."] ".$errstr."
" ; Echo " Erreur fatale sur la ligne ".$errline." dans le fichier ".$errfile ; Echo ", PHP ".PHP_VERSION." (".PHP_OS.")
" ; Echo "Arrêt...
" ; Exit (1) ; Break ; Case E_USER_WARNING : Echo "ALERTE [".$errno."] ".$errstr."
" ; Break ; Case E_USER_NOTICE : Echo "AVERTISSEMENT [".$errno."] ".$errstr."
" ; Break ; /* Default : Echo "Type d'erreur inconnu : [".$errno."] ".$errstr."
" ; Echo " Erreur sur la ligne ".$errline." dans le fichier ".$errfile ; Echo ", PHP ".PHP_VERSION." (".PHP_OS.")
" ; Break ; */ } Return True ; } // =============================================================================== // PROGRAMME PRINCIPAL // =============================================================================== // Set_Error_Handler("gestion_erreurs") ; If ($debug_php == 1) { Error_Reporting (E_ALL) ; } Else { Error_Reporting (E_ALL ^ E_NOTICE) ; } If (!IsSet ($verification_installation)) { // Test le serveur primaire si existe If (!IsSet ($sql_port)) { If (IsSet ($type_bdd)) { If ($type_bdd == "MySQL") { $port = 3306 ; } Else { $port = 5432 ; } } Else { $port = 3306 ; } } Else { $port = 3306 ; } // Test sans port If (IsSet ($_SESSION ["bdd_sql"]) And ($_SESSION ["bdd_sql"] != "")) { $base_choisie = $_SESSION ["bdd_sql"] ; } ElseIf (IsSet ($bdd_sql) And ($bdd_sql != "")) { $base_choisie = $bdd_sql ; } ElseIf ($sql_base != "") { $base_choisie = $sql_base ; } Else { $base_choisie = "garennes" ; } $id_sql = SQL_connexion ($sql_adresse, $sql_qui, $sql_passe, $base_choisie, "") ; If (!$id_sql) { If ($f = @FSockOpen ($sql_adresse, $port, $errno, $errstr, $timeout)) { FClose ($f) ; $id_sql = SQL_connexion ($sql_adresse, $sql_qui, $sql_passe, $base_choisie, $sql_port) ; If (!$id_sql) { If ($sql_secondaire != "") { // Test le serveur secondaire si existe If ($f = @FSockOpen ($sql_secondaire, $sql_port, $errno, $errstr, $timeout)) { FClose ($f) ; $id_sql = SQL_connexion ($sql_secondaire, $sql_qui, $sql_passe, $base_choisie, $sql_port) ; } ElseIf ($sql_tertiaire != "") { // Test le serveur tertiaire si existe If ($f = @FSockOpen ($sql_tertiaire, $sql_port, $errno, $errstr, $timeout)) { FClose ($f) ; $id_sql = SQL_connexion ($sql_tertiaire, $sql_qui, $sql_passe, $base_choisie, $sql_port) ; } } } } } } If (!IsSet ($id_sql)) { Echo "" ; Echo "

Flute : Serveur non accessible pour l'instant !

" ; Echo "
Essayez un peu plus tard.

" ; Echo "
Raisons possibles : Maintenance, Pannes, ...
" ; Echo "" ; Exit () ; } } // Initialiser le generateur de nombres aleatoires mt_srand ((double)microtime ()*1000000) ; UnSet ($f) ; ?>Garennes." ; Echo "
Problème d'accès aux bulletins.
Veuillez contacter l'administrateur...
" ; Echo "" ; Exit ; } If ($titre == -1) { $resultats = SQL_commande ("SELECT * FROM menus WHERE numero='".$droit_courant."' AND ordre='0' LIMIT 1", $id_sql) ; $l = SQL_tableau_associatif ($resultats, "") ; // Menu de choix Echo "Garennes - Options d'impression des bulletins." ; Echo "" ; Echo "" ; Echo "" ; Echo "
Options d'impression des bulletins pour la période ".$periode.". Classe : ".nom_classe_long_parid ($id_classe)." (".nom_classe_bref_parid ($id_classe).")" ; If ($droit_courant != $droit_cpe) { Echo "" ; } Echo "
 
" ; //Echo affichage_pourcentages ($id_classe, $periode, 102)."
" ; Echo "
" ; Echo "" ; Echo "" ; Echo "" ; $res = SQL_commande ("SELECT id_eleve,nom,prenoms FROM eleves WHERE classe='".$id_classe."' ORDER BY nom,prenoms", $id_sql) ; Echo "
" ; Echo "" ; Echo "
Imprimer :  ".affichage_pourcentages ($id_classe, $periode, 102)."
" ; Echo "" ; Echo "" ; // Liste des matieres avec option d'impression (obligatoire (forcage non impression), option (forcee ou si appartient), groupe (forcee ou si appartient)) // Classement ou pas $resultat = SQL_commande ("SELECT classement FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; $res = SQL_ligne_suivante ($resultat) ; // Tableau des disciplines et nom prof pour la discipline avec coefficient $ok_classement = 0 ; // Alias ? $alias = SQL_commande ("SELECT DISTINCT s.id_service_prof,g.id_utilisateur FROM services_prof s,groupes_alias g WHERE s.professeur<0 AND s.classe='".$id_classe."' AND s.millesime='".$millesime."' AND g.id_alias=-s.professeur AND g.code=1 AND g.numero=1 AND g.id_utilisateur>0", $id_sql) ; $nbr_alias = SQL_nbr_lignes ($alias) ; $req_sup = $table_sup = "" ; If ($nbr_alias > 0) { $table_sup = ",groupes_alias g" ; $req_sup = " OR " ; For ($i = 0 ; $i < $nbr_alias ; $i++) { $lk = SQL_ligne_suivante ($alias) ; If ($i > 0) { $req_sup .= " OR " ; } $req_sup .= "(p.id_service_prof='".$lk [0]."' AND p.service_classe=s.id_service_classe AND s.discipline=d.id_discipline AND u.id_utilisateur='".$lk [1]."'" ; If ($res [0] == 1) { $req_sup .= " AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe" ; } $req_sup .= ")" ; } } If ($res [0] == 1) { // Si classement /* $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur FROM disciplines d,services_classe s,services_prof p,utilisateurs u,classement c,groupes_alias g WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe) OR (p.professeur<0 AND g.id_alias=-p.professeur AND g.id_service_classe=p.service_classe AND g.id_utilisateur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND s.id_service_classe=c.id_service_classe AND s.discipline=d.id_discipline AND g.numero='1') ORDER BY c.numero", $id_sql) ; */ $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur FROM disciplines d,services_classe s,services_prof p,utilisateurs u,classement c".$table_sup." WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe) ".$req_sup." ORDER BY c.numero", $id_sql) ; $res [0] = SQL_nbr_lignes ($resultat_disc) ; $ok_classement = 1 ; } If ($res [0] == 0) { // Si pas de classement ou classement vide /* $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur FROM disciplines d,services_classe s,services_prof p,utilisateurs u,groupes_alias g WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur) OR (p.professeur<0 AND g.id_alias=-p.professeur AND g.id_service_classe=p.service_classe AND s.classe='".$id_classe."' AND g.id_utilisateur=u.id_utilisateur AND p.service_classe=s.id_service_classe AND s.discipline=d.id_discipline AND g.numero='1') ORDER BY d.nom_long,d.nom_court,d.nom_bref", $id_sql) ; */ $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur FROM disciplines d,services_classe s,services_prof p,utilisateurs u".$table_sup." WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur) ".$req_sup." ORDER BY d.nom_long,d.nom_court,d.nom_bref", $id_sql) ; } $nbr_disc = SQL_nbr_lignes ($resultat_disc) ; $ok_alias = 0 ; Echo "" ; Echo "" ; // Forcage de l'impression de 1 ou 2 bulletins pour responsables $imp_un_bulletin = restaure_configuration ("SYSTEME_PARAM", "IMP_UN_BULLETIN_".$id_utilisateur, $id_classe) ; If ($imp_un_bulletin == "") { sauvegarde_configuration ("SYSTEME_PARAM", "IMP_UN_BULLETIN_".$id_utilisateur, $id_classe, 1) ; $imp_un_bulletin = 1 ; } Echo "" ; // Forcage pour recalculer toutes les moyennes $force_calcul = restaure_configuration ("SYSTEME_PARAM", "FORCAGE_CALCUL_BULLETIN_".$id_utilisateur, $id_classe) ; If ($force_calcul == "") { sauvegarde_configuration ("SYSTEME_PARAM", "FORCAGE_CALCUL_BULLETIN_".$id_utilisateur, $id_classe, 0) ; $force_calcul = 0 ; } Echo "" ; // Forcage pour imprimer toute la liste des enseignants d'un alias /* If ($ok_alias == 1) { $force_alias = restaure_configuration ("SYSTEME_PARAM", "FORCAGE_ALIAS_LISTE_".$id_utilisateur, $id_classe) ; If ($force_alias == "") { sauvegarde_configuration ("SYSTEME_PARAM", "FORCAGE_ALIAS_LISTE_".$id_utilisateur, $id_classe, 0) ; $force_alias = 0 ; } Echo "" ; } */ // Mode d'impression : Reunion des appreciations ou colonnes differentes $id_etablissement = id_etablissement_par_id_classe ($id_classe, $millesime) ; $nbr_col = restaure_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NBR_COLONNES") ; $nbr_car = restaure_configuration ("SYSTEME_PARAM", "SAISIE_APPRECIATIONS_".$id_etablissement, "TAILLE") ; If (($nbr_car == "") Or ($nbr_car == 0)) { If (IsSet ($nbr_car_max_saisie_appreciations) And ($nbr_car_max_saisie_appreciations > 0)) { sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_APPRECIATIONS_".$id_etablissement, "TAILLE", $nbr_car_max_saisie_appreciations) ; $nbr_car = $nbr_car_max_saisie_appreciations ; } Else { sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_APPRECIATIONS_".$id_etablissement, "TAILLE", 230) ; $nbr_car = 230 ; } } If (($nbr_col == "") Or ($nbr_col == 0)) { sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NBR_COLONNES", 1) ; $nbr_col = 1 ; sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NOM_COLONNE_1", "Appréciations") ; sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "TAILLE_COLONNE_1", $nbr_car) ; } If ($nbr_col > 1) { Echo "" ; $mode_imp = restaure_configuration ("SYSTEME_PARAM", "IMP_COLONNES_".$id_utilisateur, $id_classe) ; If ($mode_imp == "") { sauvegarde_configuration ("SYSTEME_PARAM", "IMP_COLONNES_".$id_utilisateur, $id_classe, 0) ; $mode_imp = 0 ; } Echo "" ; $fusion_imp = restaure_configuration ("SYSTEME_PARAM", "FUSION_COLONNES_".$id_utilisateur, $id_classe) ; If ($fusion_imp == "") { sauvegarde_configuration ("SYSTEME_PARAM", "FUSION_COLONNES_".$id_utilisateur, $id_classe, 0) ; $fusion_imp = 0 ; } Echo "" ; Echo "" ; Echo "" ; Echo "" ; } Else { Echo "" ; } Echo "" ; Echo "
 
" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; For ($i = 0 ; $i < $nbr_disc ; $i++) { $d = SQL_ligne_suivante ($resultat_disc) ; $active = restaure_configuration ("SYSTEME_PARAM", "IMP_BULLETINS_".$id_utilisateur, $id_classe."_".$d [6]) ; If (($active == "") Or ($active == 0)) { sauvegarde_configuration ("SYSTEME_PARAM", "IMP_BULLETINS_".$id_utilisateur, $id_classe."_".$d [6], 1) ; $active = 1 ; } Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo etat_service_prof ($id_classe, $periode, $d [6], 2) ; Echo "" ; } Echo "
   Type  d'impression  Matières  État 
 À enlever  Si noté  Normale  À forcer  Nbr note(s)  Appréciation(s) 
 ".($i+1)."  ".filtrage_utf8 ($d [0]." (".$d [1]).")  " ; If ($d [13] < 0) { // Alias Echo "Équipe d'enseignants : 
" ; $t = alias_liste_enseignants (-$d [13]) ; For ($j = 1 ; $j <= $t [0][0] ; $j++) { If ($j > 1) { Echo ", " ; } If ($t [$j][0] == 1) { Echo "" ; } Echo $t [$j][3]." ".$t [$j][4] ; If ($t [$j][0] == 1) { Echo "" ; } } $ok_alias = 1 ; } Else { Echo filtrage_utf8 ($d [10]." ".$d [11]) ; } Echo " 
 
Génération d'un seul bulletin pour le responsable principal. 
Recalculer toutes les moyennes (peut-être beaucoup plus long). 
Imprimer le nom de tous les eneseignants si la discipline est enseignée en équipe. 
 
Regroupement de toutes les colonnes ci-dessous en une seule sur le bulletin. 
Imprimer que les colonnes comportant des appréciations en éliminant les colonnes vides. 
 
" ; Echo "" ; $ligne1 = "" ; $ligne2 = "" ; For ($j = 1 ; $j <= $nbr_col ; $j++) { $colonne [$j] = restaure_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NOM_COLONNE_".$j) ; $taille [$j] = restaure_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "TAILLE_COLONNE_".$j) ; If (($taille [$j] == "") Or ($taille [$j] == 0)) { sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "TAILLE_COLONNE_".$j, Round ($nbr_car/$nbr_col)) ; $taille [$j] = Round ($nbr_car/$nbr_col) ; } $ligne1 .= "".$ligne2."
 Nom de la colonne : 
 Nombre de caractères : " ; $ligne2 .= "" ; } Echo $ligne1."
 
" ; Echo "
" ; Exit ; } ElseIf ($titre == -2) { $nbr_disc = var_courante ("nbr_disc", 0, 0) ; For ($i = 0 ; $i < $nbr_disc ; $i++) { $sp = var_courante ("sp_".$i, 0, 0) ; $active = var_courante ("dsc_".$id_classe."_".$sp, 0, 0) ; sauvegarde_configuration ("SYSTEME_PARAM", "IMP_BULLETINS_".$id_utilisateur, $id_classe."_".$sp, $active) ; } $imp_un_bulletin = var_courante ("imp_un_bulletin", 0, 0) ; sauvegarde_configuration ("SYSTEME_PARAM", "IMP_UN_BULLETIN_".$id_utilisateur, $id_classe, $imp_un_bulletin) ; $mode_imp = var_courante ("mode_imp", 0, 0) ; sauvegarde_configuration ("SYSTEME_PARAM", "IMP_COLONNES_".$id_utilisateur, $id_classe, $mode_imp) ; $fusion_imp = var_courante ("fusion_imp", 0, 0) ; sauvegarde_configuration ("SYSTEME_PARAM", "FUSION_COLONNES_".$id_utilisateur, $id_classe, $fusion_imp) ; $force_calcul = var_courante ("force_calcul", 0, 0) ; sauvegarde_configuration ("SYSTEME_PARAM", "FORCAGE_CALCUL_BULLETIN_".$id_utilisateur, $id_classe, $force_calcul) ; $force_alias = var_courante ("force_alias", 0, 0) ; sauvegarde_configuration ("SYSTEME_PARAM", "FORCAGE_ALIAS_LISTE_".$id_utilisateur, $id_classe, $force_alias) ; // Procedure d'appel du calcul du PDF Echo "" ; Echo "Garennes." ; Echo "" ; Echo "" ; Echo "\n" ; Echo "
Création des bulletins pour impression.
Calcul en cours... Veuillez patienter S.V.P.

MERCI !
" ; Echo "" ; Echo "
" ; Echo affichage_pourcentages ($id_classe, $periode, 2) ; Echo "" ; Exit ; } // Verification si le module absences est actif //$id_utilisateur = utilparcode ($_SESSION ["code"]) ; $ok = SQL_commande ("SELECT id_type_module FROM types_modules WHERE menu='abs_menus' AND actif='1' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($ok) == 1) { If (File_Exists ($_SESSION ["repertoire_config"]."/module_absences.cfg") And File_Exists ($_SESSION ["repertoire_config"]."/module_absences.php")) { $module_absences = 1 ; Include ($_SESSION ["repertoire_config"]."/module_absences.cfg") ; Include ($_SESSION ["repertoire_config"]."/module_absences.php") ; If(!IsSet ($unite_comptabilisation)) { $unite_comptabilisation = 1 ; } } Else { $module_absences = 0 ; $unite_comptabilisation = 1 ; } } Else { $module_absences = 0 ; $unite_comptabilisation = 1 ; } Include ($_SESSION ["repertoire_config"]."/phppdflib.class.php") ; // Definition des coefficients $echelle_x = 28.346 ; // Passage cm -> pixels $echelle_y = 28.346 ; // Coordonnees en partant du bas gauche de la page en cm $largeur = 21 ; $hauteur = 29.7 ; $marge_gauche = 0.8 ; $marge_droite = 0.8 ; $marge_haut = 1 ; $marge_bas = 1 ; // Pliage $trait_debut_gauche = 0.2 ; $trait_fin_gauche = $marge_gauche-0.1 ; $nombre_disciplines = 15 ; // Nombre de disciplines avec les cadres administratifs $nbr_max_disciplines = 19 ; // Nombre max de disciplines sans cadres administratifs // Options d'impression $id_etablissement = id_etablissement_par_id_classe ($id_classe, $millesime) ; $cadre_adresse = restaure_configuration ("SYSTEME_PARAM","BULLETINS","ADRESSE_".$id_etablissement."_".$id_classe) ; If ($cadre_adresse == "") { $cadre_adresse = restaure_configuration ("SYSTEME_PARAM","BULLETINS","ADRESSE_".$id_etablissement) ; If ($cadre_adresse == "") { sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","ADRESSE_".$id_etablissement,1) ; $cadre_adresse = 1 ; } } $date_naissance_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","DATE_NAISSANCE_".$id_etablissement."_".$id_classe) ; If ($date_naissance_eleve == "") { $date_naissance_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","DATE_NAISSANCE_".$id_etablissement) ; If ($date_naissance_eleve == "") { sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","DATE_NAISSANCE_".$id_etablissement,1) ; $date_naissance_eleve = 1 ; } } $classe_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","CLASSE_".$id_etablissement."_".$id_classe) ; If ($classe_eleve == "") { $classe_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","CLASSE_".$id_etablissement) ; If ($classe_eleve == "") { sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","CLASSE_".$id_etablissement,1) ; $classe_eleve = 1 ; } } $effectif_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","EFFECTIF_".$id_etablissement."_".$id_classe) ; If ($effectif_eleve == "") { $effectif_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","EFFECTIF_".$id_etablissement) ; If ($effectif_eleve == "") { sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","EFFECTIF_".$id_etablissement,1) ; $effectif_eleve = 1 ; } } $redoublement_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","REDOUBLEMENT_".$id_etablissement."_".$id_classe) ; If ($redoublement_eleve == "") { $redoublement_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","REDOUBLEMENT_".$id_etablissement) ; If ($redoublement_eleve == "") { sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","REDOUBLEMENT_".$id_etablissement,1) ; $redoublement_eleve = 1 ; } } $ine_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","INE_".$id_etablissement."_".$id_classe) ; If ($ine_eleve == "") { $ine_eleve = restaure_configuration ("SYSTEME_PARAM","BULLETINS","INE_".$id_etablissement) ; If ($ine_eleve == "") { sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","INE_".$id_etablissement,1) ; $ine_eleve = 1 ; } } // ------------------------------------------------------------------------ // CADRE PERIODE // ------------------------------------------------------------------------ // Parametres $cadre_periode [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_periode [1][0] = $marge_gauche ; // Debut cadre X $cadre_periode [1][1] = $hauteur-$marge_haut ; // Debut cadre Y $cadre_periode [1][2] = $largeur-$marge_droite ; // Fin cadre X $cadre_periode [1][3] = $cadre_periode [1][1]-0.5 ; // Fin cadre Y $cadre_periode [1][4] = 1 ; // Largeur trace $cadre_periode [1][5] = 0 ; // Couleur rouge $cadre_periode [1][6] = 0 ; // Couleur verte $cadre_periode [1][7] = 0 ; // Couleur bleu // Nom periode $cadre_periode [2][0] = $cadre_periode [1][0]+0.1 ; // Debut PERIODE X $cadre_periode [2][1] = $cadre_periode [1][1]-0.4 ; // Debut PERIODE Y $cadre_periode [2][2] = "Helvetica-Bold" ; // Police PERIODE $cadre_periode [2][3] = "12" ; // Taille PERIODE $cadre_periode [2][4] = 0 ; // Couleur rouge $cadre_periode [2][5] = 0 ; // Couleur verte $cadre_periode [2][6] = 0 ; // Couleur bleu $cadre_periode [2][7] = Floor (($cadre_periode [1][2]-$cadre_periode [1][0]-0.2)*$echelle_x/6) ; // Nombre caracteres // ------------------------------------------------------------------------ // CADRE ETABLISSEMENT // ------------------------------------------------------------------------ // Parametres $cadre_etab [0][0] = 0 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_etab [1][0] = $marge_gauche ; // Debut cadre X $cadre_etab [1][1] = $cadre_periode [1][3]-0.05 ; // Debut cadre Y $hauteur-$marge_haut-0.6 ; // Debut cadre Y $cadre_etab [1][2] = $cadre_etab [1][0]+8.114 ; // Fin cadre X $cadre_etab [1][3] = $cadre_etab [1][1]-6.25 ; // Fin cadre Y // Nom $cadre_etab [2][0] = $cadre_etab [1][0]+0.05 ; // Debut NOM X $cadre_etab [2][1] = $cadre_etab [1][1] ; // Debut NOM Y $cadre_etab [2][2] = "Helvetica-Bold" ; // Police NOM $cadre_etab [2][3] = "12" ; // Taille NOM $cadre_etab [2][4] = 0 ; // Couleur rouge $cadre_etab [2][5] = 0 ; // Couleur verte $cadre_etab [2][6] = 0 ; // Couleur bleu $cadre_etab [2][8] = $cadre_etab [1][2] ; // Fin NOM X $cadre_etab [2][9] = $cadre_etab [2][1]-1 ; // Fin NOM Y // Adresse $cadre_etab [3][0] = $cadre_etab [1][0]+0.05 ; // Debut ADRESSE X $cadre_etab [3][1] = $cadre_etab [2][9]-0.5 ; // Debut ADRESSE Y $cadre_etab [3][2] = "Helvetica" ; // Police ADRESSE $cadre_etab [3][3] = "10" ; // Taille ADRESSE $cadre_etab [3][4] = 0 ; // Couleur rouge $cadre_etab [3][5] = 0 ; // Couleur verte $cadre_etab [3][6] = 0 ; // Couleur bleu // CP+Ville $cadre_etab [4][0] = $cadre_etab [1][0]+0.05 ; // Debut CP+VILLE X $cadre_etab [4][1] = $cadre_etab [3][1]-0.5 ; // Debut CP+VILLE Y $cadre_etab [4][2] = "Helvetica" ; // Police CP+VILLE $cadre_etab [4][3] = "10" ; // Taille CP+VILLE $cadre_etab [4][4] = 0 ; // Couleur rouge $cadre_etab [4][5] = 0 ; // Couleur verte $cadre_etab [4][6] = 0 ; // Couleur bleu // Telephone $cadre_etab [5][0] = $cadre_etab [1][0]+0.05 ; // Debut TELEPHONE X $cadre_etab [5][1] = $cadre_etab [4][1]-1 ; // Debut TELEPHONE Y $cadre_etab [5][2] = "Helvetica-Bold" ; // Police TELEPHONE $cadre_etab [5][3] = "10" ; // Taille TELEPHONE $cadre_etab [5][4] = 0 ; // Couleur rouge $cadre_etab [5][5] = 0 ; // Couleur verte $cadre_etab [5][6] = 0 ; // Couleur bleu // Fax $cadre_etab [6][0] = $cadre_etab [1][0]+0.05 ; // Debut FAX X $cadre_etab [6][1] = $cadre_etab [5][1]-0.5 ; // Debut FAX Y $cadre_etab [6][2] = "Helvetica-Bold" ; // Police FAX $cadre_etab [6][3] = "10" ; // Taille FAX $cadre_etab [6][4] = 0 ; // Couleur rouge $cadre_etab [6][5] = 0 ; // Couleur verte $cadre_etab [6][6] = 0 ; // Couleur bleu // Mel $cadre_etab [7][0] = $cadre_etab [1][0]+0.05 ; // Debut MEL X $cadre_etab [7][1] = $cadre_etab [6][1]-0.5 ; // Debut MEL Y $cadre_etab [7][2] = "Helvetica-Bold" ; // Police MEL $cadre_etab [7][3] = "10" ; // Taille MEL $cadre_etab [7][4] = 0 ; // Couleur rouge $cadre_etab [7][5] = 0 ; // Couleur verte $cadre_etab [7][6] = 0 ; // Couleur bleu // ------------------------------------------------------------------------ // CADRE ELEVE // ------------------------------------------------------------------------ // Parametres $cadre_eleve [0][0] = 0 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_eleve [1][0] = $cadre_etab [1][2]+0.1 ; // Debut cadre X $cadre_eleve [1][1] = $cadre_periode [1][3]-0.05 ; // Debut cadre Y $cadre_eleve [1][2] = $largeur-$marge_droite ; // Fin cadre X $cadre_eleve [1][3] = $cadre_eleve [1][1]-2.65 ; // Fin cadre Y $cadre_etab [2][7] = Floor (($cadre_etab [1][2]-$cadre_eleve [1][0]-0.1)*$echelle_x/6) ; // Nombre caracteres $cadre_eleve [1][4] = 1 ; // Largeur trace $cadre_eleve [1][5] = 0 ; // Couleur rouge $cadre_eleve [1][6] = 0 ; // Couleur verte $cadre_eleve [1][7] = 0 ; // Couleur bleu // Photo $cadre_eleve [2][0] = $cadre_eleve [1][2]-2 ; // Debut photo X $cadre_eleve [2][1] = $cadre_eleve [1][1] ; // Debut photo Y $cadre_eleve [2][2] = $cadre_eleve [1][2] ; // Fin photo X $cadre_eleve [2][3] = $cadre_eleve [1][3] ; // Fin photo Y $cadre_eleve [2][4] = $cadre_eleve [2][2]-$cadre_eleve [2][0] ; // Taille photo X $cadre_eleve [2][5] = $cadre_eleve [2][1]-$cadre_eleve [2][3] ; // Taille photo Y // Nom $cadre_eleve [3][0] = $cadre_eleve [1][0]+0.1 ; // Debut NOM X $cadre_eleve [3][1] = $cadre_eleve [1][1]-0.5 ; // Debut NOM Y $cadre_eleve [3][2] = "Helvetica-Bold" ; // Police NOM $cadre_eleve [3][3] = "12" ; // Taille NOM $cadre_eleve [3][4] = 0 ; // Couleur rouge $cadre_eleve [3][5] = 0 ; // Couleur verte $cadre_eleve [3][6] = 0 ; // Couleur bleu $cadre_eleve [3][7] = Floor (($cadre_eleve [2][0]-$cadre_eleve [1][0]-0.2)*$echelle_x/6) ; // Nombre caracteres $y_el = $cadre_eleve [3][1] ; // Date de naissance $cadre_eleve [4][0] = $cadre_eleve [1][0]+1 ; // Debut DATE NAISSANCE X $cadre_eleve [4][1] = $y_el-0.5 ; // Debut DATE NAISSANCE Y If ($date_naissance_eleve == 1) { $y_el = $cadre_eleve [4][1] ; } $cadre_eleve [4][2] = "Helvetica" ; // Police DATE NAISSANCE $cadre_eleve [4][3] = "8" ; // Taille DATE NAISSANCE $cadre_eleve [4][4] = 0 ; // Couleur rouge $cadre_eleve [4][5] = 0 ; // Couleur verte $cadre_eleve [4][6] = 0 ; // Couleur bleu // Classe $cadre_eleve [5][0] = $cadre_eleve [1][0]+1 ; // Debut CLASSE X $cadre_eleve [5][1] = $y_el-0.4 ; // Debut CLASSE Y If ($classe_eleve == 1) { $y_el = $cadre_eleve [5][1] ; } $cadre_eleve [5][2] = "Helvetica" ; // Police CLASSE $cadre_eleve [5][3] = "8" ; // Taille CLASSE $cadre_eleve [5][4] = 0 ; // Couleur rouge $cadre_eleve [5][5] = 0 ; // Couleur verte $cadre_eleve [5][6] = 0 ; // Couleur bleu // Effectif $cadre_eleve [6][0] = $cadre_eleve [1][0]+1 ; // Debut EFFECTIF X $cadre_eleve [6][1] = $y_el-0.4 ; // Debut EFFECTIF Y If ($effectif_eleve == 1) { $y_el = $cadre_eleve [6][1] ; } $cadre_eleve [6][2] = "Helvetica" ; // Police EFFECTIF $cadre_eleve [6][3] = "8" ; // Taille EFFECTIF $cadre_eleve [6][4] = 0 ; // Couleur rouge $cadre_eleve [6][5] = 0 ; // Couleur verte $cadre_eleve [6][6] = 0 ; // Couleur bleu // Redoublant $cadre_eleve [7][0] = $cadre_eleve [1][0]+1 ; // Debut REDOUBLANT X $cadre_eleve [7][1] = $y_el-0.4 ; // Debut REDOUBLANT Y If ($redoublement_eleve == 1) { $y_el = $cadre_eleve [7][1] ; } $cadre_eleve [7][2] = "Helvetica" ; // Police REDOUBLANT $cadre_eleve [7][3] = "8" ; // Taille REDOUBLANT $cadre_eleve [7][4] = 0 ; // Couleur rouge $cadre_eleve [7][5] = 0 ; // Couleur verte $cadre_eleve [7][6] = 0 ; // Couleur bleu // INE $cadre_eleve [8][0] = $cadre_eleve [1][0]+1 ; // Debut INE X $cadre_eleve [8][1] = $y_el-0.4 ; // Debut INE Y If ($ine_eleve == 1) { $y_el = $cadre_eleve [8][1] ; } $cadre_eleve [8][2] = "Helvetica" ; // Police INE $cadre_eleve [8][3] = "8" ; // Taille INE $cadre_eleve [8][4] = 0 ; // Couleur rouge $cadre_eleve [8][5] = 0 ; // Couleur verte $cadre_eleve [8][6] = 0 ; // Couleur bleu // ------------------------------------------------------------------------ // CADRE PARENTS // ------------------------------------------------------------------------ // Parametres $cadre_parents [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_parents [1][0] = $cadre_etab [1][2]+0.1 ; // Debut cadre X $cadre_parents [1][1] = $cadre_eleve [1][3]-0.05 ; // Debut cadre Y $cadre_parents [1][2] = $largeur-$marge_droite ; // Fin cadre X $cadre_parents [1][3] = $cadre_parents [1][1]-3.4 ; // Fin cadre Y $cadre_etab [1][4] = $cadre_parents [1][3]-0.25 ; // Position Y de l'image $cadre_parents [1][4] = 1 ; // Largeur trace $cadre_parents [1][5] = 0 ; // Couleur rouge $cadre_parents [1][6] = 0 ; // Couleur verte $cadre_parents [1][7] = 0 ; // Couleur bleu // Nom $cadre_parents [2][0] = 10 ; // Debut NOM X $cadre_parents [2][1] = $cadre_parents [1][1]-1.2 ; // Debut NOM Y 24.4 $cadre_parents [2][2] = "Helvetica-Bold" ; // Police NOM $cadre_parents [2][3] = "12" ; // Taille NOM $cadre_parents [2][4] = 0 ; // Couleur rouge $cadre_parents [2][5] = 0 ; // Couleur verte $cadre_parents [2][6] = 0 ; // Couleur bleu // Adresse $cadre_parents [3][0] = $cadre_parents [2][0] ; // Debut ADRESSE 1 X $cadre_parents [3][1] = $cadre_parents [2][1]-0.5 ; // Debut ADRESSE 1 Y $cadre_parents [3][2] = $cadre_parents [2][0] ; // Debut ADRESSE 2 X $cadre_parents [3][3] = $cadre_parents [3][1]-0.5 ; // Debut ADRESSE 2 Y $cadre_parents [3][4] = "Helvetica" ; // Police ADRESSES $cadre_parents [3][5] = "12" ; // Taille ADRESSES $cadre_parents [3][6] = 0 ; // Couleur rouge $cadre_parents [3][7] = 0 ; // Couleur verte $cadre_parents [3][8] = 0 ; // Couleur bleu // CP+Ville $cadre_parents [4][0] = $cadre_parents [2][0] ; // Debut CP+VILLE X $cadre_parents [4][1] = $cadre_parents [3][3]-0.5 ; // Debut CP+VILLE Y $cadre_parents [4][2] = "Helvetica" ; // Police CP+VILLE $cadre_parents [4][3] = "12" ; // Taille CP+VILLE $cadre_parents [4][4] = 0 ; // Couleur rouge $cadre_parents [4][5] = 0 ; // Couleur verte $cadre_parents [4][6] = 0 ; // Couleur bleu // ------------------------------------------------------------------------ // CADRE ENTETE MATIERES // ------------------------------------------------------------------------ // Parametres $cadre_mat [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) $cadre_mat [0][1] = 4 ; // Premiere partie : Matieres/Professeurs $cadre_mat [0][2] = 5 ; // Deuxieme partie : Moyenne eleve $cadre_mat [0][3] = 6 ; // Troisieme partie : Moy/Min/Max classe $cadre_mat [0][4] = 7 ; // Quatrieme partie (et derniere) : Appreciations // Cadre $cadre_mat [1][0] = $marge_gauche ; // Debut cadre X $cadre_mat [1][1] = $largeur-$marge_droite ; // Fin cadre X $cadre_mat [1][2] = 0.7 ; // hauteur entete matiere $cadre_mat [1][3] = 1.3 ; // hauteur matiere // Largeur Matieres/Professeurs $cadre_mat [1][4] = 5.5 ; // Largeur Moyenne eleve $cadre_mat [1][5] = 1 ; // Largeur Moy/Min/Max classe $cadre_mat [1][6] = 0.8 ; // Largeur Appreciations/Professeur pincipal $cadre_mat [1][7] = $cadre_mat [1][1]-$cadre_mat [1][0]-$cadre_mat [1][4]-$cadre_mat [1][5]-3*$cadre_mat [1][6] ; $cadre_mat [1][8] = Floor (($cadre_mat [1][7]-0.1)*$echelle_x/6) ; // Nombre caracteres // Hauteur notes examens blanc $cadre_mat [1][9] = 0.3 ; // Hauteur en plus // Couleurs $cadre_mat [2][0] = 1 ; // Largeur trace $cadre_mat [2][1] = 0 ; // Couleur rouge $cadre_mat [2][2] = 0 ; // Couleur verte $cadre_mat [2][3] = 0 ; // Couleur bleu // Def texte Matieres/Professeurs // Entete $cadre_mat [3][0] = "Helvetica-Bold" ; // Police Matiere $cadre_mat [3][1] = "8" ; // Taille $cadre_mat [3][2] = "Helvetica-Oblique" ; // Police Prof $cadre_mat [3][3] = "8" ; // Taille // Matiere $cadre_mat [3][4] = "Helvetica-Bold" ; // Police Matiere $cadre_mat [3][5] = "7" ; // Taille $cadre_mat [3][6] = "Helvetica-Oblique" ; // Police Prof $cadre_mat [3][7] = "8" ; // Taille // Def texte Moyenne eleve // Entete $cadre_mat [4][0] = "Helvetica" ; // Police $cadre_mat [4][1] = "8" ; // Taille // Matiere $cadre_mat [4][2] = "Helvetica-Bold" ; // Police $cadre_mat [4][3] = "8" ; // Taille // Def texte Moy/Min/Max Classe // Entete $cadre_mat [5][0] = "Helvetica" ; // Police $cadre_mat [5][1] = "8" ; // Taille // Matiere $cadre_mat [5][2] = "Helvetica" ; // Police $cadre_mat [5][3] = "7" ; // Taille // Def texte Appreciations/Professeur pincipal // Entete $cadre_mat [6][0] = "Helvetica-Bold" ; // Police Appreciations $cadre_mat [6][1] = "8" ; // Taille $cadre_mat [6][2] = "Helvetica" ; // Police Prof principal $cadre_mat [6][3] = "8" ; // Taille // Matiere $cadre_mat [6][4] = "Helvetica" ; // Police Appreciations $cadre_mat [6][5] = "8" ; // Taille // Examen blanc $cadre_mat [6][6] = "Helvetica" ; // Police Notes Examen blanc $cadre_mat [6][7] = "8" ; // Taille // ------------------------------------------------------------------------ // CADRE MOYENNE GENERAL // ------------------------------------------------------------------------ // Parametres $cadre_moy_gen [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) If (($cadre_mat [0][2] == 5) And ($cadre_mat [0][3] == 6)) { // Largeur Moyenne periodique/Moyenne coefficientee $cadre_moy_gen [1][4] = $cadre_mat [1][4] ; // Largeur Moyenne eleve $cadre_moy_gen [1][5] = $cadre_mat [1][5] ; // Largeur Moy/Min/Max classe $cadre_moy_gen [1][6] = $cadre_mat [1][6] ; // Cadre $cadre_moy_gen [1][0] = $marge_gauche ; // Debut cadre X $cadre_moy_gen [1][1] = $marge_gauche+$cadre_moy_gen [1][4]+3*$cadre_moy_gen [1][6]+$cadre_moy_gen [1][5] ; // Fin cadre X $cadre_moy_gen [1][2] = 0.70 ; // Hauteur moyenne non coefficientee $cadre_moy_gen [1][3] = 0.35 ; // Hauteur moyenne coefficientee } Else { // Largeur Moyenne periodique/Moyenne coefficientee $cadre_moy_gen [1][4] = 4.5 ; // Largeur Moyenne eleve $cadre_moy_gen [1][5] = $cadre_mat [1][5] ; // Largeur Moy/Min/Max classe $cadre_moy_gen [1][6] = $cadre_mat [1][6] ; // Cadre $cadre_moy_gen [1][0] = $largeur-$marge_droite-$cadre_moy_gen [1][4]-$cadre_moy_gen [1][5]-3*$cadre_moy_gen [1][6] ; // Debut cadre X $cadre_moy_gen [1][1] = $largeur-$marge_droite ; // Fin cadre X $cadre_moy_gen [1][2] = 0.70 ; // Hauteur moyenne non coefficientee $cadre_moy_gen [1][3] = 0.35 ; // Hauteur moyenne coefficientee } // Couleurs $cadre_moy_gen [2][0] = 1 ; // Largeur trace $cadre_moy_gen [2][1] = 0 ; // Couleur rouge $cadre_moy_gen [2][2] = 0 ; // Couleur verte $cadre_moy_gen [2][3] = 0 ; // Couleur bleu // Def texte Moyenne periodique/Moyenne coefficientee $cadre_moy_gen [3][0] = "Helvetica" ; // Police Moyennes $cadre_moy_gen [3][1] = "8" ; // Taille $cadre_moy_gen [3][2] = "Helvetica" ; // Police Coefficientee $cadre_moy_gen [3][3] = "8" ; // Taille // Def texte Moyenne eleve $cadre_moy_gen [4][0] = "Helvetica-Bold" ; // Police $cadre_moy_gen [4][1] = "7" ; // Taille // Def texte Moy/Min/Max Classe $cadre_moy_gen [5][0] = "Helvetica" ; // Police $cadre_moy_gen [5][1] = "7" ; // Taille // ------------------------------------------------------------------------ // CADRE VIE SCOLAIRE/CPE // ------------------------------------------------------------------------ // Parametres $cadre_cpe [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_cpe [1][0] = $marge_gauche ; // Debut cadre X $cadre_cpe [1][1] = $largeur-$marge_droite ; // Fin cadre X $cadre_cpe [1][2] = 1 ; // Hauteur CPE // Couleurs $cadre_cpe [2][0] = 1 ; // Largeur trace $cadre_cpe [2][1] = 0 ; // Couleur rouge $cadre_cpe [2][2] = 0 ; // Couleur verte $cadre_cpe [2][3] = 0 ; // Couleur bleu $cadre_cpe [2][4] = "Helvetica-Bold" ; // Police Vie Scolaire $cadre_cpe [2][5] = "8" ; // Taille $cadre_cpe [2][6] = "Helvetica" ; // Police Texte vie scolaire $cadre_cpe [2][7] = "8" ; // Taille $cadre_cpe [2][8] = "Helvetica" ; // Police Ligne retards... $cadre_cpe [2][9] = "8" ; // Taille $cadre_cpe [2][10] = "Helvetica-Bold" ; // Police Observation $cadre_cpe [2][11] = "8" ; // Taille $cadre_cpe [2][12] = "Helvetica" ; // Police Texte observation $cadre_cpe [2][13] = "8" ; // Taille // ------------------------------------------------------------------------ // CADRE EQUIPE PEDAGOGIQUE // ------------------------------------------------------------------------ // Parametres $cadre_equipe_peda [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_equipe_peda [1][0] = $marge_gauche ; // Debut cadre X $cadre_equipe_peda [1][1] = $largeur-$marge_droite ; // Fin cadre X $cadre_equipe_peda [1][2] = 2.5 ; // Hauteur equipe peda // Couleurs $cadre_equipe_peda [2][0] = 1 ; // Largeur trace $cadre_equipe_peda [2][1] = 0 ; // Couleur rouge $cadre_equipe_peda [2][2] = 0 ; // Couleur verte $cadre_equipe_peda [2][3] = 0 ; // Couleur bleu $cadre_equipe_peda [2][4] = "Helvetica-Bold" ; // Police Appreciation equipe peda $cadre_equipe_peda [2][5] = "8" ; // Taille $cadre_equipe_peda [2][6] = "Helvetica" ; // Police signature $cadre_equipe_peda [2][7] = "8" ; // Taille // ------------------------------------------------------------------------ // BAS DE PAGE // ------------------------------------------------------------------------ // Bas de cadre $cadre_bas_page [1][0] = $marge_gauche ; // Debut bas X $cadre_bas_page [1][1] = $largeur-$marge_droite ; // Fin bas X $cadre_bas_page [1][2] = 0.2 ; // Hauteur bas de page // Couleurs $cadre_bas_page [2][0] = 1 ; // Largeur trace $cadre_bas_page [2][1] = 0 ; // Couleur rouge $cadre_bas_page [2][2] = 0 ; // Couleur verte $cadre_bas_page [2][3] = 0 ; // Couleur bleu $cadre_bas_page [2][4] = "Helvetica" ; // Police Texte gauche $cadre_bas_page [2][5] = "6" ; // Taille $cadre_bas_page [2][6] = "Helvetica" ; // Police Copyright droite $cadre_bas_page [2][7] = "6" ; // Taille $cadre_bas_page [2][8] = "Helvetica" ; // Police numero page $cadre_bas_page [2][9] = "6" ; // Taille /** * Renvoi l'ecart entre le texte contenant $nombre caracteres et le debut du texte sur un total de $total caracteres avec pour chacun des caracteres une taille de $taille * @param double $nombre * @param double $total * @param double $taille */ Function position ($nombre, $total, $taille) { $g = ($total - $nombre)/2 ; $c = $g * $taille ; Return $c ; } // ------------------------------------------------------------------------ // Fonction de trace des renseignements periode // ------------------------------------------------------------------------ Function entete_periode ($numero, $periode, $classe) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_periode, $id_sql, $millesime ; // Trace cadre periode If ($cadre_periode [0][0]) { $param ["width"] = $cadre_periode [1][4] ; $param ["red"] = $cadre_periode [1][5] ; $param ["green"] = $cadre_periode [1][6] ; $param ["blue"] = $cadre_periode [1][7] ; $pdf->Draw_Rectangle ($cadre_periode [1][3]*$echelle_y, $cadre_periode [1][2]*$echelle_x, $cadre_periode [1][1]*$echelle_y, $cadre_periode [1][0]*$echelle_x, $page [$numero], $param) ; } // Periode $param ["font"] = $cadre_periode [2][2] ; $param ["height"] = $cadre_periode [2][3] ; $param ["red"] = $cadre_periode [2][4] ; $param ["green"] = $cadre_periode [2][5] ; $param ["blue"] = $cadre_periode [2][6] ; $nom_p = nom_periode ($classe) ; $m = $millesime ; If ($periode == 1) { $nom_periode = "er" ; } Else { $nom_periode = "e" ; } $texte1 = "Bulletin de notes du ".$periode ; $texte2 = " ".$nom_p." de l'année scolaire ".$m."-".($m+1) ; $texte3 = $texte1.$nom_periode.$texte2 ; $pdf->Draw_Text ($cadre_periode [2][0]*$echelle_x+position (StrLen ($texte3), $cadre_periode [2][7], 6), $cadre_periode [2][1]*$echelle_y, $texte1, $page [$numero], $param) ; $pdf->Draw_Text ($cadre_periode [2][0]*$echelle_x+position (StrLen ($texte3), $cadre_periode [2][7], 6)+$pdf->StrLen ($texte1)+9, ($cadre_periode [2][1]+0.1)*$echelle_y, $nom_periode, $page [$numero], $param) ; $pdf->Draw_Text ($cadre_periode [2][0]*$echelle_x+position (StrLen ($texte3), $cadre_periode [2][7], 6)+$pdf->StrLen ($texte1)+$pdf->StrLen ($nom_periode)+9, $cadre_periode [2][1]*$echelle_y, $texte2, $page [$numero], $param) ; } // ------------------------------------------------------------------------ // Fonction de trace des renseignements eleve // ------------------------------------------------------------------------ Function entete_eleve ($numero, $eleve, $effectif) { Global $page, $pdf, $echelle_x, $echelle_y, $repertoire_racine, $cadre_eleve, $numero_rne, $separateur ; Global $date_naissance_eleve, $classe_eleve, $effectif_eleve, $redoublement_eleve, $ine_eleve ; // Trace cadre eleve If ($cadre_eleve [0][0]) { $param ["width"] = $cadre_eleve [1][4] ; $param ["red"] = $cadre_eleve [1][5] ; $param ["green"] = $cadre_eleve [1][6] ; $param ["blue"] = $cadre_eleve [1][7] ; $pdf->Draw_Rectangle ($cadre_eleve [1][3]*$echelle_y, $cadre_eleve [1][2]*$echelle_x, $cadre_eleve [1][1]*$echelle_y, $cadre_eleve [1][0]*$echelle_x, $page [$numero], $param) ; } // Mise en place de la photo If ($eleve ["photo"]) { //If (StrToUpper (SubStr (PHP_OS, 0, 3) == "WIN")) { $fiche = $repertoire_racine."\\images\\eleves\\".$numero_rne."\\".$eleve ["photo"] ; } $fiche = $repertoire_racine.$separateur."images".$separateur."eleves".$separateur.$numero_rne.$eleve ["photo"] ; If (File_Exists ($fiche)) { $fichier = FOpen ($fiche, "r") ; $fiche_data = FRead ($fichier, FileSize ($fiche)) ; FClose ($fichier) ; $image = $pdf->jfif_embed ($fiche_data) ; $taille = $pdf->Get_Image_Size ($image) ; //$ech_x = $cadre_eleve [2][4]*$echelle_x/$taille ["width"] ; If ($taille ["height"] > 0) { $echelle = ($cadre_eleve [2][5]*$echelle_y-2)/$taille ["height"] ; //If ($ech_x < $ech_y) { $echelle = $ech_x ; } //Else { $echelle = $ech_y ; } $pdf->image_place ($image, $cadre_eleve [2][3]*$echelle_y+1, $cadre_eleve [2][0]*$echelle_x, $page [$numero], $echelle, 0) ; } } } // Nom eleve $param ["font"] = $cadre_eleve [3][2] ; $param ["height"] = $cadre_eleve [3][3] ; $param ["red"] = $cadre_eleve [3][4] ; $param ["green"] = $cadre_eleve [3][5] ; $param ["blue"] = $cadre_eleve [3][6] ; If (StrPos ($eleve ["prenoms"], " ")) { $prenom = SubStr ($eleve ["prenoms"], 0, StrPos ($eleve ["prenoms"], " ")) ; } Else { $prenom = $eleve ["prenoms"] ; } $nom = filtrage_accents_maj (filtrage_utf8 ($eleve ["nom"])) ; $prenom = filtrage_accents_maj (filtrage_utf8 ($prenom)) ; $texte = StrToUpper ($nom." ".$prenom) ; $pdf->Draw_Text ($cadre_eleve [3][0]*$echelle_x+position (StrLen ($texte), $cadre_eleve [3][7], 6), $cadre_eleve [3][1]*$echelle_y, $texte, $page [$numero], $param) ; // Date de naissance If ($date_naissance_eleve == 1) { $param ["font"] = $cadre_eleve [4][2] ; $param ["height"] = $cadre_eleve [4][3] ; $param ["red"] = $cadre_eleve [4][4] ; $param ["green"] = $cadre_eleve [4][5] ; $param ["blue"] = $cadre_eleve [4][6] ; $texte = "Date de naissance : ".decode_date_3 ($eleve ["date_naissance"]) ; $pdf->Draw_Text ($cadre_eleve [4][0]*$echelle_x, $cadre_eleve [4][1]*$echelle_y, $texte, $page [$numero], $param) ; } // Classe If ($classe_eleve == 1) { $param ["font"] = $cadre_eleve [5][2] ; $param ["height"] = $cadre_eleve [5][3] ; $param ["red"] = $cadre_eleve [5][4] ; $param ["green"] = $cadre_eleve [5][5] ; $param ["blue"] = $cadre_eleve [5][6] ; $nom_classe = filtrage_utf8 (nom_classe_long_parid ($eleve ["classe"])) ; If (!$nom_classe) { $nom_classe = nom_classe_bref_parid ($eleve ["classe"]) ; } $texte = "Classe : ".$nom_classe ; $pdf->Draw_Text ($cadre_eleve [5][0]*$echelle_x, $cadre_eleve [5][1]*$echelle_y, $texte, $page [$numero], $param) ; } // Effectif If ($effectif_eleve == 1) { $param ["font"] = $cadre_eleve [6][2] ; $param ["height"] = $cadre_eleve [6][3] ; $param ["red"] = $cadre_eleve [6][4] ; $param ["green"] = $cadre_eleve [6][5] ; $param ["blue"] = $cadre_eleve [6][6] ; $texte = "Effectif de la classe : ".$effectif." élève" ; If ($effectif > 1) { $texte .= "s" ; } $pdf->Draw_Text ($cadre_eleve [6][0]*$echelle_x, $cadre_eleve [6][1]*$echelle_y, $texte, $page [$numero], $param) ; } // Redoublant If ($redoublement_eleve == 1) { $param ["font"] = $cadre_eleve [7][2] ; $param ["height"] = $cadre_eleve [7][3] ; $param ["red"] = $cadre_eleve [7][4] ; $param ["green"] = $cadre_eleve [7][5] ; $param ["blue"] = $cadre_eleve [7][6] ; $texte = "Redoublant" ; If ($eleve ["sexe"] == "F") { $texte .= "e" ; } $texte .= " : " ; If ($eleve ["redoublant"] == "O") { $texte .= "Oui" ; } Else { $texte .= "Non" ; } $pdf->Draw_Text ($cadre_eleve [7][0]*$echelle_x, $cadre_eleve [7][1]*$echelle_y, $texte, $page [$numero], $param) ; } // INE If ($ine_eleve == 1) { $param ["font"] = $cadre_eleve [8][2] ; $param ["height"] = $cadre_eleve [8][3] ; $param ["red"] = $cadre_eleve [8][4] ; $param ["green"] = $cadre_eleve [8][5] ; $param ["blue"] = $cadre_eleve [8][6] ; $texte = "INE : ".$eleve ["repere2"] ; $pdf->Draw_Text ($cadre_eleve [8][0]*$echelle_x, $cadre_eleve [8][1]*$echelle_y, $texte, $page [$numero], $param) ; } } // ------------------------------------------------------------------------ // Fonction de trace des renseignements parents : adresse... // ------------------------------------------------------------------------ Function entete_parents ($numero,$parents,$numero_parent) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_parents ; Switch ($numero_parent) { Case 1 : $np = "" ; Break ; Case 2 : $np = "_p2" ; Break ; Default : $np = "" ; Break ; } // Trace cadre parents If ($cadre_parents [0][0]) { $param ["width"] = $cadre_parents [1][4] ; $param ["red"] = $cadre_parents [1][5] ; $param ["green"] = $cadre_parents [1][6] ; $param ["blue"] = $cadre_parents [1][7] ; $pdf->Draw_Rectangle ($cadre_parents [1][3]*$echelle_y, $cadre_parents [1][2]*$echelle_x, $cadre_parents [1][1]*$echelle_y, $cadre_parents [1][0]*$echelle_x, $page [$numero], $param) ; } // Civilite+Nom+Prenom parents $param ["font"] = $cadre_parents [2][2] ; $param ["height"] = $cadre_parents [2][3] ; $param ["red"] = $cadre_parents [2][4] ; $param ["green"] = $cadre_parents [2][5] ; $param ["blue"] = $cadre_parents [2][6] ; $nom = filtrage_accents_maj (filtrage_utf8 ($parents ["nom_parents".$np])) ; $prenom = filtrage_accents_maj (filtrage_utf8 ($parents ["prenom_parents".$np])) ; $texte = filtrage_utf8 ($parents ["civilite_parents".$np])." ".StrToUpper ($nom." ".$prenom) ; $pdf->Draw_Text ($cadre_parents [2][0]*$echelle_x, $cadre_parents [2][1]*$echelle_y, $texte, $page [$numero], $param) ; // Adresse (1+2) $param ["font"] = $cadre_parents [3][4] ; $param ["height"] = $cadre_parents [3][5] ; $param ["red"] = $cadre_parents [3][6] ; $param ["green"] = $cadre_parents [3][7] ; $param ["blue"] = $cadre_parents [3][8] ; $pdf->Draw_Text ($cadre_parents [3][0]*$echelle_x, $cadre_parents [3][1]*$echelle_y, filtrage_utf8 ($parents ["adresse1".$np]), $page [$numero], $param) ; $pdf->Draw_Text ($cadre_parents [3][2]*$echelle_x, $cadre_parents [3][3]*$echelle_y, filtrage_utf8 ($parents ["adresse2".$np]), $page [$numero], $param) ; // CP + Ville $param ["font"] = $cadre_parents [4][2] ; $param ["height"] = $cadre_parents [4][3] ; $param ["red"] = $cadre_parents [4][4] ; $param ["green"] = $cadre_parents [4][5] ; $param ["blue"] = $cadre_parents [4][6] ; $texte = filtrage_utf8 ($parents ["cp".$np]." ".$parents ["ville".$np]) ; $pdf->Draw_Text ($cadre_parents [4][0]*$echelle_x, $cadre_parents [4][1]*$echelle_y, $texte, $page [$numero], $param) ; } // ------------------------------------------------------------------------ // Fonction de trace des renseignements etablissement : adresse... // ------------------------------------------------------------------------ Function entete_etablissement ($numero, $etab, $logo, $mode) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_etab, $repertoire_logos_bulletins_racine, $base_choisie ; If (StrToUpper (SubStr (PHP_OS, 0, 3) == "WIN")) { $fiche = $repertoire_logos_bulletins_racine."\\".$base_choisie."\\".$logo ; } Else { $fiche = $repertoire_logos_bulletins_racine."/".$base_choisie."/".$logo ; } If (File_Exists ($fiche) And (!Is_Dir ($file))) { // Lecture du logo $fi = @FOpen ($fiche, "r") ; If ($fi) { $fichier_image = @FRead ($fi, FileSize ($fiche)) ; @FClose ($fi) ; // Preparation de l'affichage $image = $pdf->JFIF_Embed ($fichier_image) ; // Taille de l'image $taille_image = $pdf->Get_Image_Size ($image) ; If (($taille_image ["width"] != 0) And ($taille_image ["height"] != 0)) { // Remise a l'echelle $tx = ($cadre_etab [1][2]-$cadre_etab [1][0])*$echelle_x ; //If ($mode == 1) { $ty = ($cadre_etab [1][1]-$cadre_etab [1][4])*$echelle_y ; } Else { $ty = ($cadre_etab [1][1]-$cadre_etab [7][1])*$echelle_y ; } $ty = ($cadre_etab [1][1]-$cadre_etab [1][4])*$echelle_y ; $px = $tx/$taille_image ["width"] ; $py = $ty/$taille_image ["height"] ; If ($px < $py) { $echelle_image = $px ; } Else { $echelle_image = $py ; } //$pos_x = ($tx-$taille_image ["width"]*$echelle_image)/2 ; If ($pos_x < 0) { $pos_x = 0 ; } //$pos_y = ($ty-$taille_image ["height"]*$echelle_image)/2 ; If ($pos_y < 0) { $pos_y = 0 ; } $pdf->Image_Place ($image, $cadre_etab [1][1]*$echelle_y-$taille_image ["height"]*$echelle_image, $cadre_etab [1][0]*$echelle_x, $page [$numero], $echelle_image) ; } } } If ($etab ["entete_bulletins"] == 0) { // Trace cadre etablissement If ($cadre_etab [0][0] > 0) { $param ["width"] = $cadre_etab [1][4] ; $param ["red"] = $cadre_etab [1][5] ; $param ["green"] = $cadre_etab [1][6] ; $param ["blue"] = $cadre_etab [1][7] ; $pdf->Draw_Rectangle ($cadre_etab [1][3]*$echelle_y, $cadre_etab [1][2]*$echelle_x, $cadre_etab [1][1]*$echelle_y, $cadre_etab [1][0]*$echelle_x, $page [$numero], $param) ; } // Denomination $param ["font"] = $cadre_etab [2][2] ; $param ["height"] = $cadre_etab [2][3] ; $param ["red"] = $cadre_etab [2][4] ; $param ["green"] = $cadre_etab [2][5] ; $param ["blue"] = $cadre_etab [2][6] ; $pdf->Draw_Paragraph ($cadre_etab [2][1]*$echelle_y, $cadre_etab [2][0]*$echelle_x, $cadre_etab [2][9]*$echelle_y, $cadre_etab [2][8]*$echelle_x, filtrage_utf8 ($etab ["nom"]), $page [$numero], $param) ; // Adresse $param ["font"] = $cadre_etab [3][2] ; $param ["height"] = $cadre_etab [3][3] ; $param ["red"] = $cadre_etab [3][4] ; $param ["green"] = $cadre_etab [3][5] ; $param ["blue"] = $cadre_etab [3][6] ; $pdf->Draw_Text ($cadre_etab [3][0]*$echelle_x, $cadre_etab [3][1]*$echelle_y, filtrage_utf8 ($etab ["adresse"]), $page [$numero], $param) ; // CP+Ville $param ["font"] = $cadre_etab [4][2] ; $param ["height"] = $cadre_etab [4][3] ; $param ["red"] = $cadre_etab [4][4] ; $param ["green"] = $cadre_etab [4][5] ; $param ["blue"] = $cadre_etab [4][6] ; $pdf->Draw_Text ($cadre_etab [4][0]*$echelle_x, $cadre_etab [4][1]*$echelle_y, filtrage_utf8 ($etab ["cp"]." ".$etab ["ville"]), $page [$numero], $param) ; // Telephone If ($etab ["telephone"]) { $param ["font"] = $cadre_etab [5][2] ; $param ["height"] = $cadre_etab [5][3] ; $param ["red"] = $cadre_etab [5][4] ; $param ["green"] = $cadre_etab [5][5] ; $param ["blue"] = $cadre_etab [5][6] ; $pdf->Draw_Text ($cadre_etab [5][0]*$echelle_x, $cadre_etab [5][1]*$echelle_y, "Tél. : ".filtrage_utf8 ($etab ["telephone"]), $page [$numero], $param) ; } // Fax If ($etab ["fax"]) { $param ["font"] = $cadre_etab [6][2] ; $param ["height"] = $cadre_etab [6][3] ; $param ["red"] = $cadre_etab [6][4] ; $param ["green"] = $cadre_etab [6][5] ; $param ["blue"] = $cadre_etab [6][6] ; $pdf->Draw_Text ($cadre_etab [6][0]*$echelle_x, $cadre_etab [6][1]*$echelle_y, "Fax : ".filtrage_utf8 ($etab ["fax"]), $page [$numero], $param) ; } // Mel If ($etab ["mel"]) { $param ["font"] = $cadre_etab [7][2] ; $param ["height"] = $cadre_etab [7][3] ; $param ["red"] = $cadre_etab [7][4] ; $param ["green"] = $cadre_etab [7][5] ; $param ["blue"] = $cadre_etab [7][6] ; $pdf->Draw_Text ($cadre_etab [7][0]*$echelle_x, $cadre_etab [7][1]*$echelle_y, "Mél. : ".filtrage_utf8 ($etab ["mel"]), $page [$numero], $param) ; } } } // ------------------------------------------------------------------------ // Fonction de trace de l'entete des matieres // ------------------------------------------------------------------------ Function entete_matieres ($numero, $prof_princ, $mode, $mode2) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_etab, $cadre_mat, $cadre_parents, $cadre_eleve, $trait_debut_gauche, $trait_fin_gauche ; Global $impression_smat, $nom_sous_matieres, $nbr_col, $mode_imp, $fusion_imp, $titres_appreciations, $reduction_colonnes ; $param ["width"] = $cadre_mat [2][0] ; $param ["red"] = $cadre_mat [2][1] ; $param ["green"] = $cadre_mat [2][2] ; $param ["blue"] = $cadre_mat [2][3] ; If ($mode2 == 1) { Switch ($mode) { Case 0 : $yy = $cadre_parents [1][3]-0.1 ; Break ; Case 1 : $yy = $cadre_eleve [1][3]-0.1 ; Break ; Default : $yy = $cadre_parents [1][3]-0.1 ; Break ; } } Else { Switch ($mode) { Case 0 : $yy = $cadre_etab [7][1]-0.3 ; Break ; Case 1 : $yy = $cadre_eleve [1][3]-0.1 ; Break ; Default : $yy = $cadre_etab [7][1]-0.3 ; Break ; } } // Trace cadre If ($cadre_mat [0][0] > 0) { $pdf->Draw_Rectangle (($yy-$cadre_mat [1][2])*$echelle_y, $cadre_mat [1][1]*$echelle_x, $yy*$echelle_y, $cadre_mat [1][0]*$echelle_x, $page [$numero], $param) ; } // Lignes verticales $y [0] = $yy*$echelle_y ; $y [1] = ($yy-$cadre_mat [1][2])*$echelle_y ; For ($i = 1 ; $i < 5 ; $i++) { Switch ($cadre_mat [0][$i]) { Case 4 : // Matieres/Prof $param ["font"] = $cadre_mat [3][0] ; $param ["height"] = $cadre_mat [3][1] ; $texte = "Matières" ; $pdf->Draw_Text (($cadre_mat [1][0]+0.1)*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $param ["font"] = $cadre_mat [3][2] ; $param ["height"] = $cadre_mat [3][3] ; $texte = "Enseignants " ; $pdf->Draw_Text (($cadre_mat [1][0]+0.1)*$echelle_x, $y [0]-($cadre_mat [1][2]-0.1)*$echelle_y, $texte, $page [$numero], $param) ; // Pliage If ($mode2 == 1) { $x [0] = $trait_debut_gauche*$echelle_x ; $x [1] = $trait_fin_gauche*$echelle_x ; $param ["width"] = 0.5 ; $yp [0] = $yp [1] = $y [1] ; $pdf->Draw_Line ($x, $yp, $page [$numero], $param) ; $param ["width"] = $cadre_mat [2][0] ; } $xx = ($cadre_mat [1][0]+$cadre_mat [1][4])*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; Case 5 : // Moyenne eleve $param ["font"] = $cadre_mat [4][0] ; $param ["height"] = $cadre_mat [4][1] ; If ($impression_smat == 1) { $texte = "Moyenne" ; } Else { $texte = "Moy." ; } //$lgt = $pdf->StrLen ($texte) ; $cx = $x [0]+($cadre_mat [1][5]*$echelle_x-$pdf->StrLen ($texte, $param))/2 ; //$pdf->Draw_Text ($x [0]+0.1*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $pdf->Draw_Text ($cx, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $texte = "élève" ; $cx = $x [0]+($cadre_mat [1][5]*$echelle_x-$pdf->StrLen ($texte, $param))/2 ; //$pdf->Draw_Text ($x [0]+0.1*$echelle_x, $y [0]-($cadre_mat [1][2]-0.1)*$echelle_y, $texte, $page [$numero], $param) ; $pdf->Draw_Text ($cx, $y [0]-($cadre_mat [1][2]-0.1)*$echelle_y, $texte, $page [$numero], $param) ; $xx += $cadre_mat [1][5]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; Case 6 : // Moy/Min/Max Classe // MOYENNE CLASSE $param ["font"] = $cadre_mat [5][0] ; $param ["height"] = $cadre_mat [5][1] ; $texte = "Moyenne Classe" ; $cx = $x [0]+(3*$cadre_mat [1][6]*$echelle_x-$pdf->StrLen ($texte, $param))/2 ; //$pdf->Draw_Text ($x [0]+0.1*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $pdf->Draw_Text ($cx, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $yh [0] = ($yy-$cadre_mat [1][2]/2)*$echelle_y ; $yh [1] = $y [1] ; // MIN $texte = "Min" ; $cx = $x [0]+($cadre_mat [1][6]*$echelle_x-$pdf->StrLen ($texte, $param))/2 ; //$pdf->Draw_Text ($x [0]+0.1*$echelle_x, $yh [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $pdf->Draw_Text ($cx, $yh [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $xd = $xx ; $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; // MOY $texte = "Moy" ; $cx = $x [0]+($cadre_mat [1][6]*$echelle_x-$pdf->StrLen ($texte, $param))/2 ; //$pdf->Draw_Text ($x [0]+0.1*$echelle_x, $yh [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $pdf->Draw_Text ($cx, $yh [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; // MAX $texte = "Max" ; $cx = $x [0]+($cadre_mat [1][6]*$echelle_x-$pdf->StrLen ($texte, $param))/2 ; //$pdf->Draw_Text ($x [0]+0.1*$echelle_x, $yh [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $pdf->Draw_Text ($cx, $yh [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // Dernier trait horizontal $xh [0] = $xd ; $xh [1] = $xx ; $yh [1] = $yh [0] ; $pdf->Draw_Line ($xh, $yh, $page [$numero], $param) ; Break ; Case 7 : // Appreciations // Si prof principal alors un certain format If ($prof_princ ["id_utilisateur"] > 0) { // Professeur principal si existe Switch ($prof_princ ["civilite"]) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $param ["font"] = $cadre_mat [6][2] ; $param ["height"] = $cadre_mat [6][3] ; $texte = "Enseignant principal : ".$civ." ".$prof_princ ["nom"] ; } Else { $texte = "Enseignant principal : " ; //$pdf->Draw_Text ($x [0]+0.1*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; } If (($nbr_col > 1) And ($mode_imp == 0) And ($reduction_colonnes == 0)) { $pdf->Draw_Text (($cadre_mat [1][0]+0.05)*$echelle_x, $y [0]+0.05*$echelle_y, $texte, $page [$numero], $param) ; } Else { $pdf->Draw_Text ($x [0]+0.1*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; } $param ["font"] = $cadre_mat [6][0] ; $param ["height"] = $cadre_mat [6][1] ; $texte = "APPRÉCIATIONS DES ENSEIGNANTS" ; If (($nbr_col > 1) And ($mode_imp == 0) And ($reduction_colonnes == 0)) { $pdf->Draw_Text ($x [0]+position (StrLen ($texte), $cadre_mat [1][8], $cadre_mat [6][1]), $y [0]-$cadre_mat [6][1], $texte, $page [$numero], $param) ; $nbr_appr = $titres_appreciations [0] ; If ($nbr_appr == 0) { $nbr_appr = 1 ; } $delta = $cadre_mat [1][7]/$nbr_appr ; $nombre_car = Floor (($delta-0.1)*$echelle_x/6) ; For ($j = 1 ; $j <= $nbr_appr ; $j++) { $ta = filtre_appreciation ($titres_appreciations [$j]) ; $pdf->Draw_Text ($x [0]+$delta*($j-1)*$echelle_x+position (StrLen ($ta), $nombre_car, $cadre_mat [6][1]), $y [0]-($cadre_mat [1][2]-0.05)*$echelle_y, $ta, $page [$numero], $param) ; } } Else { $pdf->Draw_Text ($x [0]+position (StrLen ($texte), $cadre_mat [1][8], $cadre_mat [6][1]), $y [0]-($cadre_mat [1][2]-0.05)*$echelle_y, $texte, $page [$numero], $param) ; } $xx += $cadre_mat [1][7]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; } } // Retour position Return ($y [1]/$echelle_y) ; } // ------------------------------------------------------------------------ // Fonction de trace d'une discipline // ------------------------------------------------------------------------ Function matiere ($numero, $yy, $matiere, $prof_id, $prof_civ, $prof_nom, $prof_prenom, $prof_coeff, $x_a, $y_a, $min_cl, $moy_cl, $max_cl, $moy, $ok_coeff, $coeff, $ok_examen, $texte_examen, $num_disc, $num_el, $activation, $id_alias, $tp_moy) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_mat, $bulletin_cpe ; Global $impression_smat, $nom_sous_matieres, $note_sous_matieres ; Global $stat_eleve, $titres_appreciations, $mode_imp, $reduction_colonnes, $ok_alias ; // Verifie les apprecitions $ok_appr = 0 ; If ($x_a >= 0) { $nbr_appr = $stat_eleve [$x_a][$y_a][2] ; For ($i = 1 ; $i <= $nbr_appr ; $i++) { If (($stat_eleve [$x_a][$y_a][2+$i] != "") And (StrLen ($stat_eleve [$x_a][$y_a][2+$i]) > 1)) { $ok_appr++ ; } } } Else { $nbr_appr = 1 ; If (($stat_eleve [$x_a][$y_a][3] != "") And (StrLen ($stat_eleve [$x_a][$y_a][3]) > 1)) { $ok_appr++ ; } } //If (((($appreciation == "") And ($moy == "")) Or ((StrLen ($appreciation) < 2) And ($moy == ""))) And ($activation == 2)) //If (((($ok_appr < $nbr_appr) And ($moy == "")) Or (($ok_appr < $nbr_appr) And ($moy == ""))) And ($activation == 2)) If (($activation == 4) And ($moy == "") And ($ok_appr < $nbr_appr)) { Return $yy ; } Else { $param ["width"] = $cadre_mat [2][0] ; $param ["red"] = $cadre_mat [2][1] ; $param ["green"] = $cadre_mat [2][2] ; $param ["blue"] = $cadre_mat [2][3] ; // Trace cadre $pdf->Draw_Rectangle (($yy-$cadre_mat [1][3]-$ok_examen*$cadre_mat [1][9])*$echelle_y, $cadre_mat [1][1]*$echelle_x, $yy*$echelle_y, $cadre_mat [1][0]*$echelle_x, $page [$numero], $param) ; // Lignes verticales $y [0] = $yy*$echelle_y ; $y [1] = ($yy-$cadre_mat [1][3]-$ok_examen*$cadre_mat [1][9])*$echelle_y ; $y_sortie = $y [1]/$echelle_y ; //$taille = Floor (($cadre_mat [1][6]-0.1)*$echelle_x/6) ; $taille = 5.5 ; $pos_y = $y [0]-($cadre_mat [1][3]/2+0.125+$ok_examen*$cadre_mat [1][9]/2)*$echelle_y ; For ($i = 1 ; $i < 5 ; $i++) { Switch ($cadre_mat [0][$i]) { Case 4 : // Matiere $param ["font"] = $cadre_mat [3][4] ; $param ["height"] = $cadre_mat [3][5] ; $pdf->Draw_Paragraph ($y [0], ($cadre_mat [1][0]+0.05)*$echelle_x, $y [0]-0.8*$echelle_y, ($cadre_mat [1][0]+$cadre_mat [1][4]-0.05)*$echelle_x, $matiere, $page [$numero], $param) ; //$pdf->Draw_Text (($cadre_mat [1][0]+0.1)*$echelle_x, // $y [0]-0.27*$echelle_y, $matiere, $page [$numero], $param) ; // Nom prof $param ["font"] = $cadre_mat [3][6] ; $param ["height"] = $cadre_mat [3][7] ; //If ($id_alias == 0) // { If ($prof_id > 0) { Switch ($prof_civ) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $nom = $civ." ".StrToUpper (SubStr ($prof_nom, 0, 1)).StrToLower (SubStr ($prof_nom, 1, StrLen ($prof_nom)-1)) ; If ($id_alias != 0) { $nom = "Équipe de ".$nom ; } $pdf->Draw_Text (($cadre_mat [1][0]+0.1)*$echelle_x, $y [0]-($cadre_mat [1][3]-0.1+$ok_examen*$cadre_mat [1][9])*$echelle_y, $nom, $page [$numero], $param) ; } /* } Else { If ($id_alias < 0) { $id_alias = -$id_alias ; } $t = alias_liste_enseignants ($id_alias) ; $nom = "M. " ; $civ_mme = $civ_mlle = $civ_m = 0 ; For ($j = 1 ; $j <= $t [0][0] ; $j++) { Switch ($t [$j][2]) { Case 0 : $civ_mme++ ; Break ; Case 1 : $civ_mlle++ ; Break ; Case 2 : $civ_m++ ; Break ; Default : $civ_m++ ; Break ; } } If ($civ_mme == $t [0][0]) { $nom = "Mme " ; } ElseIf ($civ_mlle == $t [0][0]) { $nom = "Mlle " ; } Else { $nom = "M. " ; } For ($j = 1 ; $j <= $t [0][0] ; $j++) { If ($j > 1) { $nom .= ", " ; } $nom .= $t [$j][3] ; } $pdf->Draw_Paragraph ($y [0]-0.9*$echelle_y, ($cadre_mat [1][0]+0.05)*$echelle_x, $y [0]-2*$echelle_y, ($cadre_mat [1][0]+$cadre_mat [1][4]-0.05)*$echelle_x, $nom, $page [$numero], $param) ; } */ If (($ok_coeff == 1) And (($coeff == 1) Or (($coeff == 0) And ($prof_coeff > 1)))) { $texte = "C".Chr (156)."ff. ".Str_Replace (".", ",", $prof_coeff) ; $pdf->Draw_Text (($cadre_mat [1][0]+$cadre_mat [1][4])*$echelle_x-StrLen ($texte)*4.5, $y [0]-($cadre_mat [1][3]-0.1-$ok_examen*$cadre_mat [1][9])*$echelle_y, $texte, $page [$numero], $param) ; } $xx = ($cadre_mat [1][0]+$cadre_mat [1][4])*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; Case 5 : // Moyenne eleve $param ["font"] = $cadre_mat [4][2] ; $param ["height"] = $cadre_mat [4][3] ; If ($moy != "") { If ($tp_moy == 1) { $moy .= "%" ; } // On prend la partie a gauche de la virgule If (StrPos ($moy, ",")) { $chaine = SubStr ($moy, 0, StrPos ($moy, ",")) ; } Else { $chaine = $moy ; } If (StrPos ($chaine, "%")) { $chaine = SubStr ($chaine, 0, StrPos ($chaine, "%")) ; } If (($impression_smat == 1) And ($nom_sous_matieres [$num_disc][0][0] > 0)) { $cx = $xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][5]-0.2)/4)*$echelle_x ; } Else { If ($impression_smat == 1) { $cx = $xx+($cadre_mat [1][5]*$echelle_x-$pdf->StrLen ($chaine, $param))/2 ; } Else { $cx = $xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][5]-0.2)/4)*$echelle_x ; } //$cx = $xx+($cadre_mat [1][5]*$echelle_x-$pdf->StrLen ($moy, $param))/2 ; } $pdf->Draw_Text ($cx, $pos_y, $moy, $page [$numero], $param) ; // Sous-matiere If ($impression_smat == 1) { If ($nom_sous_matieres [$num_disc][0][0] > 0) { // Separation verticale $yyy [0] = $yy*$echelle_y ; $yyy [1] = ($yy-$cadre_mat [1][3])*$echelle_y ; $xxx [0] = $xxx [1] = $xx+$cadre_mat [7][4]*$echelle_x ; $pdf->Draw_Line ($xxx, $yyy, $page [$numero], $param) ; // Largeur de la cellule $lg_c = ($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x ; If ($nom_sous_matieres [$num_disc][0][0] > 1) { // Separation horizontale $yyy [0] = $yyy [1] = ($yy-$cadre_mat [1][3]/2)*$echelle_y ; $xxx [0] = $xx+$cadre_mat [7][4]*$echelle_x ; $xxx [1] = $xx+$cadre_mat [1][5]*$echelle_x ; $pdf->Draw_Line ($xxx, $yyy, $page [$numero], $param) ; // Nom 1 $param ["font"] = $cadre_mat [7][0] ; $param ["height"] = $cadre_mat [7][1] ; While ($pdf->StrLen ($nom_sous_matieres [$num_disc][1][0], $param) > $lg_c) { $param ["height"] -= 0.25 ; } $coeff1 = $cadre_mat [1][3]/2 ; // Demi-cellule $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($nom_sous_matieres [$num_disc][1][0], $param))/2 ; $delta_y = ($coeff1*$echelle_y-($cadre_mat [7][1]+$cadre_mat [7][3]))/3 ; $cy = $yy*$echelle_y-$delta_y-$cadre_mat [7][1] ; $pdf->Draw_Text ($cx, $cy, $nom_sous_matieres [$num_disc][1][0], $page [$numero], $param) ; // Note $param ["font"] = $cadre_mat [7][2] ; $param ["height"] = $cadre_mat [7][3] ; $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($note_sous_matieres [$num_disc][$num_el][1], $param))/2 ; $ccy = $cy-$delta_y-$cadre_mat [7][1] ; $pdf->Draw_Text ($cx, $ccy, $note_sous_matieres [$num_disc][$num_el][1], $page [$numero], $param) ; // Nom 2 $param ["font"] = $cadre_mat [7][0] ; $param ["height"] = $cadre_mat [7][1] ; While ($pdf->StrLen ($nom_sous_matieres [$num_disc][2][0], $param) > $lg_c) { $param ["height"] -= 0.25 ; } $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($nom_sous_matieres [$num_disc][2][0], $param))/2 ; $cy = $yy*$echelle_y-$delta_y-$cadre_mat [7][1]-$coeff1*$echelle_y ; $pdf->Draw_Text ($cx, $cy, $nom_sous_matieres [$num_disc][2][0], $page [$numero], $param) ; // Note $param ["font"] = $cadre_mat [7][2] ; $param ["height"] = $cadre_mat [7][3] ; $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($note_sous_matieres [$num_disc][$num_el][2], $param))/2 ; $ccy = $cy-$delta_y-$cadre_mat [7][1] ; $pdf->Draw_Text ($cx, $ccy, $note_sous_matieres [$num_disc][$num_el][2], $page [$numero], $param) ; } Else { $coeff1 = $cadre_mat [1][3] ; // Cellule complete // Nom $param ["font"] = $cadre_mat [7][0] ; $param ["height"] = $cadre_mat [7][1] ; While ($pdf->StrLen ($nom_sous_matieres [$num_disc][1][0], $param) > $lg_c) { $param ["height"] -= 0.25 ; } $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($nom_sous_matieres [$num_disc][1][0], $param))/2 ; $delta_y = ($coeff1*$echelle_y-($cadre_mat [7][1]+$cadre_mat [7][3]))/3 ; $cy = $yyy [0]-$delta_y-$cadre_mat [7][1] ; $pdf->Draw_Text ($cx, $cy, $nom_sous_matieres [$num_disc][1][0], $page [$numero], $param) ; // Note $param ["font"] = $cadre_mat [7][2] ; $param ["height"] = $cadre_mat [7][3] ; $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($note_sous_matieres [$num_disc][$num_el][1], $param))/2 ; $cy = $cy-$delta_y-$cadre_mat [7][1] ; $pdf->Draw_Text ($cx, $cy, $note_sous_matieres [$num_disc][$num_el][1], $page [$numero], $param) ; } } } } $xx += $cadre_mat [1][5]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; Case 6 : // Moy/Min/Max Classe $param ["font"] = $cadre_mat [5][2] ; $param ["height"] = $cadre_mat [5][3] ; // MIN If ($min_cl != "") { If ($tp_moy == 1) { $min_cl .= "%" ; } // On prend la partie a gauche de la virgule If (StrPos ($min_cl, ",")) { $chaine = SubStr ($min_cl, 0, StrPos ($min_cl, ",")) ; } Else { $chaine = $min_cl ; } If (StrPos ($chaine, "%")) { $chaine = SubStr ($chaine, 0, StrPos ($chaine, "%")) ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y, $min_cl, $page [$numero], $param) ; } $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // MOY If ($moy_cl != "") { If ($tp_moy == 1) { $moy_cl .= "%" ; } // On prend la partie a gauche de la virgule If (StrPos ($moy_cl, ",")) { $chaine = SubStr ($moy_cl, 0, StrPos ($moy_cl, ",")) ; } Else { $chaine = $moy_cl ; } If (StrPos ($chaine, "%")) { $chaine = SubStr ($chaine, 0, StrPos ($chaine, "%")) ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y, $moy_cl, $page [$numero], $param) ; } $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // MAX If ($max_cl != "") { If ($tp_moy == 1) { $max_cl .= "%" ; } // On prend la partie a gauche de la virgule If (StrPos ($max_cl, ",")) { $chaine = SubStr ($max_cl, 0, StrPos ($max_cl, ",")) ; } Else { $chaine = $max_cl ; } If (StrPos ($chaine, "%")) { $chaine = SubStr ($chaine, 0, StrPos ($chaine, "%")) ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y, $max_cl, $page [$numero], $param) ; } $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; Case 7 : // Appreciations $param ["font"] = $cadre_mat [6][4] ; //$param ["height"] = $cadre_mat [6][5] ; If ($x_a >= 0) { // Abscisses $x_debut = $x [0]+0.1*$echelle_x ; $x_fin = $x [0]+($cadre_mat [1][7]-0.15)*$echelle_x ; $taille = $cadre_mat [1][7]*$echelle_x ; If ($nbr_appr > 1) { $delta = $cadre_mat [1][7]/$nbr_appr ; } Else { $delta = $cadre_mat [1][7] ; } For ($j = 1 ; $j <= $nbr_appr ; $j++) { If (SubStr ($stat_eleve [$x_a][$y_a][2+$j], 0, 1) == ",") { $stat_eleve [$x_a][$y_a][2+$j] = SubStr ($stat_eleve [$x_a][$y_a][2+$j], 1, StrLen ($stat_eleve [$x_a][$y_a][2+$j])) ; } $longueur = $pdf->StrLen ($stat_eleve [$x_a][$y_a][2+$j], $param)/(($delta-0.25)*$echelle_x) ; If ($longueur < 1) { $correction = $y [0]-$pos_y-$cadre_mat [6][5] ; } ElseIf ($longueur < 2) { $correction = $cadre_mat [6][5]/2 ; } Else { $correction = 0 ; } If (($nbr_appr > 1) And ($reduction_colonnes == 1)) { $ta = filtre_appreciation ($titres_appreciations [$j]) ; $param ["height"] = 6 ; $pdf->Draw_Text ($x [0]+0.1*$echelle_x, $y [0]-6, $ta, $page [$numero], $param) ; $param ["height"] = $cadre_mat [6][5]-1 ; $pdf->Draw_Paragraph ($y [0]-6, $x [0]+0.1*$echelle_x, $y [0]-$cadre_mat [1][3]*$echelle_y, $x [0]+($delta-0.15)*$echelle_x, $stat_eleve [$x_a][$y_a][2+$j], $page [$numero], $param) ; } Else { $param ["height"] = $cadre_mat [6][5] ; $pdf->Draw_Paragraph ($y [0]-$correction, $x [0]+0.1*$echelle_x, $y [0]-$cadre_mat [1][3]*$echelle_y, $x [0]+($delta-0.15)*$echelle_x, $stat_eleve [$x_a][$y_a][2+$j], $page [$numero], $param) ; } $xx += $delta*$echelle_x ; If ($ok_examen) { $pos_x_exam = $x [0] ; } $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; } } Else { // CPE $appreciation = $y_a ; If (SubStr ($appreciation, 0, 1) == ",") { $appreciation = SubStr ($appreciation, 1, StrLen ($appreciation)) ; } $longueur = $pdf->StrLen ($appreciation, $param)/(($cadre_mat [1][7]-0.25)*$echelle_x) ; If ($longueur < 1) { $correction = $y [0]-$pos_y-$cadre_mat [6][5] ; } ElseIf ($longueur < 2) { $correction = $cadre_mat [6][5]/2 ; } Else { $correction = 0 ; } $pdf->Draw_Paragraph ($y [0]-$correction, $x [0]+0.1*$echelle_x, $y [0]-$cadre_mat [1][3]*$echelle_y, $x [0]+($cadre_mat [1][7]-0.15)*$echelle_x, $appreciation, $page [$numero], $param) ; $xx += $cadre_mat [1][7]*$echelle_x ; If ($ok_examen) { $pos_x_exam = $x [0] ; } $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; } Break ; } } If ($ok_examen) { $param ["font"] = $cadre_mat [6][6] ; $param ["height"] = $cadre_mat [6][7] ; $pdf->Draw_Text ($pos_x_exam+0.1*$echelle_x, $y [0]-($cadre_mat [1][3]+0.1)*$echelle_y, $texte_examen, $page [$numero], $param) ; } // Retour position Return ($y [1]/$echelle_y) ; } } // ------------------------------------------------------------------------ // Fonction de trace des moyennes periodiques et coefficientees // ------------------------------------------------------------------------ Function moyennes ($numero, $yy, $min_cl_nc, $moy_cl_nc, $max_cl_nc, $moy_el_nc, $min_cl_c, $moy_cl_c, $max_cl_c, $moy_el_c, $classe, $ok_coeff, $ok_moy_nc, $ok_moy_c, $ok_nc, $ok_c) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_moy_gen, $cadre_mat ; Global $impression_smat, $nom_sous_matieres ; $param ["width"] = $cadre_moy_gen [2][0] ; $param ["red"] = $cadre_moy_gen [2][1] ; $param ["green"] = $cadre_moy_gen [2][2] ; $param ["blue"] = $cadre_moy_gen [2][3] ; // Trace cadre If ($cadre_moy_gen [0][0]) { // Trace du cadre moyenne non coefficientee total If ($ok_moy_nc == 1) { $pdf->Draw_Rectangle (($yy-$cadre_moy_gen [1][2]/2)*$echelle_y, ($cadre_moy_gen [1][0]+$cadre_moy_gen [1][4])*$echelle_x, $yy*$echelle_y, $cadre_moy_gen [1][0]*$echelle_x, $page [$numero], $param) ; } If ($ok_coeff == 1) { // Trace du cadre moyenne coefficientee total If ($ok_moy_c == 1) { $pdf->Draw_Rectangle (($yy-$ok_moy_nc*$cadre_moy_gen [1][2]/2)*$echelle_y, ($cadre_moy_gen [1][0]+$cadre_moy_gen [1][4])*$echelle_x, ($yy-($ok_moy_nc+1)*$cadre_moy_gen [1][2]/2)*$echelle_y, $cadre_moy_gen [1][0]*$echelle_x, $page [$numero], $param) ; } } } // Lignes verticales $y [0] = $yy*$echelle_y ; If ($ok_moy_nc == 1) { $y [1] = ($yy-$cadre_moy_gen [1][2]/2)*$echelle_y ; } Else { $y [1] = $yy*$echelle_y ; } If ($ok_moy_c == 1) { If ($ok_coeff == 1) { If ($ok_c == 1) { $y [1] = ($yy-($ok_moy_nc+1)*$cadre_moy_gen [1][2]/2)*$echelle_y ; } //Else { $y [1] = ($yy-$cadre_moy_gen [1][2]/2)*$echelle_y ; } } } $nbr_p = nombre_periode ($classe) ; Switch ($nbr_p) { Case 2 : $nom_p = "semestrielle" ; Break ; Case 3 : $nom_p = "trimestrielle" ; Break ; Default : $nom_p = "trimestrielle" ; Break ; } // Moyennes $param ["font"] = $cadre_moy_gen [3][0] ; $param ["height"] = $cadre_moy_gen [3][1] ; If (!IsSet ($xx)) { $xx = 0 ; } If ($ok_moy_nc == 1) { $texte = "Moyenne ".$nom_p ; $pdf->Draw_Text ($xx+($cadre_moy_gen [1][0]+0.1)*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; } If ($ok_coeff == 1) { $param ["font"] = $cadre_moy_gen [3][2] ; $param ["height"] = $cadre_moy_gen [3][3] ; If ($ok_moy_c == 1) { $texte = "Moyenne ".$nom_p." c".Chr (156)."fficientée" ; $pdf->Draw_Text ($xx+($cadre_moy_gen [1][0]+0.1)*$echelle_x, ($yy-$ok_moy_nc*$cadre_moy_gen [1][2]/2-0.27)*$echelle_y, $texte, $page [$numero], $param) ; } } $xx = ($cadre_moy_gen [1][0]+$cadre_moy_gen [1][4])*$echelle_x ; $xd = $cadre_moy_gen [1][0]*$echelle_x ; $x [0] = $x [1] = $xx ; // Trace de la premiere ligne If (($ok_moy_nc == 1) Or ($ok_moy_c == 1)) { $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; } $pos_y_nc = ($yy-0.27)*$echelle_y ; $pos_y_c = ($yy-$ok_moy_nc*$cadre_moy_gen [1][2]/2-0.27)*$echelle_y ; For ($i = 1 ; $i < 5 ; $i++) { Switch ($cadre_mat [0][$i]) { Case 5 : // Moyenne eleve $param ["font"] = $cadre_moy_gen [4][0] ; $param ["height"] = $cadre_moy_gen [4][1] ; If ($ok_moy_nc == 1) { If ($moy_el_nc != "") { If (StrPos ($moy_el_nc, ",")) { $chaine = SubStr ($moy_el_nc, 0, StrPos ($moy_el_nc, ",")) ; } Else { $chaine = $moy_el_nc ; } If ($impression_smat == 1) { $cx = $xx+($cadre_mat [1][5]*$echelle_x-$pdf->StrLen ($chaine, $param))/2 ; } Else { $cx = $xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x ; } $pdf->Draw_Text ($cx, $pos_y_nc, $moy_el_nc, $page [$numero], $param) ; } } If ($ok_moy_c == 1) { If (($ok_coeff == 1) And ($moy_el_c != "")) { If (StrPos ($moy_el_c, ",")) { $chaine = SubStr ($moy_el_c, 0, StrPos ($moy_el_c, ",")) ; } Else { $chaine = $moy_el_c ; } If ($impression_smat == 1) { $cx = $xx+($cadre_mat [1][5]*$echelle_x-$pdf->StrLen ($chaine, $param))/2 ; } Else { $cx = $xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x ; } $pdf->Draw_Text ($cx, $pos_y_c, $moy_el_c, $page [$numero], $param) ; } } // Trace de la ligne verticale droite moy non coeff If (($ok_moy_nc == 1) Or ($ok_moy_c == 1)) { $xx += $cadre_moy_gen [1][5]*$echelle_x ; $x [0] = $x [1] = $xx ; If (($ok_coeff == 1) And ($ok_c == 0)) { $yh [0] = $y [0] ; $yh [1] = $y [1]-($ok_moy_c*$cadre_moy_gen [1][2]/2)*$echelle_y ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } Else { $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; } $yh [0] = $yh [1] = ($yy-$ok_moy_nc*$cadre_moy_gen [1][2]/2)*$echelle_y ; $x [0] = $xd ; $x [1] = $xx ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; // Trace de la ligne horizontale entre moy coeff If (($ok_coeff == 1) And ($moy_el_c != "") And ($ok_moy_c == 1)) { $yh [0] = $yh [1] = ($yy-($ok_moy_nc+1)*$cadre_moy_gen [1][2]/2)*$echelle_y ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } } Break ; Case 6 : // Moy/Min/Max Classe non coeff et coeff $param ["font"] = $cadre_moy_gen [5][0] ; $param ["height"] = $cadre_moy_gen [5][1] ; If (($ok_nc == 1) Or ($ok_c == 1)) { // MIN If (($min_cl_nc != "") And ($ok_nc == 1) And ($ok_moy_nc == 1)) { If (StrPos ($min_cl_nc, ",")) { $chaine = SubStr ($min_cl_nc, 0, StrPos ($min_cl_nc, ",")) ; } Else { $chaine = $min_cl_nc ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_nc, $min_cl_nc, $page [$numero], $param) ; } If (($ok_coeff == 1) And ($ok_c == 1) And ($min_cl_c != "") And ($ok_moy_c == 1)) { If (StrPos ($min_cl_c, ",")) { $chaine = SubStr ($min_cl_c, 0, StrPos ($min_cl_c, ",")) ; } Else { $chaine = $min_cl_c ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_c, $min_cl_c, $page [$numero], $param) ; } $xx += $cadre_moy_gen [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; // Trace de la ligne verticale droite min non coeff $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // Trace de la ligne horizontale entre min non coeff $yh [0] = $yh [1] = ($yy-$cadre_moy_gen [1][2]/2)*$echelle_y ; $x [0] = $xd ; $x [1] = $xx ; If ($ok_nc == 1) { $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } // Trace de la ligne horizontale entre min coeff If (($ok_coeff == 1) And ($ok_c == 1) And ($ok_moy_c == 1)) { $yh [0] = $yh [1] = ($yy-($ok_moy_nc+1)*$cadre_moy_gen [1][2]/2)*$echelle_y ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } // MOY If (($moy_cl_nc != "") And ($ok_nc == 1) And ($ok_moy_nc == 1)) { If (StrPos ($moy_cl_nc, ",")) { $chaine = SubStr ($moy_cl_nc, 0, StrPos ($moy_cl_nc, ",")) ; } Else { $chaine = $moy_cl_nc ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_nc, $moy_cl_nc, $page [$numero], $param) ; } If (($ok_coeff == 1) And ($ok_c == 1) And ($moy_cl_c != "") And ($ok_moy_c == 1)) { If (StrPos ($moy_cl_c, ",")) { $chaine = SubStr ($moy_cl_c, 0, StrPos ($moy_cl_c, ",")) ; } Else { $chaine = $moy_cl_c ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_c, $moy_cl_c, $page [$numero], $param) ; } $xx += $cadre_moy_gen [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; // Trace de la ligne verticale droite moy non coeff $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // Trace de la ligne horizontale entre moy non coeff $yh [0] = $yh [1] = ($yy-$cadre_moy_gen [1][2]/2)*$echelle_y ; $x [0] = $xd ; $x [1] = $xx ; If ($ok_moy_nc == 1) { $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } // Trace de la ligne horizontale entre moy coeff If (($ok_coeff == 1) And ($ok_c == 1) And ($ok_moy_c == 1)) { $yh [0] = $yh [1] = ($yy-($ok_moy_nc+1)*$cadre_moy_gen [1][2]/2)*$echelle_y ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } // MAX If (($max_cl_nc != "") And ($ok_nc == 1) And ($ok_moy_nc == 1)) { If (StrPos ($max_cl_nc, ",")) { $chaine = SubStr ($max_cl_nc, 0, StrPos ($max_cl_nc, ",")) ; } Else { $chaine = $max_cl_nc ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_nc, $max_cl_nc, $page [$numero], $param) ; } If (($ok_coeff == 1) And ($ok_c == 1) And ($max_cl_c != "") And ($ok_moy_c == 1)) { If (StrPos ($max_cl_c, ",")) { $chaine = SubStr ($max_cl_c, 0, StrPos ($max_cl_c, ",")) ; } Else { $chaine = $max_cl_c ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_c, $max_cl_c, $page [$numero], $param) ; } $xx += $cadre_moy_gen [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; // Trace de la ligne verticale droite max non coeff $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // Trace de la ligne horizontale entre max non coeff $yh [0] = $yh [1] = ($yy-$cadre_moy_gen [1][2]/2)*$echelle_y ; $x [0] = $xd ; $x [1] = $xx ; If ($ok_moy_nc == 1) { $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } // Trace de la ligne horizontale entre max coeff If (($ok_coeff == 1) And ($ok_c == 1) And ($ok_moy_c == 1)) { $yh [0] = $yh [1] = ($yy-($ok_moy_nc+1)*$cadre_moy_gen [1][2]/2)*$echelle_y ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } } Break ; } } // Retour position If (($ok_coeff == 1) And ($ok_c == 0)) { $y [1] = ($yy-($ok_moy_nc+$ok_moy_c)*$cadre_moy_gen [1][2]/2)*$echelle_y ; } Return ($y [1]/$echelle_y) ; } // ------------------------------------------------------------------------ // Fonction de trace des observations CPE // ------------------------------------------------------------------------ Function vie_scolaire ($numero, $yy, $cpe, $classe, $style_bulletin) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_cpe, $id_sql, $module_absences, $unite_comptabilisation, $millesime ; If ($module_absences == 1) { Switch ($unite_comptabilisation) { Case 1 : $duree_abs = "de 1/2 heure" ; Break ; Case 2 : $duree_abs = "d'heure" ; Break ; Case 3 : $duree_abs = "de demi-journée" ; Break ; Case 4 : $duree_abs = "de journée" ; Break ; Default : $duree_abs = "1/2 heure" ; Break ; } } Else { $duree_abs = "de demi-journée" ; } Switch ($style_bulletin) { Default : Case 1 : // Trace cadre If ($cadre_cpe [0][0]) { $param ["width"] = $cadre_cpe [2][0] ; $param ["red"] = $cadre_cpe [2][1] ; $param ["green"] = $cadre_cpe [2][2] ; $param ["blue"] = $cadre_cpe [2][3] ; $pdf->Draw_Rectangle (($yy-$cadre_cpe [1][2])*$echelle_y, $cadre_cpe [1][1]*$echelle_x, $yy*$echelle_y, $cadre_cpe [1][0]*$echelle_x, $page [$numero], $param) ; } // Premiere ligne $param ["width"] = $cadre_cpe [2][0] ; $param ["red"] = $cadre_cpe [2][1] ; $param ["green"] = $cadre_cpe [2][2] ; $param ["blue"] = $cadre_cpe [2][3] ; If ($cpe ["cpe"] > 0) { $nom_cpe = SQL_commande ("SELECT nom,civilite FROM utilisateurs WHERE id_utilisateur='".$cpe ["cpe"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; $ncpe = SQL_ligne_suivante ($nom_cpe) ; $ncpe [0] = filtrage_utf8 ($ncpe [0]) ; Switch ($ncpe [1]) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $texte1 = "Vie scolaire : ".$civ." ".StrToUpper (SubStr ($ncpe [0], 0, 1)).StrToLower (SubStr ($ncpe [0], 1, StrLen ($ncpe [0])-1)) ; $texte2 = "Nombre ".$duree_abs ; If ($cpe ["absences"] > 1) { $texte2 .= "s" ; } $texte2 .= " d'absence : ".$cpe ["absences"]." " ; $texte2 .= "(dont ".$cpe ["non_justifiees"]." non justifiée" ; If ($cpe ["non_justifiees"] > 1) { $texte2 .= "s" ; } $texte2 .= "). " ; $texte2 .= "Nombre de retard" ; If ($cpe ["retards"] > 1) { $texte2 .= "s" ; } $texte2 .= " : ".$cpe ["retards"] ; } Else { $nom_cpe = SQL_commande ("SELECT u.nom,u.civilite FROM utilisateurs u,classes c WHERE c.id_classe='".$classe."' AND c.cpe=u.id_utilisateur AND c.millesime='".$millesime."' LIMIT 1", $id_sql) ; $texte1 = "Vie scolaire : " ; If (SQL_nbr_lignes ($nom_cpe) > 0) { $ncpe = SQL_ligne_suivante ($nom_cpe) ; $ncpe [0] = filtrage_utf8 ($ncpe [0]) ; Switch ($ncpe [1]) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $texte1 .= $civ." ".StrToUpper (SubStr ($ncpe [0], 0, 1)).StrToLower (SubStr ($ncpe [0], 1, StrLen ($ncpe [0])-1)) ; } $texte2 = "Nombre ".$duree_abs."(s) d'absence : ____ (dont ____ non justifiée(s)). Nombre de retards : ____" ; } $param ["font"] = $cadre_cpe [2][4] ; $param ["height"] = $cadre_cpe [2][5] ; $pdf->Draw_Text (($cadre_cpe [1][0]+0.1)*$echelle_x, ($yy-0.3)*$echelle_y, $texte1, $page [$numero], $param) ; $param ["font"] = $cadre_cpe [2][8] ; $param ["height"] = $cadre_cpe [2][9] ; $pdf->Draw_Text (($cadre_cpe [1][0]+5.5)*$echelle_x, ($yy-0.3)*$echelle_y, $texte2, $page [$numero], $param) ; // Observation $param ["font"] = $cadre_cpe [2][10] ; $param ["height"] = $cadre_cpe [2][11] ; $pdf->Draw_Text (($cadre_cpe [1][0]+5.5)*$echelle_x, ($yy-0.6)*$echelle_y,"Observation(s) :", $page [$numero], $param) ; If ($cpe ["observations"]) { $param ["font"] = $cadre_cpe [2][12] ; $param ["height"] = $cadre_cpe [2][13] ; $pdf->Draw_Paragraph (($yy-0.3)*$echelle_y, ($cadre_cpe [1][0]+7.9)*$echelle_x,($yy-1.2)*$echelle_y, ($cadre_cpe [1][1]-0.1)*$echelle_x, filtrage_utf8 ($cpe ["observations"]), $page [$numero], $param) ; } Return ($yy-$cadre_cpe [1][2]) ; Break ; Case 2 : // Trace du cadre $param ["width"] = $cadre_cpe [2][0] ; $param ["red"] = $cadre_cpe [2][1] ; $param ["green"] = $cadre_cpe [2][2] ; $param ["blue"] = $cadre_cpe [2][3] ; $pdf->Draw_Rectangle (($yy-$cadre_cpe [1][2])*$echelle_y, $cadre_cpe [1][1]*$echelle_x, $yy*$echelle_y, $cadre_cpe [1][0]*$echelle_x, $page [$numero], $param) ; If ($cpe ["cpe"] > 0) { $nom_cpe = SQL_commande ("SELECT nom,civilite FROM utilisateurs WHERE id_utilisateur='".$cpe ["cpe"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; $ncpe = SQL_ligne_suivante ($nom_cpe) ; $ncpe [0] = filtrage_utf8 ($ncpe [0]) ; Switch ($ncpe [1]) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $texte1 = "Vie scolaire : ".$civ." ".StrToUpper (SubStr ($ncpe [0], 0, 1)).StrToLower (SubStr ($ncpe [0], 1, StrLen ($ncpe [0])-1)) ; } Else { $nom_cpe = SQL_commande ("SELECT u.nom,u.civilite FROM utilisateurs u,classes c WHERE c.id_classe='".$classe."' AND c.cpe=u.id_utilisateur AND c.millesime='".$millesime."' LIMIT 1", $id_sql) ; $texte1 = "Vie scolaire : " ; If (SQL_nbr_lignes ($nom_cpe) > 0) { $ncpe = SQL_ligne_suivante ($nom_cpe) ; $ncpe [0] = filtrage_utf8 ($ncpe [0]) ; Switch ($ncpe [1]) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $texte1 .= $civ." ".StrToUpper (SubStr ($ncpe [0], 0, 1)).StrToLower (SubStr ($ncpe [0], 1, StrLen ($ncpe [0])-1)) ; } } $param ["font"] = $cadre_cpe [2][4] ; $param ["height"] = $cadre_cpe [2][5] ; $pdf->Draw_Text (($cadre_cpe [1][0]+0.1)*$echelle_x, ($yy-0.3)*$echelle_y, $texte1, $page [$numero], $param) ; //$param ["font"] = $cadre_cpe [2][8] ; //$param ["height"] = $cadre_cpe [2][9] ; //$pdf->Draw_Text (($cadre_cpe [1][0]+5.5)*$echelle_x, ($yy-0.3)*$echelle_y, $texte2, $page [$numero], $param) ; // Observation $param ["font"] = $cadre_cpe [2][10] ; $param ["height"] = $cadre_cpe [2][11] ; $pdf->Draw_Text (($cadre_cpe [1][0]+5.5)*$echelle_x, ($yy-0.3)*$echelle_y, "Appréciations :", $page [$numero], $param) ; If ($cpe ["observations"]) { $param ["font"] = $cadre_cpe [2][12] ; $param ["height"] = $cadre_cpe [2][13] ; $pdf->Draw_Paragraph ($yy*$echelle_y, ($cadre_cpe [1][0]+7.9)*$echelle_x, ($yy-1.2)*$echelle_y, ($cadre_cpe [1][1]-0.1)*$echelle_x, filtrage_utf8 ($cpe ["observations"]), $page [$numero], $param) ; } Return ($yy-$cadre_cpe [1][2]) ; Break ; } } // ------------------------------------------------------------------------ // Fonction de trace des appreciations de l'equipe pedagogique // ------------------------------------------------------------------------ Function equipe_pedagogique ($numero, $yy, $signature, $aep_texte) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_equipe_peda, $marge_bas, $periode, $id_etablissement ; // Trace cadre If ($cadre_equipe_peda [0][0]) { $param ["width"] = $cadre_equipe_peda [2][0] ; $param ["red"] = $cadre_equipe_peda [2][1] ; $param ["green"] = $cadre_equipe_peda [2][2] ; $param ["blue"] = $cadre_equipe_peda [2][3] ; //$coeff_bas = 1.6 ; $coeff_bas = 0.6 ; //If ($numero == 1) // { $pdf->Draw_Rectangle (($marge_bas+$coeff_bas)*$echelle_y, $cadre_equipe_peda [1][1]*$echelle_x, $yy*$echelle_y, $cadre_equipe_peda [1][0]*$echelle_x, $page [$numero], $param) ; // } //Else // { // $pdf->Draw_Rectangle (($yy-$cadre_equipe_peda [1][2])*$echelle_y, $cadre_equipe_peda [1][1]*$echelle_x, // $yy*$echelle_y, $cadre_equipe_peda [1][0]*$echelle_x, // $page [$numero], $param) ; // } } $param ["font"] = $cadre_equipe_peda [2][4] ; $param ["height"] = $cadre_equipe_peda [2][5] ; $texte = "Appréciation de l'équipe pédagogique :" ; $pdf->Draw_Text (($cadre_equipe_peda [1][0]+0.1)*$echelle_x, ($yy-0.3)*$echelle_y, $texte, $page [$numero], $param) ; $param ["font"] = $cadre_equipe_peda [2][6] ; $param ["height"] = $cadre_equipe_peda [2][7] ; If ($aep_texte != "") { $pdf->Draw_Paragraph (($yy-0.1)*$echelle_y-$cadre_equipe_peda [2][5], ($cadre_equipe_peda [1][0]+0.1)*$echelle_x, ($marge_bas+$coeff_bas+0.1)*$echelle_y, ($cadre_equipe_peda [1][1]*2/3-0.1)*$echelle_x, filtrage_utf8 ($aep_texte), $page [$numero], $param) ; } $orientation_activation = restaure_configuration ("SYSTEME_PARAM","BULLETINS","ORIENTATION_".$id_etablissement."_ACTIVATION") ; If ($orientation_activation == "") { sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","ORIENTATION_".$id_etablissement."_ACTIVATION",0) ; $orientation_activation = 0 ; } If ($orientation_activation == 1) { $orientation_validite = restaure_configuration ("SYSTEME_PARAM","BULLETINS","ORIENTATION_".$id_etablissement."_VALIDITE") ; If ($orientation_validite == "") { sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","ORIENTATION_".$id_etablissement."_VALIDITE",4) ; $orientation_validite = 4 ; } If ((($periode == 1) And (($orientation_validite == 1) Or ($orientation_validite == 3) Or ($orientation_validite == 5))) Or (($periode == 2) And (($orientation_validite == 2) Or ($orientation_validite == 3) Or ($orientation_validite == 6))) Or (($periode == 3) And (($orientation_validite == 4) Or ($orientation_validite == 5) Or ($orientation_validite == 6))) Or ($orientation_validite == 7)) { $orientation_texte = restaure_configuration ("SYSTEME_PARAM","BULLETINS","ORIENTATION_".$id_etablissement."_TEXTE") ; If ($orientation_texte == "") { $orientation_texte = "Décision d'orientation de l'équipe pédagogique :" ; sauvegarde_configuration ("SYSTEME_PARAM","BULLETINS","ORIENTATION_".$param_etab [$i]["id_etablissement"]."_TEXTE",$orientation_texte) ; } $orientation_texte = Str_Replace ("\\", "", filtrage (filtrage_utf8 ($orientation_texte))) ; /*$cadre_equipe_peda [1][1]*$echelle_x ; ($marge_bas+$coeff_bas)*$echelle_y ; $cadre_equipe_peda [1][0]*$echelle_x ; $yy*$echelle_y ;*/ $pdf->Draw_Text (($cadre_equipe_peda [1][0]+15)*$echelle_x+position (StrLen ($signature ["nom"]), 30, 6), ($marge_bas+$coeff_bas+0.1)*$echelle_y+2.5*$param ["height"], $signature ["nom"], $page [$numero], $param) ; $x [0] = $cadre_equipe_peda [1][1]*$echelle_x ; $x [1] = $cadre_equipe_peda [1][0]*$echelle_x ; $y [0] = $y [1] = ($marge_bas+$coeff_bas+0.3)*$echelle_y+$param ["height"] ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; $param ["font"] = $cadre_equipe_peda [2][6]."-Bold" ; $pdf->Draw_Text (($cadre_equipe_peda [1][0]+0.1)*$echelle_x, ($marge_bas+$coeff_bas+0.2)*$echelle_y, $orientation_texte, $page [$numero], $param) ; $param ["font"] = $cadre_equipe_peda [2][6] ; } Else { $pdf->Draw_Text (($cadre_equipe_peda [1][0]+15)*$echelle_x+position (StrLen ($signature ["nom"]), 30, 6), ($marge_bas+($yy-$marge_bas-$coeff_bas)/3+$coeff_bas)*$echelle_y, $signature ["nom"], $page [$numero], $param) ; } } Else { $pdf->Draw_Text (($cadre_equipe_peda [1][0]+15)*$echelle_x+position (StrLen ($signature ["nom"]), 30, 6), ($marge_bas+($yy-$marge_bas-$coeff_bas)/3+$coeff_bas)*$echelle_y, $signature ["nom"], $page [$numero], $param) ; } //If ($periode != $periode_max) //{ // $pdf->Draw_Text (($cadre_equipe_peda [1][0]+15)*$echelle_x+position (StrLen ($signature ["nom"]), 30, 6), // ($marge_bas+($yy-$marge_bas-$coeff_bas)/3+$coeff_bas)*$echelle_y, $signature ["nom"], $page [$numero], $param) ; //} //Else // { // $pdf->Draw_Text (($cadre_equipe_peda [1][0]+15)*$echelle_x+position (StrLen ($signature ["nom"]), 30, 6), // ($yy-1.7)*$echelle_y, $signature ["nom"], $page [$numero], $param) ; //} Return ($yy-$cadre_equipe_peda [1][2]) ; } // ------------------------------------------------------------------------ // Fonction de trace du bas de page // ------------------------------------------------------------------------ Function bas_page ($numero, $yy) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_bas_page, $largeur, $marge_gauche, $marge_droite, $version_garennes ; // Texte a gauche $param ["width"] = $cadre_bas_page [2][0] ; $param ["red"] = $cadre_bas_page [2][1] ; $param ["green"] = $cadre_bas_page [2][2] ; $param ["blue"] = $cadre_bas_page [2][3] ; $param ["font"] = $cadre_bas_page [2][4] ; $param ["height"] = $cadre_bas_page [2][5] ; $pdf->Draw_Text ($cadre_bas_page [1][0]*$echelle_x, ($yy-$cadre_bas_page [1][2]-0.1)*$echelle_y, "ATTENTION : Ce bulletin est un original, il doit être conservé par la famille.", $page [$numero], $param) ; // Texte a droite $texte = Chr (169)." Garennes ".$version_garennes." - GNU GPL - 2000-".Date ("Y") ; $param ["font"] = $cadre_bas_page [2][6] ; $param ["height"] = $cadre_bas_page [2][7] ; $pdf->Draw_Text ($cadre_bas_page [1][1]*$echelle_x-StrLen ($texte)*4+0.4*$echelle_x, ($yy-$cadre_bas_page [1][2]-0.1)*$echelle_y, $texte, $page [$numero], $param) ; // Affichage ligne horizontale $x [1] = $marge_gauche*$echelle_x ; $x [0] = ($largeur-$marge_droite)*$echelle_x ; $y [0] = $y [1] = $yy*$echelle_y ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Return ($yy-$cadre_bas_page [1][2]) ; } // ------------------------------------------------------------------------ // Fonction de trace du numero de la page // ------------------------------------------------------------------------ Function affiche_page ($numero, $yy, $nbr_page) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_bas_page, $marge_gauche ; $param ["font"] = $cadre_bas_page [2][8] ; $param ["height"] = $cadre_bas_page [2][9] ; For ($i = 1 ; $i <= $nbr_page ; $i++) { $pdf->Draw_Text (($marge_gauche+10)*$echelle_x, ($yy [$i]-$cadre_bas_page [1][2]-0.1)*$echelle_y, "Page ".$i."/".$nbr_page, $page [$numero-$nbr_page+$i], $param) ; } } // ------------------------------------------------------------------------ // Filtrage appreciation : Enleve les caracteres HTML inderisables // ------------------------------------------------------------------------ Function filtre_appreciation ($appreciation) { If (!$appreciation) { $appreciation = " " ; } // Substitution de caracteres $appreciation = Str_Replace ("&", "&", $appreciation) ; $appreciation = Str_Replace (""", "\"", $appreciation) ; $appreciation = Str_Replace (" ", " ", $appreciation) ; $appreciation = html_entity_decode ($appreciation) ; $appreciation = filtrage_utf8 ($appreciation) ; Return $appreciation ; } // ------------------------------------------------------------------------ // Reparation des saisies vie scolaire (au cas ou) // ------------------------------------------------------------------------ $vie_scolaire = SQL_commande ("SELECT * FROM vie_scolaire WHERE millesime='".$millesime."'", $id_sql) ; For ($i = 0 ; $i < SQL_nbr_lignes ($vie_scolaire) ; $i++) { $cpe = SQL_tableau_associatif ($vie_scolaire, "") ; $result = SQL_commande ("SELECT u.id_utilisateur,u.numen,u.nom FROM classes c,eleves e,utilisateurs u WHERE e.id_eleve='".$cpe ["eleve"]."' AND c.id_classe=e.classe AND c.cpe=u.id_utilisateur LIMIT 1", $id_sql) ; $n_cpe = SQL_ligne_suivante ($result, "") ; $ok = SQL_commande ("UPDATE vie_scolaire SET cpe='".$n_cpe [0]."',numen_cpe='".$n_cpe [1]."' WHERE id_vie_scolaire='".$cpe ["id_vie_scolaire"]."' LIMIT 1", $id_sql) ; } /** * Determine l'ensemble des appreciations * @param int $nbr_col Nombre de colonne d'appreciations * @param int $id_eleve Identifiant eleve * @param int $id_prof Identifiant prof * @param int $id_disc Identifiant discipline * @param int $id_sp Identifiant service prof * @param int $periode Numero de la periode * @return array Tableau des appreciations */ Function determine_appreciations ($nbr_col, $id_eleve, $id_prof, $id_disc, $id_sp, $periode) { Global $id_classe, $millesime, $titres_appreciations ; If ($nbr_col > 1) { // Multiple $appr [0] = $titres_appreciations [0] = $nbr_col ; For ($i = 1 ; $i <= $nbr_col ; $i++) { $a = appreciation ($id_eleve, $id_prof, $id_disc, $id_sp, $periode, $i) ; If ($a != "") { $appr [$i] = filtre_appreciation ($a) ; } Else { $appr [$i] = "" ; } $titres_appreciations [$i] = nom_colonne_appreciation ($i, id_etablissement_par_id_classe ($id_classe, $millesime)) ; } } Else { // Une seule $appr [0] = $titres_appreciations [0] = 1 ; $a = appreciation ($id_eleve, $id_prof, $id_disc, $id_sp, $periode, $i) ; If ($a != "") { $appr [1] = filtre_appreciation ($a) ; } Else { $appr [1] = "" ; } $titres_appreciations [1] = nom_colonne_appreciation (1, id_etablissement_par_id_classe ($id_classe, $millesime)) ; } Return $appr ; } /** * Attribution des appreciations * @param int $x Position tableau stat (numero eleve) * @param int $y Position tableau stat (numero service) * @param array $app Tableau des appreciations * @return array Tableau des stats eleves */ Function attribution_appreciations ($x, $y, $app) { Global $stat_eleve, $mode_imp, $fusion_imp, $titres_appreciations, $reduction_colonnes ; If ($mode_imp == 0) { $appreciation [0] = $tt [0] = $reduction_colonnes = 0 ; For ($i = 1 ; $i <= $app [0] ; $i++) { If ($fusion_imp == 1) { If ($app [$i] != "") { $appreciation [0]++ ; $appreciation [$appreciation [0]] = $app [$i] ; $tt [0]++ ; $tt [$tt [0]] = $titres_appreciations [$i] ; } } Else { $appreciation [0]++ ; $appreciation [$appreciation [0]] = $app [$i] ; $tt [0]++ ; $tt [$appreciation [0]] = $titres_appreciations [$i] ; } } If ($appreciation [0] > 0) { $stat_eleve [$y][$x+1][2] = $appreciation [0] ; $titres_appreciations [0] = $tt [0] ; For ($i = 1 ; $i <= $appreciation [0] ; $i++) { $stat_eleve [$y][$x+1][2+$i] = $appreciation [$i] ; $titres_appreciations [$i] = $tt [$i] ; } } Else { $stat_eleve [$y][$x+1][2] = 1 ; $stat_eleve [$y][$x+1][3] = "" ; } If ($appreciation [0] < $app [0]) { $reduction_colonnes = 1 ; } } Else { $stat_eleve [$y][$x+1][2] = 1 ; $stat_eleve [$y][$x+1][3] = $app [1] ; For ($i = 2 ; $i <= $app [0] ; $i++) { $stat_eleve [$y][$x+1][3] .= " ".$app [$i] ; } } } // ------------------------------------------------------------------------ // Variables // ------------------------------------------------------------------------ $rens_classe = SQL_commande ("SELECT * FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; $rs_cl = SQL_tableau_associatif ($rens_classe, "") ; $examen = $rs_cl ["examen"] ; $type_saisie_cpe = $rs_cl ["type_saisie_cpe"] ; $res [0] = $rs_cl ["classement"] ; $titres_appreciations [0] = 0 ; $reduction_colonnes = 0 ; // Alias ? $alias = SQL_commande ("SELECT DISTINCT s.id_service_prof,g.id_utilisateur FROM services_prof s,groupes_alias g WHERE s.professeur<0 AND s.classe='".$id_classe."' AND s.millesime='".$millesime."' AND g.id_alias=-s.professeur AND g.code=1 AND g.numero=1 AND g.id_utilisateur>0", $id_sql) ; $nbr_alias = SQL_nbr_lignes ($alias) ; $req_sup = $table_sup = "" ; If ($nbr_alias > 0) { $table_sup = ",groupes_alias g" ; $req_sup = " OR " ; For ($i = 0 ; $i < $nbr_alias ; $i++) { $lk = SQL_ligne_suivante ($alias) ; If ($i > 0) { $req_sup .= " OR " ; } $req_sup .= "(p.id_service_prof='".$lk [0]."' AND p.service_classe=s.id_service_classe AND s.discipline=d.id_discipline AND u.id_utilisateur='".$lk [1]."'" ; If ($res [0] == 1) { $req_sup .= " AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe" ; } $req_sup .= ")" ; } } If ($res [0] == 1) { // Si classement $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur FROM disciplines d,services_classe s,services_prof p,utilisateurs u,classement c".$table_sup." WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe) ".$req_sup." ORDER BY c.numero", $id_sql) ; $res [0] = SQL_nbr_lignes ($resultat_disc) ; $ok_classement = 1 ; } If ($res [0] == 0) { $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur FROM disciplines d,services_classe s,services_prof p,utilisateurs u".$table_sup." WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur) ".$req_sup." ORDER BY d.nom_long,d.nom_court,d.nom_bref", $id_sql) ; } // Classement ou pas //$resultat = SQL_commande ("SELECT classement FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; //$res = SQL_ligne_suivante ($resultat) ; // Tableau des disciplines et nom prof pour la discipline avec coefficient /* If ($res [0] == 1) { // Si classement $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code, s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe, u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur, d.type_moyenne,d.type_discipline FROM disciplines d,services_classe s,services_prof p,utilisateurs u,classement c,groupes_alias g WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe) OR (p.professeur<0 AND g.id_alias=-p.professeur AND g.id_service_classe=p.service_classe AND g.id_utilisateur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND s.id_service_classe=c.id_service_classe AND s.discipline=d.id_discipline AND g.numero='1') ORDER BY c.numero,d.nom_long,d.nom_court,d.nom_bref", $id_sql) ; $res [0] = SQL_nbr_lignes ($resultat_disc) ; } If ($res [0] == 0) { // Si pas de classement ou classement vide $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code, s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe, u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur, d.type_moyenne,d.type_discipline FROM disciplines d,services_classe s,services_prof p,utilisateurs u,groupes_alias g WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur) OR (p.professeur<0 AND g.id_alias=-p.professeur AND g.id_service_classe=p.service_classe AND g.id_utilisateur=u.id_utilisateur AND p.service_classe=s.id_service_classe AND s.discipline=d.id_discipline AND g.numero='1') ORDER BY d.nom_long,d.nom_court,d.nom_bref", $id_sql) ; } */ $impression_smat = restaure_configuration ("SYSTEME_PARAM", "impression_sous_matiere", $rs_cl ["etablissement"]) ; $ok_alias = 0 ; While ($ligne = SQL_tableau_associatif ($resultat_disc, "")) { $disc [] = $ligne ["id_discipline"] ; $code_disc [] = $ligne ["code"] ; $sc [] = $ligne ["id_service_classe"] ; $sp [] = $ligne ["id_service_prof"] ; $prof_id [] = $ligne ["id_utilisateur"] ; $prof_nom [] = filtrage_utf8 ($ligne ["nom"]) ; $prof_prenom [] = filtrage_utf8 ($ligne ["prenom"]) ; $prof_civ [] = $ligne ["civilite"] ; $prof_coeff [] = $ligne ["coefficient"] ; If ($ligne ["professeur"] < 0) { $alias [] = $ligne ["professeur"] ; $ok_alias = 1 ; } Else { $alias [] = 0 ; } $type_discipline [] = $ligne ["type_discipline"] ; $type_moyenne [] = $ligne ["type_moyenne"] ; $active = restaure_configuration ("SYSTEME_PARAM", "IMP_BULLETINS_".$id_utilisateur, $id_classe."_".$ligne ["id_service_prof"]) ; If (($active < 1) And ($active > 4)) { sauvegarde_configuration ("SYSTEME_PARAM", "IMP_BULLETINS_".$id_utilisateur, $id_classe."_".$ligne ["id_service_prof"], 1) ; $active = 1 ; } $activation_disc [] = $active ; If (($ligne ["sous_discipline"] > 0) Or (($ligne ["sous_discipline"] == 0) And ($ligne ["groupe_classe"] > 0))) { If ($ligne ["sous_discipline"] > 0) { $sous_disc = SQL_commande ("SELECT nom FROM sous_disciplines WHERE id_sous_discipline='".$ligne ["sous_discipline"]."' LIMIT 1", $id_sql) ; $sd = SQL_ligne_suivante ($sous_disc) ; $nom_disc [] = filtrage_utf8 ($ligne ["nom_long"]." (".$sd [0].")") ; $gp [] = $ligne ["groupe_classe"] ; } Else { $nom_disc [] = filtrage_utf8 ($ligne ["nom_long"]) ; $gp [] = $ligne ["groupe_classe"] ; } } Else { $nom_disc [] = filtrage_utf8 ($ligne ["nom_long"]) ; $gp [] = 0 ; } } $nbr_disc = Count ($disc) ; If ($cadre_adresse == 0) { // Telephone $cadre_etab [5][1] = $cadre_etab [4][1]-0.5 ; // Debut TELEPHONE Y // Fax $cadre_etab [6][1] = $cadre_etab [5][1]-0.3 ; // Debut FAX Y // Mel $cadre_etab [7][1] = $cadre_etab [6][1]-0.3 ; // Debut MEL Y $cadre_etab [1][3] = $cadre_etab [7][1]-0.1 ; $cadre_etab [1][4] = $cadre_etab [1][3] ; } // Colonnes multiples ou pas ? $nbr_col = restaure_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NBR_COLONNES") ; $nbr_car = restaure_configuration ("SYSTEME_PARAM", "SAISIE_APPRECIATIONS_".$id_etablissement, "TAILLE") ; If (($nbr_car == "") Or ($nbr_car == 0)) { If (IsSet ($nbr_car_max_saisie_appreciations) And ($nbr_car_max_saisie_appreciations > 0)) { sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_APPRECIATIONS_".$id_etablissement, "TAILLE", $nbr_car_max_saisie_appreciations) ; $nbr_car = $nbr_car_max_saisie_appreciations ; } Else { sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_APPRECIATIONS_".$id_etablissement, "TAILLE", 230) ; $nbr_car = 230 ; } } If (($nbr_col == "") Or ($nbr_col == 0)) { sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NBR_COLONNES", 1) ; $nbr_col = 1 ; sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "NOM_COLONNE_1", "Appréciations") ; sauvegarde_configuration ("SYSTEME_PARAM", "SAISIE_MULTIPLE_".$id_etablissement, "TAILLE_COLONNE_1", $nbr_car) ; } If ($nbr_col > 1) { $mode_imp = restaure_configuration ("SYSTEME_PARAM", "IMP_COLONNES_".$id_utilisateur, $id_classe) ; If ($mode_imp == "") { $mode_imp = 0 ; sauvegarde_configuration ("SYSTEME_PARAM", "IMP_COLONNES_".$id_utilisateur, $id_classe, $mode_imp) ; } $fusion_imp = restaure_configuration ("SYSTEME_PARAM", "FUSION_COLONNES_".$id_utilisateur, $id_classe) ; If ($fusion_imp == "") { $fusion_imp = 0 ; sauvegarde_configuration ("SYSTEME_PARAM", "FUSION_COLONNES_".$id_utilisateur, $id_classe, $fusion_imp) ; } } Else { $mode_imp = $fusion_imp = 0 ; } $pdf = New pdffile ; // Recherche nom prof principal $resultat_prof_p = SQL_commande ("SELECT u.id_utilisateur,u.nom,u.prenom,u.civilite FROM utilisateurs u,classes c WHERE c.id_classe='".$id_classe."' AND c.id_prof_princ=u.id_utilisateur LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($resultat_prof_p) > 0) { $prof_princ = SQL_tableau_associatif ($resultat_prof_p, "") ; } Else { $prof_princ ["id_utilisateur"] = 0 ; } // Requete etablissement $resultat_etab = SQL_commande ("SELECT * FROM etablissements WHERE id_etablissement='".$rs_cl ["etablissement"]."' LIMIT 1", $id_sql) ; $etablissement = SQL_tableau_associatif ($resultat_etab, "") ; // Requete signature $resultat_signe = SQL_commande ("SELECT * FROM signatures WHERE id_signature='".$rs_cl ["signature"]."' LIMIT 1", $id_sql) ; $signature = SQL_tableau_associatif ($resultat_signe, "") ; If ($etablissement ["examen_blanc"] == 0) { $examen = 0 ; } If ($type_saisie_cpe == -2) { $bulletin_cpe = $etablissement ["bulletin_cpe"] ; } Else { $bulletin_cpe = $type_saisie_cpe ; } // Initialisation de la table avec les eleves // // Requetes eleves $resultat_el = SQL_commande ("SELECT id_eleve FROM eleves WHERE classe='".$id_classe."' AND millesime='".$millesime."' ORDER BY nom,prenoms", $id_sql) ; $nombre_el = SQL_nbr_lignes ($resultat_el) ; For ($i = 0 ; $i < $nombre_el ; $i++) { $lin_el = SQL_ligne_suivante ($resultat_el, "") ; $stat_eleve [$i+1][0][0] = $lin_el [0] ; } // Pre-parcours de determination des moyennes : Parcours les disciplines et recherche les moyennes et appreciations // $force_calcul = restaure_configuration ("SYSTEME_PARAM", "FORCAGE_CALCUL_BULLETIN_".$id_utilisateur, $id_classe) ; // On positionne le recalcul de toutes les moyennes pour le bulletin If ($force_calcul == 1) { $res = SQL_commande ("UPDATE calcul_moyenne SET ok='0' WHERE classe='".$id_classe."' AND periode='".$periode."' AND millesime='".$millesime."'", $id_sql) ; } // On force l'affichage ou pas de tous les enseignants d'un alias $force_alias = restaure_configuration ("SYSTEME_PARAM", "FORCAGE_ALIAS_LISTE_".$id_utilisateur, $id_classe) ; // Moyenne de la classe : Minimum, moyenne et maximum For ($i = 0 ; $i < $nbr_disc ; $i++) { // Recherche ou calcul la moyenne eleve // Est-ce que la moyenne est enregistree ? $res = SQL_commande ("SELECT ok FROM calcul_moyenne WHERE classe='".$id_classe."' AND periode='".$periode."' AND service_prof='".$sp [$i]."' AND service_classe='".$sc [$i]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; $ok = 0 ; If (SQL_nbr_lignes ($res) > 0) { $r = SQL_ligne_suivante ($res) ; $ok = $r [0] ; If ($ok == 1) { // Oui : A prendre $ok_ap = 0 ; $res_moy = SQL_commande ("SELECT m.eleve,m.valeur,a.texte FROM moyennes m,eleves e,appreciations a WHERE e.classe='".$id_classe."' AND m.eleve=e.id_eleve AND m.periode='".$periode."' AND m.service_prof='".$sp [$i]."' AND m.service_classe='".$sc [$i]."' AND a.eleve=e.id_eleve AND a.classe='".$id_classe."' AND a.professeur='".$prof_id [$i]."' AND a.discipline='".$disc [$i]."' AND a.service_prof='".$sp [$i]."' AND a.periode='".$periode."' AND m.type='".$note_normale."' AND e.millesime='".$millesime."' ORDER BY e.nom,e.prenoms", $id_sql) ; If (SQL_nbr_lignes ($res_moy) == 0) { // Aucune appreciations $ok_ap = 1 ; $res_moy = SQL_commande ("SELECT m.eleve,m.valeur FROM moyennes m,eleves e WHERE e.classe='".$id_classe."' AND m.eleve=e.id_eleve AND m.periode='".$periode."' AND m.service_prof='".$sp [$i]."' AND m.service_classe='".$sc [$i]."' AND m.type='".$note_normale."' AND e.millesime='".$millesime."' ORDER BY e.nom,e.prenoms", $id_sql) ; } ElseIf (SQL_nbr_lignes ($res_moy) < $nombre_el) { // Pas assez d'appreciations $ok_ap = 1 ; $res_moy = SQL_commande ("SELECT m.eleve,m.valeur FROM moyennes m,eleves e WHERE e.classe='".$id_classe."' AND m.eleve=e.id_eleve AND m.periode='".$periode."' AND m.service_prof='".$sp [$i]."' AND m.service_classe='".$sc [$i]."' AND m.type='".$note_normale."' AND e.millesime='".$millesime."' ORDER BY e.nom,e.prenoms", $id_sql) ; } // On parcourt les notes et on enregistre $rm = SQL_ligne_suivante ($res_moy) ; $stat_eleve [0][$i+1][0] = $maxi_min ; // Minimum discipline $stat_eleve [0][$i+1][1] = $mini_max ; // Maximum discipline $stat_eleve [0][$i+1][2] = 0 ; // Somme de toutes les notes discipline $stat_eleve [0][$i+1][3] = 0 ; // Nombre de notes discipline For ($j = 1 ; $j <= $nombre_el ; $j++) { If ($activation_disc [$i] == 3) { $mat_ok = 0 ; } ElseIf (($activation_disc [$i] == 4) Or ($activation_disc [$i] == 1)) { $mat_ok = test_matiere ($disc [$i], $id_classe, $sc [$i], $gp [$i], $stat_eleve [$j][0][0]) ; } ElseIf ($activation_disc [$i] == 2) { $mat_ok = 1 ; } If ($mat_ok == 1) { If ($ok_ap == 1) { $appreciations = determine_appreciations ($nbr_col, $stat_eleve [$j][0][0], $prof_id [$i], $disc [$i], $sp [$i], $periode) ; } // OK pour cette discipline. If ($rm [0] == $stat_eleve [$j][0][0]) { // C'est le bon eleve -> on enregistre $stat_eleve [$j][$i+1][0] = 1 ; $stat_eleve [$j][$i+1][1] = $rm [1] ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } If ($ok_ap == 1) { attribution_appreciations ($i, $j, $appreciations) ; } Else { attribution_appreciations ($i, $j, Array ('1', filtre_appreciation ($rm [2]))) ; } // Statistiques : min, max, moy (nc et c) If ($rm [1] < $stat_eleve [0][$i+1][0]) { $stat_eleve [0][$i+1][0] = $rm [1] ; } If ($rm [1] > $stat_eleve [0][$i+1][1]) { $stat_eleve [0][$i+1][1] = $rm [1] ; } $stat_eleve [0][$i+1][2] += $rm [1] ; $stat_eleve [0][$i+1][3] += 1 ; // Au suivant $rm = SQL_ligne_suivante ($res_moy) ; } Else { // Ce n'est pas le bon eleve If ($j > 1) { If ($stat_eleve [$j-1][0][0] == $rm [0]) { // C'est l'eleve precedent // Au suivant $rm = SQL_ligne_suivante ($res_moy) ; If ($rm [0] == $stat_eleve [$j][0][0]) { // C'est le bon eleve -> on enregistre $stat_eleve [$j][$i+1][0] = 1 ; $stat_eleve [$j][$i+1][1] = $rm [1] ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } If ($ok_ap == 1) { attribution_appreciations ($i, $j, $appreciations) ; } Else { attribution_appreciations ($i, $j, Array ('1', filtre_appreciation ($rm [2]))) ; } // Statistiques : min, max, moy (nc et c) If ($rm [1] < $stat_eleve [0][$i+1][0]) { $stat_eleve [0][$i+1][0] = $rm [1] ; } If ($rm [1] > $stat_eleve [0][$i+1][1]) { $stat_eleve [0][$i+1][1] = $rm [1] ; } $stat_eleve [0][$i+1][2] += $rm [1] ; $stat_eleve [0][$i+1][3] += 1 ; // Au suivant $rm = SQL_ligne_suivante ($res_moy) ; } Else { // Pas de notes If ($rm [1] == $code_dispense) { $stat_eleve [$j][$i+1][0] = -1 ; $stat_eleve [$j][$i+1][1] = "D" ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } } ElseIf ($rm [1] == $code_aucune_note) { $stat_eleve [$j][$i+1][0] = -1 ; $stat_eleve [$j][$i+1][1] = "?" ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } } Else { $stat_eleve [$j][$i+1][0] = -2 ; $stat_eleve [$j][$i+1][1] = "-" ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } } If ($ok_ap == 1) { attribution_appreciations ($i, $j, $appreciations) ; } Else { attribution_appreciations ($i, $j, Array ('1', filtre_appreciation ($rm [2]))) ; } } } Else { // C'est un eleve suivant // Pas de notes $stat_eleve [$j][$i+1][0] = -2 ; $stat_eleve [$j][$i+1][1] = "-" ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } If ($ok_ap == 1) { attribution_appreciations ($i, $j, $appreciations) ; } Else { attribution_appreciations ($i, $j, Array ('1', filtre_appreciation ($rm [2]))) ; } } } Else { // C'est le premier // Pas de notes If ($rm [1] == $code_dispense) { $stat_eleve [$j][$i+1][0] = -1 ; $stat_eleve [$j][$i+1][1] = "D" ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } } ElseIf ($rm [1] == $code_aucune_note) { $stat_eleve [$j][$i+1][0] = -1 ; $stat_eleve [$j][$i+1][1] = "?" ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } } Else { $stat_eleve [$j][$i+1][0] = -2 ; $stat_eleve [$j][$i+1][1] = "-" ; //If ($ok_ap == 1) { $stat_eleve [$j][$i+1][2] = $appreciations ; } //Else { $stat_eleve [$j][$i+1][2] = filtre_appreciation ($rm [2]) ; } } If ($ok_ap == 1) { attribution_appreciations ($i, $j, $appreciations) ; } Else { attribution_appreciations ($i, $j, Array ('1', filtre_appreciation ($rm [2]))) ; } } } } Else { // Pas discipline $stat_eleve [$j][$i+1][0] = 0 ; $stat_eleve [$j][$i+1][1] = "/" ; } } } } If ($ok == 0) { // Non : Aucune note enregistres dans calcul_moyenne pour la discipline $stat_eleve [0][$i+1][0] = $maxi_min ; // Minimum discipline $stat_eleve [0][$i+1][1] = $mini_max ; // Maximum discipline $stat_eleve [0][$i+1][2] = 0 ; // Somme de toutes les notes discipline $stat_eleve [0][$i+1][3] = 0 ; // Nombre de notes discipline For ($j = 1 ; $j <= $nombre_el ; $j++) { If ($activation_disc [$i] == 3) { $mat_ok = 0 ; } ElseIf (($activation_disc [$i] == 4) Or ($activation_disc [$i] == 1)) { $mat_ok = test_matiere ($disc [$i], $id_classe, $sc [$i], $gp [$i], $stat_eleve [$j][0][0]) ; } ElseIf ($activation_disc [$i] == 2) { $mat_ok = 1 ; } If ($mat_ok == 1) { // OK pour cette discipline. $m = moyenne_el ($stat_eleve [$j][0][0], $id_classe, $periode, $disc [$i], $sc [$i], $sp [$i], 0, 0) ; //$appr = appreciation ($stat_eleve [$j][0][0], $prof_id [$i], $disc [$i], $sp [$i], $periode, 0) ; $appr = determine_appreciations ($nbr_col, $stat_eleve [$j][0][0], $prof_id [$i], $disc [$i], $sp [$i], $periode) ; If (Is_Numeric ($m)) { $stat_eleve [$j][$i+1][0] = 1 ; $stat_eleve [$j][$i+1][1] = $m ; //$stat_eleve [$j][$i+1][2] = filtre_appreciation ($appr) ; attribution_appreciations ($i, $j, $appr) ; // Statistiques : min, max, moy (nc et c) If ($m < $stat_eleve [0][$i+1][0]) { $stat_eleve [0][$i+1][0] = $m ; } If ($m > $stat_eleve [0][$i+1][1]) { $stat_eleve [0][$i+1][1] = $m ; } $stat_eleve [0][$i+1][2] += $m ; $stat_eleve [0][$i+1][3] += 1 ; } Else { // Pas de notes If ($m == $code_dispense) { $stat_eleve [$j][$i+1][0] = -1 ; $stat_eleve [$j][$i+1][1] = "D" ; //$stat_eleve [$j][$i+1][2] = filtre_appreciation ($appr) ; } ElseIf ($m == $code_aucune_note) { $stat_eleve [$j][$i+1][0] = -1 ; $stat_eleve [$j][$i+1][1] = "?" ; //$stat_eleve [$j][$i+1][2] = filtre_appreciation ($appr) ; } Else { $stat_eleve [$j][$i+1][0] = -2 ; $stat_eleve [$j][$i+1][1] = "-" ; //$stat_eleve [$j][$i+1][2] = filtre_appreciation ($appr) ; } attribution_appreciations ($i, $j, $appr) ; } } Else { // Pas cette discipline $stat_eleve [$j][$i+1][0] = 0 ; $stat_eleve [$j][$i+1][0] = "/" ; } } } } // Traitement des sous-matieres If ($impression_smat == 1) { $ok_smat = 0 ; $requete_insertion = "INSERT INTO moyennes (eleve,controle,service_classe,service_prof,periode,valeur,type,millesime) VALUES " ; $ok_insertion = 0 ; // Parcours les disciplines For ($i = 0 ; $i < $nbr_disc ; $i++) { If ($type_discipline [$i] == 0) { // Activation de l'impression sous-disciplines ? $imp_smat_1 = restaure_configuration ($sp [$i], "IMP_SMAT", 1) ; $imp_smat_2 = restaure_configuration ($sp [$i], "IMP_SMAT", 2) ; // Verification de l'existence de la sous-matiere $ok = SQL_commande ("SELECT id_sous_matiere FROM sous_matieres WHERE id_sous_matiere='".$imp_smat_1."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($ok) != 1) { $imp_smat_1 = 0 ; } //detruire_configuration ($id_service_prof, "IMP_SMAT", 1) ; } $ok = SQL_commande ("SELECT id_sous_matiere FROM sous_matieres WHERE id_sous_matiere='".$imp_smat_2."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($ok) != 1) { $imp_smat_2 = 0 ; } //detruire_configuration ($id_service_prof, "IMP_SMAT", 2) ; } $r = SQL_commande ("SELECT valeur FROM moyennes WHERE valeur!='' AND service_classe='".$sc [$i]."' AND service_prof='".$sp [$i]."' AND periode='".$periode."' AND type='11' AND millesime='".$millesime."'", $id_sql) ; //echo $imp_smat_1."<->".$imp_smat_2."<->".SQL_nbr_lignes ($r)."
" ; If ((($imp_smat_1 > 0) Or ($imp_smat_2 > 0)) And (SQL_nbr_lignes ($r) >= $nombre_el)) { //echo "OK
" ; $nom_sous_matieres [$i][0][0] = ($imp_smat_1 > 0)+($imp_smat_2 > 0) ; $ok_smat = 1 ; // Noms des sous-disciplines If ((integer)$imp_smat_1 > 0) { $r = SQL_commande ("SELECT nom FROM sous_matieres WHERE id_sous_matiere='".$imp_smat_1."' LIMIT 1", $id_sql) ; $rr1 = SQL_ligne_suivante ($r) ; If ((integer)$imp_smat_2 > 0) { $r = SQL_commande ("SELECT nom FROM sous_matieres WHERE id_sous_matiere='".$imp_smat_2."' LIMIT 1", $id_sql) ; $rr2 = SQL_ligne_suivante ($r) ; If ($rr1 [0] < $rr2 [0]) { $nom_sous_matieres [$i][1][0] = SubStr (filtrage_utf8 ($rr1 [0]), 0, $nbr_car_sous_matiere) ; $nom_sous_matieres [$i][1][1] = $imp_smat_1 ; $nom_sous_matieres [$i][2][0] = SubStr (filtrage_utf8 ($rr2 [0]), 0, $nbr_car_sous_matiere) ; $nom_sous_matieres [$i][2][1] = $imp_smat_2 ; } Else { $nom_sous_matieres [$i][1][0] = SubStr (filtrage_utf8 ($rr2 [0]), 0, $nbr_car_sous_matiere) ; $nom_sous_matieres [$i][1][1] = $imp_smat_2 ; $nom_sous_matieres [$i][2][0] = SubStr (filtrage_utf8 ($rr1 [0]), 0, $nbr_car_sous_matiere) ; $nom_sous_matieres [$i][2][1] = $imp_smat_1 ; } } Else { $nom_sous_matieres [$i][1][0] = SubStr (filtrage_utf8 ($rr1 [0]), 0, $nbr_car_sous_matiere) ; $nom_sous_matieres [$i][1][1] = $imp_smat_1 ; } } Else { $r = SQL_commande ("SELECT nom FROM sous_matieres WHERE id_sous_matiere='".$imp_smat_2."' LIMIT 1", $id_sql) ; $rr1 = SQL_ligne_suivante ($r) ; $nom_sous_matieres [$i][1][0] = SubStr (filtrage_utf8 ($rr1 [0]), 0, $nbr_car_sous_matiere) ; $nom_sous_matieres [$i][1][1] = $imp_smat_2 ; } // Parcours les eleves For ($j = 1 ; $j <= $nombre_el ; $j++) { If ($activation_disc [$i] == 3) { $mat_ok = 0 ; } ElseIf (($activation_disc [$i] == 4) Or ($activation_disc [$i] == 1)) { $mat_ok = test_matiere ($disc [$i], $id_classe, $sc [$i], $gp [$i], $stat_eleve [$j][0][0]) ; } ElseIf ($activation_disc [$i] == 2) { $mat_ok = 1 ; } If ($mat_ok == 1) { // OK pour cette discipline For ($k = 1 ; $k <= $nom_sous_matieres [$i][0][0] ; $k++) { // Recherche moyenne sous-matiere $r = SQL_commande ("SELECT valeur FROM moyennes WHERE eleve='".$stat_eleve [$j][0][0]."' AND controle='".$nom_sous_matieres [$i][$k][1]."' AND service_classe='".$sc [$i]."' AND service_prof='".$sp [$i]."' AND periode='".$periode."' AND type='11' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($r) == 1) { $rr = SQL_ligne_suivante ($r) ; If (Is_Numeric ($rr [0]) And ($rr [0] != 0)) { $note = arrondi_note ($rr [0], $etablissement ["nombre_chiffres"]) ; $note_sous_matieres [$i][$j][$k] = Str_Replace (".", ",", $note) ; } Else { For ($kk = $k+1 ; $kk <= $nom_sous_matieres [$i][0][0] ; $kk++) { $nom_sous_matieres [$kk-1][1][0] = $nom_sous_matieres [$kk][1][0] ; $nom_sous_matieres [$kk-1][1][1] = $nom_sous_matieres [$kk][1][0] ; } $nom_sous_matieres [$i][0][0]-- ; } } Else { // Calcul de la sous-moyenne // Obtient les notes/coefficients des controles $resultat = SQL_commande ("SELECT n.valeur,c.coefficient,c.max FROM notes n,controles c WHERE c.classe='".$id_classe."' AND c.discipline='".$disc [$i]."' AND c.periode='".$periode."' AND c.service_prof='".$sp [$i]."' AND c.millesime='".$millesime."' AND c.sous_matiere='".$nom_sous_matieres [$i][$k][1]."' AND n.controle=c.id_controle AND n.eleve='".$stat_eleve [$j][0][0]."' AND n.millesime=c.millesime", $id_sql) ; $nombre_val = SQL_nbr_lignes ($resultat) ; $somme_smat = $coeff_smat = 0 ; For ($l = 1 ; $l <= $nombre_val ; $l++) { $r = SQL_ligne_suivante ($resultat) ; $somme_smat += ($r [0]*$etablissement ["max"]/$r [2])*$r [1] ; // On ramene la note sur $etablissement ["max"] et on applique le coeff $coeff_smat += $r [1] ; // Somme des coeff } If ($ok_insertion == 1) { $requete_insertion .= "," ; } If ($coeff_smat > 0) { $requete_insertion .= "('".$stat_eleve [$j][0][0]."','".$nom_sous_matieres [$i][$k][1]."','".$sc [$i]."','".$sp [$i]."','".$periode."','".($somme_smat/$coeff_smat)."','11','".$millesime."')" ; $ok_insertion = 1 ; } If (($coeff_smat > 0) And ($note != 0)) { $note = arrondi_note ($somme_smat/$coeff_smat, $etablissement ["nombre_chiffres"]) ; If ($note < 10) { $note = "0".$note ; } $note_sous_matieres [$i][$j][$k] = Str_Replace (".", ",", $note) ; } Else { For ($kk = $k+1 ; $kk <= $nom_sous_matieres [$i][0][0] ; $kk++) { $nom_sous_matieres [$kk-1][1][0] = $nom_sous_matieres [$kk][1][0] ; $nom_sous_matieres [$kk-1][1][1] = $nom_sous_matieres [$kk][1][0] ; } $nom_sous_matieres [$i][0][0]-- ; } } } } Else { $note_sous_matieres [$i][$j][1] = "-" ; } } } Else { $nom_sous_matieres [$i][0][0] = 0 ; } } } If ($ok_insertion == 1) { $ok = SQL_commande ($requete_insertion, $id_sql) ; } // Reconfiguration If ($ok_smat == 1) { $impression_smat = 1 ; // Largeur Matieres/Professeurs $cadre_mat [1][4] = 4.7 ; // -0.7 // Largeur Moyenne eleve $cadre_mat [1][5] = 1.8 ; // +0.8 // Largeur Moy/Min/Max classe $cadre_mat [1][6] = 0.7 ; // -0.1 // Largeur Appreciations/Professeur pincipal $cadre_mat [1][7] = $cadre_mat [1][1]-$cadre_mat [1][0]-$cadre_mat [1][4]-$cadre_mat [1][5]-3*$cadre_mat [1][6] ; $cadre_mat [1][8] = Floor (($cadre_mat [1][7]-0.1)*$echelle_x/6) ; // Nombre caracteres // Def texte Matieres/Professeurs // Entete $cadre_mat [3][0] = "Helvetica-Bold" ; // Police Matiere $cadre_mat [3][1] = "8" ; // Taille $cadre_mat [3][2] = "Helvetica-Oblique" ; // Police Prof $cadre_mat [3][3] = "8" ; // Taille // Matiere $cadre_mat [3][4] = "Helvetica-Bold" ; // Police Matiere $cadre_mat [3][5] = "7" ; // Taille $cadre_mat [3][6] = "Helvetica-Oblique" ; // Police Prof $cadre_mat [3][7] = "8" ; // Taille // Def texte Moyenne eleve // Entete $cadre_mat [4][0] = "Helvetica" ; // Police $cadre_mat [4][1] = "8" ; // Taille // Matiere $cadre_mat [4][2] = "Helvetica-Bold" ; // Police $cadre_mat [4][3] = "7" ; // Taille // Def texte Moy/Min/Max Classe // Entete $cadre_mat [5][0] = "Helvetica" ; // Police $cadre_mat [5][1] = "7" ; // Taille // Matiere $cadre_mat [5][2] = "Helvetica" ; // Police $cadre_mat [5][3] = "6" ; // Taille // Def texte Appreciations/Professeur pincipal // Entete $cadre_mat [6][0] = "Helvetica-Bold" ; // Police Appreciations $cadre_mat [6][1] = "8" ; // Taille $cadre_mat [6][2] = "Helvetica" ; // Police Prof principal $cadre_mat [6][3] = "8" ; // Taille // Matiere $cadre_mat [6][4] = "Helvetica" ; // Police Appreciations $cadre_mat [6][5] = "8" ; // Taille // Examen blanc $cadre_mat [6][6] = "Helvetica" ; // Police Notes Examen blanc $cadre_mat [6][7] = "8" ; // Taille // Sous-matieres // Nom $cadre_mat [7][0] = "Helvetica" ; // Police Nom sous-matiere $cadre_mat [7][1] = "6" ; // Taille // Note $cadre_mat [7][2] = "Helvetica" ; // Police Note sous-matiere $cadre_mat [7][3] = "7" ; // Taille // Taille case moyenne $cadre_mat [7][4] = 0.8 ; If (($cadre_mat [0][2] == 5) And ($cadre_mat [0][3] == 6)) { // Largeur Moyenne periodique/Moyenne coefficientee $cadre_moy_gen [1][4] = $cadre_mat [1][4] ; // Largeur Moyenne eleve $cadre_moy_gen [1][5] = $cadre_mat [1][5] ; // Largeur Moy/Min/Max classe $cadre_moy_gen [1][6] = $cadre_mat [1][6] ; // Cadre $cadre_moy_gen [1][0] = $marge_gauche ; // Debut cadre X $cadre_moy_gen [1][1] = $marge_gauche+$cadre_moy_gen [1][4]+3*$cadre_moy_gen [1][6]+$cadre_moy_gen [1][5] ; // Fin cadre X $cadre_moy_gen [1][2] = 0.70 ; // Hauteur moyenne non coefficientee $cadre_moy_gen [1][3] = 0.35 ; // Hauteur moyenne coefficientee } Else { // Largeur Moyenne periodique/Moyenne coefficientee $cadre_moy_gen [1][4] = 4.5 ; // Largeur Moyenne eleve $cadre_moy_gen [1][5] = $cadre_mat [1][5] ; // Largeur Moy/Min/Max classe $cadre_moy_gen [1][6] = $cadre_mat [1][6] ; // Cadre $cadre_moy_gen [1][0] = $largeur-$marge_droite-$cadre_moy_gen [1][4]-$cadre_moy_gen [1][5]-3*$cadre_moy_gen [1][6] ; // Debut cadre X $cadre_moy_gen [1][1] = $largeur-$marge_droite ; // Fin cadre X $cadre_moy_gen [1][2] = 0.70 ; // Hauteur moyenne non coefficientee $cadre_moy_gen [1][3] = 0.35 ; // Hauteur moyenne coefficientee } // Def texte Moyenne periodique/Moyenne coefficientee $cadre_moy_gen [3][0] = "Helvetica" ; // Police Moyennes $cadre_moy_gen [3][1] = "8" ; // Taille $cadre_moy_gen [3][2] = "Helvetica" ; // Police Coefficientee $cadre_moy_gen [3][3] = "8" ; // Taille // Def texte Moyenne eleve $cadre_moy_gen [4][0] = "Helvetica-Bold" ; // Police $cadre_moy_gen [4][1] = "7" ; // Taille // Def texte Moy/Min/Max Classe $cadre_moy_gen [5][0] = "Helvetica" ; // Police $cadre_moy_gen [5][1] = "6" ; // Taille } Else { $impression_smat = 0 ; } } Else { $nom_sous_matieres [0][0][0] = $note_sous_matieres [0][0] = 0 ; $impression_smat = 0 ; } // Discipline CPE a ajouter If (($bulletin_cpe == 3) Or ($bulletin_cpe == 4)) { // Recherche CPE $id_cpe = SQL_commande ("SELECT u.id_utilisateur,u.civilite,u.nom,u.prenom,c.coefficient_vs FROM utilisateurs u,classes c WHERE c.id_classe='".$id_classe."' AND c.cpe=u.id_utilisateur LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($id_cpe) == 1) { $r = SQL_ligne_suivante ($id_cpe) ; $aff_cpe [0][0] = $r [0] ; // Id $aff_cpe [0][1] = $r [1] ; // Civilite $aff_cpe [0][2] = $r [2] ; // Nom $aff_cpe [0][3] = $r [3] ; // Prenom $aff_cpe [0][4] = $r [4] ; // Coefficient } Else { $id_cpe = SQL_commande ("SELECT coefficient_vs FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; $r = SQL_ligne_suivante ($id_cpe) ; $aff_cpe [0][0] = 0 ; // Id $aff_cpe [0][1] = 0 ; // Civilite $aff_cpe [0][2] = "" ; // Nom $aff_cpe [0][3] = "" ; // Prenom $aff_cpe [0][4] = $r [0] ; // Coefficient } $total_notes = 0 ; $nbr_notes = 0 ; $resultat_el = SQL_commande ("SELECT id_eleve FROM eleves WHERE classe='".$id_classe."' AND millesime='".$millesime."' ORDER BY nom,prenoms", $id_sql) ; $nombre_el = SQL_nbr_lignes ($resultat_el) ; For ($i = 1 ; $i <= $nombre_el ; $i++) { UnSet ($r) ; UnSet ($res) ; $res = SQL_commande ("SELECT note,commentaire FROM vie_scolaire WHERE eleve='".$stat_eleve [$i][0][0]."' AND periode='".$periode."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($res) == 1) { $r = SQL_ligne_suivante ($res) ; } Else { $r [0] = 0 ; } If ($r [0] == "") { $r [0] = 0 ; } $aff_cpe [$i][0] = $r [0] ; // Note $aff_cpe [$i][1] = filtrage_utf8 ($r [1]) ; // Commentaire } // Calcul min, max et moy classe For ($i = 1 ; $i <= $nombre_el ; $i++) { $res = SQL_commande ("SELECT note FROM vie_scolaire WHERE eleve='".$stat_eleve [$i][0][0]."' AND periode='".$periode."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($res) == 1) { $r = SQL_ligne_suivante ($res) ; } Else { $r [0] = 0 ; } If ($r [0] == "") { $r [0] = 0 ; } $total_notes += $r [0] ; $nbr_notes++ ; If ($i > 1) { If ($aff_cpe [0][5] > $r [0]) { $aff_cpe [0][5] = $r [0] ; } If ($aff_cpe [0][6] < $r [0]) { $aff_cpe [0][6] = $r [0] ; } } Else { $aff_cpe [0][5] = $r [0] ; // Min $aff_cpe [0][6] = $r [0] ; // Max } } // Moy If ($nbr_notes > 0) { $aff_cpe [0][7] = $total_notes/$nbr_notes ; } Else { $aff_cpe [0][7] = 0 ; } } // Met a 1 ok dans calcul moyenne $ok = SQL_commande ("UPDATE calcul_moyenne SET ok='1' WHERE classe='".$id_classe."' AND periode='".$periode."' AND millesime='".$millesime."'", $id_sql) ; // Creation des pages PDF $numero_page = 1 ; // Pour chaque eleve : creation du bulletin des releves des notes // // Requetes eleves $resultat_el = SQL_commande ("SELECT * FROM eleves WHERE classe='".$id_classe."' AND millesime='".$millesime."' ORDER BY nom,prenoms", $id_sql) ; $nombre_el = SQL_nbr_lignes ($resultat_el) ; For ($i = 1 ; $i <= $nombre_el ; $i++) { $lin_el = SQL_tableau_associatif ($resultat_el, "") ; If ((IsSet ($id_eleve) And ($id_eleve == 0)) Or (IsSet ($id_eleve) And ($id_eleve == $lin_el ["id_eleve"]))) { If (($bulletin_cpe != 3) And ($bulletin_cpe != 4)) { $resultat_cpe = SQL_commande ("SELECT * FROM vie_scolaire WHERE eleve='".$lin_el ["id_eleve"]."' AND periode='".$periode."' LIMIT 1", $id_sql) ; $cpe = SQL_tableau_associatif ($resultat_cpe, "") ; If ((integer)$cpe ["cpe"] == 0) { // Pas de saisie CPE donc on test si il existe pour la classe et si le module absences existe $id_cpe = SQL_commande ("SELECT u.id_utilisateur FROM utilisateurs u, classes c WHERE c.id_classe='".$id_classe."' AND c.cpe=u.id_utilisateur LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($id_cpe) == 1) { $r = SQL_ligne_suivante ($id_cpe) ; // Si le CPE est trouve et que le module absences existe alors calcul des absences eventuelles If ($module_absences == 1) { // Recherche la periode $dates_periode = SQL_commande ("SELECT debut,fin FROM periodes_classe WHERE classe='".$id_classe."' AND numero='".$periode."' LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($dates_periode) == 1) { // Comptabilisation $cpe ["cpe"] = $r [0] ; $dp = SQL_ligne_suivante ($dates_periode) ; // Recherche le nombre absences/non justifies/retards en demi-heure pour cet eleve // Absences $nbr = SQL_commande ("SELECT COUNT(id_abs_saisie) FROM abs_saisies s,abs_types_saisie t WHERE s.date>='".$dp [0]."' AND s.date<='".$dp [1]."' AND s.eleve='".$lin_el ["id_eleve"]."' AND t.type='1' AND t.id_abs_type_saisie=s.type", $id_sql) ; $r = SQL_ligne_suivante ($nbr) ; $cpe ["absences"] = arrondi ($r [0], $unite_comptabilisation, 1) ; // Non justifiees $nbr = SQL_commande ("SELECT COUNT(id_abs_saisie) FROM abs_saisies s,abs_types_saisie t WHERE s.date>='".$dp [0]."' AND s.date<='".$dp [1]."' AND s.eleve='".$lin_el ["id_eleve"]."' AND regularisation='0' AND t.type='1' AND t.id_abs_type_saisie=s.type", $id_sql) ; $r = SQL_ligne_suivante ($nbr) ; $cpe ["non_justifiees"] = arrondi ($r [0], $unite_comptabilisation, 1) ; // Retards $nbr = SQL_commande ("SELECT COUNT(id_abs_saisie) FROM abs_saisies s,abs_types_saisie t WHERE s.date>='".$dp [0]."' AND s.date<='".$dp [1]."' AND s.eleve='".$lin_el ["id_eleve"]."' AND t.type='2' AND t.id_abs_type_saisie=s.type", $id_sql) ; $r = SQL_ligne_suivante ($nbr) ; $cpe ["retards"] = arrondi ($r [0], $unite_comptabilisation, 1) ; } Else { $cpe ["cpe"] = 0 ; } } Else { $cpe ["cpe"] = 0 ; } } Else { $cpe ["cpe"] = $cpe ["absences"] = $cpe ["non_justifiees"] = $cpe ["retards"] = 0 ; } } } // Determine le nombre de bulletins en fonction du nombre de responsables possibles differents ou forcage $imp_un_bulletin = restaure_configuration ("SYSTEME_PARAM", "IMP_UN_BULLETIN_".$id_utilisateur, $id_classe) ; If ($imp_un_bulletin == "") { sauvegarde_configuration ("SYSTEME_PARAM", "IMP_UN_BULLETIN_".$id_utilisateur, $id_classe, 0) ; $imp_un_bulletin = 0 ; } If (($lin_el ["nom_parents_p2"] != "") And ($lin_el ["adresse1_p2"] != "") And ($lin_el ["cp_p2"] != "") And ($lin_el ["adresse1"].$lin_el ["adresse2"] != $lin_el ["adresse1_p2"].$lin_el ["adresse2_p2"]) And ($imp_un_bulletin == 0)) { $nombre_bulletin_parents = 2 ; } Else { $nombre_bulletin_parents = 1 ; } // Appreciation de l'equipe pedagogique $texte_aep = appreciation_equipe_pedagogique ($lin_el ["id_eleve"], $id_classe, $periode) ; For ($numero_bulletin_parent = 1 ; $numero_bulletin_parent <= $nombre_bulletin_parents ; $numero_bulletin_parent++) { $page [$numero_page] = $pdf->New_Page ("a4") ; // Entetes If ($etablissement ["imprimer_logo_bulletins"] == 1) { entete_etablissement ($numero_page, $etablissement, $etablissement ["logo_bulletins"], $cadre_adresse) ; } Else { entete_etablissement ($numero_page, $etablissement, "", $cadre_adresse) ; } entete_periode ($numero_page, $periode, $id_classe) ; entete_eleve ($numero_page, $lin_el, $nombre_el) ; If ($cadre_adresse == 1) { entete_parents ($numero_page, $lin_el, $numero_bulletin_parent) ; } $y = entete_matieres ($numero_page, $prof_princ, 0, $cadre_adresse) ; // Parcours les disciplines et recherche les moyennes et appreciations $nbr_page = 1 ; $nbr_disc_aff = 0 ; $mini_nc = $maxi_min ; $maxi_nc = $mini_max ; $somme_moy_nc = 0 ; $nombre_moy_nc = 0 ; $somme_moy_cl_nc = 0 ; $nombre_moy_cl_nc = 0 ; $mini_c = $maxi_min ; $maxi_c = $mini_max ; $somme_moy_c = 0 ; $nombre_moy_c = 0 ; $somme_moy_cl_c = 0 ; $nombre_moy_cl_c = 0 ; $somme_min_cl_c = 0 ; $nombre_min_cl_c = 0 ; $somme_max_cl_c = 0 ; $nombre_max_cl_c = 0 ; For ($k = 0 ; $k < $nbr_disc ; $k++) { If ($stat_eleve [$i][$k+1][0] != 0) { // OK pour cette discipline. If ($nbr_disc_aff == $nbr_max_disciplines) { $y = $marge_bas+0.5 ; $y_p [$nbr_page] = $y ; bas_page ($numero_page, $y) ; $numero_page++ ; $nbr_page++ ; $page [$numero_page] = $pdf->New_Page ("a4") ; // Entetes If ($etablissement ["entete_bulletins"] == 0) { If ($etablissement ["imprimer_logo_bulletins"] == 1) { entete_etablissement ($numero_page, $etablissement, $etablissement ["logo_bulletins"], $cadre_adresse) ; } Else { entete_etablissement ($numero_page, $etablissement, "", $cadre_adresse) ; } } entete_periode ($numero_page, $periode, $id_classe) ; entete_eleve ($numero_page, $lin_el, $nombre_el) ; $y = entete_matieres ($numero_page, $prof_princ, 1, $cadre_adresse) ; } $nbr_disc_aff = $nbr_disc_aff + 1 ; // Examen blanc If ($examen == 1) { // Recherche et construit la chaine pour la discipline $sous_mat = SQL_commande ("SELECT s.nom, n.valeur FROM controles c, sous_matieres s, notes n WHERE c.classe='".$id_classe."' AND c.discipline='".$disc [$k]."' AND c.examen>'0' AND c.sous_matiere>'0' AND c.sous_matiere=s.id_sous_matiere AND c.periode='".$periode."' AND n.controle=c.id_controle AND n.eleve='".$lin_el ["id_eleve"]."' AND c.millesime='".$millesime."' ORDER BY s.nom", $id_sql) ; If (SQL_nbr_lignes ($sous_mat) > 0) { $chaine = "Éxamen blanc : " ; For ($ik = 0 ; $ik < SQL_nbr_lignes ($sous_mat) ; $ik++) { $sd = SQL_ligne_suivante ($sous_mat) ; If ($ik > 0) { $chaine .= " ; " ; } $chaine .= $sd [0]."=".$sd [1] ; } $ok_examen = 1 ; } Else { $ok_examen = 0 ; $chaine = "" ; } } Else { $ok_examen = 0 ; $chaine = "" ; } If ($stat_eleve [$i][$k+1][0] == 1) { If ($stat_eleve [0][$k+1][3] > 0) { $moy = $stat_eleve [0][$k+1][2]/$stat_eleve [0][$k+1][3] ; } Else { $moy ="-" ; } $note = arrondi_note ($stat_eleve [$i][$k+1][1], $etablissement ["nombre_chiffres"]) ; If ($note < 10) { $note = "0".$note ; } /* $y = matiere ($numero_page, $y, $nom_disc [$k], $prof_id [$k], $prof_civ [$k], $prof_nom [$k], $prof_prenom [$k], $prof_coeff [$k], $stat_eleve [$i][$k+1][2], Str_Replace (".", ",", arrondi_note ($stat_eleve [0][$k+1][0], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", arrondi_note ($moy, $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", arrondi_note ($stat_eleve [0][$k+1][1], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", $note), $rs_cl ["coefficient"], $etablissement ["coefficient"], $ok_examen, $chaine, $k, $i, $activation_disc [$k], $alias [$k], $type_moyenne [$k]) ; */ $y = matiere ($numero_page, $y, $nom_disc [$k], $prof_id [$k], $prof_civ [$k], $prof_nom [$k], $prof_prenom [$k], $prof_coeff [$k], $i, $k+1, Str_Replace (".", ",", arrondi_note ($stat_eleve [0][$k+1][0], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", arrondi_note ($moy, $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", arrondi_note ($stat_eleve [0][$k+1][1], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", $note), $rs_cl ["coefficient"], $etablissement ["coefficient"], $ok_examen, $chaine, $k, $i, $activation_disc [$k], $alias [$k], $type_moyenne [$k]) ; // Determine mini, maxi, moy If ($stat_eleve [0][$k+1][0] < $mini_nc) { $mini_nc = $stat_eleve [0][$k+1][0] ; } If ($stat_eleve [0][$k+1][1] > $maxi_nc) { $maxi_nc = $stat_eleve [0][$k+1][1] ; } $somme_moy_nc += $stat_eleve [$i][$k+1][1] ; $nombre_moy_nc += 1 ; $somme_moy_cl_nc += $moy ; $nombre_moy_cl_nc += 1 ; $somme_moy_c += $prof_coeff [$k]*$stat_eleve [$i][$k+1][1] ; $nombre_moy_c += $prof_coeff [$k] ; $somme_moy_cl_c += $prof_coeff [$k]*$moy ; $nombre_moy_cl_c += $prof_coeff [$k] ; $somme_min_cl_c += $prof_coeff [$k]*$stat_eleve [0][$k+1][0] ; $nombre_min_cl_c += $prof_coeff [$k] ; $somme_max_cl_c += $prof_coeff [$k]*$stat_eleve [0][$k+1][1] ; $nombre_max_cl_c += $prof_coeff [$k] ; } Else { /* $y = matiere ($numero_page, $y, $nom_disc [$k], $prof_id [$k], $prof_civ [$k], $prof_nom [$k], $prof_prenom [$k], $prof_coeff [$k], $stat_eleve [$i][$k+1][2], "","","","",$rs_cl ["coefficient"], $etablissement ["coefficient"], $ok_examen, $chaine, $k, $i, $activation_disc [$k], $alias [$k], $type_moyenne [$k]) ; */ $y = matiere ($numero_page, $y, $nom_disc [$k], $prof_id [$k], $prof_civ [$k], $prof_nom [$k], $prof_prenom [$k], $prof_coeff [$k], $i, $k+1, "","","","",$rs_cl ["coefficient"], $etablissement ["coefficient"], $ok_examen, $chaine, $k, $i, $activation_disc [$k], $alias [$k], $type_moyenne [$k]) ; } $j++ ; } } // Discipline CPE If (($bulletin_cpe == 3) Or ($bulletin_cpe == 4)) { If ($nbr_disc_aff == $nbr_max_disciplines) { $y = $marge_bas+0.5 ; $y_p [$nbr_page] = $y ; bas_page ($numero_page, $y) ; $numero_page++ ; $nbr_page++ ; $page [$numero_page] = $pdf->New_Page ("a4") ; // Entetes If ($etablissement ["entete_bulletins"] == 0) { If ($etablissement ["imprimer_logo_bulletins"] == 1) { entete_etablissement ($numero_page, $etablissement, $etablissement ["logo_bulletins"], $cadre_adresse) ; } Else { entete_etablissement ($numero_page, $etablissement, "", $cadre_adresse) ; } } entete_periode ($numero_page, $periode, $id_classe) ; entete_eleve ($numero_page, $lin_el, $nombre_el) ; $y = entete_matieres ($numero_page, $prof_princ, 1, $cadre_adresse) ; } $nbr_disc_aff++ ; If ($bulletin_cpe == 3) { $note = arrondi_note ($aff_cpe [$i][0], $etablissement ["nombre_chiffres"]) ; If ($note < 10) { $note = "0".$note ; } $y = matiere ($numero_page, $y, "VIE SCOLAIRE", $aff_cpe [0][0], $aff_cpe [0][1], $aff_cpe [0][2], $aff_cpe [0][3], $aff_cpe [0][4], -1, $aff_cpe [$i][1], "", "", "", Str_Replace (".", ",", $note), $rs_cl ["coefficient"], $etablissement ["coefficient"], 0, "", $k, $i, $activation_disc [$k], $alias [$k], $type_moyenne [$k]) ; } ElseIf ($bulletin_cpe == 4) { $note = arrondi_note ($aff_cpe [$i][0], $etablissement ["nombre_chiffres"]) ; If ($note < 10) { $note = "0".$note ; } /* $y = matiere ($numero_page, $y, "VIE SCOLAIRE", $aff_cpe [0][0], $aff_cpe [0][1], $aff_cpe [0][2], $aff_cpe [0][3], $aff_cpe [0][4], $aff_cpe [$i][1], Str_Replace (".", ",", arrondi_note ($aff_cpe [0][5], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", arrondi_note ($aff_cpe [0][7], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", arrondi_note ($aff_cpe [0][6], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", $note), $rs_cl ["coefficient"], $etablissement ["coefficient"], 0, "", $k, $i, $activation_disc [$k], $alias [$k], $type_moyenne [$k]) ; */ $y = matiere ($numero_page, $y, "VIE SCOLAIRE", $aff_cpe [0][0], $aff_cpe [0][1], $aff_cpe [0][2], $aff_cpe [0][3], $aff_cpe [0][4], -1, $aff_cpe [$i][1], Str_Replace (".", ",", arrondi_note ($aff_cpe [0][5], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", arrondi_note ($aff_cpe [0][7], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", arrondi_note ($aff_cpe [0][6], $etablissement ["nombre_chiffres"])), Str_Replace (".", ",", $note), $rs_cl ["coefficient"], $etablissement ["coefficient"], 0, "", $k, $i, $activation_disc [$k], $alias [$k], $type_moyenne [$k]) ; } // Determine mini, maxi, moy If ($aff_cpe [0][5] < $mini_nc) { $mini_nc = $aff_cpe [0][5] ; } If ($aff_cpe [0][6] > $maxi_nc) { $maxi_nc = $aff_cpe [0][6] ; } $somme_moy_nc += $aff_cpe [$i][0] ; $nombre_moy_nc += 1 ; $somme_moy_cl_nc += $aff_cpe [0][7] ; $nombre_moy_cl_nc += 1 ; $somme_moy_c += $aff_cpe [0][4]*$aff_cpe [$i][0] ; $nombre_moy_c += $aff_cpe [0][4] ; $somme_moy_cl_c += $aff_cpe [0][4]*$aff_cpe [0][7] ; $nombre_moy_cl_c += $aff_cpe [0][4] ; $somme_min_cl_c += $aff_cpe [0][4]*$aff_cpe [0][5] ; $nombre_min_cl_c += $aff_cpe [0][4] ; $somme_max_cl_c += $aff_cpe [0][4]*$aff_cpe [0][6] ; $nombre_max_cl_c += $aff_cpe [0][4] ; } // Affichage des moyennes coeff et non coeff If ($nombre_moy_nc > 0) { $moy_nc = $somme_moy_nc/$nombre_moy_nc ; } Else { $moy_nc = "" ; } If ($nombre_moy_cl_nc > 0) { $moy_cl_nc = $somme_moy_cl_nc/$nombre_moy_cl_nc ; } Else { $moy_cl_nc = "" ; } If ($nombre_moy_c > 0) { $moy_c = $somme_moy_c/$nombre_moy_c ; } Else { $moy_c = "" ; } If ($nombre_moy_cl_c > 0) { $moy_cl_c = $somme_moy_cl_c/$nombre_moy_cl_c ; } Else { $moy_cl_c = "" ; } If ($nombre_min_cl_c > 0) { $min_cl_c = $somme_min_cl_c/$nombre_min_cl_c ; } Else { $min_cl_c = "" ; } If ($nombre_max_cl_c > 0) { $max_cl_c = $somme_max_cl_c/$nombre_max_cl_c ; } Else { $max_cl_c = "" ; } If ($mini_nc == $maxi_min) { $mini_nc = "" ; $maxi_nc = "" ; $moy_nc = "" ; $moy_cl_nc = "" ; } If ($min_cl_c == $maxi_min) { $min_cl_c = "" ; $max_cl_c = "" ; $moy_c = "" ; $moy_cl_c = "" ; } $y = moyennes ($numero_page,$y,Str_Replace (".",",",arrondi_note ($mini_nc, $etablissement ["nombre_chiffres"])), Str_Replace (".",",",arrondi_note ($moy_cl_nc, $etablissement ["nombre_chiffres"])), Str_Replace (".",",",arrondi_note ($maxi_nc, $etablissement ["nombre_chiffres"])), Str_Replace (".",",",arrondi_note ($moy_nc, $etablissement ["nombre_chiffres"])), Str_Replace (".",",",arrondi_note ($min_cl_c, $etablissement ["nombre_chiffres"])), Str_Replace (".",",",arrondi_note ($moy_cl_c, $etablissement ["nombre_chiffres"])), Str_Replace (".",",",arrondi_note ($max_cl_c, $etablissement ["nombre_chiffres"])), Str_Replace (".",",",arrondi_note ($moy_c, $etablissement ["nombre_chiffres"])), $id_classe,$rs_cl ["coefficient"],$etablissement ["aff_moy_nc"],$etablissement ["aff_moy_c"], $etablissement ["aff_nc"],$etablissement ["aff_c"]) ; // Bas de page : vie scolaire, equipe pedagogique et numero de page avec copyright If ((($nbr_disc_aff == $nbr_max_disciplines) Or (($nbr_disc_aff > $nombre_disciplines) And ($nbr_disc_aff < $nbr_max_disciplines))) And ($y<$marge_bas+2+(($bulletin_cpe != 3) And ($bulletin_cpe != 4)))) { $y = $marge_bas+0.5 ; $y_p [$nbr_page] = $y ; bas_page ($numero_page, $y) ; $numero_page++ ; $nbr_page++ ; $page [$numero_page] = $pdf->New_Page ("a4") ; // Entetes If ($etablissement ["entete_bulletins"] == 0) { If ($etablissement ["imprimer_logo_bulletins"] == 1) { entete_etablissement ($numero_page, $etablissement, $etablissement ["logo_bulletins"], $cadre_adresse) ; } Else { entete_etablissement ($numero_page, $etablissement, "", $cadre_adresse) ; } } entete_periode ($numero_page, $periode, $id_classe) ; entete_eleve ($numero_page, $lin_el, $nombre_el) ; $y = $cadre_eleve [1][3]-0.1 ; If (($bulletin_cpe != 3) And ($bulletin_cpe != 4) And ($etablissement ["bulletin_cpe"] > 0)) { $y = vie_scolaire ($numero_page, $y, $cpe, $id_classe, $etablissement ["bulletin_cpe"]) ; } $y -= 0.1 ; $y = equipe_pedagogique ($numero_page, $y, $signature, $texte_aep) ; $y = $marge_bas+0.5 ; bas_page ($numero_page, $y) ; $y_p [$nbr_page] = $y ; affiche_page ($numero_page, $y_p, $nbr_page) ; } Else { $y -= 0.1 ; If (($bulletin_cpe != 3) And ($bulletin_cpe != 4) And ($etablissement ["bulletin_cpe"] > 0)) { $y = vie_scolaire ($numero_page, $y, $cpe, $id_classe, $etablissement ["bulletin_cpe"]) ; } $y -= 0.1 ; $y = equipe_pedagogique ($numero_page, $y, $signature, $texte_aep) ; $y = $marge_bas+0.5 ; bas_page ($numero_page, $y) ; If ($nbr_page > 1) { $y_p [$nbr_page] = $y ; affiche_page ($numero_page, $y_p, $nbr_page) ; } } $numero_page++ ; } } } $bulletin = $pdf->Generate (0) ; $fiche = FOpen ("../../tmp/f".Session_Id().".pdf", "w") ; FPuts ($fiche, $bulletin) ; FClose ($fiche) ; //Header ("Content-type: application/pdf") ; //Header ("Content-Disposition: attachment; filename=\"bulletin_".Str_Replace (" ", "_", nom_classe_long_parid ($id_classe)).".pdf\""); //Header ("Content-Disposition: inline; filename=bulletin_".Str_Replace (" ", "_", nom_classe_long_parid ($id_classe)).".pdf") ; //Header ("Content-Type: application/pdf") ; //Echo $pdf->Generate () ; //ReadFile ("../../tmp/b".Session_Id().".pdf") ; //@UnLink ("../../tmp/b".Session_Id().".pdf") ; Header ("Location: ../../tmp/f".Session_Id().".pdf") ; //@UnLink ("../../tmp/b".Session_Id().".pdf") ; ?>" ; Exit ; } } $requete = "SELECT DISTINCT t.identifiant,t.nom,t.menu,g.id_utilisateur AS utilisateur FROM gestion_modules g,types_modules t WHERE " ; If ($droit_courant != $droit_admin) { $requete .= "t.actif='1' AND " ; } $requete .= "(g.id_utilisateur='".$id_utilisateur."' OR g.id_utilisateur='0') AND g.droits='".$droit_courant."' AND t.identifiant=g.identifiant ORDER BY t.identifiant" ; $modls = SQL_commande ($requete, $id_sql) ; $module [0][0] = SQL_nbr_lignes ($modls) ; If ($module [0][0] > 0) { For ($i = 1 ; $i <= $module [0][0] ; $i++) { $ligne = SQL_tableau_associatif ($modls, "") ; $module [$i]["identifiant"] = $ligne ["identifiant"] ; $module [$i]["nom"] = $ligne ["nom"] ; $module [$i]["menu"] = $ligne ["menu"] ; $module [$i]["utilisateur"] = $ligne ["utilisateur"] ; } If (($l ["target"] == $l ["couleur_texte"]) Or (SubStr ($l ["target"], 0, 1) != "#")) { $l ["target"] = $l ["couleur_fond"] ; } Echo "" ; entete_html ("Garennes", "_top", 0) ; //Echo styles ("none", "none", "none", "none", "none") ; // Creation du menu en javascript Echo "" ; Include ("./menu.js") ; Echo "" ; Echo "" ; Echo "
" ; Echo "" ; } Else { // Aucun module disponible pour l'utilisateur Echo "" ; Echo "
Aucun menu
n'est disponible.
" ; Echo "" ; } ?>" ; entete_html ("Garennes - Choisir une photo.", "travail", 1) ; $fen = var_courante ("fen", 0, null) ; $util = var_courante ("util", 0, 1) ; $id_util = var_courante ("id_util", 0, 0) ; $id_classe = var_courante ("id_classe", 0, 0) ; $type_liste = var_courante ("type_liste", 0, null) ; $nombre_colonnes = var_courante ("nombre_colonnes", 0, null) ; $nbr = var_courante ("nbr", 0, 5) ; $lettre = var_courante ("lettre", 0, "A") ; $maj = var_courante ("maj", 0, null) ; $choix = var_courante ("choix", 0, "") ; $telech = var_courante ("telech", 0, 0) ; $millesime = millesime (0) ; $id_utilisateur = utilparcode ($_SESSION ["code"]) ; If (!IsSet ($type_liste)) { $type_liste = restaure_configuration ("SYSTEME_PARAM","ATTRIBUTION_PHOTOS","TYPE_LISTE_".$id_utilisateur) ; If ($type_liste == "") { $type_liste = 0 ; } } sauvegarde_configuration ("SYSTEME_PARAM","ATTRIBUTION_PHOTOS","TYPE_LISTE_".$id_utilisateur, $type_liste) ; If (!IsSet ($nombre_colonnes)) { $nombre_colonnes = restaure_configuration ("SYSTEME_PARAM","ATTRIBUTION_PHOTOS","NOMBRE_COLONNES_".$id_utilisateur) ; If ($nombre_colonnes == "") { $nombre_colonne = 5 ; } } sauvegarde_configuration ("SYSTEME_PARAM","ATTRIBUTION_PHOTOS","NOMBRE_COLONNES_".$id_utilisateur, $nombre_colonnes) ; Function mise_a_jour () { Global $util, $nbr, $lettre, $id_classe, $type_liste, $nombre_colonnes ; Echo "" ; } If (IsSet ($fen)) { Switch ($fen) { // Affichage TITRE Case 1 : Echo styles ("none", "none", "none", $l ["lien"], "none") ; Echo "" ; Echo "" ; Echo "
Attribution des photos : " ; Switch ($util) { Case 1 : Echo "Élèves" ; Break ; Case 2 : Echo "Professeurs" ; Break ; Default : Echo "Élèves" ; Break ; } Echo "
" ; Break ; // Affichage LISTE UTILISATEURS Case 2 : Echo styles ("none", "none", "none", $l ["lien"], "none") ; Echo "" ; If (!$util) { $util = 1 ; } Switch ($util) { Case 1 : Echo "" ; Echo "" ; If ($type_liste == 0) { Echo "" ; If (!IsSet ($lettre)) { $lettre = "A" ; } $resultats = SQL_commande ("SELECT * FROM eleves WHERE nom LIKE '".$lettre."%' AND exterieur='0' AND millesime='".$millesime."' ORDER BY nom,prenoms,login", $id_sql) ; // Affiche l'alphabet Echo "" ; } Else { // Affiche les classes Echo "
" ; Echo "" ; $l_p = "A" ; For ($i = 0 ; $i < 26 ; $i++) { Echo "" ; } Else { Echo "> ".$l_p." " ; } $l_p++ ; If ($i == 12) { Echo "" ; Echo "" ; } } Echo "
 ".$l_p." 
" ; Echo "" ; } If (SQL_nbr_lignes ($resultats) > 0) { Echo "" ; } Else { Echo "" ; } Echo "
" ; If (!IsSet ($id_classe) Or ($id_classe == 0)) { $classe = SQL_commande ("SELECT id_classe FROM classes ORDER BY nom_bref,nom LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($classe) == 1) { $cl = SQL_ligne_suivante ($classe) ; $id_classe = $cl [0] ; } } If (IsSet ($id_classe) And ($id_classe > 0)) { $resultats = SQL_commande ("SELECT * FROM eleves WHERE classe='".$id_classe."' AND exterieur='0' AND millesime='".$millesime."' ORDER BY nom,prenoms,login", $id_sql) ; } $classes = SQL_commande ("SELECT id_classe,nom,nom_bref FROM classes ORDER BY nom_bref,nom", $id_sql) ; $nbr_classes = SQL_nbr_lignes ($classes) ; $nbr_lignes_max = Ceil ($nbr_classes/5) ; $nbr_lignes_min = Ceil ($nbr_classes/2) ; $delta = Floor (($nbr_classes-$nbr_lignes_min)/5) ; If ($nbr_lignes_max > 1) { $nbr_col = 1 ; Echo "" ; For ($i = 5 ; $i <= Round ($nbr_classes/2) ; $i+=$delta) { $nbr_col++ ; Echo " ".$i." " ; } If ($nbr_col < $nombre_colonnes) { Echo "" ; } Echo "" ; //Echo "" ; } $nbr_lignes = Ceil ($nbr_classes/$nombre_colonnes) ; Echo "" ; For ($i = 1 ; $i <= $nbr_classes ; $i++) { $classe = SQL_ligne_suivante ($classes) ; Echo "" ; } Else { Echo "> ".$classe [2]." " ; } If ($i%$nombre_colonnes == 0) { Echo "" ; Echo "" ; } } Echo "
Col: 
 
 ".$classe [2]." 
" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; For ($i = 0 ; $i < SQL_nbr_lignes ($resultats) ; $i++) { $ligne = SQL_tableau_associatif ($resultats, "") ; Echo "" ; Echo "" ; } Echo "
 Nom  Prénoms 
" ; // Photo ? If (($ligne ["photo"]) And (File_Exists ($repertoire_racine."/images/eleves/".$rne.$ligne ["photo"]))) { Echo "" ; } Else { Echo "" ; } Echo "" ; Echo "" ; Echo " ".StrToUpper ($ligne ["nom"])." ".StrToUpper ($ligne ["prenoms"])." " ; Echo "
" ; Echo "" ; Echo "" ; Echo "
" ; Echo " Aucun élève commençant par ".$lettre." dans la base de données " ; Echo "
" ; Break ; Case 2 : Echo "" ; Echo "" ; Echo "" ; $resultats = SQL_commande ("SELECT * FROM utilisateurs WHERE droits='".$droit_prof."' AND millesime='".$millesime."' ORDER BY nom,prenom,login", $id_sql) ; If (SQL_nbr_lignes ($resultats) > 0) { Echo "" ; } Else { Echo "" ; } Echo "
" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; For ($i = 0 ; $i < SQL_nbr_lignes ($resultats) ; $i++) { $ligne = SQL_tableau_associatif ($resultats, "") ; Echo "" ; Echo "" ; Echo "" ; } Echo "
 Nom  Prénom 
" ; If (($ligne ["photo"]) And (File_Exists ($repertoire_racine."/images/profs/".$rne.$ligne ["photo"]))) { Echo "" ; } Else { Echo "" ; } Echo "" ; Echo "" ; Echo " ".StrToUpper ($ligne ["nom"])." ".StrToUpper ($ligne ["prenom"])." " ; Echo "" ; Echo "
" ; Echo "" ; Echo "" ; Echo "
" ; Echo " Aucun utilisateur dans la base de données " ; Echo "
" ; Break ; } Break ; // Affichage FICHE UTILISATEUR Case 3 : Echo styles ("none", "none", "none", $l ["lien"], "none") ; Echo "" ; Echo "" ; Echo "" ; $maj_ok = 0 ; If ($id_util) { Switch ($util) { // Edition d'un eleve Case 1 : If (IsSet ($maj)) { If ($telech == 0) { SQL_commande ("UPDATE eleves SET photo='".$choix."' WHERE id_eleve='".$id_util."' LIMIT 1", $id_sql) ; $maj_ok = 1 ; mise_a_jour () ; } Else { If ($_FILES ["telecharge"]["error"] == 0) { If (Is_UpLoaded_File ($_FILES ["telecharge"]["tmp_name"])) { Copy ($_FILES ["telecharge"]["tmp_name"], "../../images/eleves/".$rne.$_FILES ["telecharge"]["name"]) ; $ok = SQL_commande ("UPDATE eleves SET photo='".$_FILES ["telecharge"]["name"]."' WHERE id_eleve='".$id_util."' LIMIT 1", $id_sql) ; $maj_ok = 1 ; mise_a_jour () ; } } Else { Echo "Erreur : " ; Switch ((integer)$_FILES ["fichier"]["error"]) { Case 1 : Echo "Le paramètre upload_max_filesize dans php.ini est trop petit." ; Break ; Case 2 : Echo "Le paramètre HTML MAX_FILE_SIZE est trop petit." ; Break ; Case 3 : Echo "Le transfert du fichier ne s'est pas effectué dans sa totalité." ; Break ; Case 4 : Echo "Aucun transfert de fichier ne s'est effectué." ; Break ; } Echo "
" ; } } } // Chercher la fiche eleve $resultat = SQL_commande ("SELECT * FROM eleves WHERE id_eleve='".$id_util."'", $id_sql) ; $ligne = SQL_tableau_associatif ($resultat, "") ; Echo "" ; Echo "
" ; Echo "" ; Echo "
" ; Echo "" ; // Espace ou mise a jour If ($maj_ok) { Echo "" ; } Else { Echo "" ; } // Nom + Photo If (($ligne ["photo"]) And (File_Exists ($repertoire_racine."/images/eleves/".$rne.$ligne ["photo"]))) { $fiche_photo = $http_garennes."images/eleves/".$rne.$ligne ["photo"] ; $fichier = $ligne ["photo"] ; } Else { $fiche_photo = $http_garennes."images/eleves/anonyme.png" ; $fichier = "anonyme.png" ; } Echo "" ; Echo "" ; Echo "" ; Echo "" ; // Prenoms Echo "" ; Echo "" ; Echo "" ; Echo "" ; // Date de naissance Echo "" ; Echo "" ; Echo "" ; Echo "" ; // Repere2 : Numero National Echo "" ; Echo "" ; Echo "" ; Echo "" ; // Repere1 : Numero GEP Echo "" ; Echo "" ; Echo "" ; Echo "" ; // Classe Echo "" ; Echo "" ; Echo "" ; // Espace Echo "
 Mise à jour effectuée. 
   
 Nom :  ".$ligne ["nom"]." " ; Echo "" ; Echo "
" ; Echo "" ; Echo "" ; Echo "
" ; Echo "" ; Echo "
" ; Echo "
 Prénoms :  ".$ligne ["prenoms"]." 
 Date de naissance : " ; Echo decode_date_mysql ($ligne ["date_naissance"]) ; Echo "
 Numéro national :  ".$ligne ["repere2"]." 
 Numéro GEP :  ".$ligne ["repere1"]." 
 Classe : " ; $resultat = SQL_commande ("SELECT id_classe, nom, nom_bref FROM classes ORDER BY nom_bref,nom", $id_sql) ; While ($lin_cl = SQL_ligne_suivante ($resultat)) { If ($lin_cl[0] == $ligne ["classe"]) { Echo $lin_cl [1]." (".$lin_cl [2].")" ; } } Echo "
 
" ; Echo "
" ; Break ; // Edition d'un utilisateur Case 2 : If (IsSet ($maj)) { If ($telech == 0) { SQL_commande ("UPDATE utilisateurs SET photo='".$choix."' WHERE id_utilisateur='".$id_util."' LIMIT 1", $id_sql) ; $maj_ok = 1 ; mise_a_jour () ; } Else { If ($_FILES ["telecharge"]["error"] == 0) { If (Is_UpLoaded_File ($_FILES ["telecharge"]["tmp_name"])) { Copy ($_FILES ["telecharge"]["tmp_name"], "../../images/profs/".$rne.$_FILES ["telecharge"]["name"]) ; $ok = SQL_commande ("UPDATE utilisateurs SET photo='".$_FILES ["telecharge"]["name"]."' WHERE id_utilisateur='".$id_util."' LIMIT 1", $id_sql) ; $maj_ok = 1 ; mise_a_jour () ; } } Else { Echo "Erreur : " ; Switch ((integer)$_FILES ["fichier"]["error"]) { Case 1 : Echo "Le paramètre upload_max_filesize dans php.ini est trop petit." ; Break ; Case 2 : Echo "Le paramètre HTML MAX_FILE_SIZE est trop petit." ; Break ; Case 3 : Echo "Le transfert du fichier ne s'est pas effectué dans sa totalité." ; Break ; Case 4 : Echo "Aucun transfert de fichier ne s'est effectué." ; Break ; } Echo "
" ; } } } // Chercher la fiche utilisateur $resultat = SQL_commande ("SELECT * FROM utilisateurs WHERE id_utilisateur='".$id_util."'", $id_sql) ; $ligne = SQL_tableau_associatif ($resultat, "") ; Echo "" ; Echo "
" ; Echo "" ; Echo "
" ; Echo "" ; // Espace ou mise a jour If ($maj_ok) { Echo "" ; } Else { Echo "" ; } // Nom + Photo If (($ligne ["photo"]) And (File_Exists ($repertoire_racine."/images/profs/".$rne.$ligne ["photo"]))) { $fiche_photo = $http_garennes."images/profs/".$rne.$ligne ["photo"] ; $fichier = $ligne ["photo"] ; } Else { $fiche_photo = $http_garennes."images/profs/anonyme.png" ; $fichier = "anonyme.png" ; } Echo "" ; Echo "" ; Echo "" ; Echo "" ; // Prenom Echo "" ; Echo "" ; Echo "" ; Echo "" ; // NUMEN Echo "" ; Echo "" ; Echo "" ; Echo "" ; // Espace Echo "
 Mise à jour effectuée. 
   
 Nom :  ".$ligne ["nom"]." " ; Echo "" ; Echo "
" ; Echo "" ; Echo "
" ; Echo "" ; Echo "
" ; Echo "
" ; Echo "
 Prénom :  ".$ligne ["prenom"]." 
 NUMEN :  ".$ligne ["numen"]." 
 
" ; Echo "
" ; Echo "
" ; Break ; } Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "
 Choisissez une photo dans la liste des photos " ; Echo "" ; Switch ($util) { Case 1 : Echo "élèves" ; Break ; Case 2 : Echo "professeurs" ; Break ; Default : Echo "élèves" ; Break ; } Echo " ci-dessous et " ; Echo "
 ou 
 Télécharger une photo :  et 
" ; Echo "" ; } Else { Echo "

Choisissez un " ; Switch ($util) { Case 1 : Echo "élève" ; Break ; Case 2 : Echo "professeur" ; Break ; Default : Echo "élève" ; Break ; } Echo " à gauche." ; } Echo "" ; Break ; // Affichage SOUS-TITRE Case 4 : Echo styles ("none", "none", "none", $l ["nom"], "none") ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; For ($i = 1 ; $i <= 10 ; $i++) { Echo "" ; } Echo "" ; Echo "
 Nombre de colonnes :  ".$i." Liste des photos " ; Switch ($util) { Case 1 : Echo "élève" ; Break ; Case 2 : Echo "professeur" ; Break ; Default : Echo "élève" ; Break ; } Echo "
" ; Echo "" ; Break ; // Affichage LISTE DES PHOTOS Case 5 : Echo styles ("none", "none", "none", $l ["lien"], "none") ; Echo "" ; Echo "" ; $rep = "../../images/" ; Switch ($util) { Case 1 : $rep .= "eleves/" ; Break ; Case 2 : $rep .= "profs/" ; Break ; Default : $rep .= "eleves/" ; Break ; } Echo "" ; // Recherche des images $dir = @OpenDir ($rep.$rne) ; $nombre = 0 ; While ($fichier = @ReadDir ($dir)) { If (IsImage ($fichier)) { $nombre = $nombre + 1 ; $t [$nombre] = $fichier ; } } If ($nombre > 0) { Sort ($t) ; } $nbr_lignes = Floor ($nombre / $nbr) ; $derniere = $nombre % $nbr ; Echo "" ; For ($i = 0 ; $i < $nbr_lignes ; $i++) { Echo "" ; For ($j = 0 ; $j < $nbr ; $j++) { Echo "" ; } Echo "" ; } Echo "" ; For ($j = 0 ; $j < $derniere ; $j++) { Echo "" ; } Echo "
" ; Echo "" ; Echo "  
 ".$t [$i*$nbr+$j]." 
" ; Echo "
 
" ; Echo "" ; Echo "  
 ".$t [$nbr_lignes*$nbr+$j]." 
" ; Echo "
 
" ; Echo "" ; Break ; } Exit ; } Else { Echo "" ; If (!IsSet ($util)) { $util = 1 ; } If (!IsSet ($nbr_photos)) { $nbr_photos = 5 ; } Switch ($util) { Case 1 : $rep .= "eleves/" ; Break ; Case 2 : $rep .= "profs/" ; Break ; Default : $rep .= "eleves/" ; Break ; } Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; ; Echo "" ; ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; } ?>" ; entete_html ("Garennes", "travail", 1) ; Echo styles ("none", "none", "none", $l ["lien"], "none") ; Echo "" ; Echo "" ; // Connexions $resultat = SQL_commande ("SELECT u.nom,u.prenom,u.droits,s.date,s.dateheure,s.dh_maj,s.ip,s.duree_session FROM sessions s, utilisateurs u WHERE (s.date LIKE '".Date ("Y-m-d")."%' OR s.date LIKE '".Date ("Y-m-").(Date ("d")-1)."%') AND u.id_utilisateur=s.utilisateur AND s.droits>'".$droit_eleve."' AND s.actif='1' ORDER BY u.nom,u.prenom", $id_sql) ; If (SQL_nbr_lignes ($resultat)) { $nbr = 0 ; Echo "
Il y a ".SQL_nbr_lignes ($resultat)." connexion" ; If (SQL_nbr_lignes ($resultat) > 1) { Echo "s" ; } Echo " du personnel actuellement
" ; Echo "" ; Echo "" ; Echo "
" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; While ($ligne = SQL_tableau_associatif ($resultat, "")) { $nbr++ ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; //If ($ligne ["droits"] < 3) { $tt = $troptard_prof ; } Else { $tt = $troptard_admin ; } $tt = $ligne ["duree_session"] ; Echo "" ; Echo "" ; Echo ""; } Echo "
 Nom  Prénom  Connecté depuis le  Dernier accès  Autorisation jusqu'au  Adresse IP 
 ".$ligne ["nom"]."  ".$ligne ["prenom"]."  ".Date ("d", $ligne ["dateheure"])." ".$nom_mois [(integer)Date ("m", $ligne ["dateheure"])]." ".Date ("Y", $ligne ["dateheure"])." a ".Date ("H:i:s", $ligne ["dateheure"])."  ".Date ("d", $ligne ["dh_maj"])." ".$nom_mois [(integer)Date ("m", $ligne ["dh_maj"])]." ".Date ("Y", $ligne ["dh_maj"])." a ".Date ("H:i:s", $ligne ["dh_maj"])."  ".Date ("d", $ligne ["dateheure"]+$tt)." ".$nom_mois [(integer)Date ("m", $ligne ["dateheure"]+$tt)]." ".Date ("Y", $ligne ["dateheure"]+$tt)." a ".Date ("H:i:s", $ligne ["dateheure"]+$tt)."  ".$ligne ["ip"]." 
" ; Echo "
" ; } Else { Echo "
Il n'y a aucune connexion du personnel actuellement
" ; } Echo "
" ; $resultat = SQL_commande ("SELECT e.nom,e.prenoms,c.nom AS nom_classe,c.nom_bref,s.date,s.dateheure,s.dh_maj,s.ip FROM sessions s, eleves e, classes c WHERE s.date='".Date ("Y-m-d")."' AND e.id_eleve=s.utilisateur AND s.droits='".$droit_eleve."' AND e.classe=c.id_classe ORDER BY e.nom,e.prenoms", $id_sql) ; If (SQL_nbr_lignes ($resultat)) { $nbr = 0 ; Echo "
Il y a ".SQL_nbr_lignes ($resultat)." connexion" ; If (SQL_nbr_lignes ($resultat) > 1) { Echo "s" ; } Echo " élève actuellement>
" ; Echo "" ; Echo "" ; Echo "
" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; While ($ligne = SQL_tableau_associatif ($resultat, "")) { $nbr++ ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; If ($ligne ["droits"] < 3) { $tt = $troptard_prof ; } Else { $tt = $troptard_admin ; } Echo "" ; Echo "" ; Echo ""; } Echo "
 Nom  Prénom  Classe  Connecté depuis le  Dernier accès  Autorisation jusqu'au  Adresse IP 
 ".$ligne ["nom"]."  ".$ligne ["prenoms"]."  (".$ligne ["nom_bref"].") ".$ligne ["nom_classe"]."  ".Date ("d", $ligne ["dateheure"])." ".$nom_mois [(integer)Date ("m", $ligne ["dateheure"])]." ".Date ("Y", $ligne ["dateheure"])." a ".Date ("H:i:s", $ligne ["dateheure"])."  ".Date ("d", $ligne ["dh_maj"])." ".$nom_mois [(integer)Date ("m", $ligne ["dh_maj"])]." ".Date ("Y", $ligne ["dh_maj"])." a ".Date ("H:i:s", $ligne ["dh_maj"])."  ".Date ("d", $ligne ["dateheure"]+$tt)." ".$nom_mois [(integer)Date ("m", $ligne ["dateheure"]+$troptard)]." ".Date ("Y", $ligne ["dateheure"]+$tt)." a ".Date ("H:i:s", $ligne ["dateheure"]+$tt)."  ".$ligne ["ip"]." 
" ; Echo "
" ; } Else { Echo "
Il n'y a aucune connexion élève actuellement
" ; } Echo "" ; ?>Garennes." ; Echo "
Problème d'accès aux relevés de notes.
Veuillez contacter l'administrateur...
" ; Echo "" ; Exit ; } If ($titre == -1) { $resultats = SQL_commande ("SELECT * FROM menus WHERE numero='".$droit_courant."' AND ordre='0' LIMIT 1", $id_sql) ; $l = SQL_tableau_associatif ($resultats, "") ; // Menu de choix Echo "Garennes." ; Echo "" ; Echo "" ; Echo "" ; Echo "
 Options d'impression des relevés. Classe : ".nom_classe_long_parid ($id_classe)." (".nom_classe_bref_parid ($id_classe).")" ; If ($droit_courant != $droit_cpe) { Echo "" ; } Echo "

" ; //Echo affichage_pourcentages ($id_classe, $periode, 1)."
" ; Echo "
" ; Echo "" ; Echo "" ; //Echo "" ; $res = SQL_commande ("SELECT id_eleve,nom,prenoms FROM eleves WHERE classe='".$id_classe."' ORDER BY nom,prenoms", $id_sql) ; Echo "" ; // Choix de la periode $pa = periode_actuelle ($id_classe) ; $np = nom_periode ($id_classe) ; Echo "" ; Echo "" ; Echo "" ; // Choix de la date debut et fin de releve /* $dp = deb_periode ($id_classe, $pa) ; $tdp = Explode ("-", $dp) ; $fp = fin_periode ($id_classe, $pa) ; $tfp = Explode ("-", $fp) ; Echo "" ; Echo "" ; Echo "" ; */ // Choix des eleves Echo "" ; Echo "" ; Echo "" ; // Forcage de l'impression de 1 ou 2 bulletins pour responsables $imp_un_releve = restaure_configuration ("SYSTEME_PARAM", "IMP_UN_RELEVE_".$id_utilisateur, $id_classe) ; If ($imp_un_releve == "") { sauvegarde_configuration ("SYSTEME_PARAM", "IMP_UN_RELEVE_".$id_utilisateur, $id_classe, 0) ; $imp_un_bulletin = 1 ; } Echo "" ; $force_calcul = restaure_configuration ("SYSTEME_PARAM", "FORCAGE_CALCUL_RELEVE_".$id_utilisateur, $id_classe) ; If ($force_calcul == "") { sauvegarde_configuration ("SYSTEME_PARAM", "FORCAGE_CALCUL_RELEVE_".$id_utilisateur, $id_classe, 0) ; $force_calcul = 0 ; } Echo "" ; Echo "" ; // Liste des matieres avec option d'impression (obligatoire (forcage non impression), option (forcee ou si appartient), groupe (forcee ou si appartient)) // Classement ou pas $resultat = SQL_commande ("SELECT classement FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; $res = SQL_ligne_suivante ($resultat) ; // Tableau des disciplines et nom prof pour la discipline avec coefficient $ok_classement = 0 ; // Alias ? $alias = SQL_commande ("SELECT DISTINCT s.id_service_prof,g.id_utilisateur FROM services_prof s,groupes_alias g WHERE s.professeur<0 AND s.classe='".$id_classe."' AND s.millesime='".$millesime."' AND g.id_alias=-s.professeur AND g.code=1 AND g.numero=1 AND g.id_utilisateur>0", $id_sql) ; $nbr_alias = SQL_nbr_lignes ($alias) ; $req_sup = $table_sup = "" ; If ($nbr_alias > 0) { $table_sup = ",groupes_alias g" ; $req_sup = " OR " ; For ($i = 0 ; $i < $nbr_alias ; $i++) { $lk = SQL_ligne_suivante ($alias) ; If ($i > 0) { $req_sup .= " OR " ; } $req_sup .= "(p.id_service_prof='".$lk [0]."' AND p.service_classe=s.id_service_classe AND s.discipline=d.id_discipline AND u.id_utilisateur='".$lk [1]."'" ; If ($res [0] == 1) { $req_sup .= " AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe" ; } $req_sup .= ")" ; } } If ($res [0] == 1) { // Si classement /* $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite FROM disciplines d,services_classe s,services_prof p,utilisateurs u,classement c".$table_sup." WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe) OR (p.professeur<0 AND g.id_alias=-p.professeur AND g.id_service_classe=p.service_classe AND g.id_utilisateur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND s.id_service_classe=c.id_service_classe AND s.discipline=d.id_discipline AND g.numero='1') ORDER BY c.numero", $id_sql) ; */ $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur FROM disciplines d,services_classe s,services_prof p,utilisateurs u,classement c".$table_sup." WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe) ".$req_sup." ORDER BY c.numero", $id_sql) ; $res [0] = SQL_nbr_lignes ($resultat_disc) ; $ok_classement = 1 ; } If ($res [0] == 0) { // Si pas de classement ou classement vide /* $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite FROM disciplines d,services_classe s,services_prof p,utilisateurs u".$table_sup." WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur) OR (p.professeur<0 AND g.id_alias=-p.professeur AND g.id_service_classe=p.service_classe AND g.id_utilisateur=u.id_utilisateur AND p.service_classe=s.id_service_classe AND s.discipline=d.id_discipline AND g.numero='1') ORDER BY d.nom_long,d.nom_court,d.nom_bref", $id_sql) ; */ $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur FROM disciplines d,services_classe s,services_prof p,utilisateurs u".$table_sup." WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur) ".$req_sup." ORDER BY d.nom_long,d.nom_court,d.nom_bref", $id_sql) ; } $nbr_disc = SQL_nbr_lignes ($resultat_disc) ; Echo "" ; Echo "" ; Echo "
Période d'impression : 
 
Début et fin d'impression :  " ; Echo " " ; Echo " à " ; Echo " " ; Echo " " ; Echo "" ; Echo "
 
Imprimer : 
 
Si coché, alors génération d'un seul relevé pour le responsable principal. 
Recalculer toutes les moyennes (peut-être beaucoup plus long). 
 
" ; Echo "" ; Echo "" ; If ($periode > 1) { Echo "" ; } Else { Echo "" ; } Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; If ($periode > 1) { For ($i = 1 ; $i <= $periode ; $i++) { Echo "" ; } } //Echo "" ; Echo "" ; For ($i = 0 ; $i < $nbr_disc ; $i++) { $d = SQL_ligne_suivante ($resultat_disc) ; $active = restaure_configuration ("SYSTEME_PARAM", "IMP_RELEVES_".$id_utilisateur, $id_classe."_".$d [6]) ; If ($active == "") { sauvegarde_configuration ("SYSTEME_PARAM", "IMP_RELEVES_".$id_utilisateur, $id_classe."_".$d [6], 1) ; $active = 1 ; } Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; Echo "" ; For ($j = 1 ; $j <= $periode ; $j++) { //Echo "" ; Echo etat_service_prof ($id_classe, $j, $d [6], 1) ; } Echo "" ; } Echo "
 n°  Type  d'impression  Matières  Nbr notes 
 Nbr notes 
 À enlever  Si noté  Normale  À forcer  ".$np." ".$i."  Nbr note(s)  Appréciation(s) 
 ".($i+1)."  ".filtrage_utf8 ($d [0]." (".$d [1]).")  ".filtrage_utf8 ($d [10]." ".$d [11])."  ".$np." ".$i." 
" ; Echo "
" ; Exit ; } ElseIf ($titre == -2) { $pa = periode_actuelle ($id_classe) ; $dp = deb_periode ($id_classe, $pa) ; $tdp = Explode ("-", $dp) ; $fp = fin_periode ($id_classe, $pa) ; $tfp = Explode ("-", $fp) ; $debut_jour = var_courante ("debut_jour", 0, null) ; $debut_mois = var_courante ("debut_mois", 0, null) ; $debut_annee = var_courante ("debut_annee", 0, null) ; $fin_jour = var_courante ("fin_jour", 0, null) ; $fin_mois = var_courante ("fin_mois", 0, null) ; $fin_annee = var_courante ("fin_annee", 0, null) ; $nbr_disc = var_courante ("nbr_disc", 0, 0) ; For ($i = 0 ; $i < $nbr_disc ; $i++) { $sp = var_courante ("sp_".$i, 0, 0) ; $active = var_courante ("dsc_".$id_classe."_".$sp, 0, 0) ; sauvegarde_configuration ("SYSTEME_PARAM", "IMP_RELEVES_".$id_utilisateur, $id_classe."_".$sp, $active) ; } $imp_un_releve = var_courante ("imp_un_releve", 0, 0) ; sauvegarde_configuration ("SYSTEME_PARAM", "IMP_UN_RELEVE_".$id_utilisateur, $id_classe, $imp_un_releve) ; $force_calcul = var_courante ("force_calcul", 0, 0) ; sauvegarde_configuration ("SYSTEME_PARAM", "FORCAGE_CALCUL_RELEVE_".$id_utilisateur, $id_classe, $force_calcul) ; // Procedure d'appel du calcul du PDF Echo "" ; Echo "Garennes." ; Echo "" ; Echo "" ; Echo "" ; Echo "
Création du relevé des notes pour impression.
Calcul en cours... Veuillez patienter S.V.P.

MERCI !
" ; Echo "" ; Echo "
" ; Echo affichage_pourcentages ($id_classe, $periode, 1) ; Echo "" ; Exit ; } // Verification du module absences $id_utilisateur = utilparcode ($_SESSION ["code"]) ; $ok = SQL_commande ("SELECT g.id_gestion_module FROM types_modules t,gestion_modules g WHERE t.menu='abs_menus' AND t.actif='1' AND t.identifiant=g.identifiant AND g.droits='".$droit_courant."' AND (g.id_utilisateur='0' OR g.id_utilisateur='".$id_utilisateur."') LIMIT 1", $id_sql) ; If (SQL_nbr_lignes ($ok) == 1) { $module_absences = 1 ; Include ("../../include/module_absences.cfg") ; Include ("../../include/module_absences.php") ; } Else { $module_absences = 0 ; } Include ("../../include/phppdflib.class.php") ; // Definition des coefficients $echelle_x = 28.346 ; // Passage cm -> pixels $echelle_y = 28.346 ; // Coordonnees en partant du bas gauche de la page en cm $largeur = 21 ; $hauteur = 29.7 ; $marge_gauche = 0.8 ; $marge_droite = 0.8 ; $marge_haut = 1 ; $marge_bas = 1 ; // Pliage $trait_debut_gauche = 0.2 ; $trait_fin_gauche = $marge_gauche-0.1 ; $nombre_disciplines = 15 ; // Nombre de disciplines avec les cadres administratifs $nbr_max_disciplines = 18 ; // Nombre max de disciplines sans cadres administratifs // ------------------------------------------------------------------------ // CADRE ETABLISSEMENT // ------------------------------------------------------------------------ // Parametres $cadre_etab [0][0] = 0 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_etab [1][0] = $marge_gauche ; // Debut cadre X $cadre_etab [1][1] = $hauteur-$marge_haut-0.6 ; // Debut cadre Y $cadre_etab [1][2] = $cadre_etab [1][0]+8 ; // Fin cadre X $cadre_etab [1][3] = $cadre_etab [1][1]-4.2+0.6 ; // -3.2 Fin cadre Y // Nom $cadre_etab [2][0] = $cadre_etab [1][0]+0.05 ; // Debut NOM X $cadre_etab [2][1] = $cadre_etab [1][1] ; // Debut NOM Y $cadre_etab [2][2] = "Helvetica-Bold" ; // Police NOM $cadre_etab [2][3] = "12" ; // Taille NOM $cadre_etab [2][4] = 0 ; // Couleur rouge $cadre_etab [2][5] = 0 ; // Couleur verte $cadre_etab [2][6] = 0 ; // Couleur bleu $cadre_etab [2][7] = Floor (($cadre_etab [1][2]-$cadre_eleve [1][0]-0.1)*$echelle_x/6) ; // Nombre caracteres $cadre_etab [2][8] = $cadre_etab [1][2] ; // Fin NOM X $cadre_etab [2][9] = $cadre_etab [2][1]-1 ; // Fin NOM Y // Adresse $cadre_etab [3][0] = $cadre_etab [1][0]+0.05 ; // Debut ADRESSE X $cadre_etab [3][1] = $cadre_etab [2][9]-0.5 ; // Debut ADRESSE Y $cadre_etab [3][2] = "Helvetica" ; // Police ADRESSE $cadre_etab [3][3] = "10" ; // Taille ADRESSE $cadre_etab [3][4] = 0 ; // Couleur rouge $cadre_etab [3][5] = 0 ; // Couleur verte $cadre_etab [3][6] = 0 ; // Couleur bleu // CP+Ville $cadre_etab [4][0] = $cadre_etab [1][0]+0.05 ; // Debut CP+VILLE X $cadre_etab [4][1] = $cadre_etab [3][1]-0.5 ; // Debut CP+VILLE Y $cadre_etab [4][2] = "Helvetica" ; // Police CP+VILLE $cadre_etab [4][3] = "10" ; // Taille CP+VILLE $cadre_etab [4][4] = 0 ; // Couleur rouge $cadre_etab [4][5] = 0 ; // Couleur verte $cadre_etab [4][6] = 0 ; // Couleur bleu // Telephone $cadre_etab [5][0] = $cadre_etab [1][0]+0.05 ; // Debut TELEPHONE X $cadre_etab [5][1] = $cadre_etab [4][1]-0.5 ; // Debut TELEPHONE Y $cadre_etab [5][2] = "Helvetica" ; // Police TELEPHONE $cadre_etab [5][3] = "10" ; // Taille TELEPHONE $cadre_etab [5][4] = 0 ; // Couleur rouge $cadre_etab [5][5] = 0 ; // Couleur verte $cadre_etab [5][6] = 0 ; // Couleur bleu // Fax $cadre_etab [6][0] = $cadre_etab [1][0]+0.05 ; // Debut FAX X $cadre_etab [6][1] = $cadre_etab [5][1]-0.5 ; // Debut FAX Y $cadre_etab [6][2] = "Helvetica" ; // Police FAX $cadre_etab [6][3] = "10" ; // Taille FAX $cadre_etab [6][4] = 0 ; // Couleur rouge $cadre_etab [6][5] = 0 ; // Couleur verte $cadre_etab [6][6] = 0 ; // Couleur bleu // Mel $cadre_etab [7][0] = $cadre_etab [1][0]+0.05 ; // Debut FAX X $cadre_etab [7][1] = $cadre_etab [6][1]-0.5 ; // Debut FAX Y $cadre_etab [7][2] = "Helvetica" ; // Police FAX $cadre_etab [7][3] = "10" ; // Taille FAX $cadre_etab [7][4] = 0 ; // Couleur rouge $cadre_etab [7][5] = 0 ; // Couleur verte $cadre_etab [7][6] = 0 ; // Couleur bleu // ------------------------------------------------------------------------ // CADRE PERIODE // ------------------------------------------------------------------------ // Parametres $cadre_periode [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_periode [1][0] = $marge_gauche ; //cadre_etab [1][2]+0.1 ; // Debut cadre X $cadre_periode [1][1] = $hauteur-$marge_haut ; // Debut cadre Y $cadre_periode [1][2] = $largeur-$marge_droite ; // Fin cadre X $cadre_periode [1][3] = $cadre_periode [1][1]-0.5 ; // Fin cadre Y $cadre_periode [1][4] = 1 ; // Largeur trace $cadre_periode [1][5] = 0 ; // Couleur rouge $cadre_periode [1][6] = 0 ; // Couleur verte $cadre_periode [1][7] = 0 ; // Couleur bleu // Nom periode $cadre_periode [2][0] = $cadre_periode [1][0]+0.1 ; // Debut PERIODE X $cadre_periode [2][1] = $cadre_periode [1][1]-0.4 ; // Debut PERIODE Y $cadre_periode [2][2] = "Helvetica-Bold" ; // Police PERIODE $cadre_periode [2][3] = "12" ; // Taille PERIODE $cadre_periode [2][4] = 0 ; // Couleur rouge $cadre_periode [2][5] = 0 ; // Couleur verte $cadre_periode [2][6] = 0 ; // Couleur bleu $cadre_periode [2][7] = Floor (($cadre_periode [1][2]-$cadre_periode [1][0]-0.2)*$echelle_x/6) ; // Nombre caracteres // ------------------------------------------------------------------------ // CADRE ELEVE // ------------------------------------------------------------------------ // Parametres $cadre_eleve [0][0] = 0 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_eleve [1][0] = $cadre_etab [1][2]+0.1 ; // Debut cadre X $cadre_eleve [1][1] = $cadre_periode [1][3]-0.05 ; // Debut cadre Y $cadre_eleve [1][2] = $largeur-$marge_droite ; // Fin cadre X $cadre_eleve [1][3] = $cadre_eleve [1][1]-2.65 ; // Fin cadre Y $cadre_eleve [1][4] = 1 ; // Largeur trace $cadre_eleve [1][5] = 0 ; // Couleur rouge $cadre_eleve [1][6] = 0 ; // Couleur verte $cadre_eleve [1][7] = 0 ; // Couleur bleu // Photo $cadre_eleve [2][0] = $cadre_eleve [1][2]-2 ; // Debut photo X $cadre_eleve [2][1] = $cadre_eleve [1][1] ; // Debut photo Y $cadre_eleve [2][2] = $cadre_eleve [1][2] ; // Fin photo X $cadre_eleve [2][3] = $cadre_eleve [1][3] ; // Fin photo Y $cadre_eleve [2][4] = $cadre_eleve [2][2]-$cadre_eleve [2][0] ; // Taille photo X $cadre_eleve [2][5] = $cadre_eleve [2][1]-$cadre_eleve [2][3] ; // Taille photo Y // Nom $cadre_eleve [3][0] = $cadre_eleve [1][0]+0.1 ; // Debut NOM X $cadre_eleve [3][1] = $cadre_eleve [1][1]-0.5 ; // Debut NOM Y $cadre_eleve [3][2] = "Helvetica-Bold" ; // Police NOM $cadre_eleve [3][3] = "12" ; // Taille NOM $cadre_eleve [3][4] = 0 ; // Couleur rouge $cadre_eleve [3][5] = 0 ; // Couleur verte $cadre_eleve [3][6] = 0 ; // Couleur bleu $cadre_eleve [3][7] = Floor (($cadre_eleve [2][0]-$cadre_eleve [1][0]-0.2)*$echelle_x/6) ; // Nombre caracteres // Date de naissance $cadre_eleve [4][0] = $cadre_eleve [1][0]+1 ; // Debut DATE NAISSANCE X $cadre_eleve [4][1] = $cadre_eleve [3][1]-0.5 ; // Debut DATE NAISSANCE Y $cadre_eleve [4][2] = "Helvetica" ; // Police DATE NAISSANCE $cadre_eleve [4][3] = "8" ; // Taille DATE NAISSANCE $cadre_eleve [4][4] = 0 ; // Couleur rouge $cadre_eleve [4][5] = 0 ; // Couleur verte $cadre_eleve [4][6] = 0 ; // Couleur bleu // Classe $cadre_eleve [5][0] = $cadre_eleve [1][0]+1 ; // Debut CLASSE X $cadre_eleve [5][1] = $cadre_eleve [4][1]-0.4 ; // Debut CLASSE Y $cadre_eleve [5][2] = "Helvetica" ; // Police CLASSE $cadre_eleve [5][3] = "8" ; // Taille CLASSE $cadre_eleve [5][4] = 0 ; // Couleur rouge $cadre_eleve [5][5] = 0 ; // Couleur verte $cadre_eleve [5][6] = 0 ; // Couleur bleu // Effectif $cadre_eleve [6][0] = $cadre_eleve [1][0]+1 ; // Debut EFFECTIF X $cadre_eleve [6][1] = $cadre_eleve [5][1]-0.4 ; // Debut EFFECTIF Y $cadre_eleve [6][2] = "Helvetica" ; // Police EFFECTIF $cadre_eleve [6][3] = "8" ; // Taille EFFECTIF $cadre_eleve [6][4] = 0 ; // Couleur rouge $cadre_eleve [6][5] = 0 ; // Couleur verte $cadre_eleve [6][6] = 0 ; // Couleur bleu // Redoublant $cadre_eleve [7][0] = $cadre_eleve [1][0]+1 ; // Debut REDOUBLANT X $cadre_eleve [7][1] = $cadre_eleve [6][1]-0.4 ; // Debut REDOUBLANT Y $cadre_eleve [7][2] = "Helvetica" ; // Police REDOUBLANT $cadre_eleve [7][3] = "8" ; // Taille REDOUBLANT $cadre_eleve [7][4] = 0 ; // Couleur rouge $cadre_eleve [7][5] = 0 ; // Couleur verte $cadre_eleve [7][6] = 0 ; // Couleur bleu // ------------------------------------------------------------------------ // CADRE PARENTS // ------------------------------------------------------------------------ // Parametres $cadre_parents [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_parents [1][0] = $cadre_etab [1][2]+0.1 ; // Debut cadre X $cadre_parents [1][1] = $cadre_eleve [1][3]-0.05 ; // Debut cadre Y $cadre_parents [1][2] = $largeur-$marge_droite ; // Fin cadre X $cadre_parents [1][3] = $cadre_parents [1][1]-3.4 ; // Fin cadre Y $cadre_etab [1][4] = $cadre_parents [1][3] ; // Position Y de l'image $cadre_parents [1][4] = 1 ; // Largeur trace $cadre_parents [1][5] = 0 ; // Couleur rouge $cadre_parents [1][6] = 0 ; // Couleur verte $cadre_parents [1][7] = 0 ; // Couleur bleu // Nom $cadre_parents [2][0] = 10 ; // Debut NOM X $cadre_parents [2][1] = $cadre_parents [1][1]-1.2 ; // Debut NOM Y 24.4 $cadre_parents [2][2] = "Helvetica-Bold" ; // Police NOM $cadre_parents [2][3] = "12" ; // Taille NOM $cadre_parents [2][4] = 0 ; // Couleur rouge $cadre_parents [2][5] = 0 ; // Couleur verte $cadre_parents [2][6] = 0 ; // Couleur bleu // Adresse $cadre_parents [3][0] = $cadre_parents [2][0] ; // Debut ADRESSE 1 X $cadre_parents [3][1] = $cadre_parents [2][1]-0.5 ; // Debut ADRESSE 1 Y $cadre_parents [3][2] = $cadre_parents [2][0] ; // Debut ADRESSE 2 X $cadre_parents [3][3] = $cadre_parents [3][1]-0.5 ; // Debut ADRESSE 2 Y $cadre_parents [3][4] = "Helvetica" ; // Police ADRESSES $cadre_parents [3][5] = "12" ; // Taille ADRESSES $cadre_parents [3][6] = 0 ; // Couleur rouge $cadre_parents [3][7] = 0 ; // Couleur verte $cadre_parents [3][8] = 0 ; // Couleur bleu // CP+Ville $cadre_parents [4][0] = $cadre_parents [2][0] ; // Debut CP+VILLE X $cadre_parents [4][1] = $cadre_parents [3][3]-0.5 ; // Debut CP+VILLE Y $cadre_parents [4][2] = "Helvetica" ; // Police CP+VILLE $cadre_parents [4][3] = "12" ; // Taille CP+VILLE $cadre_parents [4][4] = 0 ; // Couleur rouge $cadre_parents [4][5] = 0 ; // Couleur verte $cadre_parents [4][6] = 0 ; // Couleur bleu // ------------------------------------------------------------------------ // CADRE ENTETE MATIERES // ------------------------------------------------------------------------ // Sans moyennes (eleves et classe), configurer les variables suivantes : // $cadre_mat [0][2] = 0 ; // 5 Deuxieme partie : Moyenne eleve // $cadre_mat [0][3] = 0 ; // 6 Troisieme partie : Moy/Min/Max classe // $cadre_mat [1][5] = 0 ; // 1 Largeur Moyenne eleve // $cadre_mat [1][6] = 0 ; // 0.8 Largeur Moy/Min/Max classe // ------------------------------------------------------------------------ // Parametres $cadre_mat [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) $cadre_mat [0][1] = 4 ; // Premiere partie : Matieres/Professeurs $cadre_mat [0][2] = 5 ; // Deuxieme partie : Moyenne eleve $cadre_mat [0][3] = 6 ; // Troisieme partie : Moy/Min/Max classe $cadre_mat [0][4] = 7 ; // Quatrieme partie (et derniere) : Appreciations // Cadre $cadre_mat [1][0] = $marge_gauche ; // Debut cadre X $cadre_mat [1][1] = $largeur-$marge_droite ; // Fin cadre X $cadre_mat [1][2] = 0.7 ; // hauteur entete matiere $cadre_mat [1][3] = 1.1 ; // hauteur matiere // Largeur Matieres/Professeurs $cadre_mat [1][4] = 5.5 ; // Largeur Moyenne eleve $cadre_mat [1][5] = 1 ; // Largeur Moy/Min/Max classe $cadre_mat [1][6] = 0.8 ; // Largeur Appreciations/Professeur pincipal $cadre_mat [1][7] = $cadre_mat [1][1]-$cadre_mat [1][0]-$cadre_mat [1][4]-$cadre_mat [1][5]-3*$cadre_mat [1][6] ; $cadre_mat [1][8] = Floor (($cadre_mat [1][7]-0.1)*$echelle_x/6) ; // Nombre caracteres // Couleurs $cadre_mat [2][0] = 1 ; // Largeur trace $cadre_mat [2][1] = 0 ; // Couleur rouge $cadre_mat [2][2] = 0 ; // Couleur verte $cadre_mat [2][3] = 0 ; // Couleur bleu // Def texte Matieres/Professeurs // Entete $cadre_mat [3][0] = "Helvetica-Bold" ; // Police Matiere $cadre_mat [3][1] = "8" ; // Taille $cadre_mat [3][2] = "Helvetica-Oblique" ; // Police Prof $cadre_mat [3][3] = "8" ; // Taille // Matiere $cadre_mat [3][4] = "Helvetica-Bold" ; // Police Matiere $cadre_mat [3][5] = "7" ; // Taille $cadre_mat [3][6] = "Helvetica-Oblique" ; // Police Prof $cadre_mat [3][7] = "8" ; // Taille // Def texte Moyenne eleve // Entete $cadre_mat [4][0] = "Helvetica" ; // Police $cadre_mat [4][1] = "8" ; // Taille // Matiere $cadre_mat [4][2] = "Helvetica-Bold" ; // Police $cadre_mat [4][3] = "8" ; // Taille // Def texte Moy/Min/Max Classe // Entete $cadre_mat [5][0] = "Helvetica" ; // Police $cadre_mat [5][1] = "8" ; // Taille // Matiere $cadre_mat [5][2] = "Helvetica" ; // Police $cadre_mat [5][3] = "7" ; // Taille // Def texte Appreciations/Professeur pincipal // Entete $cadre_mat [6][0] = "Helvetica-Bold" ; // Police Appreciations $cadre_mat [6][1] = "8" ; // Taille $cadre_mat [6][2] = "Helvetica" ; // Police Prof principal $cadre_mat [6][3] = "8" ; // Taille // Matiere $cadre_mat [6][4] = "Helvetica" ; // Police Appreciations $cadre_mat [6][5] = "8" ; // Taille // ------------------------------------------------------------------------ // CADRE MOYENNE GENERAL // ------------------------------------------------------------------------ // Parametres $cadre_moy_gen [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) If (($cadre_mat [0][2] == 5) And ($cadre_mat [0][3] == 6)) { // Largeur Moyenne periodique/Moyenne coefficientee $cadre_moy_gen [1][4] = $cadre_mat [1][4] ; // Largeur Moyenne eleve $cadre_moy_gen [1][5] = $cadre_mat [1][5] ; // Largeur Moy/Min/Max classe $cadre_moy_gen [1][6] = $cadre_mat [1][6] ; // Cadre $cadre_moy_gen [1][0] = $marge_gauche ; // Debut cadre X $cadre_moy_gen [1][1] = $marge_gauche+$cadre_moy_gen [1][4]+3*$cadre_moy_gen [1][6]+$cadre_moy_gen [1][5] ; // Fin cadre X $cadre_moy_gen [1][2] = 0.70 ; // Hauteur moyenne non coefficientee $cadre_moy_gen [1][3] = 0.35 ; // Hauteur moyenne coefficientee } Else { // Largeur Moyenne periodique/Moyenne coefficientee $cadre_moy_gen [1][4] = 4.5 ; // Largeur Moyenne eleve $cadre_moy_gen [1][5] = $cadre_mat [1][5] ; // Largeur Moy/Min/Max classe $cadre_moy_gen [1][6] = $cadre_mat [1][6] ; // Cadre $cadre_moy_gen [1][0] = $largeur-$marge_droite-$cadre_moy_gen [1][4]-$cadre_moy_gen [1][5]-3*$cadre_moy_gen [1][6] ; // Debut cadre X $cadre_moy_gen [1][1] = $largeur-$marge_droite ; // Fin cadre X $cadre_moy_gen [1][2] = 0.70 ; // Hauteur moyenne non coefficientee $cadre_moy_gen [1][3] = 0.35 ; // Hauteur moyenne coefficientee } // Couleurs $cadre_moy_gen [2][0] = 1 ; // Largeur trace $cadre_moy_gen [2][1] = 0 ; // Couleur rouge $cadre_moy_gen [2][2] = 0 ; // Couleur verte $cadre_moy_gen [2][3] = 0 ; // Couleur bleu // Def texte Moyenne periodique/Moyenne coefficientee $cadre_moy_gen [3][0] = "Helvetica" ; // Police Moyennes $cadre_moy_gen [3][1] = "8" ; // Taille $cadre_moy_gen [3][2] = "Helvetica" ; // Police Coefficientee $cadre_moy_gen [3][3] = "8" ; // Taille // Def texte Moyenne eleve $cadre_moy_gen [4][0] = "Helvetica-Bold" ; // Police $cadre_moy_gen [4][1] = "7" ; // Taille // Def texte Moy/Min/Max Classe $cadre_moy_gen [5][0] = "Helvetica" ; // Police $cadre_moy_gen [5][1] = "7" ; // Taille // ------------------------------------------------------------------------ // CADRE VIE SCOLAIRE/CPE // ------------------------------------------------------------------------ // Parametres $cadre_cpe [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_cpe [1][0] = $marge_gauche ; // Debut cadre X $cadre_cpe [1][1] = $largeur-$marge_droite ; // Fin cadre X $cadre_cpe [1][2] = 1 ; // Hauteur CPE // Couleurs $cadre_cpe [2][0] = 1 ; // Largeur trace $cadre_cpe [2][1] = 0 ; // Couleur rouge $cadre_cpe [2][2] = 0 ; // Couleur verte $cadre_cpe [2][3] = 0 ; // Couleur bleu $cadre_cpe [2][4] = "Helvetica-Bold" ; // Police Vie Scolaire $cadre_cpe [2][5] = "8" ; // Taille $cadre_cpe [2][6] = "Helvetica" ; // Police Texte vie scolaire $cadre_cpe [2][7] = "8" ; // Taille $cadre_cpe [2][8] = "Helvetica" ; // Police Ligne retards... $cadre_cpe [2][9] = "8" ; // Taille $cadre_cpe [2][10] = "Helvetica-Bold" ; // Police Observation $cadre_cpe [2][11] = "8" ; // Taille $cadre_cpe [2][12] = "Helvetica" ; // Police Texte observation $cadre_cpe [2][13] = "8" ; // Taille // ------------------------------------------------------------------------ // CADRE EQUIPE PEDAGOGIQUE // ------------------------------------------------------------------------ // Parametres $cadre_equipe_peda [0][0] = 1 ; // Trace du cadre ? (0 : Non ; >0 : Oui) // Cadre $cadre_equipe_peda [1][0] = $marge_gauche ; // Debut cadre X $cadre_equipe_peda [1][1] = $largeur-$marge_droite ; // Fin cadre X $cadre_equipe_peda [1][2] = 2.5 ; // Hauteur equipe peda // Couleurs $cadre_equipe_peda [2][0] = 1 ; // Largeur trace $cadre_equipe_peda [2][1] = 0 ; // Couleur rouge $cadre_equipe_peda [2][2] = 0 ; // Couleur verte $cadre_equipe_peda [2][3] = 0 ; // Couleur bleu $cadre_equipe_peda [2][4] = "Helvetica-Bold" ; // Police Appreciation equipe peda $cadre_equipe_peda [2][5] = "8" ; // Taille $cadre_equipe_peda [2][6] = "Helvetica" ; // Police signature $cadre_equipe_peda [2][7] = "8" ; // Taille // ------------------------------------------------------------------------ // BAS DE PAGE // ------------------------------------------------------------------------ // Bas de cadre $cadre_bas_page [1][0] = $marge_gauche ; // Debut bas X $cadre_bas_page [1][1] = $largeur-$marge_droite ; // Fin bas X $cadre_bas_page [1][2] = 0.2 ; // Hauteur bas de page // Couleurs $cadre_bas_page [2][0] = 1 ; // Largeur trace $cadre_bas_page [2][1] = 0 ; // Couleur rouge $cadre_bas_page [2][2] = 0 ; // Couleur verte $cadre_bas_page [2][3] = 0 ; // Couleur bleu $cadre_bas_page [2][4] = "Helvetica" ; // Police Texte gauche $cadre_bas_page [2][5] = "6" ; // Taille $cadre_bas_page [2][6] = "Helvetica" ; // Police Copyright droite $cadre_bas_page [2][7] = "6" ; // Taille $cadre_bas_page [2][8] = "Helvetica" ; // Police numero page $cadre_bas_page [2][9] = "6" ; // Taille // ------------------------------------------------------------------------ // Renvoi l'ecart entre le texte contenant $nombre caracteres et // le debut du texte sur un total de $total caracteres avec pour // chacun des caracteres une taille de $taille // ------------------------------------------------------------------------ Function position ($nombre, $total, $taille) { $g = ($total - $nombre)/2 ; $c = $g * $taille ; Return $c ; } // ------------------------------------------------------------------------ // Fonction de trace des renseignements periode // ------------------------------------------------------------------------ Function entete_periode ($numero, $periode, $classe) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_periode, $id_sql, $nom_mois, $millesime ; // Trace cadre periode If ($cadre_periode [0][0]) { $param ["width"] = $cadre_periode [1][4] ; $param ["red"] = $cadre_periode [1][5] ; $param ["green"] = $cadre_periode [1][6] ; $param ["blue"] = $cadre_periode [1][7] ; $pdf->Draw_Rectangle ($cadre_periode [1][3]*$echelle_y, $cadre_periode [1][2]*$echelle_x, $cadre_periode [1][1]*$echelle_y, $cadre_periode [1][0]*$echelle_x, $page [$numero], $param) ; } // Periode $param ["font"] = $cadre_periode [2][2] ; $param ["height"] = $cadre_periode [2][3] ; $param ["red"] = $cadre_periode [2][4] ; $param ["green"] = $cadre_periode [2][5] ; $param ["blue"] = $cadre_periode [2][6] ; $nom_p = nom_periode ($classe) ; $nm = Str_Replace ("é", "é", $nom_mois [(int)Date ("m")]) ; $nm = Str_Replace ("û", "û", $nm) ; $texte1 = "Relevé de notes au ".Date ("d")." ".$nm." ".Date ("Y")." du ".$periode ; If ($periode == 1) { $nom_periode = "er" ; } Else { $nom_periode = "e" ; } $texte2 = " ".$nom_p." de l'année scolaire ".$millesime."-".($millesime+1) ; $texte3 = $texte1.$nom_periode.$texte2 ; $pdf->Draw_Text ($cadre_periode [2][0]*$echelle_x+position (StrLen ($texte3), $cadre_periode [2][7], 6), $cadre_periode [2][1]*$echelle_y, $texte1, $page [$numero], $param) ; $pdf->Draw_Text ($cadre_periode [2][0]*$echelle_x+position (StrLen ($texte3), $cadre_periode [2][7], 6)+$pdf->StrLen ($texte1)+9, ($cadre_periode [2][1]+0.1)*$echelle_y, $nom_periode, $page [$numero], $param) ; $pdf->Draw_Text ($cadre_periode [2][0]*$echelle_x+position (StrLen ($texte3), $cadre_periode [2][7], 6)+$pdf->StrLen ($texte1)+$pdf->StrLen ($nom_periode)+9, $cadre_periode [2][1]*$echelle_y, $texte2, $page [$numero], $param) ; } // ------------------------------------------------------------------------ // Fonction de trace des renseignements eleve // ------------------------------------------------------------------------ Function entete_eleve ($numero, $eleve, $effectif) { Global $page, $pdf, $echelle_x, $echelle_y, $repertoire_racine, $cadre_eleve, $numero_rne ; // Trace cadre eleve If ($cadre_eleve [0][0]) { $param ["width"] = $cadre_eleve [1][4] ; $param ["red"] = $cadre_eleve [1][5] ; $param ["green"] = $cadre_eleve [1][6] ; $param ["blue"] = $cadre_eleve [1][7] ; $pdf->Draw_Rectangle ($cadre_eleve [1][3]*$echelle_y, $cadre_eleve [1][2]*$echelle_x, $cadre_eleve [1][1]*$echelle_y, $cadre_eleve [1][0]*$echelle_x, $page [$numero], $param) ; } // Mise en place de la photo If ($eleve ["photo"]) { If (StrToUpper (SubStr (PHP_OS, 0, 3) == "WIN")) { $fiche = $repertoire_racine."\\images\\eleves\\".$numero_rne."\\".$eleve ["photo"] ; } Else { $fiche = $repertoire_racine."/images/eleves/".$numero_rne."/".$eleve ["photo"] ; } If (File_Exists ($fiche)) { $fichier = FOpen ($fiche, "r") ; $fiche_data = FRead ($fichier, FileSize ($fiche)) ; FClose ($fichier) ; $image = $pdf->jfif_embed ($fiche_data) ; $taille = $pdf->Get_Image_Size ($image) ; //$ech_x = $cadre_eleve [2][4]*$echelle_x/$taille ["width"] ; If ($taille ["height"] > 0) { $echelle = ($cadre_eleve [2][5]*$echelle_y-2)/$taille ["height"] ; //If ($ech_x < $ech_y) { $echelle = $ech_x ; } //Else { $echelle = $ech_y ; } $pdf->image_place ($image, $cadre_eleve [2][3]*$echelle_y+1, $cadre_eleve [2][0]*$echelle_x, $page [$numero], $echelle, 0) ; } } } // Nom eleve $param ["font"] = $cadre_eleve [3][2] ; $param ["height"] = $cadre_eleve [3][3] ; $param ["red"] = $cadre_eleve [3][4] ; $param ["green"] = $cadre_eleve [3][5] ; $param ["blue"] = $cadre_eleve [3][6] ; If (StrPos ($eleve ["prenoms"], " ")) { $prenom = SubStr ($eleve ["prenoms"], 0, StrPos ($eleve ["prenoms"], " ")) ; } Else { $prenom = $eleve ["prenoms"] ; } $texte = StrToUpper (filtrage_accents_maj (filtrage_utf8 ($eleve ["nom"]))." ".filtrage_accents_maj (filtrage_utf8 ($prenom))) ; $pdf->Draw_Text ($cadre_eleve [3][0]*$echelle_x+position (StrLen ($texte), $cadre_eleve [3][7], 6), $cadre_eleve [3][1]*$echelle_y, $texte, $page [$numero], $param) ; // Date de naissance $param ["font"] = $cadre_eleve [4][2] ; $param ["height"] = $cadre_eleve [4][3] ; $param ["red"] = $cadre_eleve [4][4] ; $param ["green"] = $cadre_eleve [4][5] ; $param ["blue"] = $cadre_eleve [4][6] ; $texte = "Date de naissance : ".decode_date_1 ($eleve ["date_naissance"]) ; $pdf->Draw_Text ($cadre_eleve [4][0]*$echelle_x, $cadre_eleve [4][1]*$echelle_y, $texte, $page [$numero], $param) ; // Classe $param ["font"] = $cadre_eleve [5][2] ; $param ["height"] = $cadre_eleve [5][3] ; $param ["red"] = $cadre_eleve [5][4] ; $param ["green"] = $cadre_eleve [5][5] ; $param ["blue"] = $cadre_eleve [5][6] ; $nom_classe = nom_classe_long_parid ($eleve ["classe"]) ; If (!$nom_classe) { $nom_classe = nom_classe_bref_parid ($eleve ["classe"]) ; } $texte = "Classe : ".$nom_classe ; $pdf->Draw_Text ($cadre_eleve [5][0]*$echelle_x, $cadre_eleve [5][1]*$echelle_y, $texte, $page [$numero], $param) ; // Effectif $param ["font"] = $cadre_eleve [6][2] ; $param ["height"] = $cadre_eleve [6][3] ; $param ["red"] = $cadre_eleve [6][4] ; $param ["green"] = $cadre_eleve [6][5] ; $param ["blue"] = $cadre_eleve [6][6] ; $texte = "Effectif de la classe : ".$effectif." élève" ; If ($effectif > 1) { $texte .= "s" ; } $pdf->Draw_Text ($cadre_eleve [6][0]*$echelle_x, $cadre_eleve [6][1]*$echelle_y, $texte, $page [$numero], $param) ; // Redoublant $param ["font"] = $cadre_eleve [7][2] ; $param ["height"] = $cadre_eleve [7][3] ; $param ["red"] = $cadre_eleve [7][4] ; $param ["green"] = $cadre_eleve [7][5] ; $param ["blue"] = $cadre_eleve [7][6] ; $texte = "Redoublant" ; If ($eleve ["sexe"] == "F") { $texte .= "e" ; } $texte .= " : " ; If ($eleve ["redoublant"] == "O") { $texte .= "Oui" ; } Else { $texte .= "Non" ; } $pdf->Draw_Text ($cadre_eleve [7][0]*$echelle_x, $cadre_eleve [7][1]*$echelle_y, $texte, $page [$numero], $param) ; } // ------------------------------------------------------------------------ // Fonction de trace des renseignements parents : adresse... // ------------------------------------------------------------------------ Function entete_parents ($numero,$parents,$numero_parent) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_parents ; Switch ($numero_parent) { Case 1 : $np = "" ; Break ; Case 2 : $np = "_p2" ; Break ; Default : $np = "" ; Break ; } // Trace cadre parents If ($cadre_parents [0][0]) { $param ["width"] = $cadre_parents [1][4] ; $param ["red"] = $cadre_parents [1][5] ; $param ["green"] = $cadre_parents [1][6] ; $param ["blue"] = $cadre_parents [1][7] ; $pdf->Draw_Rectangle ($cadre_parents [1][3]*$echelle_y, $cadre_parents [1][2]*$echelle_x, $cadre_parents [1][1]*$echelle_y, $cadre_parents [1][0]*$echelle_x, $page [$numero], $param) ; } // Civilite+Nom+Prenom parents $param ["font"] = $cadre_parents [2][2] ; $param ["height"] = $cadre_parents [2][3] ; $param ["red"] = $cadre_parents [2][4] ; $param ["green"] = $cadre_parents [2][5] ; $param ["blue"] = $cadre_parents [2][6] ; $texte = $parents ["civilite_parents".$np]." ".StrToUpper (filtrage_utf8 ($parents ["nom_parents".$np]." ".$parents ["prenom_parents".$np])) ; $pdf->Draw_Text ($cadre_parents [2][0]*$echelle_x, $cadre_parents [2][1]*$echelle_y, $texte, $page [$numero], $param) ; // Adresse (1+2) $param ["font"] = $cadre_parents [3][4] ; $param ["height"] = $cadre_parents [3][5] ; $param ["red"] = $cadre_parents [3][6] ; $param ["green"] = $cadre_parents [3][7] ; $param ["blue"] = $cadre_parents [3][8] ; $pdf->Draw_Text ($cadre_parents [3][0]*$echelle_x, $cadre_parents [3][1]*$echelle_y, filtrage_utf8 ($parents ["adresse1".$np]), $page [$numero], $param) ; $pdf->Draw_Text ($cadre_parents [3][2]*$echelle_x, $cadre_parents [3][3]*$echelle_y, filtrage_utf8 ($parents ["adresse2".$np]), $page [$numero], $param) ; // CP + Ville $param ["font"] = $cadre_parents [4][2] ; $param ["height"] = $cadre_parents [4][3] ; $param ["red"] = $cadre_parents [4][4] ; $param ["green"] = $cadre_parents [4][5] ; $param ["blue"] = $cadre_parents [4][6] ; $texte = filtrage_utf8 ($parents ["cp".$np]." ".$parents ["ville".$np]) ; $pdf->Draw_Text ($cadre_parents [4][0]*$echelle_x, $cadre_parents [4][1]*$echelle_y, $texte, $page [$numero], $param) ; } // ------------------------------------------------------------------------ // Fonction de trace des renseignements etablissement : adresse... // ------------------------------------------------------------------------ Function entete_etablissement ($numero, $etab, $logo) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_etab, $repertoire_logos_releves_racine, $base_choisie ; If (StrToUpper (SubStr (PHP_OS, 0, 3) == "WIN")) { $fiche = $repertoire_logos_releves_racine."\\".$base_choisie."\\".$logo ; } Else { $fiche = $repertoire_logos_releves_racine."/".$base_choisie."/".$logo ; } If (File_Exists ($fiche)) { // Lecture du logo $fi = FOpen ($fiche, "r") ; $fichier_image = FRead ($fi, FileSize ($fiche)) ; FClose ($fi) ; // Preparation de l'affichage $image = $pdf->JFIF_Embed ($fichier_image) ; // Taille de l'image $taille_image = $pdf->Get_Image_Size ($image) ; If (($taille_image ["width"] != 0) And ($taille_image ["height"] != 0)) { // Remise a l'echelle $tx = ($cadre_etab [1][2]-$cadre_etab [1][0])*$echelle_x ; $ty = ($cadre_etab [1][1]-$cadre_etab [1][4])*$echelle_y ; $px = $tx/$taille_image ["width"] ; $py = $ty/$taille_image ["height"] ; If ($px < $py) { $echelle_image = $px ; } Else { $echelle_image = $py ; } //$pos_x = ($tx-$taille_image ["width"]*$echelle_image)/2 ; If ($pos_x < 0) { $pos_x = 0 ; } //$pos_y = ($ty-$taille_image ["height"]*$echelle_image)/2 ; If ($pos_y < 0) { $pos_y = 0 ; } $pdf->Image_Place ($image, $cadre_etab [1][1]*$echelle_y-$taille_image ["height"]*$echelle_image, $cadre_etab [1][0]*$echelle_x, $page [$numero], $echelle_image) ; } } If ($etab ["entete_releves"] == 0) { // Trace cadre etablissement If ($cadre_etab [0][0] > 0) { $param ["width"] = $cadre_etab [1][4] ; $param ["red"] = $cadre_etab [1][5] ; $param ["green"] = $cadre_etab [1][6] ; $param ["blue"] = $cadre_etab [1][7] ; $pdf->Draw_Rectangle ($cadre_etab [1][3]*$echelle_y, $cadre_etab [1][2]*$echelle_x, $cadre_etab [1][1]*$echelle_y, $cadre_etab [1][0]*$echelle_x, $page [$numero], $param) ; } // Denomination $param ["font"] = $cadre_etab [2][2] ; $param ["height"] = $cadre_etab [2][3] ; $param ["red"] = $cadre_etab [2][4] ; $param ["green"] = $cadre_etab [2][5] ; $param ["blue"] = $cadre_etab [2][6] ; $pdf->Draw_Paragraph ($cadre_etab [2][1]*$echelle_y, $cadre_etab [2][0]*$echelle_x, $cadre_etab [2][9]*$echelle_y, $cadre_etab [2][8]*$echelle_x, filtrage_utf8 ($etab ["nom"]), $page [$numero], $param) ; // Adresse $param ["font"] = $cadre_etab [3][2] ; $param ["height"] = $cadre_etab [3][3] ; $param ["red"] = $cadre_etab [3][4] ; $param ["green"] = $cadre_etab [3][5] ; $param ["blue"] = $cadre_etab [3][6] ; $pdf->Draw_Text ($cadre_etab [3][0]*$echelle_x, $cadre_etab [3][1]*$echelle_y, filtrage_utf8 ($etab ["adresse"]), $page [$numero], $param) ; // CP+Ville $param ["font"] = $cadre_etab [4][2] ; $param ["height"] = $cadre_etab [4][3] ; $param ["red"] = $cadre_etab [4][4] ; $param ["green"] = $cadre_etab [4][5] ; $param ["blue"] = $cadre_etab [4][6] ; $pdf->Draw_Text ($cadre_etab [4][0]*$echelle_x, $cadre_etab [4][1]*$echelle_y, filtrage_utf8 ($etab ["cp"]." ".$etab ["ville"]), $page [$numero], $param) ; // Telephone If ($etab ["telephone"]) { $param ["font"] = $cadre_etab [5][2] ; $param ["height"] = $cadre_etab [5][3] ; $param ["red"] = $cadre_etab [5][4] ; $param ["green"] = $cadre_etab [5][5] ; $param ["blue"] = $cadre_etab [5][6] ; $pdf->Draw_Text ($cadre_etab [5][0]*$echelle_x, $cadre_etab [5][1]*$echelle_y, "Téléphone : ".filtrage_utf8 ($etab ["telephone"]), $page [$numero], $param) ; } // Fax If ($etab ["fax"]) { $param ["font"] = $cadre_etab [6][2] ; $param ["height"] = $cadre_etab [6][3] ; $param ["red"] = $cadre_etab [6][4] ; $param ["green"] = $cadre_etab [6][5] ; $param ["blue"] = $cadre_etab [6][6] ; $pdf->Draw_Text ($cadre_etab [6][0]*$echelle_x, $cadre_etab [6][1]*$echelle_y, "Fax : ".filtrage_utf8 ($etab ["fax"]), $page [$numero], $param) ; } // Mel If ($etab ["mel"]) { $param ["font"] = $cadre_etab [7][2] ; $param ["height"] = $cadre_etab [7][3] ; $param ["red"] = $cadre_etab [7][4] ; $param ["green"] = $cadre_etab [7][5] ; $param ["blue"] = $cadre_etab [7][6] ; $pdf->Draw_Text ($cadre_etab [7][0]*$echelle_x, $cadre_etab [7][1]*$echelle_y, "Mél : ".filtrage_utf8 ($etab ["mel"]), $page [$numero], $param) ; } } } // ------------------------------------------------------------------------ // Fonction de trace de l'entete des matieres // ------------------------------------------------------------------------ Function entete_matieres ($numero, $prof_princ, $mode) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_mat, $cadre_parents, $cadre_eleve, $trait_debut_gauche, $trait_fin_gauche ; $param ["width"] = $cadre_mat [2][0] ; $param ["red"] = $cadre_mat [2][1] ; $param ["green"] = $cadre_mat [2][2] ; $param ["blue"] = $cadre_mat [2][3] ; // Trace cadre If ($cadre_mat [0][0]) { Switch ($mode) { Case 0 : $yy = $cadre_parents [1][3]-0.1 ; Break ; Case 1 : $yy = $cadre_eleve [1][3]-0.1 ; Break ; Default : $yy = $cadre_parents [1][3]-0.1 ; Break ; } $pdf->Draw_Rectangle (($yy-$cadre_mat [1][2])*$echelle_y, $cadre_mat [1][1]*$echelle_x, $yy*$echelle_y, $cadre_mat [1][0]*$echelle_x, $page [$numero], $param) ; } // Lignes verticales $y [0] = $yy*$echelle_y ; $y [1] = ($yy-$cadre_mat [1][2])*$echelle_y ; For ($i = 1 ; $i < 5 ; $i++) { Switch ($cadre_mat [0][$i]) { Case 4 : // Matieres/Prof $param ["font"] = $cadre_mat [3][0] ; $param ["height"] = $cadre_mat [3][1] ; $texte = "Matières" ; $pdf->Draw_Text (($cadre_mat [1][0]+0.1)*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $param ["font"] = $cadre_mat [3][2] ; $param ["height"] = $cadre_mat [3][3] ; $texte = "Enseignants" ; $pdf->Draw_Text (($cadre_mat [1][0]+0.1)*$echelle_x, $y [0]-($cadre_mat [1][2]-0.1)*$echelle_y, $texte, $page [$numero], $param) ; // Pliage $x [0] = $trait_debut_gauche*$echelle_x ; $x [1] = $trait_fin_gauche*$echelle_x ; $param ["width"] = 0.5 ; $yp [0] = $yp [1] = $y [1] ; $pdf->Draw_Line ($x, $yp, $page [$numero], $param) ; $param ["width"] = $cadre_mat [2][0] ; $xx = ($cadre_mat [1][0]+$cadre_mat [1][4])*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; Case 5 : // Moyenne eleve $param ["font"] = $cadre_mat [4][0] ; $param ["height"] = $cadre_mat [4][1] ; $texte = "Moy." ; $pdf->Draw_Text ($x [0]+0.1*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $texte = "élève" ; $pdf->Draw_Text ($x [0]+0.1*$echelle_x, $y [0]-($cadre_mat [1][2]-0.1)*$echelle_y, $texte, $page [$numero], $param) ; $xx += $cadre_mat [1][5]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; Case 6 : // Moy/Min/Max Classe // MOYENNE CLASSE $param ["font"] = $cadre_mat [5][0] ; $param ["height"] = $cadre_mat [5][1] ; $texte = "Moyenne Classe" ; $pdf->Draw_Text ($x [0]+0.1*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $yh [0] = ($yy-$cadre_mat [1][2]/2)*$echelle_y ; $yh [1] = $y [1] ; // MIN $texte = "Min" ; $pdf->Draw_Text ($x [0]+0.1*$echelle_x, $yh [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $xd = $xx ; $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; // MOY $texte = "Moy" ; $pdf->Draw_Text ($x [0]+0.1*$echelle_x, $yh [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; // MAX $texte = "Max" ; $pdf->Draw_Text ($x [0]+0.1*$echelle_x, $yh [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // Dernier trait horizontal $xh [0] = $xd ; $xh [1] = $xx ; $yh [1] = $yh [0] ; $pdf->Draw_Line ($xh, $yh, $page [$numero], $param) ; Break ; Case 7 : // Appreciations // Si prof principal alors un certain format If ($prof_princ ["id_utilisateur"] > 0) { // Professeur principal si existe Switch ($prof_princ ["civilite"]) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $param ["font"] = $cadre_mat [6][2] ; $param ["height"] = $cadre_mat [6][3] ; $texte = "Enseignant principal : ".$civ." ".$prof_princ ["nom"] ; $pdf->Draw_Text ($x [0]+0.1*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; } Else { $texte = "Enseignant principal : " ; $pdf->Draw_Text ($x [0]+0.1*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; } $param ["font"] = $cadre_mat [6][0] ; $param ["height"] = $cadre_mat [6][1] ; $texte = "NOTES" ; $pdf->Draw_Text ($x [0]+position (StrLen ($texte), $cadre_mat [1][8], 6), $y [0]-($cadre_mat [1][2]-0.05)*$echelle_y, $texte, $page [$numero], $param) ; $xx += $cadre_mat [1][7]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; } } // Retour position Return ($y [1]/$echelle_y) ; } // ------------------------------------------------------------------------ // Fonction de trace d'une discipline // ------------------------------------------------------------------------ Function matiere ($numero, $yy, $matiere, $prof_id, $prof_civ, $prof_nom, $prof_prenom, $prof_coeff, $appreciation, $min_cl, $moy_cl, $max_cl, $moy, $ok_coeff, $coeff, $ok_examen, $texte_examen, $num_disc, $num_el, $activation, $id_alias, $tp_moy) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_mat, $bulletin_cpe, $mini_max, $maxi_min ; Global $impression_smat, $nom_sous_matieres, $note_sous_matieres, $ok_alias ; //If (((($appreciation == "") And ($moy == "")) Or ((StrLen ($appreciation) < 2) And ($moy == ""))) And ($activation == 1)) If (((($appreciation == "") And ($moy == "")) Or ((StrLen ($appreciation) < 2) And ($moy == ""))) And ($activation == 4)) { Return $yy ; } Else { $param ["width"] = $cadre_mat [2][0] ; $param ["red"] = $cadre_mat [2][1] ; $param ["green"] = $cadre_mat [2][2] ; $param ["blue"] = $cadre_mat [2][3] ; // Trace cadre $pdf->Draw_Rectangle (($yy-$cadre_mat [1][3]-$ok_examen*$cadre_mat [1][9])*$echelle_y, $cadre_mat [1][1]*$echelle_x, $yy*$echelle_y, $cadre_mat [1][0]*$echelle_x, $page [$numero], $param) ; // Lignes verticales $y [0] = $yy*$echelle_y ; $y [1] = ($yy-$cadre_mat [1][3]-$ok_examen*$cadre_mat [1][9])*$echelle_y ; $y_sortie = $y [1]/$echelle_y ; //$taille = Floor (($cadre_mat [1][6]-0.1)*$echelle_x/6) ; $taille = 5.5 ; $pos_y = $y [0]-($cadre_mat [1][3]/2+0.125+$ok_examen*$cadre_mat [1][9]/2)*$echelle_y ; For ($i = 1 ; $i < 5 ; $i++) { Switch ($cadre_mat [0][$i]) { Case 4 : // Matiere/Prof $param ["font"] = $cadre_mat [3][4] ; $param ["height"] = $cadre_mat [3][5] ; $pdf->Draw_Paragraph ($y [0], ($cadre_mat [1][0]+0.05)*$echelle_x, $y [0]-0.8*$echelle_y, ($cadre_mat [1][0]+$cadre_mat [1][4]-0.05)*$echelle_x, $matiere, $page [$numero], $param) ; //$pdf->Draw_Text (($cadre_mat [1][0]+0.1)*$echelle_x, // $y [0]-0.27*$echelle_y, $matiere, $page [$numero], $param) ; $param ["font"] = $cadre_mat [3][6] ; $param ["height"] = $cadre_mat [3][7] ; If ($prof_id > 0) { Switch ($prof_civ) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $nom = StrToUpper (SubStr ($prof_nom, 0, 1)).StrToLower (SubStr ($prof_nom, 1, StrLen ($prof_nom)-1)) ; $pdf->Draw_Text (($cadre_mat [1][0]+0.1)*$echelle_x, $y [0]-($cadre_mat [1][3]-0.1+$ok_examen*$cadre_mat [1][9])*$echelle_y, $civ." ".$nom, $page [$numero], $param) ; } If (($ok_coeff == 1) And (($coeff == 1) Or (($coeff == 0) And ($prof_coeff > 1)))) { $texte = "C".Chr (156)."ff. ".Str_Replace (".", ",", $prof_coeff) ; $pdf->Draw_Text (($cadre_mat [1][0]+$cadre_mat [1][4])*$echelle_x-StrLen ($texte)*4.5, $y [0]-($cadre_mat [1][3]-0.1-$ok_examen*$cadre_mat [1][9])*$echelle_y, $texte, $page [$numero], $param) ; } $xx = ($cadre_mat [1][0]+$cadre_mat [1][4])*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; Case 5 : // Moyenne eleve $param ["font"] = $cadre_mat [4][2] ; $param ["height"] = $cadre_mat [4][3] ; If (($moy != "") And ($moy != $mini_max) And ($moy != $maxi_min)) { If ($tp_moy == 1) { $moy .= "%" ; } // On prend la partie a gauche de la virgule If (StrPos ($moy, ",")) { $chaine = SubStr ($moy, 0, StrPos ($moy, ",")) ; } Else { $chaine = $moy ; } If (StrPos ($chaine, "%")) { $chaine = SubStr ($chaine, 0, StrPos ($chaine, "%")) ; } If (($impression_smat == 1) And ($nom_sous_matieres [$num_disc][0][0] > 0)) { $cx = $xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][5]-0.2)/4)*$echelle_x ; } Else { If ($impression_smat == 1) { $cx = $xx+($cadre_mat [1][5]*$echelle_x-$pdf->StrLen ($chaine, $param))/2 ; } Else { $cx = $xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][5]-0.2)/4)*$echelle_x ; } } $pdf->Draw_Text ($cx, $pos_y, $moy, $page [$numero], $param) ; // Sous-matiere If ($impression_smat == 1) { If ($nom_sous_matieres [$num_disc][0][0] > 0) { // Separation verticale $yyy [0] = $yy*$echelle_y ; $yyy [1] = ($yy-$cadre_mat [1][3])*$echelle_y ; $xxx [0] = $xxx [1] = $xx+$cadre_mat [7][4]*$echelle_x ; $pdf->Draw_Line ($xxx, $yyy, $page [$numero], $param) ; // Largeur de la cellule $lg_c = ($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x ; If ($nom_sous_matieres [$num_disc][0][0] > 1) { // Separation horizontale $yyy [0] = $yyy [1] = ($yy-$cadre_mat [1][3]/2)*$echelle_y ; $xxx [0] = $xx+$cadre_mat [7][4]*$echelle_x ; $xxx [1] = $xx+$cadre_mat [1][5]*$echelle_x ; $pdf->Draw_Line ($xxx, $yyy, $page [$numero], $param) ; // Nom 1 $param ["font"] = $cadre_mat [7][0] ; $param ["height"] = $cadre_mat [7][1] ; While ($pdf->StrLen ($nom_sous_matieres [$num_disc][1][0], $param) > $lg_c) { $param ["height"] -= 0.25 ; } $coeff1 = $cadre_mat [1][3]/2 ; // Demi-cellule $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($nom_sous_matieres [$num_disc][1][0], $param))/2 ; $delta_y = ($coeff1*$echelle_y-($cadre_mat [7][1]+$cadre_mat [7][3]))/3 ; $cy = $yy*$echelle_y-$delta_y-$cadre_mat [7][1] ; $pdf->Draw_Text ($cx, $cy, $nom_sous_matieres [$num_disc][1][0], $page [$numero], $param) ; // Note $param ["font"] = $cadre_mat [7][2] ; $param ["height"] = $cadre_mat [7][3] ; $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($note_sous_matieres [$num_disc][$num_el][1], $param))/2 ; $ccy = $cy-$delta_y-$cadre_mat [7][1] ; $pdf->Draw_Text ($cx, $ccy, $note_sous_matieres [$num_disc][$num_el][1], $page [$numero], $param) ; // Nom 2 $param ["font"] = $cadre_mat [7][0] ; $param ["height"] = $cadre_mat [7][1] ; While ($pdf->StrLen ($nom_sous_matieres [$num_disc][2][0], $param) > $lg_c) { $param ["height"] -= 0.25 ; } $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($nom_sous_matieres [$num_disc][2][0], $param))/2 ; $cy = $yy*$echelle_y-$delta_y-$cadre_mat [7][1]-$coeff1*$echelle_y ; $pdf->Draw_Text ($cx, $cy, $nom_sous_matieres [$num_disc][2][0], $page [$numero], $param) ; // Note $param ["font"] = $cadre_mat [7][2] ; $param ["height"] = $cadre_mat [7][3] ; $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($note_sous_matieres [$num_disc][$num_el][2], $param))/2 ; $ccy = $cy-$delta_y-$cadre_mat [7][1] ; $pdf->Draw_Text ($cx, $ccy, $note_sous_matieres [$num_disc][$num_el][2], $page [$numero], $param) ; } Else { $coeff1 = $cadre_mat [1][3] ; // Cellule complete // Nom $param ["font"] = $cadre_mat [7][0] ; $param ["height"] = $cadre_mat [7][1] ; While ($pdf->StrLen ($nom_sous_matieres [$num_disc][1][0], $param) > $lg_c) { $param ["height"] -= 0.25 ; } $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($nom_sous_matieres [$num_disc][1][0], $param))/2 ; $delta_y = ($coeff1*$echelle_y-($cadre_mat [7][1]+$cadre_mat [7][3]))/3 ; $cy = $yyy [0]-$delta_y-$cadre_mat [7][1] ; $pdf->Draw_Text ($cx, $cy, $nom_sous_matieres [$num_disc][1][0], $page [$numero], $param) ; // Note $param ["font"] = $cadre_mat [7][2] ; $param ["height"] = $cadre_mat [7][3] ; $cx = $xxx [0]+(($cadre_mat [1][5]-$cadre_mat [7][4])*$echelle_x-$pdf->StrLen ($note_sous_matieres [$num_disc][$num_el][1], $param))/2 ; $cy = $cy-$delta_y-$cadre_mat [7][1] ; $pdf->Draw_Text ($cx, $cy, $note_sous_matieres [$num_disc][$num_el][1], $page [$numero], $param) ; } } } } $xx += $cadre_mat [1][5]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; Case 6 : // Moy/Min/Max Classe $param ["font"] = $cadre_mat [5][2] ; $param ["height"] = $cadre_mat [5][3] ; // MIN If (($min_cl != "") And ($min_cl != $mini_max) And ($min_cl != $maxi_min)) { If ($tp_moy == 1) { $min_cl .= "%" ; } // On prend la partie a gauche de la virgule If (StrPos ($min_cl, ",")) { $chaine = SubStr ($min_cl, 0, StrPos ($min_cl, ",")) ; } Else { $chaine = $min_cl ; } If (StrPos ($chaine, "%")) { $chaine = SubStr ($chaine, 0, StrPos ($chaine, "%")) ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y, $min_cl, $page [$numero], $param) ; } $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // MOY If (($moy_cl != "") And ($moy_cl != $mini_max) And ($moy_cl != $maxi_min)) { If ($tp_moy == 1) { $moy_cl .= "%" ; } // On prend la partie a gauche de la virgule If (StrPos ($moy_cl, ",")) { $chaine = SubStr ($moy_cl, 0, StrPos ($moy_cl, ",")) ; } Else { $chaine = $moy_cl ; } If (StrPos ($chaine, "%")) { $chaine = SubStr ($chaine, 0, StrPos ($chaine, "%")) ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y, $moy_cl, $page [$numero], $param) ; } $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // MAX If (($max_cl != "") And ($max_cl != $mini_max) And ($max_cl != $maxi_min)) { If ($tp_moy == 1) { $max_cl .= "%" ; } // On prend la partie a gauche de la virgule If (StrPos ($max_cl, ",")) { $chaine = SubStr ($max_cl, 0, StrPos ($max_cl, ",")) ; } Else { $chaine = $max_cl ; } If (StrPos ($chaine, "%")) { $chaine = SubStr ($chaine, 0, StrPos ($chaine, "%")) ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y, $max_cl, $page [$numero], $param) ; } $xx += $cadre_mat [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; Case 7 : // Appreciations If (SubStr ($appreciation, 0, 1) == ",") { $appreciation = SubStr ($appreciation, 1, StrLen ($appreciation)) ; } $param ["font"] = $cadre_mat [6][4] ; $param ["height"] = $cadre_mat [6][5] ; $longueur = $pdf->StrLen ($appreciation, $param)/(($cadre_mat [1][7]-0.25)*$echelle_x) ; If ($longueur < 1) { $correction = $y [0]-$pos_y-$cadre_mat [6][5] ; } ElseIf ($longueur < 2) { $correction = $cadre_mat [6][5]/2 ; } Else { $correction = 0 ; } $pdf->Draw_Paragraph ($y [0]-$correction, $x [0]+0.1*$echelle_x, $y [0]-$cadre_mat [1][3]*$echelle_y, $x [0]+($cadre_mat [1][7]-0.15)*$echelle_x, $appreciation, $page [$numero], $param) ; $xx += $cadre_mat [1][7]*$echelle_x ; If ($ok_examen) { $pos_x_exam = $x [0] ; } $x [0] = $x [1] = $xx ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Break ; } } If ($ok_examen) { $param ["font"] = $cadre_mat [6][6] ; $param ["height"] = $cadre_mat [6][7] ; $pdf->Draw_Text ($pos_x_exam+0.1*$echelle_x, $y [0]-($cadre_mat [1][3]+0.1)*$echelle_y, $texte_examen, $page [$numero], $param) ; } // Retour position Return ($y [1]/$echelle_y) ; } } // ------------------------------------------------------------------------ // Fonction de trace des moyennes periodiques et coefficientees // ------------------------------------------------------------------------ Function moyennes ($numero, $yy, $min_cl_nc, $moy_cl_nc, $max_cl_nc, $moy_el_nc, $min_cl_c, $moy_cl_c, $max_cl_c, $moy_el_c, $classe, $ok_coeff, $ok_nc, $ok_c) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_moy_gen, $cadre_mat ; If ($cadre_mat [1][5] > 0) { $param ["width"] = $cadre_moy_gen [2][0] ; $param ["red"] = $cadre_moy_gen [2][1] ; $param ["green"] = $cadre_moy_gen [2][2] ; $param ["blue"] = $cadre_moy_gen [2][3] ; // Trace cadre If ($cadre_moy_gen [0][0]) { // Trace du cadre moyenne non coefficientee total $pdf->Draw_Rectangle (($yy-$cadre_moy_gen [1][2]/2)*$echelle_y, ($cadre_moy_gen [1][0]+$cadre_moy_gen [1][4])*$echelle_x, $yy*$echelle_y, $cadre_moy_gen [1][0]*$echelle_x, $page [$numero], $param) ; If ($ok_coeff == 1) { // Trace du cadre moyenne coefficientee total $pdf->Draw_Rectangle (($yy-$cadre_moy_gen [1][2]/2)*$echelle_y, ($cadre_moy_gen [1][0]+$cadre_moy_gen [1][4])*$echelle_x, ($yy-$cadre_moy_gen [1][2])*$echelle_y, $cadre_moy_gen [1][0]*$echelle_x, $page [$numero], $param) ; } } // Lignes verticales $y [0] = $yy*$echelle_y ; If ($ok_coeff == 1) { If ($ok_c == 1) { $y [1] = ($yy-$cadre_moy_gen [1][2])*$echelle_y ; } Else { $y [1] = ($yy-$cadre_moy_gen [1][2]/2)*$echelle_y ; } } Else { $y [1] = ($yy-$cadre_moy_gen [1][2]/2)*$echelle_y ; } $nbr_p = nombre_periode ($classe) ; Switch ($nbr_p) { Case 2 : $nom_p = "semestrielle" ; Break ; Case 3 : $nom_p = "trimestrielle" ; Break ; Default : $nom_p = "trimestrielle" ; Break ; } // Moyennes $param ["font"] = $cadre_moy_gen [3][0] ; $param ["height"] = $cadre_moy_gen [3][1] ; $texte = "Moyenne ".$nom_p ; $pdf->Draw_Text ($xx+($cadre_moy_gen [1][0]+0.1)*$echelle_x, $y [0]-0.27*$echelle_y, $texte, $page [$numero], $param) ; If ($ok_coeff == 1) { $param ["font"] = $cadre_moy_gen [3][2] ; $param ["height"] = $cadre_moy_gen [3][3] ; $texte = "Moyenne ".$nom_p." c".Chr (156)."fficientée" ; $pdf->Draw_Text ($xx+($cadre_moy_gen [1][0]+0.1)*$echelle_x, ($yy-$cadre_moy_gen [1][2]/2-0.27)*$echelle_y, $texte, $page [$numero], $param) ; } $xx = ($cadre_moy_gen [1][0]+$cadre_moy_gen [1][4])*$echelle_x ; $xd = $cadre_moy_gen [1][0]*$echelle_x ; $x [0] = $x [1] = $xx ; // Trace de la premiere ligne $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; $pos_y_nc = ($yy-0.27)*$echelle_y ; $pos_y_c = ($yy-$cadre_moy_gen [1][2]/2-0.27)*$echelle_y ; For ($i = 1 ; $i < 5 ; $i++) { Switch ($cadre_mat [0][$i]) { Case 5 : // Moyenne eleve $param ["font"] = $cadre_moy_gen [4][0] ; $param ["height"] = $cadre_moy_gen [4][1] ; If ($moy_el_nc != "") { If (StrPos ($moy_el_nc, ",")) { $chaine = SubStr ($moy_el_nc, 0, StrPos ($moy_el_nc, ",")) ; } Else { $chaine = $moy_el_nc ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_nc, $moy_el_nc, $page [$numero], $param) ; } If (($ok_coeff == 1) And ($moy_el_c != "")) { If (StrPos ($moy_el_c, ",")) { $chaine = SubStr ($moy_el_c, 0, StrPos ($moy_el_c, ",")) ; } Else { $chaine = $moy_el_c ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_c, $moy_el_c, $page [$numero], $param) ; } // Trace de la ligne verticale droite moy non coeff $xx += $cadre_moy_gen [1][5]*$echelle_x ; $x [0] = $x [1] = $xx ; If (($ok_coeff == 1) And ($ok_c == 0)) { $yh [0] = $y [0] ; $yh [1] = $y [1]-($cadre_moy_gen [1][2]/2)*$echelle_y ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } Else { $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; } $yh [0] = $yh [1] = ($yy-$cadre_moy_gen [1][2]/2)*$echelle_y ; $x [0] = $xd ; $x [1] = $xx ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; // Trace de la ligne horizontale entre moy coeff If (($ok_coeff == 1) And ($moy_el_c != "")) { $yh [0] = $yh [1] = ($yy-$cadre_moy_gen [1][2])*$echelle_y ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } Break ; Case 6 : // Moy/Min/Max Classe non coeff et coeff $param ["font"] = $cadre_moy_gen [5][0] ; $param ["height"] = $cadre_moy_gen [5][1] ; If ($ok_nc == 1) { // MIN If ($min_cl_nc != "") { If (StrPos ($min_cl_nc, ",")) { $chaine = SubStr ($min_cl_nc, 0, StrPos ($min_cl_nc, ",")) ; } Else { $chaine = $min_cl_nc ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_nc, $min_cl_nc, $page [$numero], $param) ; } If (($ok_coeff == 1) And ($ok_c == 1) And ($min_cl_c != "")) { If (StrPos ($min_cl_c, ",")) { $chaine = SubStr ($min_cl_c, 0, StrPos ($min_cl_c, ",")) ; } Else { $chaine = $min_cl_c ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_c, $min_cl_c, $page [$numero], $param) ; } $xx += $cadre_moy_gen [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; // Trace de la ligne verticale droite min non coeff $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // Trace de la ligne horizontale entre min non coeff $yh [0] = $yh [1] = ($yy-$cadre_moy_gen [1][2]/2)*$echelle_y ; $x [0] = $xd ; $x [1] = $xx ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; // Trace de la ligne horizontale entre min coeff If (($ok_coeff == 1) And ($ok_c == 1)) { $yh [0] = $yh [1] = ($yy-$cadre_moy_gen [1][2])*$echelle_y ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } // MOY If ($moy_cl_nc != "") { If (StrPos ($moy_cl_nc, ",")) { $chaine = SubStr ($moy_cl_nc, 0, StrPos ($moy_cl_nc, ",")) ; } Else { $chaine = $moy_cl_nc ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_nc, $moy_cl_nc, $page [$numero], $param) ; } If (($ok_coeff == 1) And ($ok_c == 1) And ($moy_cl_c != "")) { If (StrPos ($moy_cl_c, ",")) { $chaine = SubStr ($moy_cl_c, 0, StrPos ($moy_cl_c, ",")) ; } Else { $chaine = $moy_cl_c ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_c, $moy_cl_c, $page [$numero], $param) ; } $xx += $cadre_moy_gen [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; // Trace de la ligne verticale droite moy non coeff $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // Trace de la ligne horizontale entre moy non coeff $yh [0] = $yh [1] = ($yy-$cadre_moy_gen [1][2]/2)*$echelle_y ; $x [0] = $xd ; $x [1] = $xx ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; // Trace de la ligne horizontale entre moy coeff If (($ok_coeff == 1) And ($ok_c == 1)) { $yh [0] = $yh [1] = ($yy-$cadre_moy_gen [1][2])*$echelle_y ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } // MAX If ($max_cl_nc != "") { If (StrPos ($max_cl_nc, ",")) { $chaine = SubStr ($max_cl_nc, 0, StrPos ($max_cl_nc, ",")) ; } Else { $chaine = $max_cl_nc ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_nc, $max_cl_nc, $page [$numero], $param) ; } If (($ok_coeff == 1) And ($ok_c == 1) And ($max_cl_c != "")) { If (StrPos ($max_cl_c, ",")) { $chaine = SubStr ($max_cl_c, 0, StrPos ($max_cl_c, ",")) ; } Else { $chaine = $max_cl_c ; } $pdf->Draw_Text ($xx+(0.1+(2-StrLen ($chaine))*($cadre_mat [1][6]-0.2)/4)*$echelle_x, $pos_y_c, $max_cl_c, $page [$numero], $param) ; } $xx += $cadre_moy_gen [1][6]*$echelle_x ; $x [0] = $x [1] = $xx ; // Trace de la ligne verticale droite max non coeff $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; // Trace de la ligne horizontale entre max non coeff $yh [0] = $yh [1] = ($yy-$cadre_moy_gen [1][2]/2)*$echelle_y ; $x [0] = $xd ; $x [1] = $xx ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; // Trace de la ligne horizontale entre max coeff If (($ok_coeff == 1) And ($ok_c == 1)) { $yh [0] = $yh [1] = ($yy-$cadre_moy_gen [1][2])*$echelle_y ; $pdf->Draw_Line ($x, $yh, $page [$numero], $param) ; } } Break ; } } // Retour position If (($ok_coeff == 1) And ($ok_c == 0)) { $y [1] = ($yy-$cadre_moy_gen [1][2])*$echelle_y ; } Return ($y [1]/$echelle_y) ; } Else { Return $yy ; } } // ------------------------------------------------------------------------ // Fonction de trace des observations CPE // ------------------------------------------------------------------------ /* Function vie_scolaire ($numero, $yy, $cpe, $classe) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_cpe, $id_sql ; // Trace cadre If ($cadre_cpe [0][0]) { $param ["width"] = $cadre_cpe [2][0] ; $param ["red"] = $cadre_cpe [2][1] ; $param ["green"] = $cadre_cpe [2][2] ; $param ["blue"] = $cadre_cpe [2][3] ; $pdf->Draw_Rectangle (($yy-$cadre_cpe [1][2])*$echelle_y, $cadre_cpe [1][1]*$echelle_x, $yy*$echelle_y, $cadre_cpe [1][0]*$echelle_x, $page [$numero], $param) ; } // Premiere ligne $param ["width"] = $cadre_cpe [2][0] ; $param ["red"] = $cadre_cpe [2][1] ; $param ["green"] = $cadre_cpe [2][2] ; $param ["blue"] = $cadre_cpe [2][3] ; If ($cpe ["cpe"] > 0) { $nom_cpe = SQL_commande ("SELECT nom,civilite FROM utilisateurs WHERE id_utilisateur='".$cpe ["cpe"]."' LIMIT 1", $id_sql) ; $ncpe = SQL_ligne_suivante ($nom_cpe) ; $ncpe [0] = filtrage_utf8 ($ncpe [0]) ; Switch ($ncpe [1]) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $texte1 = "Vie scolaire : ".$civ." ".StrToUpper (SubStr ($ncpe [0], 0, 1)).StrToLower (SubStr ($ncpe [0], 1, StrLen ($ncpe [0])-1)) ; ; $texte2 = "Nombre de demi-journée" ; If ((integer)$cpe ["absences"] > 1) { $texte2 .= "s" ; } $texte2 .= " d'absence : ".$cpe ["absences"]." (dont ".$cpe ["non_justifiees"]." non justifiée" ; If ((integer)$cpe ["non_justifiees"] > 1) { $texte2 .= "s" ; } $texte2 .= "). Nombre de retard" ; If ((integer)$cpe ["retards"] > 1) { $texte2 .= "s" ; } $texte2 .= " : ".$cpe ["retards"] ; } Else { $nom_cpe = SQL_commande ("SELECT u.nom,u.civilite FROM utilisateurs u, classes c WHERE c.id_classe='".$classe."' AND c.cpe=u.id_utilisateur LIMIT 1", $id_sql) ; $texte1 = "Vie scolaire : " ; If (SQL_nbr_lignes ($nom_cpe) > 0) { $ncpe = SQL_ligne_suivante ($nom_cpe) ; $ncpe [0] = filtrage_utf8 ($ncpe [0]) ; Switch ($ncpe [1]) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $texte1 .= $civ." ".StrToUpper (SubStr ($ncpe [0], 0, 1)).StrToLower (SubStr ($ncpe [0], 1, StrLen ($ncpe [0])-1)) ; } $texte2 = "Nombre de demi-journée(s) d'absence : ____ (dont ____ non justifiée(s)). Nombre de retards : ____" ; } $param ["font"] = $cadre_cpe [2][4] ; $param ["height"] = $cadre_cpe [2][5] ; $pdf->Draw_Text (($cadre_cpe [1][0]+0.1)*$echelle_x, ($yy-0.3)*$echelle_y, $texte1, $page [$numero], $param) ; $param ["font"] = $cadre_cpe [2][8] ; $param ["height"] = $cadre_cpe [2][9] ; $pdf->Draw_Text (($cadre_cpe [1][0]+5.5)*$echelle_x, ($yy-0.3)*$echelle_y, $texte2, $page [$numero], $param) ; // Observation $param ["font"] = $cadre_cpe [2][10] ; $param ["height"] = $cadre_cpe [2][11] ; $pdf->Draw_Text (($cadre_cpe [1][0]+5.5)*$echelle_x, ($yy-0.6)*$echelle_y, "Observation(s) :", $page [$numero], $param) ; If (IsSet ($cpe ["observations"])) { $param ["font"] = $cadre_cpe [2][12] ; $param ["height"] = $cadre_cpe [2][13] ; $pdf->Draw_Paragraph (($yy-0.3)*$echelle_y, ($cadre_cpe [1][0]+7.9)*$echelle_x, ($yy-1.2)*$echelle_y, ($cadre_cpe [1][1]-0.1)*$echelle_x, filtrage_utf8 ($cpe ["observations"]), $page [$numero], $param) ; } Return ($yy-$cadre_cpe [1][2]) ; } */ Function vie_scolaire ($numero, $yy, $cpe, $classe, $style_bulletin) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_cpe, $id_sql, $module_absences, $unite_comptabilisation, $millesime ; If ($module_absences == 1) { Switch ($unite_comptabilisation) { Case 1 : $duree_abs = "de 1/2 heure" ; Break ; Case 2 : $duree_abs = "d'heure" ; Break ; Case 3 : $duree_abs = "de demi-journée" ; Break ; Case 4 : $duree_abs = "de journée" ; Break ; Default : $duree_abs = "1/2 heure" ; Break ; } } Else { $duree_abs = "de demi-journée" ; } Switch ($style_bulletin) { Default : Case 1 : // Trace cadre If ($cadre_cpe [0][0]) { $param ["width"] = $cadre_cpe [2][0] ; $param ["red"] = $cadre_cpe [2][1] ; $param ["green"] = $cadre_cpe [2][2] ; $param ["blue"] = $cadre_cpe [2][3] ; $pdf->Draw_Rectangle (($yy-$cadre_cpe [1][2])*$echelle_y, $cadre_cpe [1][1]*$echelle_x, $yy*$echelle_y, $cadre_cpe [1][0]*$echelle_x, $page [$numero], $param) ; } // Premiere ligne $param ["width"] = $cadre_cpe [2][0] ; $param ["red"] = $cadre_cpe [2][1] ; $param ["green"] = $cadre_cpe [2][2] ; $param ["blue"] = $cadre_cpe [2][3] ; If ($cpe ["cpe"] > 0) { $nom_cpe = SQL_commande ("SELECT nom,civilite FROM utilisateurs WHERE id_utilisateur='".$cpe ["cpe"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; $ncpe = SQL_ligne_suivante ($nom_cpe) ; $ncpe [0] = filtrage_utf8 ($ncpe [0]) ; Switch ($ncpe [1]) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $texte1 = "Vie scolaire : ".$civ." ".StrToUpper (SubStr ($ncpe [0], 0, 1)).StrToLower (SubStr ($ncpe [0], 1, StrLen ($ncpe [0])-1)) ; $texte2 = "Nombre ".$duree_abs ; If ($cpe ["absences"] > 1) { $texte2 .= "s" ; } $texte2 .= " d'absence : ".$cpe ["absences"]." " ; $texte2 .= "(dont ".$cpe ["non_justifiees"]." non justifiée" ; If ($cpe ["non_justifiees"] > 1) { $texte2 .= "s" ; } $texte2 .= "). " ; $texte2 .= "Nombre de retard" ; If ($cpe ["retards"] > 1) { $texte2 .= "s" ; } $texte2 .= " : ".$cpe ["retards"] ; } Else { $nom_cpe = SQL_commande ("SELECT u.nom,u.civilite FROM utilisateurs u,classes c WHERE c.id_classe='".$classe."' AND c.cpe=u.id_utilisateur AND c.millesime='".$millesime."' LIMIT 1", $id_sql) ; $texte1 = "Vie scolaire : " ; If (SQL_nbr_lignes ($nom_cpe) > 0) { $ncpe = SQL_ligne_suivante ($nom_cpe) ; $ncpe [0] = filtrage_utf8 ($ncpe [0]) ; Switch ($ncpe [1]) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $texte1 .= $civ." ".StrToUpper (SubStr ($ncpe [0], 0, 1)).StrToLower (SubStr ($ncpe [0], 1, StrLen ($ncpe [0])-1)) ; } $texte2 = "Nombre ".$duree_abs."(s) d'absence : ____ (dont ____ non justifiée(s)). Nombre de retards : ____" ; } $param ["font"] = $cadre_cpe [2][4] ; $param ["height"] = $cadre_cpe [2][5] ; $pdf->Draw_Text (($cadre_cpe [1][0]+0.1)*$echelle_x, ($yy-0.3)*$echelle_y, $texte1, $page [$numero], $param) ; $param ["font"] = $cadre_cpe [2][8] ; $param ["height"] = $cadre_cpe [2][9] ; $pdf->Draw_Text (($cadre_cpe [1][0]+5.5)*$echelle_x, ($yy-0.3)*$echelle_y, $texte2, $page [$numero], $param) ; // Observation $param ["font"] = $cadre_cpe [2][10] ; $param ["height"] = $cadre_cpe [2][11] ; $pdf->Draw_Text (($cadre_cpe [1][0]+5.5)*$echelle_x, ($yy-0.6)*$echelle_y,"Observation(s) :", $page [$numero], $param) ; If ($cpe ["observations"]) { $param ["font"] = $cadre_cpe [2][12] ; $param ["height"] = $cadre_cpe [2][13] ; $pdf->Draw_Paragraph (($yy-0.3)*$echelle_y, ($cadre_cpe [1][0]+7.9)*$echelle_x,($yy-1.2)*$echelle_y, ($cadre_cpe [1][1]-0.1)*$echelle_x, filtrage_utf8 ($cpe ["observations"]), $page [$numero], $param) ; } Return ($yy-$cadre_cpe [1][2]) ; Break ; Case 2 : // Trace du cadre $param ["width"] = $cadre_cpe [2][0] ; $param ["red"] = $cadre_cpe [2][1] ; $param ["green"] = $cadre_cpe [2][2] ; $param ["blue"] = $cadre_cpe [2][3] ; $pdf->Draw_Rectangle (($yy-$cadre_cpe [1][2])*$echelle_y, $cadre_cpe [1][1]*$echelle_x, $yy*$echelle_y, $cadre_cpe [1][0]*$echelle_x, $page [$numero], $param) ; If ($cpe ["cpe"] > 0) { $nom_cpe = SQL_commande ("SELECT nom,civilite FROM utilisateurs WHERE id_utilisateur='".$cpe ["cpe"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ; $ncpe = SQL_ligne_suivante ($nom_cpe) ; $ncpe [0] = filtrage_utf8 ($ncpe [0]) ; Switch ($ncpe [1]) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $texte1 = "Vie scolaire : ".$civ." ".StrToUpper (SubStr ($ncpe [0], 0, 1)).StrToLower (SubStr ($ncpe [0], 1, StrLen ($ncpe [0])-1)) ; } Else { $nom_cpe = SQL_commande ("SELECT u.nom,u.civilite FROM utilisateurs u,classes c WHERE c.id_classe='".$classe."' AND c.cpe=u.id_utilisateur AND c.millesime='".$millesime."' LIMIT 1", $id_sql) ; $texte1 = "Vie scolaire : " ; If (SQL_nbr_lignes ($nom_cpe) > 0) { $ncpe = SQL_ligne_suivante ($nom_cpe) ; $ncpe [0] = filtrage_utf8 ($ncpe [0]) ; Switch ($ncpe [1]) { Case 0 : $civ = "Mme" ; Break ; Case 1 : $civ = "Mlle" ; Break ; Case 2 : $civ = "M." ; Break ; Default : $civ = "M." ; Break ; } $texte1 .= $civ." ".StrToUpper (SubStr ($ncpe [0], 0, 1)).StrToLower (SubStr ($ncpe [0], 1, StrLen ($ncpe [0])-1)) ; } } $param ["font"] = $cadre_cpe [2][4] ; $param ["height"] = $cadre_cpe [2][5] ; $pdf->Draw_Text (($cadre_cpe [1][0]+0.1)*$echelle_x, ($yy-0.3)*$echelle_y, $texte1, $page [$numero], $param) ; //$param ["font"] = $cadre_cpe [2][8] ; //$param ["height"] = $cadre_cpe [2][9] ; //$pdf->Draw_Text (($cadre_cpe [1][0]+5.5)*$echelle_x, ($yy-0.3)*$echelle_y, $texte2, $page [$numero], $param) ; // Observation $param ["font"] = $cadre_cpe [2][10] ; $param ["height"] = $cadre_cpe [2][11] ; $pdf->Draw_Text (($cadre_cpe [1][0]+5.5)*$echelle_x, ($yy-0.3)*$echelle_y, "Appréciations :", $page [$numero], $param) ; If ($cpe ["observations"]) { $param ["font"] = $cadre_cpe [2][12] ; $param ["height"] = $cadre_cpe [2][13] ; $pdf->Draw_Paragraph ($yy*$echelle_y, ($cadre_cpe [1][0]+7.9)*$echelle_x, ($yy-1.2)*$echelle_y, ($cadre_cpe [1][1]-0.1)*$echelle_x, filtrage_utf8 ($cpe ["observations"]), $page [$numero], $param) ; } Return ($yy-$cadre_cpe [1][2]) ; Break ; } } // ------------------------------------------------------------------------ // Fonction de trace des appreciations de l'equipe pedagogique // ------------------------------------------------------------------------ Function equipe_pedagogique ($numero, $yy, $signature) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_equipe_peda ; // Trace cadre If ($cadre_equipe_peda [0][0]) { $param ["width"] = $cadre_equipe_peda [2][0] ; $param ["red"] = $cadre_equipe_peda [2][1] ; $param ["green"] = $cadre_equipe_peda [2][2] ; $param ["blue"] = $cadre_equipe_peda [2][3] ; //If ($numero == 1) // { $pdf->Draw_Rectangle (($marge_bas+1.6)*$echelle_y, $cadre_equipe_peda [1][1]*$echelle_x, $yy*$echelle_y, $cadre_equipe_peda [1][0]*$echelle_x, $page [$numero], $param) ; // } //Else // { // $pdf->Draw_Rectangle (($yy-$cadre_equipe_peda [1][2])*$echelle_y, $cadre_equipe_peda [1][1]*$echelle_x, // $yy*$echelle_y, $cadre_equipe_peda [1][0]*$echelle_x, // $page [$numero], $param) ; // } } $param ["font"] = $cadre_equipe_peda [2][4] ; $param ["height"] = $cadre_equipe_peda [2][5] ; $texte = "Appréciation de l'équipe pédagogique :" ; $pdf->Draw_Text (($cadre_equipe_peda [1][0]+0.1)*$echelle_x, ($yy-0.3)*$echelle_y, $texte, $page [$numero], $param) ; $param ["font"] = $cadre_equipe_peda [2][6] ; $param ["height"] = $cadre_equipe_peda [2][7] ; //If ($numero == 1) //{ $pdf->Draw_Text (($cadre_equipe_peda [1][0]+15)*$echelle_x+position (StrLen ($signature ["nom"]), 30, 6), ($marge_bas+($yy-$marge_bas-1.6)/3+1.6)*$echelle_y, $signature ["nom"], $page [$numero], $param) ; //} //Else //{ //$pdf->Draw_Text (($cadre_equipe_peda [1][0]+15)*$echelle_x+position (StrLen ($signature ["nom"]), 30, 6), // ($yy-1.7)*$echelle_y, $signature ["nom"], $page [$numero], $param) ; //} Return ($yy-$cadre_equipe_peda [1][2]) ; } // ------------------------------------------------------------------------ // Fonction de trace du bas de page // ------------------------------------------------------------------------ Function bas_page ($numero, $yy) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_bas_page, $largeur, $marge_gauche, $marge_droite, $version_garennes ; // Texte a gauche $param ["width"] = $cadre_bas_page [2][0] ; $param ["red"] = $cadre_bas_page [2][1] ; $param ["green"] = $cadre_bas_page [2][2] ; $param ["blue"] = $cadre_bas_page [2][3] ; $param ["font"] = $cadre_bas_page [2][4] ; $param ["height"] = $cadre_bas_page [2][5] ; $pdf->Draw_Text ($cadre_bas_page [1][0]*$echelle_x, ($yy-$cadre_bas_page [1][2]-0.1)*$echelle_y, "ATTENTION : Ce relevé est un original, il doit être conservé par la famille.", $page [$numero], $param) ; // Texte a droite $texte = Chr (169)." Garennes ".$version_garennes." - GNU GPL - 2000-".Date ("Y") ; $param ["font"] = $cadre_bas_page [2][6] ; $param ["height"] = $cadre_bas_page [2][7] ; $pdf->Draw_Text ($cadre_bas_page [1][1]*$echelle_x-StrLen ($texte)*4+0.4*$echelle_x, ($yy-$cadre_bas_page [1][2]-0.1)*$echelle_y, $texte, $page [$numero], $param) ; // Affichage ligne horizontale $x [1] = $marge_gauche*$echelle_x ; $x [0] = ($largeur-$marge_droite)*$echelle_x ; $y [0] = $y [1] = $yy*$echelle_y ; $pdf->Draw_Line ($x, $y, $page [$numero], $param) ; Return ($yy-$cadre_bas_page [1][2]) ; } // ------------------------------------------------------------------------ // Fonction de trace du numero de la page // ------------------------------------------------------------------------ Function affiche_page ($numero, $yy, $nbr_page) { Global $page, $pdf, $echelle_x, $echelle_y, $cadre_bas_page, $marge_gauche ; $param ["font"] = $cadre_bas_page [2][8] ; $param ["height"] = $cadre_bas_page [2][9] ; For ($i = 1 ; $i <= $nbr_page ; $i++) { $pdf->Draw_Text (($marge_gauche+10)*$echelle_x, ($yy [$i]-$cadre_bas_page [1][2]-0.1)*$echelle_y, "Page ".$i."/".$nbr_page, $page [$numero-$nbr_page+$i], $param) ; } } // ------------------------------------------------------------------------ // Filtrage appreciation : Enleve les caracteres HTML inderisables // ------------------------------------------------------------------------ Function filtre_appreciation ($appreciation) { If (!$appreciation) { $appreciation = " " ; } // Substitution de caracteres $appreciation = Str_Replace ("&", "&", $appreciation) ; $appreciation = Str_Replace (""", "\"", $appreciation) ; $appreciation = filtrage_utf8 ($appreciation) ; Return $appreciation ; } // ------------------------------------------------------------------------ // Variables // ------------------------------------------------------------------------ $force_calcul = restaure_configuration ("SYSTEME_PARAM", "FORCAGE_CALCUL_RELEVE_".$id_utilisateur, $id_classe) ; // On positionne le recalcul de toutes les moyennes pour le bulletin If ($force_calcul == 1) { $res = SQL_commande ("UPDATE calcul_moyenne SET ok='0' WHERE classe='".$id_classe."' AND periode='".$periode."' AND millesime='".$millesime."'", $id_sql) ; } // Renseignements classe $rens_classe = SQL_commande ("SELECT * FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; $rs_cl = SQL_tableau_associatif ($rens_classe, "") ; // Classement ou pas $resultat = SQL_commande ("SELECT classement FROM classes WHERE id_classe='".$id_classe."' LIMIT 1", $id_sql) ; $res = SQL_ligne_suivante ($resultat) ; // Alias ? $alias = SQL_commande ("SELECT DISTINCT s.id_service_prof,g.id_utilisateur FROM services_prof s,groupes_alias g WHERE s.professeur<0 AND s.classe='".$id_classe."' AND s.millesime='".$millesime."' AND g.id_alias=-s.professeur AND g.code=1 AND g.numero=1 AND g.id_utilisateur>0", $id_sql) ; $nbr_alias = SQL_nbr_lignes ($alias) ; $req_sup = $table_sup = "" ; If ($nbr_alias > 0) { $table_sup = ",groupes_alias g" ; $req_sup = " OR " ; For ($i = 0 ; $i < $nbr_alias ; $i++) { $lk = SQL_ligne_suivante ($alias) ; If ($i > 0) { $req_sup .= " OR " ; } $req_sup .= "(p.id_service_prof='".$lk [0]."' AND p.service_classe=s.id_service_classe AND s.discipline=d.id_discipline AND u.id_utilisateur='".$lk [1]."'" ; If ($res [0] == 1) { $req_sup .= " AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe" ; } $req_sup .= ")" ; } } // Tableau des disciplines et nom prof pour la discipline avec coefficient If ($res [0] == 1) { // Si classement /* $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code, s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe, u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur, d.type_moyenne,d.type_discipline FROM disciplines d,services_classe s,services_prof p,utilisateurs u,classement c,groupes_alias g WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe) OR (p.professeur<0 AND g.id_alias=-p.professeur AND g.id_service_classe=p.service_classe AND g.id_utilisateur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND s.id_service_classe=c.id_service_classe AND s.discipline=d.id_discipline AND g.numero='1') ORDER BY c.numero", $id_sql) ; */ $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur, d.type_moyenne,d.type_discipline FROM disciplines d,services_classe s,services_prof p,utilisateurs u,classement c".$table_sup." WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur AND c.id_classe='".$id_classe."' AND c.id_service_classe=s.id_service_classe) ".$req_sup." ORDER BY c.numero", $id_sql) ; $res [0] = SQL_nbr_lignes ($resultat_disc) ; } If ($res [0] == 0) { /* $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code, s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe, u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur, d.type_moyenne,d.type_discipline FROM disciplines d,services_classe s,services_prof p,utilisateurs u,groupes_alias g WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur) OR (p.professeur<0 AND g.id_alias=-p.professeur AND g.id_service_classe=p.service_classe AND g.id_utilisateur=u.id_utilisateur AND p.service_classe=s.id_service_classe AND s.discipline=d.id_discipline AND g.numero='1') ORDER BY d.nom_long,d.nom_court,d.nom_bref", $id_sql) ; */ $resultat_disc = SQL_commande ("SELECT DISTINCT d.nom_long,d.id_discipline,d.code,s.id_service_classe,s.groupe,p.coefficient, p.id_service_prof,p.sous_discipline,p.groupe_classe,u.id_utilisateur,u.nom,u.prenom,u.civilite,p.professeur, d.type_moyenne,d.type_discipline FROM disciplines d,services_classe s,services_prof p,utilisateurs u".$table_sup." WHERE (s.classe='".$id_classe."' AND s.discipline=d.id_discipline AND s.id_service_classe=p.service_classe AND p.professeur=u.id_utilisateur) ".$req_sup." ORDER BY d.nom_long,d.nom_court,d.nom_bref", $id_sql) ; } $impression_smat = restaure_configuration ("SYSTEME_PARAM", "RELEVES", "IMP_SMAT_".$rs_cl ["etablissement"]) ; $ok_alias = 0 ; While ($ligne = SQL_tableau_associatif ($resultat_disc, "")) { $disc [] = $ligne ["id_discipline"] ; $code_disc [] = $ligne ["code"] ; $sc [] = $ligne ["id_service_classe"] ; $sp [] = $ligne ["id_service_prof"] ; $prof_id [] = $ligne ["id_utilisateur"] ; $prof_nom [] = filtrage_utf8 ($ligne ["nom"]) ; $prof_prenom [] = filtrage_utf8 ($ligne ["prenom"]) ; $prof_civ [] = $ligne ["civilite"] ; $prof_coeff [] = $ligne ["coefficient"] ; If ($ligne ["professeur"] < 0) { $alias [] = -$ligne ["professeur"] ; $ok_alias = 1 ; } Else { $alias [] = 0 ; } $type_discipline [] = $ligne ["type_discipline"] ; $type_moyenne [] = $ligne ["type_moyenne"] ; $active = restaure_configuration ("SYSTEME_PARAM", "IMP_RELEVES_".$id_utilisateur, $id_classe."_".$ligne ["id_service_prof"]) ; If (($active != 1) And ($active !=