Перейти к контенту

Как избавиться от раздвигания по ширине?


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

Ну, пример простой:

 

Здесь это решено:

 

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> Или хотя бы пробел?

Буду рад помощи или совету...

Ссылка на комментарий
Поделиться на других сайтах

Вот таккое решение, оно не очень красивое, и нуждается в доработке, но хотя бы что то

// 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;
 }    
}

Предупреждаю что делить оно делит, но работает криво! Времени толком написать не было.

Ссылка на комментарий
Поделиться на других сайтах

Вотс немного подумав и покопавшись в регулярках получил однострочную модификацию =)

Итак проверено насекомых нет, работает 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.

Ссылка на комментарий
Поделиться на других сайтах

Спасибо большое. Действительно, все гениальное - просто.

Я поставил ограничение - 70. При 800х600 - самое то. И не раздвигает

и показывает нормально. А почему, интересно, этот хак на этот форум до сих пор не добавлен?

Ссылка на комментарий
Поделиться на других сайтах

Угу... а к примеру такой текст он у тебя перенесет?

 

Думаю_что_тут_менее_50_символов_но_почему_то_мне_кажется_что_страница_все_равно_

разьедится

Ссылка на комментарий
Поделиться на других сайтах

Надо или убрать изменение размера. Или так заморочиться, что для каждого размера

(их там всего три) сделать свое ограничение.

 

Хех, посмотрю как это в vBulletin организовано...

Ссылка на комментарий
Поделиться на других сайтах

А кто мешает поставить разделитель на 20-30 символов, я что то не понимаю этого? Зачем изобретать велосипед? И выше приведенный пример не сработает.

Другое дело если ваши пользователи способны в постах генерить слова превышающие этот лимит, но тут еще стоит задуматься куда ты попал :D

Ссылка на комментарий
Поделиться на других сайтах

Стоит вообще запретить/убрать размер 14 да и все. Да и вообще, зачем эти размеры?

bold достаточно. А размер 14 я даже не представляю для чего он нужен, а вообще

размеры гостям ставить надо запретить. Кто берется сделать такую штуку?

 

Можно реализовать это по группам. Да и все.

Ссылка на комментарий
Поделиться на других сайтах

А почему, интересно, этот хак на этот форум до сих пор не добавлен?

 

Если мы командой решим, то поставим такой. Но пока что он не до конца доработан.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.