/** * resolves media id or object. * * @param int[]|MediaEntity[] $medias ids to resolve * @param string $locale *z * * @return MediaApi */ public function resolveMediasFunction($medias, $locale) { if (count($medias) === 0) { return []; } $ids = []; $entities = []; $entitiesIndex = []; for ($i = 0; $i < count($medias); ++$i) { $media = $medias[$i]; if (is_object($media)) { $entities[$i] = $this->resolveMediaObject($media, $locale); } else { $ids[] = $media; $entitiesIndex[$media] = $i; } } if (count($ids) > 0) { foreach ($this->mediaManager->getByIds($ids, $locale) as $media) { $entities[$entitiesIndex[$media->getId()]] = $media; } } ksort($entities); return array_values($entities); }
/** * @param string $locale * * @return Media[] */ private function loadData($locale) { if (!empty($this->ids)) { return $this->mediaManager->getByIds($this->ids, $locale); } else { return []; } }