Guest User

Untitled

a guest
May 25th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.22 KB | None | 0 0
  1. <?php
  2.  
  3.  
  4. class TimerPanel extends Object implements IDebugPanel
  5. {
  6. const PRODLEVA = 1800;
  7.  
  8. const PROTOKOL = 'file'; // safe
  9. const LOG_FILE = "/temp/timerPanel.log";
  10.  
  11. var $data = array('celkem'=>0, 'start'=>0, 'naposledy'=>0);
  12.  
  13.  
  14. function __construct()
  15. {
  16.  
  17. if( !is_file($this->getLogFile()) ){ // výchozí hodnoty
  18. @file_put_contents($this->getLogFile(), json_encode(array(
  19. "celkem" => 0,
  20. "start" => time(),
  21. "naposledy" => time(),
  22. )));
  23. }
  24.  
  25. if( is_file($this->getLogFile()) ){ // načtu data
  26. $json = json_decode( @file_get_contents($this->getLogFile()) );
  27. }
  28.  
  29. if( !isset($json->celkem) OR !isset($json->naposledy) OR !isset($json->start) ){ // kontrola formátu
  30. unlink($this->getLogFile());
  31. return $this->__construct();
  32. }
  33.  
  34. $data = array( // výchozí pro zápis
  35. "celkem" => $json->celkem,
  36. "start" => $json->start,
  37. "naposledy" => time(),
  38. );
  39.  
  40. if( (time()-self::PRODLEVA) < $json->naposledy ){
  41. $data['celkem'] += time() - $json->naposledy;
  42. }
  43.  
  44. @file_put_contents($this->getLogFile(), json_encode($data) ); // zapíšeme vždycky (nový čas!!)
  45.  
  46. $this->data = $data; // pro výpis na sklo
  47. }
  48.  
  49.  
  50. function getLogFile()
  51. {
  52. return self::PROTOKOL . '://' . APP_DIR . self::LOG_FILE;
  53. }
  54.  
  55.  
  56. function getTab()
  57. {
  58. $hod = floor($this->data['celkem'] / 3600);
  59.  
  60. $min = floor(($this->data['celkem'] % 3600) / 60);
  61. if($min < 10) $min = "0" . $min;
  62.  
  63. $sec = ($this->data['celkem'] % 3600) % 60;
  64. if($sec < 10) $sec = "0" . $sec;
  65.  
  66. return '<div style="cursor: pointer;" title="Čas zahájení: '.date('H:i:s d.m.Y', $this->data['start']).'"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIESURBVDjLlVJtaxpBEH7uvNSL50skFBqCiDVYpCWiIAjtx4Ih4I/zs78jkD9QioVAUBGNWigqRfpBxSO+3LnbmY13mNQWOvAwuzszz7zsQEoJBomWzWY/V6vVb5lM5oruBr/tYBQKhU+1Wu0r+/CbF6cOA02Tv9jr5gbn+TyGd3cQlQpe40nYFry9xZvLS/y8v8fm+lrZ0lJqukbCTlYwCCsWw3a7RTgex3EggLiuK5jkYkYiynYcjcLcEXOsvjvDNAx0BgPl1O31IIjEPjmBHQ5ja5rodLvK1nl48Ang9dgHRIyyN87O0LNtXFD2FLWmU4B0HKxdF99JDwhvhUCB9CPZLwDd2K/gw+kp3lsW5GYDl5wEg8heEdG7oyNkSGuE4GKBRyL1q6jX69J13b/CcRy5XC4VWPiNYzjWwAFZr9dot9tIp9Po9/uq9/l8jnK57H25L/ohAg4ejUaI0ORzuRxSqRRCoRAosw+P6BmB95inXfAWhdFqtVQ1Dg+UqqNW/Jg/WnhZ4mw2g6DJc/BkMlFnhud3cAb7ZNwOrbaaQzKZ5OXBcDiEQb/GA9XljoqU2A+u0CqzqVgswqKv5awcPB6PfSJ/Bgv6V5uEjoIN+wjQHrDmCjhzIpHAarVSLfktdGlNyTHKZf1LvAqYrNlsolQqPRFMp9MvjUbjI/5D6Dd+sP4NLTpNB1cxufkAAAAASUVORK5CYII=" />'.$hod.':'.$min.':'.$sec.'</div>';
  67. }
  68.  
  69.  
  70. function getPanel()
  71. {
  72. return NULL;
  73. }
  74.  
  75.  
  76. function getId()
  77. {
  78. return __CLASS__;
  79. }
  80.  
  81.  
  82. }
Add Comment
Please, Sign In to add comment