Config.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\TestModuleWysiwygConfig\Model;
  7. class Config implements \Magento\Framework\Data\Wysiwyg\ConfigProviderInterface
  8. {
  9. /**
  10. * Configuration override for WYSIWYG height
  11. * @var string
  12. */
  13. const CONFIG_HEIGHT = 'something_else';
  14. /**
  15. * Configuration override for WYSIWYG content css
  16. * @var string
  17. */
  18. const CONFIG_CONTENT_CSS = 'something_else.css';
  19. /** @var \Magento\Cms\Model\Wysiwyg\DefaultConfigProvider */
  20. private $cmsConfigProvider;
  21. /**
  22. * @param \Magento\Cms\Model\Wysiwyg\DefaultConfigProvider $cmsConfigProvider
  23. */
  24. public function __construct(\Magento\Cms\Model\Wysiwyg\DefaultConfigProvider $cmsConfigProvider)
  25. {
  26. $this->cmsConfigProvider = $cmsConfigProvider;
  27. }
  28. /**
  29. * @inheritdoc
  30. */
  31. public function getConfig(\Magento\Framework\DataObject $config): \Magento\Framework\DataObject
  32. {
  33. //get default config
  34. $config = $this->cmsConfigProvider->getConfig($config);
  35. $config = $this->removeSpecialCharacterFromToolbar($config);
  36. $config = $this->modifyHeightAndContentCss($config);
  37. return $config;
  38. }
  39. /**
  40. * Modify height and content_css in the config
  41. *
  42. * @param \Magento\Framework\DataObject $config
  43. * @return \Magento\Framework\DataObject
  44. */
  45. private function modifyHeightAndContentCss(\Magento\Framework\DataObject $config) : \Magento\Framework\DataObject
  46. {
  47. return $config->addData(
  48. [
  49. 'height' => self::CONFIG_HEIGHT,
  50. 'content_css' => self::CONFIG_CONTENT_CSS
  51. ]
  52. );
  53. }
  54. /**
  55. * Remove the special character from the toolbar configuration
  56. *
  57. * @param \Magento\Framework\DataObject $config
  58. * @return \Magento\Framework\DataObject
  59. */
  60. private function removeSpecialCharacterFromToolbar(
  61. \Magento\Framework\DataObject $config
  62. ) : \Magento\Framework\DataObject {
  63. $tinymce4 = $config->getData('tinymce4');
  64. if (isset($tinymce4['toolbar']) && isset($tinymce4['plugins'])) {
  65. $toolbar = $tinymce4['toolbar'];
  66. $plugins = $tinymce4['plugins'];
  67. $tinymce4['toolbar'] = str_replace('charmap', '', $toolbar);
  68. $tinymce4['plugins'] = str_replace('charmap', '', $plugins);
  69. $config->setData('tinymce4', $tinymce4);
  70. }
  71. return $config;
  72. }
  73. }