You are here

protected static function WebformDateHelper::initIntervalOptions in Webform 8.5

Same name and namespace in other branches
  1. 6.x src/Utility/WebformDateHelper.php \Drupal\webform\Utility\WebformDateHelper::initIntervalOptions()

Initialize interval options used by submission limits.

2 calls to WebformDateHelper::initIntervalOptions()
WebformDateHelper::getIntervalOptions in src/Utility/WebformDateHelper.php
Get interval options used by submission limits.
WebformDateHelper::getIntervalOptionsFlattened in src/Utility/WebformDateHelper.php
Get interval options used by submission limits.

File

src/Utility/WebformDateHelper.php, line 158

Class

WebformDateHelper
Helper class webform date helper methods.

Namespace

Drupal\webform\Utility

Code

protected static function initIntervalOptions() {
  if (!isset(self::$intervalOptions)) {
    $options = [
      '' => t('ever'),
    ];

    // Seconds.
    $seconds_optgroup = (string) t('Second');
    $increment = 0;
    while ($increment < 55) {
      $increment += 5;
      $options[$seconds_optgroup][$increment] = t('every @increment seconds', [
        '@increment' => $increment,
      ]);
    }

    // Minute.
    $minute = 60;
    $minute_optgroup = (string) t('Minute');
    $options[$minute_optgroup][$minute] = t('every minute');
    $increment = 5;
    while ($increment < 55) {
      $increment += 5;
      $options[$minute_optgroup][$increment * $minute] = t('every @increment minutes', [
        '@increment' => $increment,
      ]);
    }

    // Hour.
    $hour = $minute * 60;
    $hour_optgroup = (string) t('Hour');
    $options[$hour_optgroup][$hour] = t('every hour');
    $increment = 1;
    while ($increment < 23) {
      $increment += 1;
      $options[$hour_optgroup][$increment * $hour] = t('every @increment hours', [
        '@increment' => $increment,
      ]);
    }

    // Day.
    $day = $hour * 24;
    $day_optgroup = (string) t('Day');
    $options[$day_optgroup][$day] = t('every day');
    $increment = 1;
    while ($increment < 6) {
      $increment += 1;
      $options[$day_optgroup][$increment * $day] = t('every @increment days', [
        '@increment' => $increment,
      ]);
    }

    // Week.
    $week = $day * 7;
    $week_optgroup = (string) t('Week');
    $options[$week_optgroup][$week] = t('every week');
    $increment = 1;
    while ($increment < 51) {
      $increment += 1;
      $options[$week_optgroup][$increment * $week] = t('every @increment weeks', [
        '@increment' => $increment,
      ]);
    }

    // Year.
    $year = $day * 365;
    $year_optgroup = (string) t('Year');
    $options[$year_optgroup][$year] = t('every year');
    $increment = 1;
    while ($increment < 10) {
      $increment += 1;
      $options[$year_optgroup][$increment * $year] = t('every @increment years', [
        '@increment' => $increment,
      ]);
    }
    self::$intervalOptions = $options;
    self::$intervalOptionsFlattened = OptGroup::flattenOptions($options);
  }
}