Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

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

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

Рекомендованные сообщения

Опубликовано:

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

Опубликовано:
  • Автор

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

Изменено пользователем Strategius

Опубликовано:
  • Автор

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

 

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

Опубликовано:

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

Опубликовано:
  • Автор

В 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

Изменено пользователем Strategius

Опубликовано:
  • Автор

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

Опубликовано:

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

Опубликовано:

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

Опубликовано:
  • Автор

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

Изменено пользователем 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]";

Изменено пользователем Haktar

Опубликовано:
  • Автор

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

Опубликовано:

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

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

  • 1 месяц спустя...
Опубликовано:
  • Автор

Попробовал заменить на тестовом форуме редактор на версию из 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>');

Опубликовано:
  • Автор

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

 

Для 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>');

Изменено пользователем Strategius

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

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.