Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ConvertWidgetConditionsToJson.php
Go to the documentation of this file.
1 <?php
8 
21 
27 {
31  private $moduleDataSetup;
32 
36  private $queryModifierFactory;
37 
41  private $metadataPool;
42 
46  private $aggregatedFieldDataConverter;
47 
55  public function __construct(
56  ModuleDataSetupInterface $moduleDataSetup,
57  QueryModifierFactory $queryModifierFactory,
58  MetadataPool $metadataPool,
59  AggregatedFieldDataConverter $aggregatedFieldDataConverter
60  ) {
61  $this->moduleDataSetup = $moduleDataSetup;
62  $this->queryModifierFactory = $queryModifierFactory;
63  $this->metadataPool = $metadataPool;
64  $this->aggregatedFieldDataConverter = $aggregatedFieldDataConverter;
65  }
66 
70  public function apply()
71  {
72  $queryModifier = $this->queryModifierFactory->create(
73  'like',
74  [
75  'values' => [
76  'content' => '%conditions_encoded%'
77  ]
78  ]
79  );
80  $layoutUpdateXmlFieldQueryModifier = $this->queryModifierFactory->create(
81  'like',
82  [
83  'values' => [
84  'layout_update_xml' => '%conditions_encoded%'
85  ]
86  ]
87  );
88  $customLayoutUpdateXmlFieldQueryModifier = $this->queryModifierFactory->create(
89  'like',
90  [
91  'values' => [
92  'custom_layout_update_xml' => '%conditions_encoded%'
93  ]
94  ]
95  );
96  $blockMetadata = $this->metadataPool->getMetadata(BlockInterface::class);
97  $pageMetadata = $this->metadataPool->getMetadata(PageInterface::class);
98  $this->aggregatedFieldDataConverter->convert(
99  [
100  new FieldToConvert(
101  ContentConverter::class,
102  $this->moduleDataSetup->getTable('cms_block'),
103  $blockMetadata->getIdentifierField(),
104  'content',
105  $queryModifier
106  ),
107  new FieldToConvert(
108  ContentConverter::class,
109  $this->moduleDataSetup->getTable('cms_page'),
110  $pageMetadata->getIdentifierField(),
111  'content',
112  $queryModifier
113  ),
114  new FieldToConvert(
115  LayoutUpdateConverter::class,
116  $this->moduleDataSetup->getTable('cms_page'),
117  $pageMetadata->getIdentifierField(),
118  'layout_update_xml',
119  $layoutUpdateXmlFieldQueryModifier
120  ),
121  new FieldToConvert(
122  LayoutUpdateConverter::class,
123  $this->moduleDataSetup->getTable('cms_page'),
124  $pageMetadata->getIdentifierField(),
125  'custom_layout_update_xml',
126  $customLayoutUpdateXmlFieldQueryModifier
127  ),
128  ],
129  $this->moduleDataSetup->getConnection()
130  );
131  }
132 
136  public static function getDependencies()
137  {
138  return [
139  UpdatePrivacyPolicyPage::class,
140  ];
141  }
142 
146  public static function getVersion()
147  {
148  return '2.0.2';
149  }
150 
154  public function getAliases()
155  {
156  return [];
157  }
158 }
__construct(ModuleDataSetupInterface $moduleDataSetup, QueryModifierFactory $queryModifierFactory, MetadataPool $metadataPool, AggregatedFieldDataConverter $aggregatedFieldDataConverter)