Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CompositeConfigProvider.php
Go to the documentation of this file.
1 <?php
8 
14 {
18  private $activeEditor;
19 
25  private $variablePluginConfigProvider;
26 
32  private $widgetPluginConfigProvider;
33 
39  private $wysiwygConfigPostProcessor;
40 
46  private $configProviderFactory;
47 
53  private $activeEditorPath;
54 
60  private $galleryConfigProvider;
61 
70  public function __construct(
71  \Magento\Ui\Block\Wysiwyg\ActiveEditor $activeEditor,
72  \Magento\Cms\Model\Wysiwyg\ConfigProviderFactory $configProviderFactory,
73  array $variablePluginConfigProvider,
74  array $widgetPluginConfigProvider,
75  array $galleryConfigProvider,
76  array $wysiwygConfigPostProcessor
77  ) {
78  $this->activeEditor = $activeEditor;
79  $this->configProviderFactory = $configProviderFactory;
80  $this->variablePluginConfigProvider = $variablePluginConfigProvider;
81  $this->widgetPluginConfigProvider = $widgetPluginConfigProvider;
82  $this->galleryConfigProvider = $galleryConfigProvider;
83  $this->wysiwygConfigPostProcessor = $wysiwygConfigPostProcessor;
84  }
85 
92  public function processVariableConfig($config)
93  {
94  return $this->updateConfig($config, $this->variablePluginConfigProvider);
95  }
96 
103  public function processWidgetConfig($config)
104  {
105  return $this->updateConfig($config, $this->widgetPluginConfigProvider);
106  }
107 
114  public function processGalleryConfig($config)
115  {
116  return $this->updateConfig($config, $this->galleryConfigProvider);
117  }
118 
125  public function processWysiwygConfig($config)
126  {
127  return $this->updateConfig($config, $this->wysiwygConfigPostProcessor);
128  }
129 
136  private function getActiveEditorPath($config)
137  {
138  if (!isset($this->activeEditorPath) || $this->activeEditorPath !== $config->getData('activeEditorPath')) {
139  $this->activeEditorPath = $config->getData('activeEditorPath')
140  ? $config->getData('activeEditorPath')
141  : $this->activeEditor->getWysiwygAdapterPath();
142  $config->setData('activeEditorPath', $this->activeEditorPath);
143  }
144  return $this->activeEditorPath;
145  }
146 
154  private function updateConfig($config, array $configProviders)
155  {
156  $adapterType = $this->getActiveEditorPath($config);
157  //Extension point to update plugin settings by adapter type
158  $providerClass = isset($configProviders[$adapterType])
159  ? $configProviders[$adapterType]
160  : $configProviders['default'];
162  $provider = $this->configProviderFactory->create($providerClass);
163  return $provider->getConfig($config);
164  }
165 }
__construct(\Magento\Ui\Block\Wysiwyg\ActiveEditor $activeEditor, \Magento\Cms\Model\Wysiwyg\ConfigProviderFactory $configProviderFactory, array $variablePluginConfigProvider, array $widgetPluginConfigProvider, array $galleryConfigProvider, array $wysiwygConfigPostProcessor)
$config
Definition: fraud_order.php:17