LogAsistencias.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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", 25);
  6. class LogAsistencias {
  7. //put your code here
  8. private $file, $month, $year;
  9. private $dir;
  10. function __construct(){
  11. $this->month = date("m");
  12. $this->year = date("Y");
  13. $this->dir = $_SERVER['DOCUMENT_ROOT']."/log/";
  14. $this->updateFilename();
  15. }
  16. function setMes($mes){
  17. $this->month = $mes;
  18. $this->updateFilename();
  19. }
  20. function setAno($ano){
  21. $this->year = $ano;
  22. $this->updateFilename();
  23. }
  24. private function updateFilename(){
  25. $this->file = "asistencias_".$this->year."_".$this->month.".log";
  26. }
  27. private function cleanLog($text){//remueve || de los textos
  28. return trim(str_ireplace( "||" , "" , $text));
  29. }
  30. function appendLog($claveULSA, $nombre, $desc){
  31. $filename = $this->dir.$this->file;
  32. if (!file_exists($this->dir)){
  33. mkdir($this->dir, 0755, true);
  34. }
  35. if (file_exists($this->dir)){
  36. $data = date('Y-m-d H:i:s')."||".$this->cleanLog($claveULSA)."||".$this->cleanLog($desc)."||".$this->cleanLog($nombre)."\n";
  37. file_put_contents($filename, $data, FILE_APPEND);
  38. }
  39. }
  40. function getLog($mes ="", $ano = ""){
  41. if($mes != "") setMes($mes);
  42. if($ano != "") setAno($ano);
  43. $filename = $this->dir.$this->file;
  44. if (file_exists($filename)){
  45. //return array_slice(file ($filename , FILE_SKIP_EMPTY_LINES) , -10);
  46. $lines = file ($filename , FILE_SKIP_EMPTY_LINES);
  47. //echo "antes: ".count($lines);
  48. if(count($lines) > MAX_LINES){ $lines = array_slice($lines, MAX_LINES*(-1)); }
  49. //echo "despues: ".count($lines);
  50. return $lines;
  51. }else{
  52. return array();
  53. }
  54. }
  55. }