moduleDataSetup = $moduleDataSetup; $this->eavSetup = $eavSetupFactory->create(['setup' => $moduleDataSetup]); $this->queryModifierFactory = $queryModifierFactory; $this->aggregatedFieldDataConverter = $aggregatedFieldDataConverter; } /** * {@inheritdoc} */ public function apply() { $categoryTypeId = $this->eavSetup->getEntityTypeId(\Magento\Catalog\Model\Category::ENTITY); $categoryLayoutUpdateAttribute = $this->eavSetup->getAttribute($categoryTypeId, 'custom_layout_update'); $categoryLayoutUpdateAttributeModifier = $this->queryModifierFactory->create( 'in', [ 'values' => [ 'attribute_id' => $categoryLayoutUpdateAttribute['attribute_id'] ] ] ); $layoutUpdateValueModifier = $this->queryModifierFactory->create( 'like', [ 'values' => [ 'value' => '%conditions_encoded%' ] ] ); $categoryLayoutUpdateModifier = $this->queryModifierFactory->create( 'composite', [ 'queryModifiers' => [ $categoryLayoutUpdateAttributeModifier, $layoutUpdateValueModifier ] ] ); $productTypeId = $this->eavSetup->getEntityTypeId(\Magento\Catalog\Model\Product::ENTITY); $productLayoutUpdateAttribute = $this->eavSetup->getAttribute($productTypeId, 'custom_layout_update'); $productLayoutUpdateAttributeModifier = $this->queryModifierFactory->create( 'in', [ 'values' => [ 'attribute_id' => $productLayoutUpdateAttribute['attribute_id'] ] ] ); $productLayoutUpdateModifier = $this->queryModifierFactory->create( 'composite', [ 'queryModifiers' => [ $productLayoutUpdateAttributeModifier, $layoutUpdateValueModifier ] ] ); $this->aggregatedFieldDataConverter->convert( [ new FieldToConvert( LayoutUpdateConverter::class, $this->eavSetup->getSetup()->getTable('catalog_category_entity_text'), 'value_id', 'value', $categoryLayoutUpdateModifier ), new FieldToConvert( LayoutUpdateConverter::class, $this->eavSetup->getSetup()->getTable('catalog_product_entity_text'), 'value_id', 'value', $productLayoutUpdateModifier ), ], $this->eavSetup->getSetup()->getConnection() ); } /** * {@inheritdoc} */ public static function getDependencies() { return [ DisallowUsingHtmlForProductName::class, ]; } /** * {@inheritdoc} */ public static function getVersion() { return '2.2.1'; } /** * {@inheritdoc} */ public function getAliases() { return []; } }