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

Интеграция Flashchat и IPB 2.x


Timx

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

Может кому поможет ) Есть файл ipbCMS.php, так вот если в нем прописывать русскую кодировку, то ники все равно будут кривые, для моего форума (версия 2.03) подошло редактирование файла ipbCMS2.php , видимо для версии1.0* и 2.0*..разные файлы
Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 171
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

вопрос еще в том в какой кодировке сохранять файл

 

Можно по подробней ? У меня проблема в том что ники отображаються нормально только у тех, кто УЖЕ в чате, то есть файл был сохранен в "правильной" кодировке раз отображаеться, но у всех последующих - УВЫ - кракозяблы :D

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

Рано радовался, проблема в чате 4.06 с кодировкой осталась, хотя в предыдущей версии 3.9.61 все настроилось без особых проблем, кто нибудь разрешил эту задачку, помогите)
Ссылка на комментарий
Поделиться на других сайтах

удалось подружить с русским фчат в 4.06, правда очень криво (быстро нужно было)

inc/classes/message.php

было

 

 	 if($this->created) $xml .= " t=\"" . format_Timestamp($this->created, $tzoffset) . "\"";
	 if(isset($this->txt)) {
   $xml .= "><![CDATA[{$this->txt}]]></{$this->command}>";
	 } else {
   $xml .= "/>";
	 }

стало

 	 if($this->created) $xml .= " t=\"" . format_Timestamp($this->created, $tzoffset) . "\"";
	 if(isset($this->txt)) {
[b]     if($this->command == 'adu' || $this->command == 'lin') {
   $user = ChatServer::getUser($this->userid);
   $xml .= ">{$user['login']}</{$this->command}>";
     }else {[/b]
   $xml .= "><![CDATA[{$this->txt}]]></{$this->command}>";
	 [b]   }[/b]
	 } else {
   $xml .= "/>";
	 }

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

удалось подружить с русским фчат в 4.06, правда очень криво (быстро нужно было)

inc/classes/message.php

было

 

 	 if($this->created) $xml .= " t=\"" . format_Timestamp($this->created, $tzoffset) . "\"";
	 if(isset($this->txt)) {
   $xml .= "><![CDATA[{$this->txt}]]></{$this->command}>";
	 } else {
   $xml .= "/>";
	 }

стало

 	 if($this->created) $xml .= " t=\"" . format_Timestamp($this->created, $tzoffset) . "\"";
	 if(isset($this->txt)) {
[b]     if($this->command == 'adu' || $this->command == 'lin') {
   $user = ChatServer::getUser($this->userid);
   $xml .= ">{$user['login']}</{$this->command}>";
     }else {[/b]
   $xml .= "><![CDATA[{$this->txt}]]></{$this->command}>";
	 [b]   }[/b]
	 } else {
   $xml .= "/>";
	 }

Так у тебя русские ники нормально стало воспринимать?

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

  • 3 недели спустя...
  • 2 недели спустя...
Блин, в версии 4.011 не решилась таки проблема с русиш кодингом в никах. У меня по крайней мере древние рунические письмена :D
Ссылка на комментарий
Поделиться на других сайтах

Вот и FlashChat начали штамповать как-то уж сильно быстро...

Уже вышла версия 4.0.12, но русский так и не появился нормально. Более того, у меня почему-то даже сообщения и те на кракозяблах.

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

А может кто нить уже нормальную версию купленную прислать, не бета на anykey83@mail.ru или дать линк где её можно скачать...

Буду очень благодарен...

(В долгу не останусь)

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

Для полного кайфа и окончательной интеграции чата с форумом я написал мод, который позволяет видеть список людей, сидящих в чате, не выходя в сам чат, т.е. из форума. Для того чтобы вызвать список нужно зайти в меню "Мой помощник" и нажать там на пункт "Сейчас в чате". Итак кому интересно могут пользоваться. Если есть замечания и предложения - пишите.

1. Редактируем файл /sources/misc/stats.php

 

Находим:

     switch($ibforums->input['CODE'])

     {

      case 'leaders':

       $this->show_leaders();

       break;

      case '02':

       $this->do_search();

       break;

      case 'id':

       $this->show_queries();

       break;

      

      case 'who':

       $this->who_posted();

       break;

 

 

Добавляем ниже:

       //loaded by wallk 21.01.2005 to get the list of users in chat

       case 'chat':

       $this->show_chat_users();

       break;

 

 

Находим:

  /*-------------------------------------------------------------------------*/

  // Top 10 Posters

  /*-------------------------------------------------------------------------*/

 

  function show_today_posters()

 

 

Добавляем выше:

  /*-------------------------------------------------------------------------*/

  // Now in chat (written by wallk 21.01.2005)

  /*-------------------------------------------------------------------------*/

 

  function show_chat_users()

  {

  global $ibforums, $DB, $std, $forums;

  

   $this->output .= $this->html->chat_now_header();

     

   //-----------------------------------------

           // Query the DB

           //-----------------------------------------

    

     $store = array();

    

      $DB->query("SELECT COUNT(DISTINCT userid) as cht_cnt FROM ibf_fc_connections");

    

     $ttl_now = $DB->fetch_row();

      $total_now=$ttl_now['cht_cnt'];    

 

      $DB->query("SELECT COUNT(*) as tpost, m.id, m.name, m.joined, m.posts

     FROM ibf_fc_connections f

     INNER JOIN ibf_members m ON (m.id=f.userid)

                         GROUP BY f.userid

       ORDER BY m.name DESC");    

 

  while ($r = $DB->fetch_row())

  {

   $store[] = $r;

  }

 

  if ( $total_now )

  {

   foreach( $store as $idx => $info )

   {

    $info['joined']  = $std->get_date( $info['joined'], 'JOINED' );

   

    $info['posts'] = $std->do_number_format($info['posts']);

   

    $this->output .= $this->html->chat_now_row( $info );

   }

  

  }

  else

  {

   $this->output .= $this->html->chat_now_no_info();

  }

 

  $this->output .= $this->html->chat_now_footer();

 

  $this->page_title = $ibforums->lang['chat_now_title'];

 

  $this->nav = array( $ibforums->lang['chat_now_title'] );

 

}

 

2. Редактирование языковых файлов. Они находятся в директории /lang. Изменения должны быть внесены в аналогичные файлы для всех установленных языков. Перевод осуществляйте самостоятельно. Здесь приведены изменения только для русских языковых файлов.

 

Редактируем файл lang_buddy.php

 

Находим:

'sm_today_posters'   => "10 авторов сегодня",

'sm_all_posters'     => "Лучшие 10 авторов",

'sm_forum_leaders'   => "Администрация",

'sm_todays_posts'    => "Активные темы",

'sm_my_last_posts'   => "10 моих посл. сообщений",

 

Добавляем ниже:

'sm_chat_now'    => "Сейчас в чате",

 

Редактируем файл lang_stats.php

 

Находим:

'no_info'          => "Нет доступной информации",

 

Добавляем ниже:

'no_chat_info'          => "В чате в данный момент никого нет",

'chat_now_title'       => "В данный момент в чате",

 

3. Редактирование скинов. Редактировать нужно все установленные скины. Открываем ACP/Skin manager/'Skin'/Edit Root Skin Template HTML

 

Открываем MyAssistant/main

 

Находим

<a href="java script:redirect_to('&act=Search&CODE=lastten',0)">{ipb.lang['sm_my_last_posts']}</a>

 

Добавляем сразу за этим фрагментом:

<br/><a href="java script:redirect_to('&act=Stats&CODE=chat',0)">{ipb.lang['sm_chat_now']}</a>

 

Открываем Statistics

 

Жмем на кнопку Add Template Bit

В поле New Template Bit Name пишем

chat_now_footer

 

Больше никаких полей менять не надо, в теле шаблона размещаем текст:

<tr>

  <td class="catend" colspan="5"><!-- no content --></td>

</tr>

</table>

</div>

 

Не забываем сохранять шаблон, нажав на одну из кнопок внизу формы.

 

Опять открываем Statistics

 

Жмем на кнопку Add Template Bit

В поле New Template Bit Name пишем

chat_now_header

 

Больше никаких полей менять не надо, в теле шаблона размещаем текст:

<div class="borderwrap">

<div class="maintitle"><{CAT_IMG}> {ipb.lang['chat_now_title']}</div>

<table cellspacing="1">

  <tr>

   <th width="50%" valign="middle">{ipb.lang['member']}</th>

   <th width="30%" align="center" valign="middle">{ipb.lang['member_joined']}</th>

   <th align="center" width="20%" valign="middle">{ipb.lang['member_posts']}</th>

  </tr>

 

Сохраняем шаблон.

 

Еще раз открываем Statistics

 

Жмем на кнопку Add Template Bit

В поле New Template Bit Name пишем

chat_now_no_info

 

Больше никаких полей менять не надо, в теле шаблона размещаем текст:

<tr>

   <td colspan="5" align="center" class="row1" valign="middle">{ipb.lang['no_chat_info']}</td>

  </tr>

 

Сохраняем шаблон.

 

Последний раз открываем Statistics

 

Жмем на кнопку Add Template Bit

В поле New Template Bit Name пишем

chat_now_row

 

В поле New Template Bit Incoming Data Variables пишем

$info=""

 

Больше никаких полей менять не надо, в теле шаблона размещаем текст:

<tr>

   <td class="row1" valign="middle"><a href="{ipb.script_url}showuser={$info['id']}">{$info['name']}</a></td>

   <td align="center" class="row1" valign="middle">{$info['joined']}</td>

   <td align="center" class="row1" valign="middle">{$info['posts']}</td>

  </tr>

 

Сохраняем шаблон.

 

Все, после этого все должно работать

Спасибо. Когда видно кто сидит в чате это просто замечтально.

Но все таки думаю было бы неплохо сделать отдельный блок для phpnuke, где бы отображались пользователи в онлайне + внизу ссылка на сам чат.

У меня был подобный блок для чата phpmychat и за месяц я неплохо раскрутила этот самый чат.

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

Кто-нибудь решил проблему с русскими никами?

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

 

Пробовал конвертить имя и пароль в БД с win-1251 в UTF-8 (с помощью utf8_encode). Не помогает.

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

  • 3 недели спустя...

И все же кто-нибудь смог нормально решить проблему с русскими никами?

Уже FlashChat version 4.1.2 доступен, а проблемы все те же!

При этом рецепт, приведенный на прошлой странице (процитированный вверху этой) у меня приводит просто к белой странице!

Или возвращаться на старую версию 3...?

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

Честно говоря я не понимаю почему пролему с русскими никами решили именно так. (я про решение на прошлой странице)

 

Гораздо логичнее найти проверку типа (код не дословный, ищите похожий с влучае чего)

 

if ((!$username) || ($username=="") || (ereg("[^a-zA-Z0-9_-]",$username)))

и заменить на

if ((!$username) || ($username=="") ||(ereg("[^a-zA-Zа-яА-Я0-9.,_-]",$username)))

 

Вот и всё.

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

Ну вот, теперь заработало.

Ники русскими буквами пишутся в чате.

 

Спасибо, xren!

 

Примерно такой код присутствует в файле /classes/message.php

 

Было:

      if(ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$",$token))

Стало:

      if(ereg("^([0-9,a-z,A-Z,а-я,А-Я]+)([.,_]([0-9,a-z,A-Z,а-я,А-Я]+))*[@]([0-9,a-z,A-Z,а-я,А-Я]+)([.,_,-]([0-9,a-z,A-Z,а-я,А-Я]+))*[.]([0-9,a-z,A-Z,а-я,А-Я]){2}([0-9,a-z,A-Z,а-я,А-Я])?$",$token))

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

Ребята чат хорош, кодировки правятся великолепно, с русским языком и никами проблемы вроде решились, но вот вопрос какой как быть с файлом badwords.php (понимает только английский мат, русский нив какую !) мат русский в этом чате просто процветает , а коль такая проблема появилась так надо бы и киллеров найти..... Суть вопроса можно ли что то сделать чтобы давать временные права на киллерство обычным пользователям а не только модерам ?
Ссылка на комментарий
Поделиться на других сайтах

  • 2 месяца спустя...

Никак не могу починить, пробовал все варианты, написаные в этом топики, все равно получаю:

 

[��adu] 9:46 pm: тест

а должно быть

[Биг] 9:46 pm: тест

 

было бы [���], я бы еще понял что к чему, но [��adu>] меня убивает.

 

Ранее (до изменения по посту 95) было вобще:

 

[??]</adu]<uclc id="503" u="5" t="3:53 pm"><![CDATA[16777215] 3:53 pm: тест

 

Еще раз хочу уточнить, в какой кодировке надо сохратить изменения принесенные в 95 посте (хотя делал вроде во всех кодировках)? Надо ли до изменения 95 делать еще какие изменения?

 

P.S. Все версии лецензионные и последние. 4.3.3 и 2.1.1

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

Зарузка...

×
×
  • Создать...

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

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