B.X Опубликовано 9 Июня 2003 Жалоба Поделиться Опубликовано 9 Июня 2003 Ну, пример простой: Здесь это решено: http://www.vbulletin.com/admindemo/showthr...ostid=11#post11 Теперь о собственных попытках:Делаю все в Post.php // Open: source/Post.php // find: $ibforums->vars['max_post_length'] = $ibforums->vars['max_post_length'] ? $ibforums->vars['max_post_length'] : 2140000; // add below: $ibforums->vars['max_word_length'] = $ibforums->vars['max_word_length'] ? $ibforums->vars['max_word_length'] : 50; // find: if (strlen( $HTTP_POST_VARS['Post'] ) > ($ibforums->vars['max_post_length']*1024)) { $std->Error( array( LEVEL => 1, MSG => 'post_too_long') ); } // add below: if (strlen( $HTTP_POST_VARS['Post'] ) > ($ibforums->vars['max_word_length']*1)) { $std->Error( array( LEVEL => 1, MSG => 'post_too_long') ); } Что надо записать вместо этого, в последней строке:$std->Error( array( LEVEL => 1, MSG => 'post_too_long') ); Чтобы он выводил вместо сообщения об ошибке просто тег <br> Или хотя бы пробел?Буду рад помощи или совету... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 12 Июня 2003 Жалоба Поделиться Опубликовано 12 Июня 2003 Вот таккое решение, оно не очень красивое, и нуждается в доработке, но хотя бы что то// Open: source/Post.php // find: $this->obj['post_errors'] = $this->parser->error; // add below: $text = explode("\r\n", $post['post']); $post['post'] =''; foreach ($text as $key=>$val) { $words = explode(" ", $val); foreach ($words as $key1=>$word){ unset($tmp); if (($length = strlen($word))>50){ $needwordnumb = round($length/50); for ($i=0;$i<=$needwordnumb;$i++) { $tmp[] = substr($word,0,50); $word = substr($word,50,$length); } $word = implode("\r\n",$tmp); } $post['post'] .= " ".$word; } }Предупреждаю что делить оно делит, но работает криво! Времени толком написать не было. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 13 Июня 2003 Жалоба Поделиться Опубликовано 13 Июня 2003 Вотс немного подумав и покопавшись в регулярках получил однострочную модификацию =)Итак проверено насекомых нет, работает 100%// Open: source/Post.php // find: $this->obj['post_errors'] = $this->parser->error; // add below: $post['post'] =preg_replace("/([^\n\r ?&\.\/<>\"\\-]{50})/i"," \\1\n",$post['post']);В фигурных скобочках пишется контролируемая длина. В моем примере это 50. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Total Опубликовано 13 Июня 2003 Жалоба Поделиться Опубликовано 13 Июня 2003 Vanish спасибо - родина тебя не забудет Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
B.X Опубликовано 20 Июня 2003 Автор Жалоба Поделиться Опубликовано 20 Июня 2003 Спасибо большое. Действительно, все гениальное - просто. Я поставил ограничение - 70. При 800х600 - самое то. И не раздвигаети показывает нормально. А почему, интересно, этот хак на этот форум до сих пор не добавлен? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
fromOmsk Опубликовано 21 Июня 2003 Жалоба Поделиться Опубликовано 21 Июня 2003 здесь видимо это не решено ... т.к. при просмотре 800x600 этот форум у меня раздвигается по ширине Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Meowth[OGD] Опубликовано 21 Июня 2003 Жалоба Поделиться Опубликовано 21 Июня 2003 Угу... а к примеру такой текст он у тебя перенесет? Думаю_что_тут_менее_50_символов_но_почему_то_мне_кажется_что_страница_все_равно_разьедится Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 21 Июня 2003 Жалоба Поделиться Опубликовано 21 Июня 2003 Meowth[OGD] ну предложи свой метод решения, раз мой не работает. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Matrix Опубликовано 21 Июня 2003 Жалоба Поделиться Опубликовано 21 Июня 2003 ну а с этим врядли что-то сделаешь без заморочек..... изменение размера - это уже другое дело Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
B.X Опубликовано 21 Июня 2003 Автор Жалоба Поделиться Опубликовано 21 Июня 2003 Надо или убрать изменение размера. Или так заморочиться, что для каждого размера(их там всего три) сделать свое ограничение. Хех, посмотрю как это в vBulletin организовано... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Matrix Опубликовано 21 Июня 2003 Жалоба Поделиться Опубликовано 21 Июня 2003 Или так заморочиться, что для каждого размерада.... вот это кстати тема Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
j0k3r Опубликовано 21 Июня 2003 Жалоба Поделиться Опубликовано 21 Июня 2003 А какое значение в скобках народ пишет?70 подойдёт? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
GiV Опубликовано 21 Июня 2003 Жалоба Поделиться Опубликовано 21 Июня 2003 А кто мешает поставить разделитель на 20-30 символов, я что то не понимаю этого? Зачем изобретать велосипед? И выше приведенный пример не сработает.Другое дело если ваши пользователи способны в постах генерить слова превышающие этот лимит, но тут еще стоит задуматься куда ты попал Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
B.X Опубликовано 24 Июня 2003 Автор Жалоба Поделиться Опубликовано 24 Июня 2003 Стоит вообще запретить/убрать размер 14 да и все. Да и вообще, зачем эти размеры? bold достаточно. А размер 14 я даже не представляю для чего он нужен, а вообщеразмеры гостям ставить надо запретить. Кто берется сделать такую штуку? Можно реализовать это по группам. Да и все. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
IBResource Опубликовано 25 Июня 2003 Жалоба Поделиться Опубликовано 25 Июня 2003 А почему, интересно, этот хак на этот форум до сих пор не добавлен? Если мы командой решим, то поставим такой. Но пока что он не до конца доработан. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
j0k3r Опубликовано 29 Июня 2003 Жалоба Поделиться Опубликовано 29 Июня 2003 Так кто сколько поставил? я - 70. Кстати, восклицательные знаки он не режет! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.