Превышение размера полей

Аватара пользователя
Develop-Soft
Сообщения: 690
Зарегистрирован: 27 мар 2019, 01:22
Имя: Владимир
Откуда: Россия, Белгород
Контактная информация:

Превышение размера полей

Сообщение Develop-Soft »

Обнаружил усечение текста при сохранении в html-редакторе примерно на 32k (аккурат на 64кб).
В таблице вижу следующее:
Изображение

Если это баг или недоработка - просьба учесть.

Если это фича - тогда возникает 2 встречных вопроса:
  • 1). почему усечение никак не алертится при вводе (просто допускается превышение) или сохранении?
    2). почему именно html-редактор?
Последний раз редактировалось Develop-Soft 29 сен 2021, 06:40, всего редактировалось 1 раз.
Аватара пользователя
support
Техническая поддержка
Сообщения: 9348
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Размер поля html-редактора

Сообщение support »

Обычно TEXT хватает. Если вам не хватает, измените на LONGTEXT
Аватара пользователя
Develop-Soft
Сообщения: 690
Зарегистрирован: 27 мар 2019, 01:22
Имя: Владимир
Откуда: Россия, Белгород
Контактная информация:

Re: Размер поля html-редактора

Сообщение Develop-Soft »

Спасибо, но мне это не нужно. Я из спортивного интереса тестирую систему. Нашел ошибку, отрепортил... Кто-то вносит данные (возможно очень важные) в редактор, жмёт кнопку "сохранить", система тихо отсекает данные [в самом низу, где это даже нельзя проконтролировать визуально], пользователь потом рвет себе волосы сзади снизу).
Если это не фича и не баг, а так и должно быть - тогда прошу считать тему закрытой, вопросов не имею.
Аватара пользователя
Develop-Soft
Сообщения: 690
Зарегистрирован: 27 мар 2019, 01:22
Имя: Владимир
Откуда: Россия, Белгород
Контактная информация:

Re: Размер поля html-редактора

Сообщение Develop-Soft »

Написал фикс, может кому-то пригодится (в js не силен, тапками не пинать):

Код: Выделить всё

/* Блокировка сохранения при превышении количества 
символов в любом html-редакторе формы */

var res = true;
$.each($(".ckeditorInstanceReady"),function(i,ed){
 ce = CKEDITOR.instances[ed.id];
 $("#"+ed.id+"_rendered_value_exceeded").remove(); 
 if (ce.getData().length> 32767/*100*/) {
 
  el =  '<label id="'+ed.id+'_rendered_value_exceeded" class="error" for="'+ed.id+'" style="display: inline-block;"><b>Превышена допустимая длина текста!</b> <i>('+ce.getData().length+' > 32767 )</i></label>';
  $("#"+ed.id+"_rendered_value").prepend(el).ready(function() {
	  $(".modal-scrollable").animate({
			scrollTop: $("#"+ed.id+"_rendered_value_exceeded").offset().top  
		}, 500);   
  });
  res = false;
 }
});
$(".btn-primary-modal-action").prop('disabled',false);
return res;

Вставляется в "Настройке формы" -> "Код JS" -> "OnSubmit". Настраивать не надо (скрипт ловит сам все html-редакторы).


Работает так:
Изображение
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1773
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр
Откуда: Мир

Re: Размер поля html-редактора

Сообщение alcompstudio »

Мне точно пригодится! ;) Спасибо!
nruslan2
Сообщения: 2524
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow
Контактная информация:

Re: Размер поля html-редактора

Сообщение nruslan2 »

а не проше было либо в базе sql поменять либо в системном файле строчку?)
смысл делать проверку? просто снять ограничение и все!
Аватара пользователя
Develop-Soft
Сообщения: 690
Зарегистрирован: 27 мар 2019, 01:22
Имя: Владимир
Откуда: Россия, Белгород
Контактная информация:

Re: Размер поля html-редактора

Сообщение Develop-Soft »

"Предупредить об ограничении", "запретить пользователю дальнейший ввод", "расширить автоматом тип поля" (и т.п.) - должна по логике сама программа
(а не мы, со своими костылями галимыми)
.
Посему "что проще" - вопрос наверное больше риторический, и риторический ответ на него: "А вдруг вы решили вогнать в редактор весь объем (16Мб middletext или 4Гб longtext), кто при этом браузер отвешивать будет))?"
Ограничение какое-то по-хорошему тоже должно быть...
Аватара пользователя
Develop-Soft
Сообщения: 690
Зарегистрирован: 27 мар 2019, 01:22
Имя: Владимир
Откуда: Россия, Белгород
Контактная информация:

Re: Превышение размера полей

Сообщение Develop-Soft »

Очевидно проблема более глобальная, т.к. например текст большего объема, вставленный в поле "код" ajax-запроса не посекло, а просто не сохранило...
Не хватает каких-то "останавливающих" предупреждений, в подобных случаях.
Аватара пользователя
support
Техническая поддержка
Сообщения: 9348
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

Re: Превышение размера полей

Сообщение support »

Владимир, не умничайте, за 7 лет никто этот вопрос не поднимал:)
Посему в 99% текущих размеров полей хватает.
Единственное, в шаблонах для печати может быть большой текст, например какой то договор. Там я просто увеличу на longtext.
Аватара пользователя
Develop-Soft
Сообщения: 690
Зарегистрирован: 27 мар 2019, 01:22
Имя: Владимир
Откуда: Россия, Белгород
Контактная информация:

Re: Превышение размера полей

Сообщение Develop-Soft »

support писал(а): 29 сен 2021, 07:40 Владимир, не умничайте
Оскорбительно как-то...
Сабж - желательна либо какая-то обертка с предупреждением пользователя, либо автоматическая смена типа поля при превышении (если это допустимо и нет строгих требований к размеру конкретного типа поля). Во многих других системах есть установка максимального размера поля и выдача сообщения если размер превышен (если разработчики рассчитывают на 100% контингента).
support писал(а): 29 сен 2021, 07:40 за 7 лет никто этот вопрос не поднимал:)
Возможно потому, что за эти годы никто не тестировал систему. Именно это я и делаю - ищу слабые места, потенциально возможные ошибки. Если это "вредит проекту" - так и скажите - багрепортов от меня больше не будет...
Ответить