57 \
Magento\Backend\Model\UrlInterface $backendUrl,
62 \
Magento\Framework\Registry $registry
64 $this->_backendUrl = $backendUrl;
67 $this->_widgetFactory = $widgetFactory;
94 'name' =>
'magentowidget',
105 $configPlugins = (array)
$config->getData(
'plugins');
107 $widgetConfig[
'plugins'] = array_merge($configPlugins, $widgetWysiwyg);
108 return $widgetConfig;
118 return $this->_widgetFactory->create()->getPlaceholderImageUrls();
127 return $this->_assetRepo->getUrl(
'Magento_Widget::error.png');
136 return $this->_assetRepo->getUrl(
'mage/adminhtml/wysiwyg/tiny_mce/plugins/magentowidget/editor_plugin.js');
149 $skipped = is_array(
$config->getData(
'skip_widgets')) ?
$config->getData(
'skip_widgets') : [];
150 if (
$config->hasData(
'widget_filters')) {
151 $all = $this->_widgetFactory->create()->getWidgets();
152 $filtered = $this->_widgetFactory->create()->getWidgets(
$config->getData(
'widget_filters'));
153 foreach ($all as
$code => $widget) {
154 if (!isset($filtered[
$code])) {
155 $skipped[] = $widget[
'@'][
'type'];
160 if (count($skipped) > 0) {
163 return $this->_backendUrl->getUrl(
'adminhtml/widget/index',
$params);
174 $widgets = is_array($widgets) ? $widgets : [$widgets];
175 $param = implode(
',', $widgets);
176 return $this->urlEncoder->encode($param);
187 $param = $this->urlDecoder->decode($queryParam);
188 return preg_split(
'/\s*\,\s*/', $param, 0, PREG_SPLIT_NO_EMPTY);
197 if (!
$config->hasData(
'widget_types')) {
199 $allWidgets = $this->_widgetFactory->create()->getWidgetsArray();
201 foreach ($allWidgets as $widget) {
202 if (is_array($skipped) && in_array($widget[
'type'], $skipped)) {
205 $result[] = $widget[
'name']->getText();
219 return $this->registry->registry(
'skip_widgets');
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]