проблема с --break--

Аватар пользователя shtrlz shtrlz 1 июля 2008 в 14:39

ну уж никак не могу понять в чем дело.
редактор tinimce. ставлю break. смотрю что получается: режет гораздо позже чем стоит брейк. на вывод пропускает каждый раз по разному. от количества символов не зависит. посмотреть можно допустим здесь - http://motorcycles.ru/taxonomy/term/49 (не сочтите за рекламу)

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

themes менял на любую. вывод тот-же.

Комментарии

Аватар пользователя Stein Stein 1 июля 2008 в 19:00

поставь Node Teaser-туда сможешь вводить любой тизер, даже независимо от содержимого новости.

Аватар пользователя shtrlz shtrlz 2 июля 2008 в 15:01

node teaser не хотелось бы. у меня на phpnuke так было. два окна пользователь не понимает как заполнять. Smile
то есть проблема не решаема? просто есть на сайте уже куча статей.

перезалил модули node - не помогло. кто еще отвечает за вывод текста полного и тизера?

Аватар пользователя brooho brooho 3 июля 2008 в 17:33

У меня похожая проблема.
Тизер отрезается всегда разной длины, иногда вообще ничего. Текст в ноде есть и много, а тизер вообще пустой иногда!
Посмотреть можно здесь.
Я, честно говоря, грешу на tinimce - он наверное (как и все визуальные редакторы) в ноду пихает кучу всякого html-хлама, который наверное потом фильтрами отрезается и не выводится, но из-за этого хлама отрезать корректный тизер не удаётся.
Придётся наверное tinimce грохнуть.

Аватар пользователя Stein Stein 3 июля 2008 в 19:33

Я тоже парился по этому поводу, он все время выводит !--break-- вместе со всем остальным текстом, мне кажется что это изза того что tinimce все содержимое заносит в html теги, поэтому и не получается должного эффекта. может Вам стоит попробовать BuEditor, если не пробовали, хотя он все таки менее функционален.

Аватар пользователя Химический Али Химический Али 3 июля 2008 в 21:04

не помню в каком редакторе, но возможно во всех так - друпальный сепаратор указывался в конфиг-файле.
почитайте мануал к модулю
зы. вроде в fck

Аватар пользователя shtrlz shtrlz 3 июля 2008 в 21:50

большой спасибо что откликнулись.
отрубил tinimce
оставил вообще штатный редактор. все равно то-же самое...

Аватар пользователя shtrlz shtrlz 3 июля 2008 в 22:00

нет не тоже самое... теперь при выводе брейк сноситься ниже. тоесть делаем текст

вводим:
11111111
...здесь брейк...
22222222

выводит
111111112222222брейк222

что же за хрень то происходит?

Аватар пользователя shtrlz shtrlz 3 июля 2008 в 22:11

добавлю. на моем тестовом сайте - все работает без проблем. с тем же tinimce.

Аватар пользователя shtrlz shtrlz 3 июля 2008 в 22:55

bueditor тоже не так режет. это не редакторы... это что-то хуже. блин, что-же это... ?

Аватар пользователя KCEOH KCEOH 7 июля 2008 в 12:36

1) Проверь фильтры
2) Полная деинсталяция тини. Отключай в модулях, удаляй в модулях, удали файлы, проверь после этого БД на факт следов. Поставь снова стабильную версию.

Аватар пользователя brooho brooho 8 июля 2008 в 0:43

Я у себя заменил tinymce на bueditor и уже написал было сообщение, что проблема решена, но не тут то было.
Я не знаю как друпал вырезает тизер (надо будет посмотреть код), но это, простите, полный пиздец!
Вот конкретный пример: есть нода, текст в ней не содержит ни одного тега вообще (смотрю в базе). Начинается со слов "Здравствуйте! У меня такая история...". В тизер вырезается только "Здравствуйте!". При этом если заменить ! на . , то тизер вырезается нормально (несколько строк текста), если затем поменять обратно на !, то опять в тизере остаётся только "Здравствуйте!".
Может какие-то настройки в php.ini влияют Sad

Аватар пользователя brooho brooho 8 июля 2008 в 2:29

посмотрел функцию node_teaser - определённо глючный код (версия 5.7) - глючить должна примерно так: всегда, когда нет тегов, тизер обрезается по последнему (укладывающемуся в лимит) ?, если нет ?, то по последнему !, если и его нет, то по последней точке. А правильно должно резаться по последнему любому из этих знаков. Поэтому у меня с восклицательным знаком проблемы и возникли. Если есть теги, то тоже глюки, но другие.
Самое интересное, что здесь функция уже исправлена, а в последнем (5.7) релизе ещё нет.
А вот с !--break-- вроде должна нормально отрабатывать. Ну разве-что какие-то косяки с UTF-8 и стринговыми функциями. shtrlz, если у тебя на тестовом нормально отрабатывает, то попробуй сравнить настройки в php.ini (или вывод функции phpinfo()) обоих серверов, особенно строки, начинающиеся с mbstring. (особенно mbstring.func_overload)

Аватар пользователя brooho brooho 8 июля 2008 в 2:58

вобщем это опять я Smile
исправленная функция хоть и получше, но тоже глючная, по крайней мере если у вас стоит tinymce, то периодически у вас будут создаваться пустые тизеры (это зависит от заданного лимита тизера, размера первого абзаца, а также версии браузера юзера, размещавшего текст) Sad

Аватар пользователя brooho brooho 13 июля 2008 в 3:39

shtrlz, ну что там у тебя - что-нибудь получилось? я практически уверен, что у тебя дело в mbstring.func_overload - могу даже объяснить почему: этот параметр переопределяет str* функции для поддержки UTF8, но строковая функция substr начинается не со str* и потому не переопределяется, а значит не совсем верно работает с UTF8 текстом (точнее, не верно работает, если в нём есть русские буквы)
короче когда друпал тизер обрезает - он у тебя сначала отмеряет переопределённой функцией strlen, а потом режет не переопределённой функцией substr - соответственно режет не в том месте
вобщем тебе надо mbstring.func_overload=0 поставить в php.ini , ну или в .htaccess можно попробовать