You are here

private function SmartDateRule::makeRuleFromParts 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::makeRuleFromParts()
  2. 3.x modules/smart_date_recur/src/Entity/SmartDateRule.php \Drupal\smart_date_recur\Entity\SmartDateRule::makeRuleFromParts()
  3. 3.1.x modules/smart_date_recur/src/Entity/SmartDateRule.php \Drupal\smart_date_recur\Entity\SmartDateRule::makeRuleFromParts()
  4. 3.2.x modules/smart_date_recur/src/Entity/SmartDateRule.php \Drupal\smart_date_recur\Entity\SmartDateRule::makeRuleFromParts()
  5. 3.3.x modules/smart_date_recur/src/Entity/SmartDateRule.php \Drupal\smart_date_recur\Entity\SmartDateRule::makeRuleFromParts()
  6. 3.4.x modules/smart_date_recur/src/Entity/SmartDateRule.php \Drupal\smart_date_recur\Entity\SmartDateRule::makeRuleFromParts()
1 call to SmartDateRule::makeRuleFromParts()
SmartDateRule::getAssembledRule in modules/smart_date_recur/src/Entity/SmartDateRule.php
Get the RRule object.

File

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

Class

SmartDateRule
Defines the Smart date rule entity.

Namespace

Drupal\smart_date_recur\Entity

Code

private function makeRuleFromParts() {
  $repeat = $this
    ->get('freq')
    ->getString();
  if (empty($repeat)) {
    return FALSE;
  }
  $rule = new FormattableMarkup('RRULE:FREQ=:freq', [
    ':freq' => $repeat,
  ]);

  // Processing for extra parameters e.g. INCREMENT, BYMONTHDAY, etc.
  $params = $this
    ->get('parameters')
    ->getString();
  if (!empty($params)) {
    $rule .= ';' . $params;
  }

  // If a limit has been set, add it to the rule definition.
  $end = $this
    ->get('limit')
    ->getString();
  if (!empty($end)) {
    $rule .= ';' . $end;
    if (strpos($end, 'UNTIL') === 0) {

      // Add midnight to specify the end of the last day.
      $rule .= 'T235959';
    }
  }
  $this
    ->setRule($rule);
  return $rule;
}