* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Core\Form\ChoiceProvider; use PrestaShop\PrestaShop\Adapter\Language\LanguageDataProvider; use PrestaShop\PrestaShop\Core\Form\ConfigurableFormChoiceProviderInterface; /** * Class LanguageByIdChoiceProvider provides active language choices with ID values. */ final class LanguageByIdChoiceProvider implements ConfigurableFormChoiceProviderInterface { /** * @var LanguageDataProvider */ private $languageDataProvider; /** * LanguageByIdChoiceProvider constructor. * * @param LanguageDataProvider $languageDataProvider */ public function __construct(LanguageDataProvider $languageDataProvider) { $this->languageDataProvider = $languageDataProvider; } /** * Get active language choices for form. * * @return array */ public function getChoices(array $options = []) { $choices = []; $shopId = isset($options['shop_id']) && (int) $options['shop_id'] > 0 ? $options['shop_id'] : false; foreach ($this->languageDataProvider->getLanguages(true, $shopId) as $language) { $choices[$language['name']] = $language['id_lang']; } return $choices; } }