1

Тема: Reduced Text of Posts 1.0

Сделал автоматический обрезалеть слишком длинных постов. Используя этот мод автоматически все посты имеющие размер больше 8000 знаков сокращаются до 7000 знаков с выводом таблички, которая говорит о том, что текст поста обрезан. В этой табличке даётся ссылка для перехода на страницу где можно просмотреть текст полностью.
Очень удобно для экономии траффика, например когда в теме есть большие посты, то они автоматичекси уменьшаются.
Всё здесь:
www.punres.org/viewtopic.php?id=1467
В архиве есть языковой файл на русском.

ERROR - MIRROR

Поделиться

2

Re: Reduced Text of Posts 1.0

У меня такой вопрос.
Предположим, что пост имеет длину более 8000 знаков и включены бб-коды. Вв районе 6980 символа открывается какой-нибудь  тэг , предположим что [ url ] (после обработки парсером он переводится в нормальный хтмл-тэг <a href ), а закрывается этот тэг уже после 7000 знака.
Что будет с отображением контента, идущего начиная с этого тэга?
Я сталкивался с такой фишкой, когда выводил на главную страницу сайта последний пост, естественно я обрезал пост, и однажды я увидел перекошеную страницу, и причина косяка крылась в незакрытых тэгах. Поэтому в данном моде обязательно следует вставить интеллектуальную проверку на разрыв поста не внутри бб-тэгов.

Сайт hcs

Поделиться

3

Re: Reduced Text of Posts 1.0

hcs пишет:

У меня такой вопрос.
Предположим, что пост имеет длину более 8000 знаков и включены бб-коды. Вв районе 6980 символа открывается какой-нибудь  тэг , предположим что [ url ] (после обработки парсером он переводится в нормальный хтмл-тэг <a href ), а закрывается этот тэг уже после 7000 знака.
Что будет с отображением контента, идущего начиная с этого тэга?
Я сталкивался с такой фишкой, когда выводил на главную страницу сайта последний пост, естественно я обрезал пост, и однажды я увидел перекошеную страницу, и причина косяка крылась в незакрытых тэгах. Поэтому в данном моде обязательно следует вставить интеллектуальную проверку на разрыв поста не внутри бб-тэгов.

Если обрезается картинка то в посте будет виден кусок html примерно такого вида:

...retro.com/img/115176jl.th.jpg" />


если ссылка то:

...retro.com/img/115176.html" />

ERROR - MIRROR

Поделиться

4

Re: Reduced Text of Posts 1.0

Сейчас потестил повнимательнее.
С ссылками ситуация ещё лучше, они вообще не отображаются )
Т.е. если она режется посередине то она вообще не выводится. Если поставлено выводить 7000 знаков то если есть ссылка, то будет выводиться меньше 7000 знаков )

ERROR - MIRROR

Поделиться

5

Re: Reduced Text of Posts 1.0

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

Сайт hcs

Поделиться

6

Re: Reduced Text of Posts 1.0

Вот смотри, предположим есть цитата, которая начинается после обрезки, а заканчивается вместе с постом, т.е. последняя часть поста -  блаблабла[/ quote]
Вставь небольшую цитату в конец тестируемого поста.

Сайт hcs

Поделиться

7

Re: Reduced Text of Posts 1.0

С цитатой ты прав.
Со всеми остальными тегами проблем нет как я и писал выше.

ERROR - MIRROR

Поделиться

8

Re: Reduced Text of Posts 1.0

Так значит с Цитатой проблема решается таким образом:

Ищем в файле parser.php код:

        $text = str_replace('[quote]', '</p><blockquote><div class="incqbox"><p>', $text);
        $text = preg_replace('#\[quote=(&quot;|"|\'|)(.*)\\1\]#seU', '"</p><blockquote><div class=\"incqbox\"><h4>".str_replace(array(\'[\', \'\\"\'), array(\'&#91;\', \'"\'), \'$2\')." ".$lang_common[\'wrote\'].":</h4><p>"', $text);
        $text = preg_replace('#\[\/quote\]\s*#', '</p></div></blockquote><p>', $text);

И меняем на код:

        $text = str_replace('[quote]', '</p><blockquote><p>', $text);
        $text = preg_replace('#\[quote=(&quot;|"|\'|)(.*)\\1\]#seU', '"</p><blockquote><div 

class=\"incqbox\"><h4>".str_replace(array(\'[\', \'\\"\'), array(\'&#91;\', \'"\'), \'$2\')." 

".$lang_common[\'wrote\'].":</h4><p>"', $text);
        $text = preg_replace('#\[\/quote\]\s*#', '</p></blockquote><p>', $text);
ERROR - MIRROR

Поделиться

9

Re: Reduced Text of Posts 1.0

Милая вещь.
А как проверку поставить на BBcode?
Иногда перекашивается неприятно..

Это вроде както так?
preg_replace(\'#\\[(.+?)\\]#is\',\'\',...)

Поделиться

10

Re: Reduced Text of Posts 1.0

Garden пишет:

Милая вещь.
А как проверку поставить на BBcode?
Иногда перекашивается неприятно..

Это вроде както так?
preg_replace(\'#\\[(.+?)\\]#is\',\'\',...)

Понятия не имею )
Наверно у тебя ещё дополнительные коды стоят таблицы... у меня ничего не косит, дивы убрал и всё ок.

ERROR - MIRROR

Поделиться

11

Re: Reduced Text of Posts 1.0

У меня много разных кодов.. У меня extra_bbcodes_1.0.3.
Пожалуйста как сделать чтобы внизу страница не перекашивалась?

Поделиться

12

Re: Reduced Text of Posts 1.0

Garden пишет:

У меня много разных кодов.. У меня extra_bbcodes_1.0.3.
Пожалуйста как сделать чтобы внизу страница не перекашивалась?

В общем используй: pun_htmlspecialchars

Например замени этот код:

substr($reduced_post, 0 , 7000)

На этот:

substr(pun_htmlspecialchars($reduced_post), 0 , 7000)

ERROR - MIRROR

Поделиться

13

Re: Reduced Text of Posts 1.0

artoodetoo же вроде делал функцию которая убирала бб-код.

теперь нельзя с её участием этот мод сделать?

Сайт niikto

Поделиться

14

Re: Reduced Text of Posts 1.0

Можно

Сайт hcs

Поделиться

15

Re: Reduced Text of Posts 1.0

вот она вроде Усечение сообщения с сохранением разметки

Сайт niikto

Поделиться

16

Re: Reduced Text of Posts 1.0

свежая вполне рабочая функция обрезки сообщения: punbb-pe.org.ru/viewtopic.php?pid=320#p320

Сайт artoodetoo

Поделиться