LogAsistencias.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. /*
  3. * Objeto para leer y escribir datos de log de intentos de asistencia realizadas por el usuario
  4. */
  5. define("MAX_LINES", 200);
  6. ini_set('display_errors', 1);
  7. ini_set('display_startup_errors', 1);
  8. error_reporting(E_ALL);
  9. // timezone de Ciudad de México
  10. date_default_timezone_set('America/Mexico_City');
  11. require_once "vendor/autoload.php";
  12. $dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
  13. $dotenv->load();
  14. # die(json_encode($_ENV));
  15. class LogAsistencias {
  16. //put your code here
  17. private $file, $month, $year;
  18. private $dir;
  19. function __construct(){
  20. $this->month = date("m");
  21. $this->year = date("Y");
  22. $this->dir = './log/';
  23. $this->updateFilename();
  24. }
  25. function setMes($mes){
  26. $this->month = $mes;
  27. $this->updateFilename();
  28. }
  29. function setAno($ano){
  30. $this->year = $ano;
  31. $this->updateFilename();
  32. }
  33. private function updateFilename(){
  34. $this->file = "asistencias_".$this->year."_".$this->month.".log";
  35. }
  36. private function cleanLog($text){//remueve || de los textos
  37. return trim(str_ireplace( "||" , "" , $text));
  38. }
  39. function appendLog($claveULSA, $nombre, $desc){
  40. $filename = $this->dir.$this->file;
  41. if (!file_exists($this->dir)){
  42. mkdir($this->dir, 0755, true);
  43. }
  44. if (file_exists($this->dir)){
  45. $data = date('Y-m-d H:i:s')."||".$this->cleanLog($claveULSA)."||".$this->cleanLog($desc)."||".$this->cleanLog($nombre)."\n";
  46. file_put_contents($filename, $data, FILE_APPEND);
  47. }
  48. }
  49. function getLog($mes ="", $ano = ""){
  50. if($mes != "") $this->setMes($mes);
  51. if($ano != "") $this->setAno($ano);
  52. $filename = $this->dir.$this->file;
  53. if (file_exists($filename)){
  54. //return array_slice(file ($filename , FILE_SKIP_EMPTY_LINES) , -10);
  55. $lines = file ($filename , FILE_SKIP_EMPTY_LINES);
  56. //echo "antes: ".count($lines);
  57. if(count($lines) > MAX_LINES){ $lines = array_slice($lines, MAX_LINES*(-1)); }
  58. //echo "despues: ".count($lines);
  59. return $lines;
  60. }else{
  61. return array();
  62. }
  63. }
  64. }