コード例 #1
0
 /**
  * Creates locales list.
  *
  * @param ViewData\ChoicesAwareViewData $filter
  *
  * @return array
  */
 private function buildLocalesList($filter)
 {
     $search = $this->repository->createSearch();
     $localeAgg = new TermsAggregation('locale_agg');
     $localeAgg->setField('messages.locale');
     $search->addAggregation($localeAgg);
     $result = $this->repository->execute($search, Result::RESULTS_RAW);
     $list = [];
     foreach ($result['aggregations']['agg_locale_agg']['buckets'] as $value) {
         $list[$value['key']] = true;
     }
     ksort($list);
     $activeLocales = [];
     if ($filter->getState()->isActive()) {
         foreach ($filter->getChoices() as $choice) {
             $activeLocales[$choice->getLabel()] = $choice->isActive();
         }
         $list = array_merge($list, $activeLocales);
     }
     return $list;
 }