security_check(); if ($resultat_session == 'c') { header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); die(); } else if ($resultat_session == '0') { header("Location: ../logout.php?auto=1"); die(); } if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } //On vérifie si le module est activé if (getSettingValue("active_carnets_notes")!='y') { die("Le module n'est pas activé."); } $id_modele = isset($_POST["id_modele"]) ? $_POST["id_modele"] : (isset($_GET["id_modele"]) ? $_GET["id_modele"] : NULL); $id_conteneur = isset($_POST["id_conteneur"]) ? $_POST["id_conteneur"] : (isset($_GET["id_conteneur"]) ? $_GET["id_conteneur"] : NULL); $mode = isset($_POST["mode"]) ? $_POST["mode"] : (isset($_GET["mode"]) ? $_GET["mode"] : NULL); $mode_modif = isset($_POST["mode_modif"]) ? $_POST["mode_modif"] : (isset($_GET["mode_modif"]) ? $_GET["mode_modif"] : NULL); $id_classe=isset($_POST['id_classe']) ? $_POST['id_classe'] : (isset($_GET['id_classe']) ? $_GET['id_classe'] : NULL); $choix_periodes=isset($_POST['choix_periodes']) ? $_POST['choix_periodes'] : (isset($_GET['choix_periodes']) ? $_GET['choix_periodes'] : NULL); $choix_matieres=isset($_POST['choix_matieres']) ? $_POST['choix_matieres'] : (isset($_GET['choix_matieres']) ? $_GET['choix_matieres'] : NULL); $max_per=isset($_POST['max_per']) ? $_POST['max_per'] : (isset($_GET['max_per']) ? $_GET['max_per'] : NULL); $msg=""; $gepi_denom_boite=casse_mot(getSettingValue("gepi_denom_boite"), 'min'); $tab_arrondir=array(); $tab_arrondir['s1']="dixième supérieur"; $tab_arrondir['s5']="demi-point supérieur"; $tab_arrondir['se']="entier supérieur"; $tab_arrondir['p1']="dixième le plus proche"; $tab_arrondir['p5']="demi-point le plus proche"; $tab_arrondir['pe']="entier le plus proche"; //debug_var(); /* function get_arbo_boites($id_cahier_notes, $id_groupe="", $periode="") { $tab=array(); if($id_cahier_notes=="") { $sql="SELECT id_cahier_notes FROM cn_cahier_notes WHERE id_groupe='$id_groupe' AND periode='$periode';"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $id_cahier_notes=old_mysql_result($res, 0, "id_cahier_notes"); } } if($id_cahier_notes!="") { $sql="SELECT * FROM cn_conteneurs WHERE id_racine='$id_cahier_notes';"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { while($lig=mysql_fetch_object($res)) { } } } return $tab; } */ if((isset($_POST['valider_nouveau_modele']))&&(isset($_POST['nom_court']))&&(isset($NON_PROTECT['description']))) { check_token(); $nom_court=$_POST['nom_court']; $description=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["description"])); $sql="INSERT INTO cn_conteneurs_modele SET nom_court='$nom_court', description='$description';"; if($insert=mysqli_query($GLOBALS["mysqli"], $sql)) { $id_modele=((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res); $msg="Modèle n°$id_modele : '$nom_court' créé.
"; } else { $msg="ERREUR lors de la création du modèle '$nom_court'.
"; } unset($mode); } if((isset($_GET['suppr_conteneur']))&&(is_numeric($_GET['suppr_conteneur']))) { check_token(); // id".add_token_in_url()."'> $sql="DELETE FROM cn_conteneurs_modele_conteneurs WHERE id='".$_GET['suppr_conteneur']."';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if($res) { $msg="Suppression du(de la) $gepi_denom_boite n°".$_GET['suppr_conteneur']." effectuée.
"; } else { $msg="ERREUR lors de la suppression du(de la) $gepi_denom_boite n°".$_GET['suppr_conteneur'].".
"; } unset($mode_modif); } if((isset($_POST['enregistrer_conteneur']))&&(isset($id_modele))&&(is_numeric($id_modele))) { check_token(); $reg_ok = "yes"; $new='no'; if(!isset($_POST['id_conteneur'])) { //$sql="insert into cn_conteneurs_modele_conteneurs (id_racine,nom_court,parent) values ('$id_racine','nouveau','$id_racine')"; $sql="insert into cn_conteneurs_modele_conteneurs (nom_court, id_modele) values ('nouveau', '$id_modele')"; //echo "$sql
"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); $id_conteneur = ((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res); if (!$reg) {$reg_ok = "no";} $new='yes'; } /* if (isset($_POST['mode']) and ($_POST['mode']) and my_ereg("^[12]{1}$", $_POST['mode'])) { if ($_POST['mode'] == 1) $_SESSION['affiche_tous'] = 'yes'; $sql="UPDATE cn_conteneurs_modele_conteneurs SET mode = '".$_POST['mode']."' WHERE id = '$id_conteneur'"; */ $sql="UPDATE cn_conteneurs_modele_conteneurs SET mode = '2' WHERE id = '$id_conteneur'"; //echo "$sql
"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) {$reg_ok = "no";} //} if ($_POST['nom_court']) { $nom_court = $_POST['nom_court']; } else { $nom_court = "Cont. ".$id_conteneur; } $sql="UPDATE cn_conteneurs_modele_conteneurs SET nom_court = '".corriger_caracteres($nom_court)."' WHERE id = '$id_conteneur'"; //echo "$sql
"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) {$reg_ok = "no";} if ($_POST['nom_complet']) { $nom_complet = $_POST['nom_complet']; } else { $nom_complet = $nom_court; } $sql="UPDATE cn_conteneurs_modele_conteneurs SET nom_complet = '".corriger_caracteres($nom_complet)."' WHERE id = '$id_conteneur'"; //echo "$sql
"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) {$reg_ok = "no";} if ($_POST['description']) { $sql="UPDATE cn_conteneurs_modele_conteneurs SET description = '".corriger_caracteres($_POST['description'])."' WHERE id = '$id_conteneur'"; //echo "$sql
"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) {$reg_ok = "no";} } /* if (isset($_POST['parent'])) { $parent = $_POST['parent']; $sql="UPDATE cn_conteneurs_modele_conteneurs SET parent = '".$parent."' WHERE id = '$id_conteneur'"; //echo "$sql
"; $reg = mysql_query($sql); if (!$reg) {$reg_ok = "no";} } */ if (isset($_POST['coef'])) { $tmp_coef=$_POST['coef']; if((preg_match("/^[0-9]*$/", $tmp_coef))||(preg_match("/^[0-9]*\.[0-9]$/", $tmp_coef))) { // Le coef a le bon format //$msg.="Le coefficient proposé $tmp_coef est valide.
"; } elseif(preg_match("/^[0-9]*\.[0-9]*$/", $tmp_coef)) { $msg.="Le coefficient ne peut avoir plus d'un chiffre après la virgule. Le coefficient va être tronqué.
"; } elseif(preg_match("/^[0-9]*,[0-9]$/", $tmp_coef)) { $msg.="Correction du séparateur des décimales dans le coefficient de $tmp_coef en "; $tmp_coef=preg_replace("/,/", ".", $tmp_coef); $msg.=$tmp_coef."
"; } else { $msg.="Le coefficient proposé $tmp_coef est invalide. Mise à 1.0 du coefficient.
"; $tmp_coef="1.0"; } $sql="UPDATE cn_conteneurs_modele_conteneurs SET coef = '" . $tmp_coef . "' WHERE id = '$id_conteneur'"; //echo "$sql
"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) {$reg_ok = "no";} } else { $sql="UPDATE cn_conteneurs_modele_conteneurs SET coef = '0' WHERE id = '$id_conteneur'"; //echo "$sql
"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) {$reg_ok = "no";} } if ($_POST['ponderation']) { $sql="UPDATE cn_conteneurs_modele_conteneurs SET ponderation = '". $_POST['ponderation']."' WHERE id = '$id_conteneur'"; //echo "$sql
"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) {$reg_ok = "no";} } else { $sql="UPDATE cn_conteneurs_modele_conteneurs SET ponderation = '0' WHERE id = '$id_conteneur'"; //echo "$sql
"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) {$reg_ok = "no";} } if (($_POST['precision']) and my_ereg("^(s1|s5|se|p1|p5|pe)$", $_POST['precision'])) { $sql="UPDATE cn_conteneurs_modele_conteneurs SET arrondir = '". $_POST['precision']."' WHERE id = '$id_conteneur'"; //echo "$sql
"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) {$reg_ok = "no";} } if (isset($_POST['display_parents'])) { $display_parents = 1; } else { $display_parents = 0; } $sql="UPDATE cn_conteneurs_modele_conteneurs SET display_parents = '$display_parents' WHERE id = '$id_conteneur'"; //echo "$sql
"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) {$reg_ok = "no";} if (isset($_POST['display_bulletin'])) { $display_bulletin = 1; } else { $display_bulletin = 0; } $sql="UPDATE cn_conteneurs_modele_conteneurs SET display_bulletin = '$display_bulletin' WHERE id = '$id_conteneur'"; //echo "$sql
"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) {$reg_ok = "no";} if ($reg_ok=='yes') { if ($new=='yes') $msg.="Nouvel enregistrement réussi."; else $msg.="Les modifications ont été effectuées avec succès."; } else { $msg.="Il y a eu un problème lors de l'enregistrement"; } } if((isset($_POST['appliquer_le_modele']))&&(isset($id_modele))&&(is_numeric($id_modele))&&(isset($choix_periodes))&&(isset($choix_matieres))) { check_token(); $debug_appliquer_modele=false; // Récupérer le détail du modèle $tab_modele=array(); $sql="SELECT * FROM cn_conteneurs_modele_conteneurs WHERE id_modele='$id_modele' ORDER BY nom_court, nom_complet, description;"; if($debug_appliquer_modele) {echo "$sql
";} $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)>0) { $cpt=0; while($lig=mysqli_fetch_object($res)) { $tab_modele[$cpt]['modele_id_conteneur']=$lig->id; $tab_modele[$cpt]['nom_court']=$lig->nom_court; $tab_modele[$cpt]['nom_complet']=$lig->nom_complet; $tab_modele[$cpt]['description']=$lig->description; $tab_modele[$cpt]['coef']=$lig->coef; $tab_modele[$cpt]['arrondir']=$lig->arrondir; $tab_modele[$cpt]['ponderation']=$lig->ponderation; $tab_modele[$cpt]['display_parents']=$lig->display_parents; $tab_modele[$cpt]['display_bulletin']=$lig->display_bulletin; $tab_modele[$cpt]['mode']=$lig->mode; /* echo "\$tab_modele[$cpt]
";
			print_r($tab_modele[$cpt]);
			echo "

"; */ $cpt++; } } if(count($tab_modele)==0) { $msg.="Aucun(e) ".$gepi_denom_boite." n'existe dans le modèle n°$id_modele.
Il n'est pas possible d'appliquer ce modèle.
"; } else { $nb_insert=0; $nb_update=0; $nb_erreur=0; // Parcourir les classes, puis boucler sur les enseignements et enfin sur les périodes for($i=0;$i

".get_nom_classe($id_classe[$i])."
";} unset($id_groupe); if($choix_matieres=="certaines") { $id_groupe=isset($_POST['id_groupe_'.$id_classe[$i]]) ? $_POST['id_groupe_'.$id_classe[$i]] : array(); } else { $id_groupe=array(); //$sql="SELECT g.* FROM groupes g, j_groupes_classes jgc WHERE g.id=jgc.id_groupe AND jgc.id_classe='".$id_classe[$i]."' AND g.id NOT IN (SELECT id_groupe FROM j_groupes_visibilite WHERE domaine='cahier_notes' AND visible='n');"; $sql="SELECT jgc.id_groupe FROM j_groupes_classes jgc WHERE jgc.id_classe='".$id_classe[$i]."' AND jgc.id_groupe NOT IN (SELECT id_groupe FROM j_groupes_visibilite WHERE domaine='cahier_notes' AND visible='n');"; if($debug_appliquer_modele) {echo "$sql
";} $res_grp=mysqli_query($GLOBALS["mysqli"], $sql); while($lig_grp=mysqli_fetch_object($res_grp)) { $id_groupe[]=$lig_grp->id_groupe; } } unset($num_periode); if($choix_periodes=="certaines") { $num_periode=isset($_POST['num_periode_'.$id_classe[$i]]) ? $_POST['num_periode_'.$id_classe[$i]] : array(); } else { $num_periode=array(); $sql="SELECT num_periode FROM periodes WHERE id_classe='".$id_classe[$i]."' ORDER BY num_periode;"; if($debug_appliquer_modele) {echo "$sql
";} $res_per=mysqli_query($GLOBALS["mysqli"], $sql); while($lig_per=mysqli_fetch_object($res_per)) { $num_periode[]=$lig_per->num_periode; } } // Boucler sur les enseignements for($j=0;$j

".$current_group['name']." ".$current_group['classlist_string']." ".$current_group['profs']['proflist_string']."
";} // Boucler sur les périodes for($k=0;$k";} $res_ccn=mysqli_query($GLOBALS["mysqli"], $sql); // Créer le carnet de notes s'il n'existe pas. if(mysqli_num_rows($res_ccn)==0) { // Créer le carnet de notes if($debug_appliquer_modele) {echo "Le carnet de notes n'existe pas en période ".$num_periode[$k].".
";} $current_group=get_group($id_groupe[$j]); $nom_complet_matiere = $current_group["matiere"]["nom_complet"]; $nom_court_matiere = $current_group["matiere"]["matiere"]; $sql="INSERT INTO cn_conteneurs SET id_racine='', nom_court='".traitement_magic_quotes($current_group["description"])."', nom_complet='". traitement_magic_quotes($nom_complet_matiere)."', description = '', mode = '2', coef = '1.0', arrondir = 's1', ponderation = '0.0', display_parents = '0', display_bulletin = '1', parent = '0'"; if($debug_appliquer_modele) {echo "$sql
";} $reg = mysqli_query($GLOBALS["mysqli"], $sql); if ($reg) { $id_cahier_notes = ((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res); $sql="UPDATE cn_conteneurs SET id_racine='$id_cahier_notes', parent = '0' WHERE id='$id_cahier_notes'"; if($debug_appliquer_modele) {echo "$sql
";} $reg = mysqli_query($GLOBALS["mysqli"], $sql); $sql="INSERT INTO cn_cahier_notes SET id_groupe = '".$id_groupe[$j]."', periode = '".$num_periode[$k]."', id_cahier_notes='$id_cahier_notes'"; if($debug_appliquer_modele) {echo "$sql
";} $reg = mysqli_query($GLOBALS["mysqli"], $sql); } } else { if($debug_appliquer_modele) {echo "Le carnet de notes existait déjà en période ".$num_periode[$k].".
";} $id_cahier_notes=old_mysql_result($res_ccn, 0, "id_cahier_notes"); } if($debug_appliquer_modele) {echo "\$id_cahier_notes=$id_cahier_notes
";} if(isset($id_cahier_notes)) { // Récupérer la liste des conteneurs existants... ou comparer avec les modele_id_conteneur // Boucler sur les conteneurs du modèle for($m=0;$m

On va tester si un conteneur correspondant à modele_id_conteneur='".$tab_modele[$m]['modele_id_conteneur']."' existe ou non déjà
";} $sql="SELECT * FROM cn_conteneurs WHERE id_racine='$id_cahier_notes' AND modele_id_conteneur='".$tab_modele[$m]['modele_id_conteneur']."';"; if($debug_appliquer_modele) {echo "$sql
";} $res_cn=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_cn)==0) { if($debug_appliquer_modele) {echo "Aucun conteneur n'existe encore avec modele_id_conteneur='".$tab_modele[$m]['modele_id_conteneur']."'
";} $sql="INSERT INTO cn_conteneurs SET id_racine='$id_cahier_notes', nom_court='".mysqli_real_escape_string($GLOBALS["mysqli"], $tab_modele[$m]['nom_court'])."', nom_complet='".mysqli_real_escape_string($GLOBALS["mysqli"], $tab_modele[$m]['nom_complet'])."', description='".mysqli_real_escape_string($GLOBALS["mysqli"], $tab_modele[$m]['description'])."', mode='".$tab_modele[$m]['mode']."', coef='".$tab_modele[$m]['coef']."', arrondir='".$tab_modele[$m]['arrondir']."', ponderation='".$tab_modele[$m]['ponderation']."', display_parents='".$tab_modele[$m]['display_parents']."', display_bulletin='".$tab_modele[$m]['display_bulletin']."', modele_id_conteneur='".$tab_modele[$m]['modele_id_conteneur']."', parent='$id_cahier_notes';"; if($debug_appliquer_modele) {echo "$sql
";} $insert=mysqli_query($GLOBALS["mysqli"], $sql); if($insert) { $nb_insert++; } else { $nb_erreur++; } } else { if($debug_appliquer_modele) {echo "Un conteneur existe déjà avec modele_id_conteneur='".$tab_modele[$m]['modele_id_conteneur']."'
";} $id_conteneur=old_mysql_result($res_cn, 0, "id"); // Faut-il modifier parent pour remettre à la racine du carnet de notes? // Faut-il réimposer le id_racine qui doit déjà être à $id_cahier_notes $sql="UPDATE cn_conteneurs SET id_racine='$id_cahier_notes', nom_court='".mysqli_real_escape_string($GLOBALS["mysqli"], $tab_modele[$m]['nom_court'])."', nom_complet='".mysqli_real_escape_string($GLOBALS["mysqli"], $tab_modele[$m]['nom_complet'])."', description='".mysqli_real_escape_string($GLOBALS["mysqli"], $tab_modele[$m]['description'])."', mode='".$tab_modele[$m]['mode']."', coef='".$tab_modele[$m]['coef']."', arrondir='".$tab_modele[$m]['arrondir']."', ponderation='".$tab_modele[$m]['ponderation']."', display_parents='".$tab_modele[$m]['display_parents']."', display_bulletin='".$tab_modele[$m]['display_bulletin']."', modele_id_conteneur='".$tab_modele[$m]['modele_id_conteneur']."', parent='$id_cahier_notes' WHERE id='$id_conteneur';"; if($debug_appliquer_modele) {echo "$sql
";} $update=mysqli_query($GLOBALS["mysqli"], $sql); if($update) { $nb_update++; } else { $nb_erreur++; } } } } } } } if($nb_insert>0) { $msg.="$nb_insert ".$gepi_denom_boite."s ont été créées.
"; } if($nb_update>0) { $msg.="$nb_update ".$gepi_denom_boite."s ont été mises à jour.
"; } if($nb_erreur>0) { $msg.=$nb_erreur." erreurs se sont produites.
"; } } } /* CREATE TABLE cn_conteneurs_modele_conteneurs ( id int(11) NOT NULL auto_increment, id_modele int(11) NOT NULL default '0', id_racine int(11) NOT NULL default '0', nom_court varchar(32) NOT NULL default '', nom_complet varchar(64) NOT NULL default '', description varchar(128) NOT NULL default '', mode char(1) NOT NULL default '2', coef decimal(3,1) NOT NULL default '1.0', arrondir char(2) NOT NULL default 's1', ponderation decimal(3,1) NOT NULL default '0.0', display_parents char(1) NOT NULL default '0', display_bulletin char(1) NOT NULL default '1', parent int(11) NOT NULL default '0', PRIMARY KEY (id), INDEX parent_racine (parent,id_racine), INDEX racine_bulletin (id_racine,display_bulletin) ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE TABLE cn_conteneurs_modele ( id_modele int(11) NOT NULL auto_increment, nom_court varchar(32) NOT NULL default '', description varchar(128) NOT NULL default '', PRIMARY KEY (id_modele) ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; INSERT INTO droits VALUES ('/cahier_notes_admin/creation_conteneurs_par_lots.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F','F', 'Création de conteneurs/boites par lots', '1'); ==================================================================== DROP TABLE IF EXISTS `cn_conteneurs`; CREATE TABLE `cn_conteneurs` ( `id` int(11) NOT NULL auto_increment, `id_racine` int(11) NOT NULL default '0', `nom_court` varchar(32) NOT NULL default '', `nom_complet` varchar(64) NOT NULL default '', `description` varchar(128) NOT NULL default '', `mode` char(1) NOT NULL default '2', `coef` decimal(3,1) NOT NULL default '1.0', `arrondir` char(2) NOT NULL default 's1', `ponderation` decimal(3,1) NOT NULL default '0.0', `display_parents` char(1) NOT NULL default '0', `display_bulletin` char(1) NOT NULL default '1', `parent` int(11) NOT NULL default '0', PRIMARY KEY (`id`), INDEX parent_racine (`parent`,`id_racine`), INDEX racine_bulletin (`id_racine`,`display_bulletin`)) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; mysql> select * from cn_conteneurs limit 5; +------+-----------+----------------------------+----------------------+-------------+------+------+----------+-------------+-----------------+------------------+--------+ | id | id_racine | nom_court | nom_complet | description | mode | coef | arrondir | ponderation | display_parents | display_bulletin | parent | +------+-----------+----------------------------+----------------------+-------------+------+------+----------+-------------+-----------------+------------------+--------+ | 4798 | 4798 | ED.PHYSIQUE & SPORT. | ED.PHYSIQUE & SPORT. | | 2 | 1.0 | s1 | 0.0 | 0 | 1 | 0 | | 4799 | 4799 | ANGLAIS LV2 (BIL) | ANGLAIS LV2 | | 2 | 1.0 | s1 | 0.0 | 0 | 1 | 0 | | 4800 | 4800 | ARTS PLASTIQUES | ARTS PLASTIQUES | | 2 | 1.0 | s1 | 0.0 | 0 | 1 | 0 | | 4801 | 4801 | ACCOMPAGNEMT. PERSO. (AP5) | ACCOMPAGNEMT. PERSO. | | 2 | 1.0 | s1 | 0.0 | 0 | 1 | 0 | | 4802 | 4802 | ESPAGNOL LV2 | ESPAGNOL LV2 | | 2 | 1.0 | s1 | 0.0 | 0 | 1 | 0 | +------+-----------+----------------------------+----------------------+-------------+------+------+----------+-------------+-----------------+------------------+--------+ 5 rows in set (0.02 sec) mysql> show fields from cn_conteneurs limit 5; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'limit 5' at line 1 mysql> show fields from cn_conteneurs; +------------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | id_racine | int(11) | NO | MUL | 0 | | | nom_court | varchar(32) | NO | | | | | nom_complet | varchar(64) | NO | | | | | description | varchar(128) | NO | | NULL | | | mode | char(1) | NO | | 2 | | | coef | decimal(3,1) | NO | | 1.0 | | | arrondir | char(2) | NO | | s1 | | | ponderation | decimal(3,1) | NO | | 0.0 | | | display_parents | char(1) | NO | | 0 | | | display_bulletin | char(1) | NO | | 1 | | | parent | int(11) | NO | MUL | 0 | | +------------------+--------------+------+-----+---------+----------------+ 12 rows in set (0.03 sec) mysql> */ $themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?'; //**************** EN-TETE ***************** $titre_page = "Carnet de notes - Ajout/modification de ".my_strtolower(getSettingValue("gepi_denom_boite"))." par lots"; /** * Entête de la page */ require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** if((isset($_POST['temoin_suhosin_1']))&&(!isset($_POST['temoin_suhosin_2']))) { echo "

Il semble que certaines variables n'ont pas été transmises.
Cela peut arriver lorsqu'on tente de transmettre (cocher trop de cases) trop de variables.
Vous devriez tenter de créer des ".$gepi_denom_boite."s pour moins de classes/périodes/enseignements à la fois.

\n"; echo alerte_config_suhosin(); } echo "

Retour Retour"; if(!isset($mode)) { echo "

"; $tab_modele=array(); $sql="SELECT id_modele, nom_court, description FROM cn_conteneurs_modele ORDER BY nom_court;"; $res=mysqli_query($GLOBALS["mysqli"], $sql); $nb_modeles=mysqli_num_rows($res); $cpt=0; while($lig=mysqli_fetch_object($res)) { $tab_modele[$cpt]['id_modele']=$lig->id_modele; $tab_modele[$cpt]['nom_court']=$lig->nom_court; $tab_modele[$cpt]['description']=$lig->description; $cpt++; } echo "

La présente page est destinée à créer des modèles de carnets de notes, en y paramétrant des ".$gepi_denom_boite."s.
Une fois un ou des modèles créés, vous pourrez appliquer ces modèles à un ensemble d'enseignements choisis parmi une sélection de classes.
Toutes les classes et enseignements choisis auront ainsi la même structure de ".$gepi_denom_boite."s.

NOTES 

"; } //============================================================================== elseif($mode=="creer_modele") { echo " | Index de la création de modèles

"; echo "
".add_token_field()."

Création d'un modèle :

Nom court :
Description :

Il est recommandé de saisir des noms explicites si vous créez plusieurs modèles.

\n"; } //============================================================================== elseif($mode=="supprimer_modele") { echo " | Index de la création de modèles

"; $sql="SELECT * FROM cn_conteneurs_modele WHERE id_modele='$id_modele';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { echo "

Le modèle n°$id_modele est inconnu.

"; require("../lib/footer.inc.php"); die(); } check_token(false); echo "

Suppression du modèle n°$id_modele et de ses ".$gepi_denom_boite."s :
Suppression d'éventuel(le)s ".$gepi_denom_boite."s : "; $sql="DELETE FROM cn_conteneurs_modele_conteneurs WHERE id_modele='$id_modele';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res) { echo "ERREUR
On ne supprime pas le modèle lui-même.
Essayez de trouver la cause de l'erreur.

"; } else { echo "OK
Suppression du modèle lui-même : "; $sql="DELETE FROM cn_conteneurs_modele WHERE id_modele='$id_modele';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res) { echo "ERREUR
Essayez de trouver la cause de l'erreur.

"; } else { echo "OK

"; } } } //============================================================================== elseif($mode=="modifier_modele") { echo " | Index de la création de modèles"; if(isset($mode_modif)) { echo " | Modèle courant"; } echo "

"; $sql="SELECT * FROM cn_conteneurs_modele WHERE id_modele='$id_modele';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { echo "

Le modèle n°$id_modele est inconnu.

"; require("../lib/footer.inc.php"); die(); } $lig=mysqli_fetch_object($res); $nom_court_modele=$lig->nom_court; $description_modele=$lig->description; echo "

Modèle $nom_court_modele
$description_modele

"; //++++++++++++++++++++++++++++++++++++++++++ if(!isset($mode_modif)) { echo "

Ajouter un(e) ".$gepi_denom_boite." dans le modèle.

"; $sql="SELECT * FROM cn_conteneurs_modele_conteneurs WHERE id_modele='$id_modele' ORDER BY nom_court, nom_complet, description;"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)>0) { echo "

Voici la liste des ".$gepi_denom_boite."s du modèle :

"; while($lig=mysqli_fetch_object($res)) { echo " "; } } echo "
Modif Suppr Nom court Nom complet Description Coef Arrondi Pondération Rel.Not Bulletin
id".add_token_in_url()."'> id".add_token_in_url()."' onclick=\"return confirm('Etes-vous sûr de vouloir supprimer ce(tte) ".addslashes($gepi_denom_boite)." ?')\"> $lig->nom_court $lig->nom_complet $lig->description $lig->coef arrondir]."\">$lig->arrondir $lig->ponderation
"; } //++++++++++++++++++++++++++++++++++++++++++ else { echo "
"; // Valeurs par défaut: $nom_court="Nouvelle boite"; $nom_complet=""; $description=""; $coef=1; $arrondir="s1"; $ponderation=0; $display_parents=1; $display_bulletin=0; if($mode_modif=="modifier_conteneur") { // Récupération des valeurs du conteneur: $sql="SELECT * FROM cn_conteneurs_modele_conteneurs WHERE id='$id_conteneur';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { echo "

Anomalie le(la) $gepi_denom_boite n°$id_conteneur n'existe pas.

"; require("../lib/footer.inc.php"); die(); } $lig=mysqli_fetch_object($res); $nom_court=$lig->nom_court; $nom_complet=$lig->nom_complet; $description=$lig->description; $coef=$lig->coef; $arrondir=$lig->arrondir; $ponderation=$lig->ponderation; $display_parents=$lig->display_parents; $display_bulletin=$lig->display_bulletin; echo "

Modifier les paramètres du(de la) $gepi_denom_boite $nom_court :

"; } else { echo "

Nouveau(elle) $gepi_denom_boite :

"; } echo " ".add_token_field()."
Nom court :
Nom complet :
Description :
"; // Pour le moment, on ne permet pas de faire plusieurs niveaux /* if(getSettingValue("gepi_denom_boite_genre")=='f'){ echo "\n

Emplacement de la ".my_strtolower(getSettingValue("gepi_denom_boite"))." :

\n"; } else{ echo "\n

Emplacement du ".my_strtolower(getSettingValue("gepi_denom_boite"))." :

\n"; } echo "
\n"; */ if(getSettingValue("gepi_denom_boite_genre")=='f'){ echo "

Coefficient de la ".my_strtolower(getSettingValue("gepi_denom_boite"))." $nom_court

\n"; } else{ echo "

Coefficient du ".my_strtolower(getSettingValue("gepi_denom_boite"))." $nom_court

\n"; } echo "
"; echo "
Valeur de la pondération dans le calcul de la moyenne de l'enseignement
(si 0, la moyenne de $nom_court n'intervient pas dans le calcul de la moyenne du carnet de note).
\n"; echo "
"; // On force actuellement le mode à 2 /* if ($nb_sous_cont != 0) { $chaine_sous_cont=""; $i=0; while ($i < $nb_sous_cont) { $chaine_sous_cont.="$nom_sous_cont[$i], "; $i++; } if(getSettingValue("gepi_denom_boite_genre")=='f'){ echo "

Notes prises en comptes dans le calcul de la moyenne de la ".my_strtolower(getSettingValue("gepi_denom_boite"))." $nom_court

\n"; } else{ echo "

Notes prises en comptes dans le calcul de la moyenne du ".my_strtolower(getSettingValue("gepi_denom_boite"))." $nom_court

\n"; } if($i>1){ echo "\n"; echo ""; echo "\n"; echo ""; echo "
"; echo ""; echo "
"; echo ""; } else{ if(getSettingValue("gepi_denom_boite_genre")=='f'){ echo "\n"; echo ""; echo "\n"; echo ""; echo "
"; echo ""; echo "
"; echo ""; } else{ echo "\n"; echo ""; echo "\n"; echo ""; echo ""; echo "\n
"; echo ""; echo "
"; echo ""; } } echo "
\n"; } */ echo "

Précision du calcul de la moyenne de $nom_court :

\n"; echo "
"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo "
"; echo "

Pondération

\n"; echo "
"; echo "\n\n"; echo "\n
"; echo "Pour chaque élève, le coefficient de la meilleure note de $nom_court augmente ou diminue de :  
\n"; echo "
"; echo "

Affichage de la moyenne de $nom_court :

\n"; echo "
"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo "\n"; echo "\n"; echo ""; echo "
\n"; echo "\n"; echo "\n"; echo ""; echo "
\n"; echo "
"; echo "

"; } } //============================================================================== elseif($mode=="appliquer_modele") { echo " | Index de la création de modèles"; $sql="SELECT * FROM cn_conteneurs_modele WHERE id_modele='$id_modele';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res)==0) { echo "

Le modèle n°$id_modele est inconnu.

"; require("../lib/footer.inc.php"); die(); } $lig=mysqli_fetch_object($res); $nom_court_modele=$lig->nom_court; $description_modele=$lig->description; // Choisir des classes, puis des enseignements if(!isset($id_classe)) { echo "

Modèle $nom_court_modele
$description_modele

Vous allez choisir les classes, les périodes, puis les enseignements dans lesquels créer l'arborescence de ".$gepi_denom_boite."s du modèle choisi.

"; echo "

Choix des classes :

\n"; // Liste des classes avec élève: //$sql="SELECT DISTINCT c.* FROM j_eleves_classes jec, classes c WHERE (c.id=jec.id_classe) ORDER BY c.classe;"; // Liste des classes avec périodes: $sql="SELECT DISTINCT c.* FROM periodes p, classes c WHERE (c.id=p.id_classe) ORDER BY c.classe;"; $call_classes=mysqli_query($GLOBALS["mysqli"], $sql); $nb_classes=mysqli_num_rows($call_classes); if($nb_classes==0){ echo "

Aucune classe avec périodes définies n'a été trouvée.

\n"; require("../lib/footer.inc.php"); die(); } echo "
\n"; // Affichage sur 3 colonnes $nb_classes_par_colonne=round($nb_classes/3); echo "\n"; echo "\n"; $cpt = 0; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
     \n"; while($lig_clas=mysqli_fetch_object($call_classes)) { //affichage 2 colonnes if(($cpt>0)&&(round($cpt/$nb_classes_par_colonne)==$cpt/$nb_classes_par_colonne)){ echo "\n"; } echo ""; echo "
\n"; $cpt++; } echo "
\n"; echo "

Tout cocher / Tout décocher

\n"; echo "

\n"; echo "
\n"; echo "\n"; } elseif(!isset($choix_periodes)) { echo " | Retour au choix des classes"; echo "

Modèle $nom_court_modele
$description_modele

"; echo "

Choix des périodes :

\n"; //echo "

A FAIRE: afficher les périodes closes...

\n"; echo "
\n"; echo "
    \n"; echo "
  • \n"; echo "\n"; echo "
  • \n"; echo "
  • \n"; echo "\n"; echo "
    \n"; echo "
    \n"; $max_per=0; $cpt=0; for($i=0;$i"; $call_per=mysqli_query($GLOBALS["mysqli"], $sql); $nombre_ligne=mysqli_num_rows($call_per); if($nombre_ligne==0) { echo "

    Aucune période n'est définie dans la classe de ".get_class_from_id($id_classe[$i]).".

    \n"; } else { echo "\n"; $first_per[$id_classe[$i]]=$cpt; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $alt=1; while($lig_per=mysqli_fetch_object($call_per)) { $alt=$alt*(-1); echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $cpt++; } echo "
    \n"; echo "Classe de ".get_class_from_id($id_classe[$i])."\n"; echo "
    \n"; //echo "Cocher/décocher\n"; echo "

    Tout cocher / Tout décocher

    \n"; echo "
    NumPériodeEtat
    \n"; echo "\n"; echo "\n"; if($lig_per->num_periode>$max_per) {$max_per=$lig_per->num_periode;} echo $lig_per->num_periode; echo ""; if($lig_per->verouiller=='O') {echo "Close";} elseif($lig_per->verouiller=='P') {echo "Partiellement close";} elseif($lig_per->verouiller=='N') {echo "Ouverte en saisie";} else {echo "???";} echo "
    \n"; $last_per[$id_classe[$i]]=$cpt; } echo "
    \n"; } echo "

    Cocher / décocher toutes les périodes

    \n"; echo "
    \n"; echo "
  • \n"; echo "
\n"; echo "\n"; echo "

\n"; echo "
\n"; $chaine_div_coche_lot="Pour toutes les classes,
"; for($j=1;$j<=$max_per;$j++) { $chaine_div_coche_lot.="Cocher / décocher la période $j
"; } $chaine_div_coche_lot.="Cocher / décocher toutes les périodes"; echo "\n"; } elseif(!isset($choix_matieres)) { echo " | Retour au choix des classes"; //echo " | Retour au choix des périodes"; echo " | Retour au choix des périodes"; echo "

Modèle $nom_court_modele
$description_modele

\n"; echo "

Choix des matières/enseignements :

\n"; echo "
\n"; echo "\n"; echo " \n"; echo "
    \n"; echo "
  • \n"; echo "\n"; echo "
  • \n"; echo "
  • \n"; echo "\n"; echo "
    \n"; echo "
    \n"; $tab_id_matiere=array(); $tab_liste_index_grp_matiere=array(); $cpt=0; for($i=0;$i"; $call_group = mysqli_query($GLOBALS["mysqli"], $sql); $nombre_ligne = mysqli_num_rows($call_group); if($nombre_ligne==0) { echo "

    Aucun enseignement n'est défini dans la classe de ".get_class_from_id($id_classe[$i]).".

    \n"; } else { $temoin_classe[$i]='y'; if($choix_periodes=='certaines') { // ============= // AJOUTER UN TEST... si on a choisi 'certaines' périodes, mais sans aucune période cochée // ============= if(isset($_POST['num_periode_'.$id_classe[$i]])) { $tmp_per=$_POST['num_periode_'.$id_classe[$i]]; for($loop=0;$loop<$max_per;$loop++) { if(isset($tmp_per[$loop])) { echo "\n"; } } } else { $temoin_classe[$i]='n'; } } if($temoin_classe[$i]=='y') { echo "\n"; $first_grp[$id_classe[$i]]=$cpt; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $alt=1; while($lig_grp=mysqli_fetch_object($call_group)) { $alt=$alt*(-1); echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $tab_liste_index_grp_matiere[$lig_grp->id_matiere][]=$cpt; if(!in_array($lig_grp->id_matiere, $tab_id_matiere)) {$tab_id_matiere[]=$lig_grp->id_matiere;} $cpt++; } echo "
    \n"; echo "Classe de ".get_class_from_id($id_classe[$i])."\n"; echo "
    \n"; //echo "Cocher/décocher\n"; echo "

    Tout cocher / Tout décocher

    \n"; echo "
    EnseignementProfesseur
    \n"; echo "\n"; echo "\n"; $sql="SELECT DISTINCT nom,prenom,civilite FROM utilisateurs u, j_groupes_professeurs jgp WHERE u.login=jgp.login AND jgp.id_groupe='$lig_grp->id' ORDER BY u.nom, u.prenom;"; $res_prof_grp=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_prof_grp)>0) { $lig_prof_grp=mysqli_fetch_object($res_prof_grp); echo $lig_prof_grp->civilite." ".strtoupper($lig_prof_grp->nom)." ".casse_mot($lig_prof_grp->prenom,"majf2"); while($lig_prof_grp=mysqli_fetch_object($res_prof_grp)) { echo ", "; echo $lig_prof_grp->civilite." ".strtoupper($lig_prof_grp->nom)." ".casse_mot($lig_prof_grp->prenom,"majf2"); } } echo "
    \n"; $last_grp[$id_classe[$i]]=$cpt; } } echo "
    \n"; } echo "

    Cocher / décocher tous les enseignements

    \n"; echo "
    \n"; echo "
  • \n"; echo "
\n"; echo "

\n"; echo "
\n"; $chaine_div_coche_lot="Pour toutes les classes,
"; for($j=0;$j document.getElementById('div_liste_enseignements').style.display='none'; function display_div_liste_enseignements() { if(document.getElementById('choix_matieres_certaines').checked==true) { document.getElementById('div_liste_enseignements').style.display='block'; } else { document.getElementById('div_liste_enseignements').style.display='none'; } } if(document.getElementById('div_coche_lot')) { document.getElementById('div_coche_lot').innerHTML=\"$chaine_div_coche_lot\"; } function coche_lot(num,mode) { tab_index=new Array(); "; for($j=0;$j\n"; } else { echo " | Retour au choix des classes"; //echo " | Retour au choix des périodes"; echo " | Retour au choix des périodes"; /* echo " | Retour au choix des enseignements"; */ echo "

Modèle $nom_court_modele
$description_modele

\n"; echo "

Vous allez maintenant créer les ".$gepi_denom_boite."s du modèle $nom_court_modele dans les enseignements sélectionnés :

\n"; // Récapituler avant de valider echo "
".add_token_field()." "; /* for($i=0;$i "; } */ for($i=0;$i0) { $lig_per=mysqli_fetch_object($res_per); $tab_per[$lig_per->num_periode]=$lig_per->nom_periode; } } } } } else { $sql="SELECT * FROM periodes WHERE id_classe='".$id_classe[$i]."' ORDER BY num_periode;"; $res_per=mysqli_query($GLOBALS["mysqli"], $sql); while($lig_per=mysqli_fetch_object($res_per)) { $tab_per[$lig_per->num_periode]=$lig_per->nom_periode; } } echo " "; $cpt_per=0; foreach($tab_per as $key => $value) { if($cpt_per>0) { echo " "; } echo " "; $cpt_per++; } } echo "
Classes Périodes Enseignements
".get_nom_classe($id_classe[$i])." "; if($choix_periodes=='certaines') { if(isset($_POST['num_periode_'.$id_classe[$i]])) { $tmp_per=$_POST['num_periode_'.$id_classe[$i]]; $temoin_periode=0; for($loop=0;$loop<$max_per;$loop++) { if(isset($tmp_per[$loop])) { if($temoin_periode>0) {echo ", ";} echo " P".$tmp_per[$loop]; $temoin_periode++; } } } } else { echo " Toutes"; } echo " "; if($choix_matieres=='certaines') { if(isset($_POST['id_groupe_'.$id_classe[$i]])) { $tmp_grp=$_POST['id_groupe_'.$id_classe[$i]]; $temoin_grp=0; for($loop=0;$loop<$max_per;$loop++) { if(isset($tmp_grp[$loop])) { if($temoin_grp>0) { //echo ", "; echo "
"; } echo " "; $current_group=get_group($tmp_grp[$loop]); //echo $current_group['id']." "; echo $current_group['name']." (".$current_group['description'].") ".$current_group['profs']['proflist_string']; $temoin_grp++; } } } } else { echo " Tous"; } echo "
".get_nom_classe($id_classe[$i])."
$value "; if($choix_matieres=='certaines') { if(isset($_POST['id_groupe_'.$id_classe[$i]])) { $tmp_grp=$_POST['id_groupe_'.$id_classe[$i]]; $temoin_grp=0; for($loop=0;$loop0) { //echo ", "; echo "
"; } // Pour ne pas pas mettre autant de fois le groupe qu'il y a de période: if($cpt_per==0) { echo " "; } $current_group=get_group($tmp_grp[$loop]); //echo $current_group['id']." "; echo $current_group['name']." (".$current_group['description'].") ".$current_group['profs']['proflist_string']; $temoin_grp++; } } } } else { echo " Tous"; } echo "
\n"; //debug_var(); } } else { echo " | Index de la création de modèles

"; echo "

Mode non implémenté.

"; } /** * Pied de page */ require("../lib/footer.inc.php"); ?>