/** * {@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(); } }
/** * {@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(); } }