Добавление Дополнителього Wysiwyg Поля На Страницу Категории

Добрый день!

Решил добавить в админку дополнительное текстовое поле для категории. Само поле добавил, данные в базу пишутся, на фронтенде выводятся.

Но прикрутить WYSIWYG редактор чтоб он работал как положено никак не получается.

Добавление классов к текстэрии ничего не дало, поэтому пришлось вызывать инициализацию редактора самостоятельно прямо под кодом самого поля.

{$category_data.mytext}
(function(_, $) {
	$.ceEvent('on', 'ce.commoninit', function(context) {
	var elm = context.find('#elm_mytext');
    		elm.ceEditor();

});
}(Tygh, Tygh.$));

Редактор включается и подхватывает текст, но при сохранении изменения не попадают в бд. Насколько я понимаю нужно как-то вызывать ceEditor('destroy') редактора, но где и как это правильно делать непонятно.

Класса cm-wysiwyg должно быть достаточно для появления WYSIWYG. Смотрите в консоли, может яваскриптовые ошибки какие-то мешают

Никаких ошибок в консоли нету. Доп поле подключается на вкладку Модули.

Файл находится тут:

design/backend/templates/addons/my_addon/hooks/categories/detailed_content.post.tpl

Попробуйте такой код

{__("mytext")}:
{$category_data.mytext}

У меня так и написано - не работает.

Исследуя Core.js появилась догадка:

Инициализация редактора вызывается в методе processForms

 processForms: function(elm)
        {
            var frms = $('form:not(.cm-processed-form)', elm);
            frms.addClass('cm-processed-form');
            frms.ceFormValidator();
        if (_.area == 'A') {
            frms.filter('[method=post]:not(.cm-disable-check-changes)').addClass('cm-check-changes');
            var elms = (frms.length == 0) ? elm : frms;
        }

        $('textarea.cm-wysiwyg', elms).appear(function() {
            $(this).ceEditor();
        });
    },

В то время как форма на странице категории есть только внутри первой вкладки, а все остальные вкладки вне формы.

Я попробовал обернуть моём поле в форму, но форма удаляется при рендеринге страницы...

Я решил проблему. Она состояла в неправильной html вёрстке файла \design\backend\templates\views\categories\update.tpl

    
{__("usergroups")}:
{include file="common/select_usergroups.tpl" id="ug_id" name="category_data[usergroup_ids]" usergroups=["type"=>"C", "status"=>["A", "H"]]|fn_get_usergroups:$smarty.const.DESCR_SL usergroup_ids=$category_data.usergroup_ids input_extra="" list_mode=false} {__("to_all_subcats")}
[[
]] - НУЖНО ДОБАВИТЬ {/if}
<div class="control-group">
    <label class="control-label" for="elm_category_position">{__("position")}:</label>
    <div class="controls">
        <input type="text" name="category_data[position]" id="elm_category_position" size="10" value="{$category_data.position}" class="input-text-short" />
    </div>
</div>

<div class="control-group">
    <label class="control-label" for="elm_category_creation_date">{__("creation_date")}:</label>
    <div class="controls">
        {include file="common/calendar.tpl" date_id="elm_category_creation_date" date_name="category_data[timestamp]" date_val=$category_data.timestamp|default:$smarty.const.TIME start_year=$settings.Company.company_start_year}
    </div>
</div>

{include file="views/localizations/components/select.tpl" data_from=$category_data.localization data_name="category_data[localization]"}
<-- НУЖНО УДАЛИТЬ

Странно, у меня без каких-либо доработок все работает

http://prntscr.com/dd38xn

Может быть версия другая (тестировалось на 4.3.6)