Регистрация
Вход через соцсети
Восстановление пароля

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

Новый топик
Страницы: 1  |  2
25.05.2008, 20:04
Ответить | Цитировать
Woodpecker

Зарегистрирован:
2008-05-25
Сообщений: 4

Здравствуйте. При редактировании страницы готового сайта текст не сохраняется полностью. Его обрезает примерно на 60 тысячах символов, считая пробелы.

В форме присутствуют поля
name Заголовок
anons Анонс
text Полный текст

Поле текст имеет тип Текстовый блок с форматом 10:60 (я вычитал, что это число строк и столбцов)

В Альтернативной форме изменения объекта есть такой кусок кода:

Код:
".nc_string_field("name", "maxlength='255' size='50'", $classID, 1)."<br>
<br>
".nc_text_field("anons", "", $classID, 1)."<br>
<br>
".nc_text_field("text", "", $classID, 1)."<br>
<br>
".nc_bool_field("new", "", $classID, 1)."<br>
<br>


Я пытался добавить между кавычками для поля text кусок maxlength='65535' size='50', доводил 65535 до 4 миллиардов(64к в квадрате). Безрезультатно.

В другой теме писали, что максимальный размер текстового поля должен быть как раз около 4 миллиардов. Есть ли возможность заставить в моем случае принимать бОльший размер текста, или придется шаманить с разбиением на страницы?

Заранее спасибо за подсказку.
25.05.2008, 20:47
Ответить | Цитировать
Woodpecker

Зарегистрирован:
2008-05-25
Сообщений: 4

Ответ найден в Руководстве разработчика:

Текстовой блок – мемо-поле (для ввода будет использован элемент
формы <textarea>), может содержать 64 кб текста.

Неутешительно ((... Может есть альтернативы? Когда вставляешь сложную таблицу, теги забирают столько места, что собственно материала остается ну совсем мало.
26.05.2008, 07:16
Ответить | Цитировать
pe3udent
Артур Юсупов

Зарегистрирован:
2008-04-03
Сообщений: 220

Измените тип поля таблицы на более длинный.
26.05.2008, 13:16
Ответить | Цитировать
ktotoff
АльтерЛан

Зарегистрирован:
2006-12-19
Сообщений: 330

Кстати, он там по дефолту LONGTEXT, что должно предполагать хранение довольно впечатляющего объёма данные. На лонгблоб чтоли менять?

...жизнь прекрасна, когда правильно подобраны антидепрессанты...
26.05.2008, 13:59
Ответить | Цитировать
pe3udent
Артур Юсупов

Зарегистрирован:
2008-04-03
Сообщений: 220

Kraeved писал(а):
Кстати, он там по дефолту LONGTEXT


При создании поля типа "Текстовый блок" его тип по дефолту - TEXT, поэтому текст обрезается на 65535 символах.
Чтобы иметь возможность добавлять большие объемы данных, измените тип поля на MEDIUMTEXT или LONGTEXT.
26.05.2008, 19:31
Ответить | Цитировать
ktotoff
АльтерЛан

Зарегистрирован:
2006-12-19
Сообщений: 330

Да, действительно, сейчас посмотрел - TEXT по дефолту.
До этого смотрел в свой компонент. Наверное, поменял по привычке да и забыл...

...жизнь прекрасна, когда правильно подобраны антидепрессанты...
27.05.2008, 17:44
Ответить | Цитировать
Woodpecker

Зарегистрирован:
2008-05-25
Сообщений: 4

Спасибо вам за ответы. Мысль понятна, буду продолжать рыть. Но пока есть сложности. Временно обошелся тем, что в компонент добавил еще одно текстовое поле, и соответственно дописал коды добавления и изменения объекта. Появилось 2-е окно, куда можно дописывать не вмещающийся текст.

Проблемы же в том, что при задании типа поля есть выпадающий список только с такими значениями:
1. Строка
2. Целое число
3. Текстовый блок
4. Список
5. Логическая переменная
6. Файл
7. Число с плавающей запятой
8. Дата и время
9. Связь с другим объектом

Выбран вариант 3. Текстовый блок.

Это я правлю в соответствующем "Компоненте". Где найти в админке дополнительные типы полей - не знаю.

С горя аккуратно полез через PHPMyAdmin в базу на сервере. Сижу, изучаю. Нужную текстовую переменную в таблице Field нашел, у нее поле TypeOfData_ID имеет значение 3 (хм... совпадение?) Из любопытства поставил Строку, тип поля в админке изменился, форма перестала добавляться с ошибкой SQL. Вернул назад, исправилось. Похоже, это оно. Остается теперь найти числовой код, соответствующий нужному мне формату (типа LongText или BLOB - видел их где-то в недрах таблиц, пока повторно не нашел улыбка)

Я правильно рою? Познания в SQL многолетние, но неглубокие, я непрофессионал ((.

Еще раз спасибо за соучастие.

Кстати P.S. Система управления сайтами NetCat Extra версия 3.1.

Обновление NetCat версии 3.0 Extra до версии 3.01 Extra
Обновление NetCat версии 3.01 Extra до версии 3.1 Extra
Не установлено обновление #311 (скачать)
27.05.2008, 18:17
Ответить | Цитировать
ktotoff
АльтерЛан

Зарегистрирован:
2006-12-19
Сообщений: 330

Нет, что вы!
В PMA заходите в таблицу MessageXX, где XX - номер вашего компонента.
Закладка "Структура". Смотрите в таблицу, в столбец "Поле". Находите имя поля, используемое в компоненте. Допустим, FullText. Во втором столбце "Тип" и указан его тип. Вероятнее всего там написано TEXT. Меняете на LONGTEXT и вуа-ля улыбка

ЗЫ. А там где до этого меняли - сделайте как было.

...жизнь прекрасна, когда правильно подобраны антидепрессанты...
27.05.2008, 18:33
Ответить | Цитировать
Woodpecker

Зарегистрирован:
2008-05-25
Сообщений: 4

Получмлось! Тест влезает )) Господи, до чего же хорошо на душе стало! Земной вам поклон...
29.05.2008, 09:44
Ответить | Цитировать
Ged

Зарегистрирован:
2008-03-12
Сообщений: 23

Kraeved писал(а):
Нет, что вы!
В PMA заходите в таблицу MessageXX, где XX - номер вашего компонента.
Закладка "Структура". Смотрите в таблицу, в столбец "Поле". Находите имя поля, используемое в компоненте. Допустим, FullText. Во втором столбце "Тип" и указан его тип. Вероятнее всего там написано TEXT. Меняете на LONGTEXT и вуа-ля улыбка

ЗЫ. А там где до этого меняли - сделайте как было.

А можно по-подробнее для тех, кто в танке? Что такое РМА? Я в инструментах сделал запрос в MySQL EXPLAIN Message9, для поля $f_FormatHTML там действительно стоит тип text. Как изменить, что-то я не понял.

Ged
29.05.2008, 12:58
Ответить | Цитировать
pe3udent
Артур Юсупов

Зарегистрирован:
2008-04-03
Сообщений: 220

PMA - phpmyadmin
находите нужную таблицу -> структура -> находите нужное поле и меняете его тип
198 196 2008-05-29 15:00:29 9337
Страницы: 1  |  2
Описание проекта