Joomla 4 (или 3 - не важно)
2) Настраиваемое поле типа Repeatable, в котором есть несколько других полей (subform).
Данные этой сабформы сохраняются в формате JSON в базе в таблице #_fields_values в поле value, а тип этого поля: TEXT
И вроде бы всё неплохо, да только данное поле позволяет вводить максимум 64кбайта (читайте 64тыс символов), что для повторяемой сабформы может оказаться фатально. В моем случае так и вышло.
Есть ли решения? Только хак типа поля в базу?
в базе в таблице менял тип поля, с модулями была аналогичная проблема, что данные не влезали. Идеального решения вроде как нет. Но подождем остальных)
Взять размер побольше? MEDIUMTEXT, например. Или слишком жирно будет для простых полей?
Дела еще печальнее. Каждый символ сохраняется в базе в JSON в кодировке и занимает примерно 5 обыкновенных символов. Итого общий размер в 64 тысячи нужно поделить на 5 или 6. Остается около 10 тысяч всего. Это 5 страниц текста.
Если проблема не единичного использования таких больших объемов данных, можно придумать свою таблицу, хранить там, а данные связывать по id
Продолжение истории и новые открытия. 64 тыс. символов - много. Но в JSON каждый кодируется в 6, вроде \u043e. Также не забываем про html-разметку в редакторе, которая легко может съедать 20-30% запаса от полезного текста. В результате остается всего 5-6 тысяч реальных символов, что составит 2-3 страницы реального текста. Для повторяемого поля с редактором это прямо печаль. Кто что думает? Вопрос открыт здесь: https://github.com/joomla/joomla-cms/issues/36065
Обсуждают сегодня