Widget.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\Tinymce3\Model\Plugin;
  8. use Magento\Tinymce3\Model\Config\Source\Wysiwyg\Editor;
  9. /**
  10. * Plugin to override widget placeholder images in case if tinymce3 adapter is used
  11. */
  12. class Widget
  13. {
  14. /**
  15. * @var \Magento\Ui\Block\Wysiwyg\ActiveEditor
  16. */
  17. private $activeEditor;
  18. /**
  19. * @var array
  20. */
  21. private $placeholderImages;
  22. /**
  23. * @var \Magento\Framework\View\Asset\Repository
  24. */
  25. private $assetRepo;
  26. /**
  27. * @param \Magento\Ui\Block\Wysiwyg\ActiveEditor $activeEditor
  28. * @param \Magento\Framework\View\Asset\Repository $assetRepo
  29. * @param \Magento\Tinymce3\Model\Config\Widget\PlaceholderImagesPool $placeholderImages
  30. */
  31. public function __construct(
  32. \Magento\Ui\Block\Wysiwyg\ActiveEditor $activeEditor,
  33. \Magento\Framework\View\Asset\Repository $assetRepo,
  34. \Magento\Tinymce3\Model\Config\Widget\PlaceholderImagesPool $placeholderImages
  35. ) {
  36. $this->activeEditor = $activeEditor;
  37. $this->placeholderImages = $placeholderImages;
  38. $this->assetRepo = $assetRepo;
  39. }
  40. /**
  41. * @param \Magento\Widget\Model\Widget $subject
  42. * @param \Closure $proceed
  43. * @param string $type
  44. * @return string
  45. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  46. */
  47. public function aroundGetPlaceholderImageUrl(
  48. \Magento\Widget\Model\Widget $subject,
  49. \Closure $proceed,
  50. string $type
  51. ) : string {
  52. if ($this->activeEditor->getWysiwygAdapterPath() !== Editor::WYSIWYG_EDITOR_CONFIG_VALUE) {
  53. return $proceed($type);
  54. }
  55. $placeholders = $this->placeholderImages->getWidgetPlaceholders();
  56. $defaultImage = $this->assetRepo->getUrl('Magento_Tinymce3::images/widget/placeholder.png');
  57. if (isset($placeholders[$type])) {
  58. return $this->assetRepo->getUrl($placeholders[$type]);
  59. }
  60. return $defaultImage;
  61. }
  62. }