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

Интеграция 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

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

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

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

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

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

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

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

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

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

Зарузка...

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

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

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