historique.class.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <?php
  2. class historique
  3. {
  4. private static function recRef(string $_name) {
  5. db::query("INSERT IGNORE INTO " . DB_T_HISTORIQUE_REF . " (name) VALUES (:name)");
  6. db::bind(':name', $_name);
  7. try {
  8. db::execute();
  9. } catch (Exception $ex) {
  10. alert::recError("Erreur lors de l'enregistrement de la référence historique");
  11. }
  12. }
  13. private static function getIdRef(string $_name) {
  14. db::query("SELECT id FROM " . DB_T_HISTORIQUE_REF . " WHERE name = :name");
  15. db::bind(':name', $_name);
  16. return db::single()["id"];
  17. }
  18. public static function getAll() {
  19. db::query("SELECT "
  20. . "" . DB_T_HISTORIQUE . ".id, "
  21. . "" . DB_T_HISTORIQUE . ".idType ,"
  22. . "HISTO_TYPE.name AS type ,"
  23. . "" . DB_T_HISTORIQUE . ".idPage, "
  24. . "HISTO_PAGE.name AS page, "
  25. . "" . DB_T_HISTORIQUE . ".idUser ,"
  26. . "CONCAT (" . DB_T_USER . ".prenom, ' ', " . DB_T_USER . ".nom) AS 'user' ,"
  27. . "" . DB_T_HISTORIQUE . ".log, "
  28. . "" . DB_T_HISTORIQUE . ".addDate "
  29. . "FROM " . DB_T_HISTORIQUE . " "
  30. . "INNER JOIN " . DB_T_USER . " ON " . DB_T_HISTORIQUE . ".idUser = " . DB_T_USER . ".id "
  31. . "INNER JOIN " . DB_T_HISTORIQUE_REF . " HISTO_TYPE ON " . DB_T_HISTORIQUE . ".idType = HISTO_TYPE.id "
  32. . "INNER JOIN " . DB_T_HISTORIQUE_REF . " HISTO_PAGE ON " . DB_T_HISTORIQUE . ".idPage = HISTO_PAGE.id ");
  33. return db::resultset();
  34. }
  35. public static function getByPage(string $_idPage) {
  36. db::query("SELECT "
  37. . "" . DB_T_HISTORIQUE . ".id, "
  38. . "" . DB_T_HISTORIQUE . ".idType ,"
  39. . "HISTO_TYPE.name AS type ,"
  40. . "" . DB_T_HISTORIQUE . ".idPage, "
  41. . "HISTO_PAGE.name AS page, "
  42. . "" . DB_T_HISTORIQUE . ".idUser ,"
  43. . "CONCAT (" . DB_T_USER . ".prenom, ' ', " . DB_T_USER . ".nom) AS 'user' ,"
  44. . "" . DB_T_HISTORIQUE . ".log, "
  45. . "" . DB_T_HISTORIQUE . ".addDate "
  46. . "FROM " . DB_T_HISTORIQUE . " "
  47. . "INNER JOIN " . DB_T_USER . " ON " . DB_T_HISTORIQUE . ".idUser = " . DB_T_USER . ".id "
  48. . "INNER JOIN " . DB_T_HISTORIQUE_REF . " HISTO_TYPE ON " . DB_T_HISTORIQUE . ".idType = HISTO_TYPE.id "
  49. . "INNER JOIN " . DB_T_HISTORIQUE_REF . " HISTO_PAGE ON " . DB_T_HISTORIQUE . ".idPage = HISTO_PAGE.id "
  50. . "WHERE " . DB_T_HISTORIQUE . ".idPage = :idPage");
  51. db::bind(':idPage', $_idPage);
  52. return db::resultset();
  53. }
  54. public static function getByUser(int $_idUser) {
  55. db::query("SELECT "
  56. . "" . DB_T_HISTORIQUE . ".id, "
  57. . "" . DB_T_HISTORIQUE . ".type ,"
  58. . "" . DB_T_HISTORIQUE . ".idPage, "
  59. . "" . DB_T_HISTORIQUE . ".idUser ,"
  60. . "CONCAT (" . DB_T_USER . ".prenom, ' ', " . DB_T_USER . ".nom) AS 'user' ,"
  61. . "" . DB_T_HISTORIQUE . ".log, "
  62. . "" . DB_T_HISTORIQUE . ".addDate "
  63. . "FROM " . DB_T_HISTORIQUE . " "
  64. . "WHERE " . DB_T_HISTORIQUE . ".idUser = :idUser");
  65. db::bind(':idUser', $_idUser);
  66. return db::resultset();
  67. }
  68. public static function getByType(string $_type) {
  69. db::query("SELECT "
  70. . "" . DB_T_HISTORIQUE . ".id, "
  71. . "" . DB_T_HISTORIQUE . ".idType ,"
  72. . "HISTO_TYPE.name AS type ,"
  73. . "" . DB_T_HISTORIQUE . ".idPage, "
  74. . "HISTO_PAGE.name AS page, "
  75. . "" . DB_T_HISTORIQUE . ".idUser ,"
  76. . "CONCAT (" . DB_T_USER . ".prenom, ' ', " . DB_T_USER . ".nom) AS 'user' ,"
  77. . "" . DB_T_HISTORIQUE . ".log, "
  78. . "" . DB_T_HISTORIQUE . ".addDate "
  79. . "FROM " . DB_T_HISTORIQUE . " "
  80. . "INNER JOIN " . DB_T_USER . " ON " . DB_T_HISTORIQUE . ".idUser = " . DB_T_USER . ".id "
  81. . "INNER JOIN " . DB_T_HISTORIQUE_REF . " HISTO_TYPE ON " . DB_T_HISTORIQUE . ".idType = HISTO_TYPE.id "
  82. . "INNER JOIN " . DB_T_HISTORIQUE_REF . " HISTO_PAGE ON " . DB_T_HISTORIQUE . ".idPage = HISTO_PAGE.id "
  83. . "WHERE " . DB_T_HISTORIQUE . ".type = :type");
  84. db::bind(':type', $_type);
  85. return db::resultset();
  86. }
  87. public static function recordLogs(){
  88. if(session::isConnect() AND (alert::getSuccess() OR alert::getWarning() OR alert::getError())){
  89. $log = NULL;
  90. if(alert::getSuccess()){
  91. foreach (alert::getSuccess() as $value) {
  92. $log .= $value . "\r\n";
  93. }
  94. self::recRef($_SERVER["REQUEST_URI"]);
  95. self::add(array(
  96. "idType" => self::getIdRef("SUCCESS"),
  97. "idUser" => session::getId(),
  98. "idPage" => self::getIdRef($_SERVER["REQUEST_URI"]),
  99. "log" => $log
  100. ));
  101. }
  102. if(alert::getWarning()){
  103. foreach (alert::getWarning() as $value) {
  104. $log .= $value . "\r\n";
  105. }
  106. self::recRef($_SERVER["REQUEST_URI"]);
  107. self::add(array(
  108. "idType" => self::getIdRef("WARNING"),
  109. "idUser" => session::getId(),
  110. "idPage" => self::getIdRef($_SERVER["REQUEST_URI"]),
  111. "log" => $log
  112. ));
  113. }
  114. if(alert::getError()){
  115. foreach (alert::getError() as $value) {
  116. $log .= $value . "\r\n";
  117. }
  118. self::recRef($_SERVER["REQUEST_URI"]);
  119. self::add(array(
  120. "idType" => self::getIdRef("ERROR"),
  121. "idUser" => session::getId(),
  122. "idPage" => self::getIdRef($_SERVER["REQUEST_URI"]),
  123. "log" => $log
  124. ));
  125. }
  126. }
  127. }
  128. private static function add(array $_input){
  129. db::query("INSERT INTO " . DB_T_HISTORIQUE . " (idType, idUser, idPage, log) VALUES (:idType, :idUser, :idPage, :log)");
  130. db::bind(':idType', $_input["idType"]);
  131. db::bind(':idUser', $_input["idUser"]);
  132. db::bind(':idPage', $_input["idPage"]);
  133. db::bind(':log', $_input["log"]);
  134. try {
  135. db::execute();
  136. } catch (Exception $ex) {
  137. alert::recError("Erreur lors de l'enregistrement de l'historique");
  138. }
  139. }
  140. }