File Manager Lite
Dir:
/home/u540325668/domains/dumbafarm.in/public_html/src/Adapter/Form/ChoiceProvider
Upload
[..]
CarrierForOrderChoiceProvider.php (2.47 KB)
Edit
Rename
Del
CategoryTreeChoiceProvider.php (2.98 KB)
Edit
Rename
Del
CombinationIdChoiceProvider.php (4.04 KB)
Edit
Rename
Del
CountryStateByIdChoiceProvider.php (3.13 KB)
Edit
Rename
Del
CurrencySymbolByIdChoiceProvider.php (1.77 KB)
Edit
Rename
Del
FeatureValuesChoiceProvider.php (2.99 KB)
Edit
Rename
Del
FeaturesChoiceProvider.php (2.51 KB)
Edit
Rename
Del
GenderByIdChoiceProvider.php (1.68 KB)
Edit
Rename
Del
GroupByIdChoiceProvider.php (2.38 KB)
Edit
Rename
Del
InstalledPaymentModulesChoiceProvider.php (1.89 KB)
Edit
Rename
Del
ManufacturerNameByIdChoiceProvider.php (1.83 KB)
Edit
Rename
Del
OrderCountriesChoiceProvider.php (2.27 KB)
Edit
Rename
Del
OrderInvoiceByIdChoiceProvider.php (2.41 KB)
Edit
Rename
Del
OrderReturnStateChoiceProvider.php (2.16 KB)
Edit
Rename
Del
ProductDefaultCategoryChoiceProvider.php (4.9 KB)
Edit
Rename
Del
ProfileByIdChoiceProvider.php (1.91 KB)
Edit
Rename
Del
ResourcesChoiceProvider.php (1.67 KB)
Edit
Rename
Del
RiskByIdChoiceProvider.php (1.61 KB)
Edit
Rename
Del
ShopNameByIdChoiceProvider.php (1.57 KB)
Edit
Rename
Del
ShopTreeChoiceProvider.php (2.36 KB)
Edit
Rename
Del
SupplierNameByIdChoiceProvider.php (2.4 KB)
Edit
Rename
Del
TaxRuleGroupChoiceProvider.php (3.73 KB)
Edit
Rename
Del
ZoneByIdChoiceProvider.php (2.19 KB)
Edit
Rename
Del
Edit: CombinationIdChoiceProvider.php
<?php /** * Copyright since 2007 PrestaShop SA and Contributors * PrestaShop is an International Registered Trademark & Property of PrestaShop SA * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.md. * It is also available through the world-wide-web at this URL: * https://opensource.org/licenses/OSL-3.0 * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@prestashop.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to https://devdocs.prestashop.com/ for more information. * * @author PrestaShop SA and Contributors <contact@prestashop.com> * @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ declare(strict_types=1); namespace PrestaShop\PrestaShop\Adapter\Form\ChoiceProvider; use PrestaShop\PrestaShop\Adapter\Attribute\Repository\AttributeRepository; use PrestaShop\PrestaShop\Adapter\Product\Combination\Repository\CombinationRepository; use PrestaShop\PrestaShop\Core\Domain\Language\ValueObject\LanguageId; use PrestaShop\PrestaShop\Core\Domain\Product\ValueObject\ProductId; use PrestaShop\PrestaShop\Core\Domain\Shop\ValueObject\ShopConstraint; use PrestaShop\PrestaShop\Core\Form\ConfigurableFormChoiceProviderInterface; use PrestaShop\PrestaShop\Core\Product\Combination\NameBuilder\CombinationNameBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; class CombinationIdChoiceProvider implements ConfigurableFormChoiceProviderInterface { /** * @var CombinationRepository */ private $combinationRepository; /** * @var AttributeRepository */ private $attributeRepository; /** * @var CombinationNameBuilderInterface */ private $combinationNameBuilder; /** * @var LanguageId */ private $languageId; /** * @param CombinationRepository $combinationRepository * @param AttributeRepository $attributeRepository * @param CombinationNameBuilderInterface $combinationNameBuilder * @param int $languageId */ public function __construct( CombinationRepository $combinationRepository, AttributeRepository $attributeRepository, CombinationNameBuilderInterface $combinationNameBuilder, int $languageId ) { $this->combinationRepository = $combinationRepository; $this->attributeRepository = $attributeRepository; $this->languageId = new LanguageId($languageId); $this->combinationNameBuilder = $combinationNameBuilder; } /** * @param array<string, int> $options * * @return array<string, int> */ public function getChoices(array $options): array { $options = $this->resolveOptions($options); $combinationIds = $this->combinationRepository->getCombinationIds( new ProductId($options['product_id']), //@todo: shopConstraint should probably be passed to options instead of always loading combinations from all shops ShopConstraint::allShops() ); $attributesInfo = $this->attributeRepository->getAttributesInfoByCombinationIds($combinationIds, $this->languageId); $choices = []; foreach ($attributesInfo as $combinationIdValue => $combinationAttributesInfo) { $choices[$this->combinationNameBuilder->buildName($combinationAttributesInfo)] = $combinationIdValue; } return $choices; } /** * @param array<string, int> $options */ private function resolveOptions(array $options): array { $resolver = new OptionsResolver(); $resolver->setRequired(['product_id']); $resolver->setAllowedTypes('product_id', 'int'); return $resolver->resolve($options); } }
Simpan