Настройка модуля "blog".

Главные вкладки

Аватар пользователя Hrundix Hrundix 6 апреля 2008 в 17:44

Столкнулся с ситуацией, что не публикуются некоторые посты в блоге.
Выглядит это следующим образом:
После публикации, записи не видно, но анонс есть. Если нажать "изменить", то весь опубликованный текст доступен для редактирования.
Расследование показало, что эта ситуация возникает в случае, когда текста больше, чем на 32Кб.

Пожалуйста, порекомендуйте, что можно посмотреть? (есть доступ к настройке apache, php, mysql).

Комментарии

Аватар пользователя direqtor direqtor 6 апреля 2008 в 19:11

Проверь тип полей в базе.
Если полный текст ноды обрезается на 32К, то, скорее всего у тебя в БД для текстовых полей стоит тип TEXT, а не LONGTEXT.
Или я что-то не так понял? Что значит записи не видно? Страница пуста или вообще недоступна, или видна не полностью?

Аватар пользователя Hrundix Hrundix 6 апреля 2008 в 20:56

Нет, в базе все в порядке: body, teaser и log - longtext.

Записи не видно, это так:
http://nakuhne.net.ru/node/1790
Но анонс (до !--break-- ) виден:
http://nakuhne.net.ru/blog/12
Если нажать, на "изменить" ноду, то весь текст доступен для редактирования (лишнее подтверждение, что в базе все в порядке).

Были подозрения, что я перемудрил где-то в теме. С "bluemarine" всё остается по-прежнему.

Аватар пользователя Hrundix Hrundix 6 апреля 2008 в 23:11

С памятью все в порядке. В php.ini стоит:
memory_limit = 256M
В логе ошибок нет. Чтобы убедиться, что лог работает, выставил 256K - ошибки посыпались, но при "memory_limit = 256M" ошибок нет.

Аватар пользователя direqtor direqtor 7 апреля 2008 в 5:41

Вот уж действительно странный случай... Остальные ноды в порядке. Может убьешь эту ноду и создашь новую с той же датой?

Аватар пользователя direqtor direqtor 7 апреля 2008 в 5:51

Потестил на своем блоге. Если поставить разделитель в таком виде
<!--break-- забыв про закрывающую угловую скобку, то получается нечто похожее. Но тогда на странице ноды виден хотя бы тизер.

Аватар пользователя Hrundix Hrundix 7 апреля 2008 в 11:23

>Остальные ноды в порядке.
Остальные ноды в порядке потому что объем текста менее 32Кб.
>Может убьешь эту ноду и создашь новую с той же датой?
Без толку пробовал.

Может всё решается просто? Может это где-то в админке выставляется?

Аватар пользователя PhotoCore PhotoCore 16 апреля 2008 в 11:49

абсолютно такая же трабла и у меня. тоже тизер показывается в большой статье и все..жмешь "подробнее" и там вообще все пусто. а сам материал при редактировании отображается полность.
в админке все перерыл. нет там ничего подобного. только настройка для величины тизера.
странно что ни у кого подобной траблы не было и как ее решить тоже никто не знает

Аватар пользователя jason32 jason32 16 апреля 2008 в 12:22

просто не надо вводить больше, чем 32К в BODY. Попробуйте текстовое поле ССК - там может ограничения послабже? А Body тогда просто уберите...

Аватар пользователя PhotoCore PhotoCore 17 апреля 2008 в 2:10

интересно, при чем тут ограничение текстовых полей... я вот проверил на локальном хосте, все работает...
Сдается мне что тут дело в каком-то модуле...

Аватар пользователя Krotty@drupal.org Krotty@drupal.org 18 апреля 2008 в 17:29

Этот баг присутствует во всех версиях Drupal, включая 6.x
Причина проблемы - фильтр автопереноса строк (Line break converter), а точнее функция PHP preg_replace которая при одном из преобразований большого объема текста выдает пустой результат.
Глубже копать не стал, решив проблему расстановкой одного-двух дополнительных переносов строк по всему объему текста проблемной ноды.

Аватар пользователя Hrundix Hrundix 18 апреля 2008 в 22:19

Спасибо! Спасибо! Спасибо!
Для тех, кто как и я сразу не понял "решив проблему расстановкой одного-двух дополнительных переносов строк" - это просто пару раз нажать "Enter" - вставить пустую строку. Smile