/**
  * {@inheritdoc}
  *
  * @param $data
  *   - rule_component_id: integer: ID of a rule component entity.
  */
 public function processItem($data)
 {
     /** @var RuleSchedule $rule_schedule */
     $rule_schedule = RuleSchedule::load($data['rule_component_id']);
     $rule_schedule->incrementAttempts();
     $rule_schedule->save();
     if ($component = $rule_schedule->getComponent()) {
         $rule = $component->getRule();
         $event_meta = \Drupal::service('rng.event_manager')->getMeta($rule->getEvent());
         $event_meta->trigger($rule->getTriggerID(), ['registrations' => $event_meta->getRegistrations()]);
         $rule_schedule->delete();
     }
 }
예제 #2
0
 /**
  * {@inheritdoc}
  */
 public function submitConfigurationForm(array &$form, FormStateInterface $form_state)
 {
     parent::submitConfigurationForm($form, $form_state);
     $this->configuration['negate'] = FALSE;
     // Create new scheduler if rule_component is provided.
     if ($this->getRuleComponentId() && !$this->getRuleScheduler()) {
         $rule_scheduler = RuleSchedule::create(['component' => $this->getRuleComponentId()]);
         $rule_scheduler->save();
         $this->configuration['rng_rule_scheduler'] = $rule_scheduler->id();
     }
     // Mirror the date into the scheduler.
     if ($rule_scheduler = $this->getRuleScheduler()) {
         $rule_scheduler->setDate($this->configuration['date']);
         $rule_scheduler->save();
     }
 }