gpt4 book ai didi

magento2 - 小部件 CMS 部分中的 Magento 2 图像选择器

转载 作者:行者123 更新时间:2023-12-05 07:49:52 24 4
gpt4 key购买 nike

我创建了一个带有图像选择器(以及其他东西)的 Magento 2 小部件。当我在 CMS 中使用此小部件并将其直接添加到页面(内容 > 页面 > 编辑页面 > 插入小部件)时,图像选择器将正确显示,并允许我选择或上传图像。

但是,如果我进入 CMS 的小部件部分(内容 > 小部件 > 添加小部件),尝试使用小部件的相同图像选择器部分会出现 Uncaught ReferenceError: MediabrowserUtility is not defined .

在我所做的搜索中,似乎是由于此页面上未加载 TinyMCE,但我只能在 Magento 1 中找到修复它的代码引用。

如果是这种情况,我如何才能将正确的 javascript 文件包含在 CMS 的 Widgets 页面中?

最佳答案

我找到了这个解决方案:在 uploader 的 block 中(例如:Company/Module/Block/Adminhtml/Uploader),方法 prepareElementHtml(AbstractElement $element):

    $config = $this->_getData('config');
$sourceUrl = $this->getUrl('cms/wysiwyg_images/index', ['target_element_id' => $element->getId(), 'type' => 'file']);

$chooser = $this->getLayout()->createBlock(Button::class)
->setType('button')
->setClass('btn-chooser')
->setLabel($config['button']['open'])
->setOnClick('MediabrowserUtility.openDialog(\'' . $sourceUrl . '\', 0, 0, "MediaBrowser", {})')
->setDisabled($element->getReadonly());

$input = $this->elementFactory->create("text", ['data' => $element->getData()]);
$input->setId($element->getId());
$input->setForm($element->getForm());
$input->setClass("widget-option input-text admin__control-text");

if ($element->getRequired()) {
$input->addClass('required-entry');
}

$element->setData('after_element_html', $input->getElementHtml() . $chooser->toHtml() . "<script>require(['mage/adminhtml/browser']);</script>");

return $element;

这是一个 example .

关于magento2 - 小部件 CMS 部分中的 Magento 2 图像选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36853118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com