तो, जाना जाता समाधान नहीं रह 1.9+ पर काम करने लगते हैं, तो मैं एक विकल्प है, जो WYSIWYG कहते हैं उत्पादन किया, लेकिन एक वैकल्पिक संपादक का उपयोग कर।
: कदम 1: अंतिम परिणाम के रूप में देख रहे हैं के साथ
https://alex-d.github.io/Trumbowyg/
:
मैं इस संपादक का उपयोग किया डाउनलोड संपादक फ़ाइलें और गति adminhtml त्वचा क्षेत्र में:
मेरे उदाहरण में मैंने उन्हें skin/adminhtml/default/js/wysiwyg
में रखा था 210
कदम 2: अपने मॉड्यूल में आप एक व्यवस्थापक लेआउट अद्यतन परिभाषित करने की जरूरत है, और अपने adminhtml लेआउट फ़ाइल में, निर्देशों पुस्तकालय फ़ाइलें (और jQuery)
लोड करने के लिए मैं के बाद से जोड़ने
<adminhtml_cms_page_edit>
<reference name="head">
<action method="addJs">
<script>lib/jquery/jquery-1.12.0.js</script>
</action>
<action method="addJs">
<script>lib/jquery/noconflict.js</script>
</action>
<action method="addItem"><type>skin_js</type><name>js/wysiwyg/trumbowyg.min.js</name></action>
<action method="addItem"><type>skin_css</type><name>js/wysiwyg/ui/trumbowyg.min.css</name></action>
</reference>
</adminhtml_cms_page_edit>
कदम 3:: यह केवल n सीएमएस पृष्ठ संपादन प्रकट करने के लिए चाहते थे, मैं उचित संभाल के माध्यम से जोड़ा
: तत्व प्रस्तुत करना एक नया विजेट कक्षा बनाएंमेरी उदाहरण में, मैं रखा इस ब्लाकों
मूल रूप से के तहत एक मॉड्यूल है, यह विजेट एक्सएमएल परिभाषित तत्व लेता है, और यह एक textarea
तत्व के लिए खत्म हो transposes, और फिर जरूरत जावास्क्रिप्ट (jQuery) wysiwyg आरंभ से जुड़ संपादक।
आप thw विकल्पों संपादक को पारित किया जा रहा, $ विकल्पों में परिभाषित देखेंगे
<?php
class ProxiBlue_Landingpage_Block_Widgets_Wysiwyg extends Mage_Adminhtml_Block_Widget_Form_Renderer_Fieldset_Element
{
public function render(Varien_Data_Form_Element_Abstract $element)
{
$textarea = new Varien_Data_Form_Element_Textarea();
$textarea->setForm($element->getForm())
->setId($element->getHtmlId())
->setName($element->getName())
->setLabel($element->getLabel())
->setClass('widget-option input-area input-text');
if ($element->getRequired()) {
$textarea->addClass('required-entry');
}
if ($element->getValue()) {
$textarea->setValue($element->getValue());
}
$options = "btns: ['viewHTML', 'strong', 'em', 'del', 'undo', 'redo', 'formatting', 'superscript', 'subscript', 'justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull', 'unorderedList', 'orderedList', 'horizontalRule', 'fullscreen'],
semantic: true,
removeformatPasted: true,
autogrow: false";
$textarea->setData('after_element_html',
"<script>jQuery(document).ready(
function() {
jQuery(" . $element->getHtmlId() .").trumbowyg({ " . $options . " })
.on('tbwblur', function(){
var html = jQuery(this).trumbowyg('html');
html = html.replace(/\"/g, '"');
jQuery(this).trumbowyg('html', html);
});
});</script>");
$html = parent::render($textarea);
return $html;
}
}
वहाँ में आप भी इस स्निपेट नोट कर सकते हैं:
.on('tbwblur', function(){
var html = jQuery(this).trumbowyg('html');
html = html.replace(/\"/g, '"');
jQuery(this).trumbowyg('html', html);
});
उद्देश्य यहां के लिए है किसी भी डबल बदल "
की उचित एचटीएमएल इकाई के उद्धरण (") को यह विजेट पैराम में टेक्स्ट डेटा के भंडारण को रोकने के लिए है, जो डबल कोट्स के साथ संलग्न है।
चरण 4:
<text_blurb translate="label">
<sort_order>50</sort_order>
<label>Textual Content</label>
<visible>1</visible>
<required>1</required>
<type>landingpage/widgets_wysiwyg</type>
</text_blurb>
हो गया: विजेट तत्व को परिभाषित करें।
आशा है कि यह किसी के लिए उपयोग की जाए।
यहां एक समस्या - '$ Editor-> getConfig() -> setPlugins (array()); '' MyCompany_MyModule_Block_Widget_Wysiwyg'' या आपको एक चेतावनी मिलेगी: 'foreach() में/पथ के लिए अमान्य तर्क प्रदान किया गया/to/root/lib/Varien/data/form/Element/editor.php' –
मैंने आपके कोड से ऊपर की कोशिश की है मुझे "अज्ञात ऑब्जेक्ट में त्रुटि" मिल रही है। fireEvent(): ईवेंट का नाम: फ़ॉर्म सबमिट करें त्रुटि संदेश: सेट नहीं कर सकता इस त्रुटि में संपत्ति 'मान' शून्य '। मैं Magento संस्करण 1.9.0.1 का उपयोग कर रहा हूँ। (संपादक सही ढंग से दिखा रहा है लेकिन समय बचाने के बाद मुझे यह त्रुटि मिल रही है)। कृपया मेरी मदद करें – VijayS91