PHP 8.2.31
Preview: FormsRepository.php Size: 2.61 KB
/home/nshryvcy/himaltourism.com/wp-content/plugins/mailpoet/lib/Form/FormsRepository.php

<?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing

namespace MailPoet\Form;

if (!defined('ABSPATH')) exit;


use MailPoet\Doctrine\Repository;
use MailPoet\Entities\FormEntity;

/**
 * @extends Repository<FormEntity>
 */
class FormsRepository extends Repository {
  protected function getEntityClassName() {
    return FormEntity::class;
  }

  /**
   * @return FormEntity[]
   */
  public function findAllNotDeleted(): array {
    return $this->entityManager
      ->createQueryBuilder()
      ->select('f')
      ->from(FormEntity::class, 'f')
      ->where('f.deletedAt IS NULL')
      ->orderBy('f.updatedAt', 'desc')
      ->getQuery()
      ->getResult();
  }

  public function getNamesOfFormsForSegments(): array {
    $allNonDeletedForms = $this->findAllNotDeleted();

    $nameMap = [];
    foreach ($allNonDeletedForms as $form) {
      $blockSegmentsIds = $form->getSettingsSegmentIds();
      foreach ($blockSegmentsIds as $blockSegmentId) {
        $nameMap[$blockSegmentId][] = $form->getName();
      }
    }

    return $nameMap;
  }

  public function count(): int {
    return (int)$this->doctrineRepository
      ->createQueryBuilder('f')
      ->select('count(f.id)')
      ->getQuery()
      ->getSingleScalarResult();
  }

  public function delete(FormEntity $form) {
    $this->entityManager->remove($form);
    $this->flush();
  }

  public function trash(FormEntity $form) {
    $this->bulkTrash([$form->getId()]);
    $this->entityManager->refresh($form);
  }

  public function restore(FormEntity $form) {
    $this->bulkRestore([$form->getId()]);
    $this->entityManager->refresh($form);
  }

  public function bulkTrash(array $ids): int {
    if (empty($ids)) {
      return 0;
    }

    return $this->entityManager->createQueryBuilder()
      ->update(FormEntity::class, 'f')
      ->set('f.deletedAt', 'CURRENT_TIMESTAMP()')
      ->where('f.id IN (:ids)')
      ->setParameter('ids', $ids)
      ->getQuery()->execute();
  }

  public function bulkRestore(array $ids): int {
    if (empty($ids)) {
      return 0;
    }

    return $this->entityManager->createQueryBuilder()
      ->update(FormEntity::class, 'f')
      ->set('f.deletedAt', ':deletedAt')
      ->where('f.id IN (:ids)')
      ->setParameter('deletedAt', null)
      ->setParameter('ids', $ids)
      ->getQuery()->execute();
  }

  public function bulkDelete(array $ids): int {
    if (empty($ids)) {
      return 0;
    }

    return $this->entityManager->createQueryBuilder()
      ->delete(FormEntity::class, 'f')
      ->where('f.id IN (:ids)')
      ->setParameter('ids', $ids)
      ->getQuery()->execute();
  }
}

Directory Contents

Dirs: 4 × Files: 15

Name Size Perms Modified Actions
Block DIR
- drwxr-xr-x 2023-04-04 05:35:40
Edit Download
Listing DIR
- drwxr-xr-x 2023-04-04 05:35:40
Edit Download
Templates DIR
- drwxr-xr-x 2023-04-04 05:35:40
Edit Download
Util DIR
- drwxr-xr-x 2023-04-04 05:35:40
Edit Download
1.91 KB lrw-r--r-- 2023-04-04 05:35:40
Edit Download
6.09 KB lrw-r--r-- 2023-04-04 05:35:40
Edit Download
4.18 KB lrw-r--r-- 2023-04-04 05:35:40
Edit Download
4.04 KB lrw-r--r-- 2023-04-04 05:35:40
Edit Download
642 B lrw-r--r-- 2023-04-04 05:35:40
Edit Download
10.86 KB lrw-r--r-- 2023-04-04 05:35:40
Edit Download
1.26 KB lrw-r--r-- 2023-04-04 05:35:40
Edit Download
1.61 KB lrw-r--r-- 2023-04-04 05:35:40
Edit Download
1.16 KB lrw-r--r-- 2023-04-04 05:35:40
Edit Download
2.61 KB lrw-r--r-- 2023-04-04 05:35:40
Edit Download
0 B lrw-r--r-- 2023-04-04 05:35:40
Edit Download
4.03 KB lrw-r--r-- 2023-04-04 05:35:40
Edit Download
726 B lrw-r--r-- 2023-04-04 05:35:40
Edit Download
4.19 KB lrw-r--r-- 2023-04-04 05:35:40
Edit Download
9.12 KB lrw-r--r-- 2023-04-04 05:35:40
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).