You are here

public function SmartDateRule::getAssembledRule in Smart Date 3.0.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::getAssembledRule()
  2. 3.x modules/smart_date_recur/src/Entity/SmartDateRule.php \Drupal\smart_date_recur\Entity\SmartDateRule::getAssembledRule()
  3. 3.1.x modules/smart_date_recur/src/Entity/SmartDateRule.php \Drupal\smart_date_recur\Entity\SmartDateRule::getAssembledRule()
  4. 3.2.x modules/smart_date_recur/src/Entity/SmartDateRule.php \Drupal\smart_date_recur\Entity\SmartDateRule::getAssembledRule()
  5. 3.3.x modules/smart_date_recur/src/Entity/SmartDateRule.php \Drupal\smart_date_recur\Entity\SmartDateRule::getAssembledRule()
  6. 3.4.x modules/smart_date_recur/src/Entity/SmartDateRule.php \Drupal\smart_date_recur\Entity\SmartDateRule::getAssembledRule()

Get the RRule object.

1 call to SmartDateRule::getAssembledRule()
SmartDateRule::makeRuleInstances 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 287

Class

SmartDateRule
Defines the Smart date rule entity.

Namespace

Drupal\smart_date_recur\Entity

Code

public function getAssembledRule() {
  $rule = $this
    ->makeRuleFromParts();
  if (empty($rule)) {

    // Required elements missing, so abort.
    return FALSE;
  }

  // TODO: proper timezone handling, allowing for field override.
  $tz_string = \Drupal::config('system.date')
    ->get('timezone')['default'];
  $timezone = new \DateTimeZone($tz_string);
  $start = new \DateTime('@' . $this
    ->get('start')
    ->getString(), $timezone);
  $start
    ->setTimezone($timezone);
  $end = new \DateTime('@' . $this
    ->get('end')
    ->getString(), $timezone);
  $end
    ->setTimezone($timezone);
  $rrule = new Rule($rule, $start, $end);
  return $rrule;
}