* @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\Module\FacetedSearch\Form\AttributeGroup; use Db; use PrestaShopDatabaseException; class FormDataProvider { /** * @var Db */ private $database; public function __construct(Db $database) { $this->database = $database; } /** * Fills form data * * @param array $params * * @return array * * @throws PrestaShopDatabaseException */ public function getData(array $params) { $defaultUrl = []; $defaultMetaTitle = []; $isIndexable = false; // if params contains id, gets data for edit form if (!empty($params['id'])) { $attributeGroupId = (int) $params['id']; // returns false if request failed. $queryIndexable = $this->database->getValue( 'SELECT `indexable` ' . 'FROM ' . _DB_PREFIX_ . 'layered_indexable_attribute_group ' . 'WHERE `id_attribute_group` = ' . $attributeGroupId ); $isIndexable = (bool) $queryIndexable; $result = $this->database->executeS( 'SELECT `url_name`, `meta_title`, `id_lang` ' . 'FROM ' . _DB_PREFIX_ . 'layered_indexable_attribute_group_lang_value ' . 'WHERE `id_attribute_group` = ' . $attributeGroupId ); if (!empty($result) && is_array($result)) { foreach ($result as $data) { $defaultUrl[$data['id_lang']] = $data['url_name']; $defaultMetaTitle[$data['id_lang']] = $data['meta_title']; } } } return [ 'url_name' => $defaultUrl, 'meta_title' => $defaultMetaTitle, 'is_indexable' => $isIndexable, ]; } }