Aucune description

Help.php 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace MailPoet\AdminPages\Pages;
  3. if (!defined('ABSPATH')) exit;
  4. use MailPoet\AdminPages\PageRenderer;
  5. use MailPoet\Cron\CronHelper;
  6. use MailPoet\Helpscout\Beacon;
  7. use MailPoet\Mailer\MailerLog;
  8. use MailPoet\Router\Endpoints\CronDaemon;
  9. use MailPoet\Services\Bridge;
  10. use MailPoet\Tasks\Sending;
  11. use MailPoet\Tasks\State;
  12. class Help {
  13. /** @var PageRenderer */
  14. private $pageRenderer;
  15. /** @var State */
  16. private $tasksState;
  17. /** @var CronHelper */
  18. private $cronHelper;
  19. /** @var Beacon */
  20. private $helpscoutBeacon;
  21. public function __construct(
  22. PageRenderer $pageRenderer,
  23. State $tasksState,
  24. CronHelper $cronHelper,
  25. Beacon $helpscoutBeacon
  26. ) {
  27. $this->pageRenderer = $pageRenderer;
  28. $this->tasksState = $tasksState;
  29. $this->cronHelper = $cronHelper;
  30. $this->helpscoutBeacon = $helpscoutBeacon;
  31. }
  32. public function render() {
  33. $systemInfoData = $this->helpscoutBeacon->getData();
  34. $cronPingResponse = $this->cronHelper->pingDaemon();
  35. $systemStatusData = [
  36. 'cron' => [
  37. 'url' => $this->cronHelper->getCronUrl(CronDaemon::ACTION_PING),
  38. 'isReachable' => $this->cronHelper->validatePingResponse($cronPingResponse),
  39. 'pingResponse' => $cronPingResponse,
  40. ],
  41. 'mss' => [
  42. 'enabled' => (Bridge::isMPSendingServiceEnabled()) ?
  43. ['isReachable' => Bridge::pingBridge()] :
  44. false,
  45. ],
  46. 'cronStatus' => $this->cronHelper->getDaemon(),
  47. 'queueStatus' => MailerLog::getMailerLog(),
  48. ];
  49. $systemStatusData['cronStatus']['accessible'] = $this->cronHelper->isDaemonAccessible();
  50. $systemStatusData['queueStatus']['tasksStatusCounts'] = $this->tasksState->getCountsPerStatus();
  51. $systemStatusData['queueStatus']['latestTasks'] = $this->tasksState->getLatestTasks(Sending::TASK_TYPE);
  52. $this->pageRenderer->displayPage(
  53. 'help.html',
  54. [
  55. 'systemInfoData' => $systemInfoData,
  56. 'systemStatusData' => $systemStatusData,
  57. ]
  58. );
  59. }
  60. }