You are here

public function SmartDateRule::makeRuleInstances in Smart Date 3.3.x

Same name and namespace in other branches
  1. 8.2 modules/smart_date_recur/src/Entity/SmartDateRule.php \Drupal\smart_date_recur\Entity\SmartDateRule::makeRuleInstances()
  2. 3.x modules/smart_date_recur/src/Entity/SmartDateRule.php \Drupal\smart_date_recur\Entity\SmartDateRule::makeRuleInstances()
  3. 3.0.x modules/smart_date_recur/src/Entity/SmartDateRule.php \Drupal\smart_date_recur\Entity\SmartDateRule::makeRuleInstances()
  4. 3.1.x modules/smart_date_recur/src/Entity/SmartDateRule.php \Drupal\smart_date_recur\Entity\SmartDateRule::makeRuleInstances()
  5. 3.2.x modules/smart_date_recur/src/Entity/SmartDateRule.php \Drupal\smart_date_recur\Entity\SmartDateRule::makeRuleInstances()
  6. 3.4.x modules/smart_date_recur/src/Entity/SmartDateRule.php \Drupal\smart_date_recur\Entity\SmartDateRule::makeRuleInstances()

Generate default instances based on rule structure.

1 call to SmartDateRule::makeRuleInstances()
SmartDateRule::getNewInstances in modules/smart_date_recur/src/Entity/SmartDateRule.php
Generate default instances based on rule structure.

File

modules/smart_date_recur/src/Entity/SmartDateRule.php, line 233

Class

SmartDateRule
Defines the Smart date rule entity.

Namespace

Drupal\smart_date_recur\Entity

Code

public function makeRuleInstances($before = NULL, $after = NULL) {
  $rrule = $this
    ->getAssembledRule();
  if (empty($rrule)) {

    // Required elements missing, so abort.
    return FALSE;
  }
  $constraint = NULL;
  if ($before && $after) {
    $constraint = new BetweenConstraint(new \DateTime('@' . $after), new \DateTime('@' . $before));
  }
  elseif ($before) {
    $constraint = new BeforeConstraint(new \DateTime('@' . $before));
  }
  elseif ($after) {
    $constraint = new AfterConstraint(new \DateTime('@' . $after));
  }
  $transformer = new ArrayTransformer();
  $instances = $transformer
    ->transform($rrule, $constraint);

  // TODO: Convert the generated instances into an array for later processing.
  return $instances;
}