Skip to content

[Баг] Лишний отступ в цитатах

Заметил, что при ответе с использованием бб-кода цитаты в нее добавляется лишний отступ в виде <p> </p>.

Наблюдается только в версии 3.4, в более ранних такого не замечал. Можно ли это как-нибудь пофиксить?

Featured Replies

Подтверждаю, есть такой баг.

  • Author

Этот баг судя по отзывам появился начиная с версии 3.4.1, и никто не может найти, где его исправить :(

Edited by Strategius

  • Author

Не подскажете, где искать? Поиск и удаление кода "<p> </p>" в файлах форума ни к чему не привел, в базе тоже не нашел...

 

Глюк очень неприятный, приходится каждый раз вручную удалять отступ лишней строки в цитате :(

Это визуальный редактор, - может быть где угодно и что угодно. Начните \admin\sources\classes\text\parser.php, а потом дебажте тело цитаты.

  • Author

В parser.php код "<p> </p>" находится за блоком цитаты:

 

return "<p> </p><blockquote class='ipsBlockquote'" . implode( ' ', $ops ) . '><div><p>' . $this->_stripParagraphWrap( $content ) . '</p></div></blockquote><p> </p>';

А в файле default.php такого кода нет вообще, и в теле цитаты тоже не увидел...

 

Вот так выглядит отступ в коде (т.е. <p> </p> находится внутри блока цитаты):

 

post-59150-0-93368500-1482679664_thumb.png post-59150-0-20823800-1482679665_thumb.png

Edited by Strategius

  • Author

Может пробел вставляется через регулярное выражение, и поэтому я не могу найти его по итоговому коду "<p> </p>" ?

Через регулярное выражение он не вставляется, скорее всего его редактор добавляет. Там ковырять нужно, поэтому проще на него просто забить.

А если попробовать залить редактор из версии 3.4.0 ?

  • Author

Хотелось бы пофиксить цитату в последней версии, а старые файлы заливать не хочется.

Edited by Strategius

Хотелось бы пофиксить цитату в последней версии, а старые файлы заливать не хочется.

Я в 3.1.4 убрал отступ так:

 

admin/applications/forums/sources/classes/post/classPost.php

 

Найти:

 

$raw_post .= "[quote name='" . IPSText::getTextClass( 'bbcode' )->makeQuoteSafe($tp['author_name']) . "' timestamp='" . $tp['post_date'] . "' post='" . $tp['pid'] . "']\n{$tmp_post}\n[/quote]\n\n\n";

 

Заменить на:

 

$raw_post .= "[quote name='" . IPSText::getTextClass( 'bbcode' )->makeQuoteSafe($tp['author_name']) . "' timestamp='" . $tp['post_date'] . "' post='" . $tp['pid'] . "']\n{$tmp_post}\n[/quote]";

Edited by Haktar

  • Author

Такого в 3.4 нету...

Я не думаю, что файлы редактора 3.4-3.4.9 сильно отличаются.

Если поможет, то просто сравнить все файлы на различие кода (как вариант, если очень хочется пофиксить)

  • 1 month later...
  • Author

Попробовал заменить на тестовом форуме редактор на версию из 3.4.1 (чисто ради интереса) - таким образом проблему не удалось выявить (т.к. редактор практически не работает из-за несовместимости)...

Не подскажете, где искать?

public/js/3rd_party/ckeditor/ckeditor.js

defaulttext=IPSCKTools.cleanHtmlForTagWrap(text)?IPSCKTools.cleanHtmlForTagWrap(text):'<p>'+IPSCKTools.cleanHtmlForTagWrap('')+'</p>';blockquote=m.createFromHtml('<blockquote class="ipsBlockquote">'+defaulttext+'</p></blockquote>');

  • Author

Работает, спасибо!!

 

Для 3.4.9

 

Строку

 

defaulttext=IPSCKTools.cleanHtmlForTagWrap(text)?IPSCKTools.cleanHtmlForTagWrap(text):'<p>'+IPSCKTools.cleanHtmlForTagWrap('')+'</p>';blockquote=m.createFromHtml('<blockquote class="ipsBlockquote">'+defaulttext+'</p></blockquote>');

Меняем на:

 

defaulttext=IPSCKTools.cleanHtmlForTagWrap(text)?IPSCKTools.cleanHtmlForTagWrap(text):'';blockquote=m.createFromHtml('<blockquote class="ipsBlockquote">'+defaulttext+'</p></blockquote>');

Edited by Strategius

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.