Нема описа

Logs.php 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace MailPoet\AdminPages\Pages;
  3. if (!defined('ABSPATH')) exit;
  4. use MailPoet\AdminPages\PageRenderer;
  5. use MailPoet\Logging\LogRepository;
  6. use MailPoetVendor\Carbon\Carbon;
  7. class Logs {
  8. /** @var PageRenderer */
  9. private $pageRenderer;
  10. /** @var LogRepository */
  11. private $logRepository;
  12. public function __construct(
  13. LogRepository $logRepository,
  14. PageRenderer $pageRenderer
  15. ) {
  16. $this->pageRenderer = $pageRenderer;
  17. $this->logRepository = $logRepository;
  18. }
  19. public function render() {
  20. $search = isset($_GET['search']) ? $_GET['search'] : null;
  21. $from = isset($_GET['from']) ? $_GET['from'] : null;
  22. $to = isset($_GET['to']) ? $_GET['to'] : null;
  23. $offset = isset($_GET['offset']) ? $_GET['offset'] : null;
  24. $limit = isset($_GET['limit']) ? $_GET['limit'] : null;
  25. $dateFrom = (new Carbon())->subDays(7);
  26. if (isset($from)) {
  27. $dateFrom = new Carbon($from);
  28. }
  29. $dateTo = null;
  30. if (isset($to)) {
  31. $dateTo = new Carbon($to);
  32. }
  33. $logs = $this->logRepository->getLogs($dateFrom, $dateTo, $search, $offset, $limit);
  34. $data = ['logs' => []];
  35. foreach ($logs as $log) {
  36. $data['logs'][] = [
  37. 'id' => $log->getId(),
  38. 'name' => $log->getName(),
  39. 'message' => $log->getMessage(),
  40. 'created_at' => $log->getCreatedAt()->format('Y-m-d H:i:s'),
  41. ];
  42. }
  43. $this->pageRenderer->displayPage('logs.html', $data);
  44. }
  45. }