* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ declare(strict_types=1); namespace PrestaShop\Module\ProductComment\Form; use PrestaShop\Module\ProductComment\Repository\ProductCommentCriterionRepository; use PrestaShop\PrestaShop\Core\Form\IdentifiableObject\DataProvider\FormDataProviderInterface; use PrestaShopBundle\Entity\Repository\LangRepository; class ProductCommentCriterionFormDataProvider implements FormDataProviderInterface { /** * @var ProductCommentCriterionRepository */ private $pccriterionRepository; /** * @var LangRepository */ private $langRepository; /** * @param ProductCommentCriterionRepository $pccriterionRepository * @param LangRepository $langRepository */ public function __construct( ProductCommentCriterionRepository $pccriterionRepository, LangRepository $langRepository ) { $this->pccriterionRepository = $pccriterionRepository; $this->langRepository = $langRepository; } /** * {@inheritdoc} */ public function getData($criterionId) { $criterion = $this->pccriterionRepository->find($criterionId); $criterionData = [ 'type' => $criterion->getType(), 'active' => $criterion->isActive(), ]; foreach ($criterion->getCriterionLangs() as $criterionLang) { $criterionData['name'][$criterionLang->getLang()->getId()] = $criterionLang->getName(); } return $criterionData; } /** * {@inheritdoc} */ public function getDefaultData() { $default_name = []; $langEntities = $this->langRepository->findBy(['active' => 1]); foreach ($langEntities as $langEntity) { $default_name[$langEntity->getId()] = $langEntity->getIsoCode(); } return [ 'type' => '', 'active' => false, 'name' => $default_name, ]; } }