/** * Build the amenity icons map. * * @param Model $model Definition model. * * @return array */ protected function buildAmenityIconsMap(Model $model) { $amenityIconsMap = $this->filterAmenityIconsConfig($model->amenityIcons); if ($amenityIconsMap) { $collection = IconModel::findMultipleByIds(array_unique($amenityIconsMap)); $icons = []; if ($collection) { foreach ($collection as $iconModel) { $icons[$iconModel->id] = $iconModel->alias ?: $iconModel->id; } foreach ($amenityIconsMap as $amenity => $iconId) { if (isset($icons[$iconId])) { $amenityIconsMap[$amenity] = $icons[$iconId]; } } } } return $amenityIconsMap; }
/** * Pre load icon values. * * @param array $values Icon ids. * @param DefinitionMapper $mapper The definition mapper. * * @return void */ protected function preLoadIcons(array $values, DefinitionMapper $mapper) { $collection = IconModel::findMultipleByIds($values); if (!$collection) { return; } foreach ($collection as $model) { if (!$model->active) { continue; } $icon = $mapper->handle($model); if (!$icon) { continue; } foreach ($values as $itemId => $iconId) { if ($iconId == $model->id) { $this->icons[$itemId] = $icon; } } } }