/modeles/evaluations/matiere.php

https://github.com/Regis85/plugin_notes · PHP · 211 lines · 142 code · 19 blank · 50 comment · 24 complexity · 4bf8b9dbd1ef170f514bfe5fc7a78d8e MD5 · raw file

  1. <?php
  2. /** Modele du module evaluations : action matiere
  3. *
  4. * Création de sous-conteneurs
  5. *
  6. * @author Régis Bouguin
  7. * @package arborescence
  8. * @subpackage matiere
  9. *
  10. */
  11. /** Enregistre les données du conteneur dans la base
  12. *
  13. * @return bool TRUE si l'enregistrement s'est bien passé, FALSE + un message sinon
  14. * @see traitement_magic_quotes()
  15. * @see getSettingValue()
  16. * @see charge_message()
  17. *
  18. */
  19. function enregisteConteneur() {
  20. // On vide les messages
  21. unset ($_SESSION[PREFIXE]['tbs_msg']);
  22. // On récupère en session les données
  23. $donnees_passees = array();
  24. $donnees_passees['nomCourt'] = !empty ($_POST['nom']) ? traitement_magic_quotes($_POST['nom']) : (!empty ($_SESSION[PREFIXE]['nomCourt']) ? $_SESSION[PREFIXE]['nomCourt'] : getSettingValue('gepi_denom_boite'));
  25. $donnees_passees['nomComplet'] = !empty ($_POST['nomComplet']) ? $_POST['nomComplet'] : (!empty ($_SESSION[PREFIXE]['nomComplet']) ? $_SESSION[PREFIXE]['nomComplet'] : "");
  26. $donnees_passees['emplacement'] = !empty ($_POST['emplacement']) ? $_POST['emplacement'] : (!empty ( $_SESSION[PREFIXE]['emplacement']) ? $_SESSION[PREFIXE]['emplacement'] : "");
  27. $donnees_passees['coefficient'] = !empty ($_POST['coefCont']) ? $_POST['coefCont'] : (!empty ( $_SESSION[PREFIXE]['coefficient']) ? $_SESSION[PREFIXE]['coefficient'] : "");
  28. $donnees_passees['arrondir'] = !empty ($_POST['arrondi']) ? $_POST['arrondi'] : (!empty ( $_SESSION[PREFIXE]['arrondir']) ? $_SESSION[PREFIXE]['arrondir'] : "");
  29. $donnees_passees['mode_calcul'] = !empty ($_POST['mode_calcul']) ? $_POST['mode_calcul'] : (!empty ( $_SESSION[PREFIXE]['mode_calcul']) ? $_SESSION[PREFIXE]['mode_calcul'] : 2);
  30. $donnees_passees['id_racine'] = !empty ( $_SESSION[PREFIXE]['id_racine']) ? $_SESSION[PREFIXE]['id_racine'] : "";
  31. if (!empty ($_POST['description'])) {
  32. $donnees_passees['description'] = $_POST['description'];
  33. } else {
  34. $donnees_passees['description'] = "";
  35. }
  36. if (!empty ($_POST['ponderation'])) {
  37. $donnees_passees['ponderation'] = $_POST['ponderation'];
  38. } else {
  39. $donnees_passees['ponderation'] = 0;
  40. }
  41. if (!empty ($_POST['noteSurReleve'])) {
  42. $donnees_passees['noteSurReleve'] = $_POST['noteSurReleve'];
  43. } else {
  44. $donnees_passees['noteSurReleve'] = 0;
  45. }
  46. if (!empty ($_POST['noteSurBulletin'])) {
  47. $donnees_passees['noteSurBulletin'] = $_POST['noteSurBulletin'];
  48. } else {
  49. $donnees_passees['noteSurBulletin'] = 0;
  50. }
  51. if(isset ($_POST['id_conteneur'])) {
  52. $donnees_passees['id_conteneur'] = $_POST['id_conteneur'];
  53. // Si on modifie le parent, il faut remplir
  54. // $_POST['emplacement'], $donnees_passees['emplacement'] à 0
  55. if ($_POST['id_conteneur'] == $donnees_passees['id_racine']) {
  56. $donnees_passees['emplacement'] = "0";
  57. $_POST['emplacement'] = "racine";
  58. echo 'coucou';
  59. }
  60. } else {
  61. $donnees_passees['id_conteneur'] = NULL;
  62. }
  63. $_SESSION[PREFIXE]['add_change_conteneur'] = $donnees_passees;
  64. // On teste si les champs obligatoires sont bien remplis
  65. if (!empty ($_POST['nom'])
  66. && !empty ($_POST['nomComplet'])
  67. && (!empty ($_POST['emplacement']))
  68. && !empty ($_POST['coefCont'])
  69. && !empty ($_POST['arrondi'])
  70. && !empty ($_POST['mode'])) {
  71. if($donnees_passees['id_conteneur']) {
  72. // on a un id, on est en train de modifier un conteneur
  73. $sql="UPDATE `cn_conteneurs`
  74. SET `id_racine` = '".$donnees_passees['id_racine']."',
  75. `nom_court` = '".$donnees_passees['nomCourt']."',
  76. `nom_complet` = '".html_entity_decode($donnees_passees['nomComplet'])."',
  77. `description` = '".$donnees_passees['description']."',
  78. `mode` = '".$donnees_passees['mode_calcul']."',
  79. `coef` = '".$donnees_passees['coefficient']."',
  80. `arrondir` = '".$donnees_passees['arrondir']."',
  81. `ponderation` = '".$donnees_passees['ponderation']."',
  82. `display_parents` = '".$donnees_passees['noteSurReleve']."',
  83. `display_bulletin` = '".$donnees_passees['noteSurBulletin']."',
  84. `parent` = '".$donnees_passees['emplacement']."'
  85. WHERE id = '".$donnees_passees['id_conteneur']."'";
  86. } else {
  87. // on n'a pas d'id, on est en train de créer un conteneur
  88. $sql="INSERT INTO `cn_conteneurs`
  89. (id_racine,
  90. nom_court,
  91. nom_complet,
  92. description,
  93. mode,
  94. coef,
  95. arrondir,
  96. ponderation,
  97. display_parents,
  98. display_bulletin,
  99. parent)
  100. VALUES ('".$donnees_passees['id_racine']."',
  101. '".$donnees_passees['nomCourt']."',
  102. '".$donnees_passees['nomComplet']."',
  103. '".$donnees_passees['description']."',
  104. '".$donnees_passees['mode_calcul']."',
  105. '".$donnees_passees['coefficient']."',
  106. '".$donnees_passees['arrondir']."',
  107. '".$donnees_passees['ponderation']."',
  108. '".$donnees_passees['noteSurReleve']."',
  109. '".$donnees_passees['noteSurBulletin']."',
  110. '".$donnees_passees['emplacement']."')";
  111. }
  112. //echo $sql.'<br />';
  113. if (mysql_query($sql)) {
  114. return TRUE;
  115. } else {
  116. charge_message("Échec lors de l'enregistrement dans la base<br />".$sql);
  117. return FALSE;
  118. }
  119. }
  120. charge_message("Des champs obligatoires n'ont pas été renseignés");
  121. return FALSE;
  122. }
  123. /** Renvoie dans un tableau, les données de la base pour un conteneur à partir de son Id
  124. *
  125. * id_conteneur = cn_conteneurs.id,
  126. * id_racine = cn_conteneurs.id_racine,
  127. * nom_court = cn_conteneurs.nom_court,
  128. * nom_complet = cn_conteneurs.nom_complet,
  129. * description = cn_conteneurs.description,
  130. * mode_calcul = cn_conteneurs.mode,
  131. * coefficient = cn_conteneurs.coef,
  132. * arrondir = cn_conteneurs.arrondir,
  133. * ponderation = cn_conteneurs.ponderation,
  134. * noteSurReleve = cn_conteneurs.display_parents,
  135. * noteSurBulletin = cn_conteneurs.display_bulletin,
  136. * emplacement'] = cn_conteneurs.parent
  137. *
  138. * @param int $id_conteneur L'id du conteneur
  139. * @return tableau mixed Les données du conteneur enregistrées dans la base
  140. *
  141. */
  142. function recharge_conteneur($id_conteneur){
  143. $conteneur = array ();
  144. // On récupère les données du conteneur
  145. $sql="SELECT * FROM `cn_conteneurs`
  146. WHERE `id` ='".$id_conteneur."' ";
  147. $result = mysql_query($sql);
  148. if ($result) {
  149. $donnee_recu = mysql_fetch_array($result);
  150. $conteneur['id_conteneur'] = $donnee_recu['id'];
  151. $conteneur['id_racine'] = $donnee_recu['id_racine'];
  152. $conteneur['nomCourt'] = $donnee_recu['nom_court'];
  153. $conteneur['nomComplet'] = $donnee_recu['nom_complet'];
  154. $conteneur['description'] = $donnee_recu['description'];
  155. $conteneur['mode_calcul'] = $donnee_recu['mode'];
  156. $conteneur['coefficient'] = $donnee_recu['coef'];
  157. $conteneur['arrondir'] = $donnee_recu['arrondir'];
  158. $conteneur['ponderation'] = $donnee_recu['ponderation'];
  159. $conteneur['noteSurReleve'] = $donnee_recu['display_parents'];
  160. $conteneur['noteSurBulletin'] = $donnee_recu['display_bulletin'];
  161. $conteneur['emplacement'] = $donnee_recu['parent'];
  162. } else {
  163. mysql_free_result($result);
  164. charge_message("Échec lors de la récupération dans la base");
  165. return FALSE;
  166. }
  167. mysql_free_result($result);
  168. return $conteneur;
  169. }
  170. /** Renvoie dans un tableau, les données pour un nouveau conteneur
  171. *
  172. * @return tableau mixed Des données par défaut pour un nouveau conteneur
  173. *
  174. */
  175. function recharge_conteneur_defaut(){
  176. $conteneur = array ();
  177. $conteneur['id_conteneur'] = NULL;
  178. $conteneur['nomCourt'] = getSettingValue('gepi_denom_boite');
  179. $conteneur['nomComplet'] = "nom long";
  180. $conteneur['emplacement'] = "";
  181. $conteneur['description'] = "";
  182. $conteneur['coefficient'] = 1;
  183. $conteneur['arrondir'] = DIXIEME_SUP;
  184. $conteneur['ponderation'] = 0;
  185. $conteneur['noteSurReleve'] = 1;
  186. $conteneur['noteSurBulletin'] = 0;
  187. $conteneur['mode_calcul'] = MODE_DEFAUT_CONTENEUR;
  188. return $conteneur;
  189. }
  190. ?>