Использование редактора WYSIWYG в Magento 1.4 на пользовательских страницах администратора - PullRequest
3 голосов
/ 25 февраля 2010

Кто-нибудь знает, как заставить новый редактор 1.4 WYSIWYG (TinyMCE) работать с пользовательскими страницами администратора?

У меня есть несколько модулей, которые у меня есть, с полями ввода в разделе admin-> system-> config, и я хотел бы, чтобы новый редактор отображался в текстовых областях, но я не могу найти, где они находятся определены.

Ответы [ 5 ]

6 голосов
/ 22 июля 2010

Чтобы загрузить TINY MCE на определенной странице, используйте следующую функцию в блоке редактирования Adminhtml вашего модуля:

protected function _prepareLayout() {
 parent::_prepareLayout();
 if (Mage::getSingleton('cms/wysiwyg_config')->isEnabled()) {
  $this->getLayout()->getBlock('head')->setCanLoadTinyMce(true);
 }
} 

Чтобы включить редактор для определенного редактируемого текстового поля, просто используйте «wysiwyg» => true вместо «wysiwyg» => false. т.е.:

$fieldset->addField('description', 'editor', array(
    'name'      => 'description',
    'label'     => Mage::helper('sevents')->__('Description'),
    'title'     => Mage::helper('sevents')->__('Description'),
    'style'     => 'height:12em;width:500px;',
    'config'    => Mage::getSingleton('cms/wysiwyg_config')->getConfig(),
    'wysiwyg'   => true,
    'required'  => true,
)); 
2 голосов
/ 11 марта 2010

Вот несколько простых шагов, которые помогут вам настроить TinyMCE для работы со страницами Magento CMS.

Шаг 1.

Загрузите и распакуйте TinyMCE в папку root / js. Здесь нужно иметь в виду две вещи. Загрузите обычную версию (не версию JQuery) TinyMCE. Это связано с тем, что Magento использует Prototype, поэтому нам нужно избегать конфликтов. Во-вторых, не упустите распакованное местоположение. Ваш файл tiny_mce.js должен быть доступен по пути js/tiny_mce/tiny_mce.js.

Шаг 2.

Откройте файл app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Main.php. Найдите
 $fieldset->addField('content', 'editor', array(
        'name'      => 'content',
        'label'     => Mage::helper('cms')->__('Content'),
        'title'     => Mage::helper('cms')->__('Content'),
        'style'     => 'height:36em;',
        'wysiwyg'   => false,
        'required'  => true,
    ));

и измените его на

 $fieldset->addField('content', 'editor', array(
        'name'      => 'content',
        'label'     => Mage::helper('cms')->__('Content'),
        'title'     => Mage::helper('cms')->__('Content'),
        'style'     => 'height:36em;',
        'wysiwyg'   => true,
        'theme' => 'advanced',
        'required'  => true,
    ));

Как видите, здесь мы изменили значение существующего атрибута ("wysiwyg") и добавили новый атрибут "theme".

Шаг 3.

Откройте файл /lib/Varien/Data/Form/Element/Editor.php и найдите метод getElementHtml (). Здесь мы меняем
 $html = '
    <textarea name="'.$this->getName().'" title="'.$this->getTitle().'" id="'.$this->getHtmlId().'" class="textarea '.$this->getClass().'" '.$this->serialize($this->getHtmlAttributes()).' >'.$this->getEscapedValue().'</textarea>
    <script type="text/javascript">
        // <![CDATA[
            /* tinyMCE.init({
                mode : "exact",
                theme : "'.$this->getTheme().'",
                elements : "' . $element . '",
                theme_advanced_toolbar_location : "top",
                theme_advanced_toolbar_align : "left",
                theme_advanced_path_location : "bottom",
                extended_valid_elements : "a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]",
                theme_advanced_resize_horizontal : "false",
                theme_advanced_resizing : "false",
                apply_source_formatting : "true",
                convert_urls : "false",
                force_br_newlines : "true",
                doctype : \'< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\'
            });*/
        //]]>
    </script>';

до

 $html = '
    <textarea name="'.$this->getName().'" title="'.$this->getTitle().'" id="'.$this->getHtmlId().'" class="textarea '.$this->getClass().'" '.$this->serialize($this->getHtmlAttributes()).' >'.$this->getEscapedValue().'</textarea>
    <script language="javascript" type="text/javascript" src="/js/tiny_mce/tiny_mce.js"></script>
    <script type="text/javascript">
    //< ![CDATA[
        Event.observe(window, "load", function() {
            tinyMCE.init({
                mode : "exact",
                theme : "'.$this->getTheme().'",
                elements : "' . $element . '",
                theme_advanced_toolbar_location : "top",
                theme_advanced_toolbar_align : "left",
                theme_advanced_path_location : "bottom",
                extended_valid_elements : "a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]",
                theme_advanced_resize_horizontal : "false",
                theme_advanced_resizing : "false",
                apply_source_formatting : "true",
                convert_urls : "false",
                force_br_newlines : "true",
                doctype : \'< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\'
            });
        });
    //]]>
    </script>';

Как видите, для работы редактора TinyMCE потребовалось всего три незначительных изменения (загрузка, изменение, изменение).

Надеюсь, это поможет. Приветствия.

& копия; Бранко Айзеле ( источник )

1 голос
/ 20 июня 2013

Вот шаги, которые я выполнил.

Подготовка редактора, используемого в форме редактирования Приложение / код / ​​местные / Mynamespace / MyModule / Block / Adminhtml / MyModule / edit.php

protected function _prepareLayout()
{
    // added this code 
    if (Mage::getSingleton('cms/wysiwyg_config')->isEnabled()) {
        $this->getLayout()->getBlock('head')->setCanLoadTinyMce(true);
        $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
    }
    parent::_prepareLayout();
}

Преобразование текстовой области в редактор

Приложение / код / ​​местные / Mynamespace / MyModule / Block / Adminhtml / MyModule / Редактировать / Tab / form.php

Включить содержимое в функцию pre _prepareForm () *

$config = Mage::getSingleton('cms/wysiwyg_config')->getConfig(
array(
'add_widgets' => false,
'add_variables' => false,
'add_images' => false,
'files_browser_window_url'=> $this->getBaseUrl().'admin/cms_wysiwyg_images/index/',
));



$fieldset->addField('content', 'editor', array(
'name' => 'content',
'label' => Mage::helper('mymodule')->__('Content'),
'title' => Mage::helper('mymodule')->__(’Content'),
'style’ => 'width:700px; height:320px;',
'wysiwyg' => true,
'required' => true,
'config' => $config,
));
1 голос
/ 15 февраля 2012

в EW_Press_Block_Adminhtml_Press_Edit (ЭВ / Пресс / блок / Adminhtml / Пресс / edit.php) вставьте эту функцию

protected function _prepareLayout()
{
    parent::_prepareLayout();
    if (Mage::getSingleton('cms/wysiwyg_config')->isEnabled())
    {
        $this->getLayout()->getBlock('head')->setCanLoadTinyMce(true);
    }
}

и чем в form.php (EW_Press_Block_Adminhtml_Press_Edit_Tab_Form) /(EW/Press/Block/Adminhtml/Press/Edit/Tab/Form.php)/

'config' => Mage :: getSingleton ('cms / wysiwyg_config') -> getConfig (),

добавьте его, чтобы он выглядел следующим образом:

$fieldset->addField('content', 'editor', array(
          'name'      => 'content',
          'label'     => Mage::helper('module')->__('Site Description'),
          'title'     => Mage::helper('module')->__('Site Description'),
          'style'     => 'width:400px; height:300px;',
          'required'  => true,
          'config'    => Mage::getSingleton('cms/wysiwyg_config')->getConfig(),
          'wysiwyg'   => true
      ));

Теперь перезагрузите страницу, чтобы увидеть эффект.

0 голосов
/ 07 февраля 2012

На основании вышеприведенного поста я написал статью под названием:
Как использовать редактор WYSIWYG (TinyMCE) в пользовательском модуле Admin Magento

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...