在magento管理中>产品页面,我点击WYSIWYG按钮打开tiny_mce编辑器,但没有任何反应。我使用Firebug检查了页面控制台,我收到以下错误:
未定义catalogWysiwygEditor
并且错误适用于这部分代码:
<button id="id_24edece0c646ca9ab683ec22d0479550" title="WYSIWYG Editor" type="button" class="scalable btn-wysiwyg" onclick="catalogWysiwygEditor.open('http://website.com/index.php/admin/catalog_product/wysiwyg/key/0126e7041c67954f9612a311681b7915/', 'description')" style=""><span><span><span>WYSIWYG Editor</span></span></span></button>
有没有解决这个问题?
------- ----- UPDATE
我发现发生这种情况的原因是 app / design / adminihtml / default / default / template / catalog / wysiwyg / js.phtml 文件未加载
我无法找到原因。它应该基于app / design / adminihtml / default / default / layout / catalog.xml文件加载:
<adminhtml_catalog_product_edit>
...
<reference name="js">
<block type="adminhtml/catalog_product_edit_js" template="catalog/product/js.phtml" name="catalog_product_js"></block>
<block type="core/template" name="catalog.wysiwyg.js" template="catalog/wysiwyg/js.phtml"/>
</reference>
</adminhtml_catalog_product_edit>
有什么想法吗?
答案 0 :(得分:1)
我找到的唯一解决方案是直接在 app / design / adminihtml / default / default / template / catalog / product / edit.phtml 文件中添加缺少的javascript代码。它不是一个优雅的解决方案,但它是唯一有效的解决方案:
<script type="text/javascript">
//<![CDATA[
Window.keepMultiModalWindow = true;
var catalogWysiwygEditor = {
overlayShowEffectOptions : null,
overlayHideEffectOptions : null,
open : function(editorUrl, elementId) {
if (editorUrl && elementId) {
new Ajax.Request(editorUrl, {
parameters: {
element_id: elementId+'_editor',
store_id: '<?php echo $this->getStoreId() ?>'
},
onSuccess: function(transport) {
try {
this.openDialogWindow(transport.responseText, elementId);
} catch(e) {
alert(e.message);
}
}.bind(this)
});
}
},
openDialogWindow : function(content, elementId) {
this.overlayShowEffectOptions = Windows.overlayShowEffectOptions;
this.overlayHideEffectOptions = Windows.overlayHideEffectOptions;
Windows.overlayShowEffectOptions = {duration:0};
Windows.overlayHideEffectOptions = {duration:0};
Dialog.confirm(content, {
draggable:true,
resizable:true,
closable:true,
className:"magento",
windowClassName:"popup-window",
title:'WYSIWYG Editor',
width:950,
height:555,
zIndex:1000,
recenterAuto:false,
hideEffect:Element.hide,
showEffect:Element.show,
id:"catalog-wysiwyg-editor",
buttonClass:"form-button",
okLabel:"Submit",
ok: this.okDialogWindow.bind(this),
cancel: this.closeDialogWindow.bind(this),
onClose: this.closeDialogWindow.bind(this),
firedElementId: elementId
});
content.evalScripts.bind(content).defer();
$(elementId+'_editor').value = $(elementId).value;
},
okDialogWindow : function(dialogWindow) {
if (dialogWindow.options.firedElementId) {
wysiwygObj = eval('wysiwyg'+dialogWindow.options.firedElementId+'_editor');
wysiwygObj.turnOff();
if (tinyMCE.get(wysiwygObj.id)) {
$(dialogWindow.options.firedElementId).value = tinyMCE.get(wysiwygObj.id).getContent();
} else {
if ($(dialogWindow.options.firedElementId+'_editor')) {
$(dialogWindow.options.firedElementId).value = $(dialogWindow.options.firedElementId+'_editor').value;
}
}
}
this.closeDialogWindow(dialogWindow);
},
closeDialogWindow : function(dialogWindow) {
// remove form validation event after closing editor to prevent errors during save main form
if (typeof varienGlobalEvents != undefined && editorFormValidationHandler) {
varienGlobalEvents.removeEventHandler('formSubmit', editorFormValidationHandler);
}
//IE fix - blocked form fields after closing
$(dialogWindow.options.firedElementId).focus();
//destroy the instance of editor
wysiwygObj = eval('wysiwyg'+dialogWindow.options.firedElementId+'_editor');
if (tinyMCE.get(wysiwygObj.id)) {
tinyMCE.execCommand('mceRemoveControl', true, wysiwygObj.id);
}
dialogWindow.close();
Windows.overlayShowEffectOptions = this.overlayShowEffectOptions;
Windows.overlayHideEffectOptions = this.overlayHideEffectOptions;
}
};
//]]>
</script>
答案 1 :(得分:1)
解决方案是转到:/js/mage/adminhtml/wysiwyg/tiny_mce/plugins/magentowidget
并将此文件复制到桌面:editor_plugin.js
。
然后转到:/js/mage/adminhtml/wysiwyg/tiny_mce/plugins/
并创建一个名为magentotypo
的目录。
最后,将editor_plugin.js
粘贴到目录magentotypo
。
完成!
答案 2 :(得分:0)
我在1.7.0上遇到了同样的问题
我转到Magento“旧版本”存储库并下载整个CMS
然后我更换了整个现有的js文件夹,因为全新的安装...它可以工作:)