PageStatusValidator.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace Meramo\mrm_be\Task;
  3. use \TYPO3\CMS\Core\Utility\GeneralUtility;
  4. use \TYPO3\CMS\Core\Database\ConnectionPool;
  5. use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction;
  6. use TYPO3\CMS\Core\Database\Query\Restriction\HiddenRestriction;
  7. class PageStatusValidator extends \TYPO3\CMS\Scheduler\Task\AbstractTask {
  8. public function execute(){
  9. $connection = GeneralUtility::makeInstance(ConnectionPool::class);
  10. $pageQueryBuilder = $connection->getQueryBuilderForTable('pages');
  11. $pageQueryBuilder->getRestrictions()->removeAll()
  12. ->add(GeneralUtility::makeInstance(DeletedRestriction::class))
  13. ->add(GeneralUtility::makeInstance(HiddenRestriction::class))
  14. ;
  15. $postStatement = $pageQueryBuilder
  16. ->update('pages')
  17. ->orWhere(
  18. $pageQueryBuilder->expr()->eq('red_status', 11),
  19. $pageQueryBuilder->expr()->eq('red_status', 12),
  20. )
  21. ->andWhere(
  22. $pageQueryBuilder->expr()->neq('deleted', 1),
  23. $pageQueryBuilder->expr()->gt('endtime', 0),
  24. $pageQueryBuilder->expr()->lte('endtime', (new \DateTime())->getTimestamp()),
  25. )
  26. ->set('red_status', 22)
  27. ->execute();
  28. $pageQueryBuilderOnline = $connection->getQueryBuilderForTable('pages');
  29. $pageQueryBuilderOnline->getRestrictions()->removeAll()
  30. ->add(GeneralUtility::makeInstance(DeletedRestriction::class))
  31. ->add(GeneralUtility::makeInstance(HiddenRestriction::class))
  32. ;
  33. $postStatementOnline = $pageQueryBuilderOnline
  34. ->update('pages')
  35. ->where(
  36. $pageQueryBuilderOnline->expr()->eq('red_status', 11)
  37. )
  38. ->andWhere(
  39. $pageQueryBuilderOnline->expr()->neq('deleted', 1),
  40. $pageQueryBuilderOnline->expr()->lte('starttime', (new \DateTime())->getTimestamp()),
  41. )
  42. ->set('red_status', 12)
  43. ->execute();
  44. return TRUE;
  45. }
  46. /* PRIVATES */
  47. private function log($msg, $isString = true){
  48. if(!$isString){
  49. $msg = json_encode($msg, JSON_PRETTY_PRINT);
  50. }
  51. file_put_contents('/var/www/html/typo3temp/debug.log', $msg.PHP_EOL, FILE_APPEND);
  52. }
  53. }