Magento कॉन्फ़िग आइटम में WYSIWYG कार्यक्षमता कैसे जोड़ें


21

एक निश्चित कस्टम मॉड्यूल के लिए मुझे WYSIWYG संपादक के लिए एक कॉन्फ़िगर आइटम की आवश्यकता है। इस समय मैं अपने सिस्टम xml में "textarea" का उपयोग कर रहा हूँ ताकि एक सामान्य textarea प्राप्त कर सके।

मेरा अनुमान है कि मुझे इस फ़ंक्शन को जोड़ने के लिए textarea पर आधारित एक अतिरिक्त "frontend_type" जोड़ना है, लेकिन मैं सोच रहा हूं कि क्या अन्य / बेहतर विकल्प हैं

जवाबों:


23

सबसे पहले इसे किसी भी लेआउट फ़ाइल में जोड़ें, एडिटर को कॉन्फिगर सेक्शन में लोड करने के लिए:

<adminhtml_system_config_edit>
    <update handle="editor"/>
    <reference name="head">
        <action method="setCanLoadTinyMce"><load>1</load></action>
    </reference>
</adminhtml_system_config_edit>

अब अपना खुद का फील्ड रेंडर बनाएं। यह आपके मॉड्यूल के अंदर एक ब्लॉक होना चाहिए:

<?php
class Namespace_Module_Block_Adminhtml_System_Config_Editor 
    extends Mage_Adminhtml_Block_System_Config_Form_Field 
    implements Varien_Data_Form_Element_Renderer_Interface {

    protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) {
        $element->setWysiwyg(true);
        $element->setConfig(Mage::getSingleton('cms/wysiwyg_config')->getConfig());
        return parent::_getElementHtml($element);
    }
}

अब system.xml के अंदर के तत्व के लिए frontend_type 'संपादक' सेट करें और frontend_model अपना नया ब्लॉक दें

<fieldname translate="label">
    <label>Field label </label>
    <frontend_type>editor</frontend_type>
    <frontend_model>module/adminhtml_system_config_editor</frontend_model>
    <sort_order>150</sort_order>
    <show_in_default>1</show_in_default>
    <show_in_website>1</show_in_website>
    <show_in_store>1</show_in_store>
</fieldname>

वेबसाइट या स्टोर व्यू में कॉन्फिगर स्कोप को बदलते समय कुछ समस्याएँ होती हैं। टेक्स्टारिया 'अक्षम' नहीं हो जाता है। लेकिन अगर आप इसे अनदेखा कर सकते हैं, तो आप इसे बिना किसी समस्या के उपयोग कर सकते हैं।


उत्कृष्ट जवाब, मेरे लिए काम किया।
रिक कुइपर्स 10

इस तरह काम किया .. !! +1
बालनव

3

मैं इसे एक टिप्पणी के रूप में जोड़ना चाहता था, लेकिन मेरे पास पर्याप्त प्रतिष्ठा नहीं है। काश, यह जानकारी निस्संदेह किसी के लिए उपयोगी हो।

जब मैंने 'Marius' समाधान लागू किया, तो मैंने Show / Hide Editor बटन देखा, लेकिन जब मैंने इसे क्लिक किया, तो मुझे एक जावास्क्रिप्ट मिला:

Uncaught ReferenceError: tinyMceWysiwygSetup is not defined

एक त्वरित Google खोज ने मुझे इस अन्य मैगेंटो स्टैकएक्सचेंज प्रश्न की ओर अग्रसर किया, जिसने सुझाव दिया कि आपको कॉन्फ़िगरेशन अनुभाग में सभी आवश्यक जावास्क्रिप्ट लोड करने के लिए अपने लेआउट में अतिरिक्त लाइनें चाहिए। Marius 'समाधान के साथ इसे शामिल करने से मुझे एक लेआउट अपडेट मिला जो इस तरह दिखता है:

<!-- Enable wysiwyg for config in admin -->
<adminhtml_system_config_edit>
    <update handle="editor"/>
    <reference name="head">
        <action method="setCanLoadTinyMce"><flag>1</flag></action>
        <!-- Beginning of my additions -->
        <action method="setCanLoadExtJs"><flag>1</flag></action>
        <action method="addJs"><script>mage/adminhtml/variables.js</script></action>
        <action method="addJs"><script>mage/adminhtml/wysiwyg/widget.js</script></action>
        <action method="addJs"><script>lib/flex.js</script></action>
        <action method="addJs"><script>lib/FABridge.js</script></action>
        <action method="addJs"><script>mage/adminhtml/flexuploader.js</script></action>
        <action method="addJs"><script>mage/adminhtml/browser.js</script></action>
        <action method="addJs"><script>prototype/window.js</script></action>
        <action method="addJs"><script>prototype/prototype.js</script></action>
        <action method="addItem"><type>js_css</type><name>prototype/windows/themes/default.css</name></action>
        <action method="addItem"><type>js_css</type><name>prototype/windows/themes/magento.css</name></action>
    </reference>
</adminhtml_system_config_edit>

यहां उस अन्य प्रश्न का लिंक दिया गया है : अनट्रेडेड संदर्भरूट: स्मालमैसविसिवगसैटअप परिभाषित नहीं है


0

आपके अतिरिक्त ऐडजेस यहां आवश्यक नहीं हैं। वास्तव में आपके अधिकांश बुलाया पहले से ही "संपादक" हैंडल में हैं। इसलिए हम यहां बनाते हैं<update handle="editor"/>

बस सुनिश्चित करें कि आपका जोड़ना डिज़ाइन में है> adminhtml और डिज़ाइन में नहीं> frontend

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.