403Webshell
Server IP : 172.67.158.161  /  Your IP : 18.222.184.18
Web Server : LiteSpeed
System : Linux business53.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : giankuin ( 1871)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /proc/self/root/proc/thread-self/root/proc/self/root/proc/self/root/proc/thread-self/root/home/giankuin/thietke365.net/wp-content/plugins/mailpoet/lib/Automation/Engine/Control/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/self/root/proc/thread-self/root/proc/self/root/proc/self/root/proc/thread-self/root/home/giankuin/thietke365.net/wp-content/plugins/mailpoet/lib/Automation/Engine/Control/SubjectTransformerHandler.php
<?php declare(strict_types = 1);

namespace MailPoet\Automation\Engine\Control;

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


use MailPoet\Automation\Engine\Data\Automation;
use MailPoet\Automation\Engine\Data\Step as StepData;
use MailPoet\Automation\Engine\Data\Subject;
use MailPoet\Automation\Engine\Integration\Trigger;
use MailPoet\Automation\Engine\Registry;

class SubjectTransformerHandler {

  /* @var Registry */
  private $registry;

  public function __construct(
    Registry $registry
  ) {
    $this->registry = $registry;
  }

  public function getSubjectKeysForAutomation(Automation $automation): array {
    $triggerData = array_values(array_filter(
      $automation->getSteps(),
      function (StepData $step): bool {
        return $step->getType() === StepData::TYPE_TRIGGER;
      }
    ));

    $triggers = array_filter(array_map(
      function (StepData $step): ?Trigger {
        return $this->registry->getTrigger($step->getKey());
      },
      $triggerData
    ));
    $all = [];
    foreach ($triggers as $trigger) {
      $all[] = $this->getSubjectKeysForTrigger($trigger);
    }
    $all = count($all) > 1 ? array_intersect(...$all) : $all[0] ?? [];
    return array_values(array_unique($all));
  }

  public function getSubjectKeysForTrigger(Trigger $trigger): array {
    $transformerMap = $this->getTransformerMap();
    $all = $trigger->getSubjectKeys();
    $queue = $all;
    while ($key = array_shift($queue)) {
      foreach ($transformerMap[$key] ?? [] as $transformer) {
        $newKey = $transformer->returns();
        if (!in_array($newKey, $all, true)) {
          $all[] = $newKey;
          $queue[] = $newKey;
        }
      }
    }
    sort($all);
    return $all;
  }

  /**
   * @param Subject[] $subjects
   * @return Subject[]
   */
  public function getAllSubjects(array $subjects): array {
    $transformerMap = $this->getTransformerMap();
    $all = [];
    foreach ($subjects as $subject) {
      $all[$subject->getKey()] = $subject;
    }

    $queue = array_keys($all);
    while ($key = array_shift($queue)) {
      foreach ($transformerMap[$key] ?? [] as $transformer) {
          $newKey = $transformer->returns();
        if (!isset($all[$newKey])) {
          $all[$newKey] = $transformer->transform($all[$key]);
          $queue[] = $newKey;
        }
      }
    }
    return array_values($all);
  }

  private function getTransformerMap(): array {
    $transformerMap = [];
    foreach ($this->registry->getSubjectTransformers() as $transformer) {
      $transformerMap[$transformer->accepts()] = array_merge($transformerMap[$transformer->accepts()] ?? [], [$transformer]);
    }
    return $transformerMap;
  }
}

Youez - 2016 - github.com/yon3zu
LinuXploit