Приветствую.
Понадобилось ввести новые настройки в Опенкарт в админке и несколько из них были текстом в CKEditor, было несколько таких блоков редактора на одной странице.
И надо было чтобы у них была разная заданная изначально высота.
Высота задается в конфиге самого ckeditor, но это глобально, а нужно было задать индивидуальные высоты для каждого блока.
Можно, конечно с css заморочиться, но в данном случае это было бы, мне кажется, не совсем правильно, ведь все параметры этого блока контролируются через js самим ckeditor.
Поизучал доку, погуглил, пришел вот к такому решению.
admin/view/javascript/ckeditor/ckeditor_init.js - вот этот файл чуть изменил:
// CKEditor */
function ckeditorInit(node, token, ck_height = 0) { // ck_height - высота блока, целое число
// CKEDITOR.replace(node) - закомментируем стандартное подключение CKEDITOR
// --> моя добавка вместо CKEDITOR.replace(node)
if (ck_height) { //
CKEDITOR.replace(node, {height: ck_height}); // переопределяем высоту
} else {
CKEDITOR.replace(node); // если высота блока не задана, ничего не меняем
}
// <-- моя добавка
CKEDITOR.on('dialogDefinition', function (ev) {
// дальше без изменений
И теперь в tpl-ках можно так вызывать подключение CKEditor:
ckeditorInit('input-product_addit_info', getURLVar('token')); // как обычно, без изменений, высота будет стандартная
ckeditorInit('input-sizes_table_zhen', getURLVar('token'), 460); // если нужно выставить определенную высоту блока в px
И еще есть такой плагин, Автовысота редактора CKEditor, может быть будет полезно кому-нибудь.
Наверняка есть подобное решение и для Summernote, но им не пользуюсь, уж очень нефункциональный он какой-то..