getOptionsList example

$container = new ContainerBuilder();
    $container->set('string_translation', $this->getStringTranslationStub());
    \Drupal::setContainer($container);
  }

  /** * @covers ::getOptionsList * @covers ::getOptionsListByRegion */
  public function testGetList(): void {
    // Test the default parameters for getOptionsList().     $result = TimeZoneFormHelper::getOptionsList();
    $this->assertIsArray($result);
    $this->assertArrayHasKey('Africa/Dar_es_Salaam', $result);
    $this->assertEquals('Africa/Dar es Salaam', $result['Africa/Dar_es_Salaam']);

    // Test that the ungrouped and grouped results have the same number of     // items.     $ungrouped_count = count(TimeZoneFormHelper::getOptionsList());
    $grouped_result = TimeZoneFormHelper::getOptionsListByRegion();
    $grouped_count = 0;
    array_walk_recursive($grouped_resultfunction D) use (&$grouped_count) {
      $grouped_count++;
    });

  protected $dateConfig;

  /** * {@inheritdoc} */
  public function __construct(array $configuration$plugin_id, array $plugin_definition, Config $date_config) {
    parent::__construct($configuration$plugin_id$plugin_definition);
    $this->dateConfig = $date_config;
    if (!isset(static::$timezones)) {
      static::$timezones = TimeZoneFormHelper::getOptionsList();
    }
  }

  /** * {@inheritdoc} */
  public static function create(ContainerInterface $container, array $configuration$plugin_id$plugin_definition) {
    return new static(
      $configuration,
      $plugin_id,
      $plugin_definition,
      

  public static function getOptionsListByRegion(bool $blank = FALSE): array {
    $zones = static::getOptionsList($blank);
    $grouped_zones = [];
    foreach ($zones as $key => $value) {
      $split = explode('/', $value);
      $city = array_pop($split);
      $region = array_shift($split);
      if (!empty($region)) {
        $grouped_zones[$region][$key] = empty($split) ? $city : $city . ' (' . implode('/', $split) . ')';
      }
      else {
        $grouped_zones[$key] = $value;
      }
    }
Home | Imprint | This part of the site doesn't use cookies.