Центр пользователя  |  Ваши сообщения  |  FAQ
Форум поддержки phpBB » phpBB 3.0.x » Модификация phpBB 3.0.x » Моды каталога

AJAX Chat

Обсуждение и поддержка модов, размещённых в каталоге
Пожалуйста, помните, что существуют: Поиск, Правила форума
Возможно, ответ на Ваш вопрос уже имеется: Документация, Статьи, Накопленный опыт
Полезные материалы по этой теме: Инструкция по установке модов

Сообщение 21 янв 2009, 21:34

Название мода: AJAX Chat
Версия мода: 2.0.0B8
Автор: Handyman
Язык: Русский
Сложность установки: Низкая
Длительность установки: 3 мин.
Сборка форума с этим модом: Перейти

Описание:
Чат на AJAX. Администратор может удалять сообщения. Отображается список пользователей, общающихся в чате.

Страница в каталоге модов: Перейти
Раздел каталога модов: Перейти
Размер архива: 37 Kb
mod_robot
Активный участник
 
Сообщений: 60
Зарегистрирован:
18 янв 2009, 15:05
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 07 авг 2012, 10:20

burdel72
есть раздел вакансии. Вот там и обратитесь
crash
Поддержка
 
Сообщений: 11331
Зарегистрирован:
27 янв 2009, 03:22
Благодарил (а): 1 раз.
Поблагодарили: 568 раз.

Сообщение 18 сен 2012, 11:14

Подскажите пожалуйста как настроить AJAX CHAT, чтобы гости форума не могли видеть чат ? а только зарегистрированные могли его видеть и писать.
Аватар пользователя
klimovdima777
Новичок
 
Сообщений: 3
Зарегистрирован:
18 сен 2012, 11:11
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 21 сен 2012, 00:55

Всё настроил сам, теперь гости не видят чат, а только зарегистрированные могут видеть и писать.
В chat_body.html
В самом верху добавьте
Код: выделить все
<!-- IF not S_IS_BOT and S_USER_LOGGED_IN -->

В самом низу добавте
Код: выделить все
<!-- ENDIF -->


Должно быть так
Код: выделить все
<!-- IF not S_IS_BOT and S_USER_LOGGED_IN -->
<!-- IF S_GET_CHAT -->
   <!-- IF S_READ or S_ADD -->
      <!-- BEGIN chatrow -->
         <div id="p{chatrow.MESSAGE_ID}">
            <table class="tablebg" cellpadding="6" cellspacing="0" width="100%">
               <tr class="row{chatrow.CLASS}">
                  <td>
                     <!-- IF U_ACP or U_MCP --><a href="javascript:void({chatrow.MESSAGE_ID})" title="{L_DELETE_POST}" onclick="delete_post('{chatrow.MESSAGE_ID}')"><img src="{T_IMAGESET_LANG_PATH}/icon_post_delete.gif" /></a> <!-- ENDIF -->
                      <b class="postauthor">{chatrow.USERNAME_FULL}</b> « {chatrow.TIME} » &nbsp; <span class="postbody">{chatrow.MESSAGE}</span>
                  </td>
               </tr>
               
            </table>
         </div>
      <!-- END chatrow -->---{LAST_ID}
   <!-- IF S_WHOISONLINE -->---
         <!-- BEGIN whoisrow -->
            <div><img src="{T_IMAGESET_PATH}/{whoisrow.USER_STATUS}.png" class="online_img" /> {whoisrow.USERNAME_FULL}</div>
         <!-- END whoisrow -->---{LAST_TIME}---{DELAY}---{LAST_POST}
      <!-- ENDIF -->
   <!-- ENDIF -->
<!-- ELSE -->
   <!-- IF S_CHAT -->
      <!-- INCLUDE overall_header.html -->
   <!-- ENDIF -->
   <script type="text/javascript">
   <!--
   var fieldname = 'chat';
   var last_time = 0;
   var xmlHttp = http_object();
   var last_id = {LAST_ID};
   var type = 'receive';
   var post_time = {TIME};
   var read_interval = 15000;
   var interval = setInterval('handle_send("read", last_id);', read_interval);

   function handle_send(mode, f)
   {
      if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
      {
         indicator_switch('on');
         type = 'receive';
         param = 'mode=' + mode;   
         param += '&last_id=' + last_id;
         param += '&last_time=' + last_time;         
         param += '&last_post=' + post_time;         
         param += '&read_interval=' + read_interval;         
   
         if (mode == 'add' && document.text.message.value != '')
         {
            type = 'send';
            for(var i = 0; i < f.elements.length; i++)
            {
               elem = f.elements[i];
               param += '&' + elem.name + '=' + encodeURIComponent(elem.value);
            }
            document.text.message.value = '';
         }
         else if (mode == 'delete')
         {
            type = 'delete';
            param += '&chat_id=' + f;
         }
         xmlHttp.open("POST", '{FILENAME}', true);
         xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
         xmlHttp.onreadystatechange = handle_return;
         xmlHttp.send(param);
      }
   }
   
   function handle_return()
   {
      if (xmlHttp.readyState == 4)
      {
         if (type != 'delete')
         {
            results = xmlHttp.responseText.split('---');
            if (results[1])
            {
               if (last_id == 0)
               {
                  document.getElementById(fieldname).innerHTML = results[0];
               }
               else
               {
                  document.getElementById(fieldname).innerHTML = results[0] + document.getElementById(fieldname).innerHTML;
               }
               last_id = results[1];
               if (results[2])
               {
                  document.getElementById('whois_online').innerHTML = results[2];
                  last_time = results[3];
                  if (results[4] != read_interval * 1000)
                  {
                     window.clearInterval(interval);
                     read_interval = results[4] * 1000;
                     interval = setInterval('handle_send("read", last_id);', read_interval);
                     document.getElementById('update_seconds').innerHTML = results[4];
                  }
                  post_time = results[5];
               }
            }
         }
         indicator_switch('off');
      }
   }
   
   function delete_post(chatid)
   {
      document.getElementById('p' + chatid).style.display = 'none';
      handle_send('delete', chatid);
   }
   
   function indicator_switch(mode)
   {
      if(document.getElementById("act_indicator"))
      {
         var img = document.getElementById("act_indicator");   
         if(img.style.visibility == "hidden" && mode == 'on')
         {
            img.style.visibility = "visible";
         }
         else if (mode == 'off')
         {
            img.style.visibility = "hidden"
         }   
      }
   }
   
   function http_object()
   {
      if (window.XMLHttpRequest)
      {
         return new XMLHttpRequest();
      }
      else if(window.ActiveXObject)
      {
         return new ActiveXObject("Microsoft.XMLHTTP");
      }
      else
      {
         document.getElementById('p_status').innerHTML = 'Status: Cound not create XmlHttpRequest Object.  Consider upgrading your browser.';
      }
   }
   -->
   </script>
   <style type="text/css">
   <!--
      .box
      {
         width: 95%;
         margin-left: auto;
         margin-right: auto;
      }
      .shouts {
         width: 100%;
         height:200px;
         overflow:auto;
      }
      #chat {
         width: 100%;
         text-align:left;
      }
      #message {
         width: 65%;
      }
      #whois_online{
         vertical-align:text-top;
         text-align:left;
      }
      .online_img {
         vertical-align:middle;
      }   
      #act_indicator {
         visibility:hidden;
      }
   -->
   </style>
   <script type="text/javascript">
   var form_name = 'text';
   var text_name = 'message';
   var load_draft = false;
   var upload = false;

   // Define the bbCode tags
   var bbcode = new Array();
   var bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[/code]','[list]','[/list]','[list=]','[/list]','[img]','[/img]','[url]','[/url]','[flash=]', '[/flash]','[size=]','[/size]'<!-- BEGIN custom_tags -->, {custom_tags.BBCODE_NAME}<!-- END custom_tags -->);
   var imageTag = false;
   
   function show_advanse_panel()
   {
      var e = document.getElementById('advense_panel');
      
      if (e.style.display == 'block')
      {
         e.style.display = 'none';
         document.getElementById('adv_panel').value = 'Скрыть доп. панель';
      }
      else
      {
         e.style.display = 'block';
         document.getElementById('adv_panel').value = 'Дополнительная панель';
      }
   }
      
   function change_palette()
   {
      e = document.getElementById('colour_palette');
      
      if (e.style.display == 'block')
      {
         e.style.display = 'none';
         document.getElementById('bbpalette').value = 'Цвет шрифта';
      }
      else
      {
         e.style.display = 'block';
         document.getElementById('bbpalette').value = 'Скрыть панель цветов';
      }
   }
</script>
<script type="text/javascript" src="{T_TEMPLATE_PATH}/editor.js"></script>
   <div class="box">
      <table class="tablebg" cellspacing="1" width="100%">
            <tr>
               <th align="center" colspan="2">{SITENAME} {L_CHAT}</th>
            </tr>
         <!-- IF S_USER_LOGGED_IN -->
            <tr>
               <td align="center" class="cat nav" width="85%">
               </td>
               <td align="center" class="cat nav" width="15%">{L_ONLINE_LIST}</td>
         <!-- ENDIF -->
         <tr>
            <td class="row3" style="text-align:left;" height="220">
               <div class="shouts">
                  <div id="chat">
                     <!-- BEGIN chatrow -->
                        <div id="p{chatrow.MESSAGE_ID}">
                           <table class="tablebg" cellpadding="6" cellspacing="0" width="100%">
                              <tr class="row{chatrow.CLASS}">
                                 <td>
                                    <!-- IF U_ACP or U_MCP -->
                                       <a href="javascript:void({chatrow.MESSAGE_ID})" title="{L_DELETE_POST}" onclick="delete_post('{chatrow.MESSAGE_ID}')">
                                          <img src="{T_IMAGESET_LANG_PATH}/icon_post_delete.gif" />
                                       </a>
                                    <!-- ENDIF -->
                                    <b class="postauthor">{chatrow.USERNAME_FULL}</b> « {chatrow.TIME} » &nbsp; <span class="postbody">{chatrow.MESSAGE}</span>
                                 </td>
                              </tr>
                              
                           </table>
                        </div>
                     <!-- END chatrow -->
                  </div>
               </div>
            </td>
            <td class="row1" nowrap="nowrap">
               <div class="shouts">
                  <div id="whois_online">
                     <!-- BEGIN whoisrow -->
                        <div><img src="{T_IMAGESET_PATH}/{whoisrow.USER_STATUS}.png" class="online_img" /> {whoisrow.USERNAME_FULL}</div>
                     <!-- END whoisrow -->
                  </div>
               </div>
            </td>
         </tr>
         <!-- IF S_USER_LOGGED_IN -->
            <tr>
               <td align="center" class="cat nav" colspan="2">
                  <form name="text" id="text" method="post" action="javascript:void(0);" onsubmit="handle_send('add', this)" autocomplete="off">{L_MESSAGE}:
                     <textarea name="message" id="message" rows="1"  tabindex="1" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" class="inputbox" style="height: 60px !important;"></textarea>
                     <input class="button1" type="submit" name="submit" value="{L_SUBMIT}" />
                     <input class="button1" type="submit" value="Дополнительная панель" id="adv_panel"  onclick="show_advanse_panel(); return false;" tabindex="7" accesskey="a"/>
                  </form>
               </td>
         <!-- ENDIF -->
         <tr id="advense_panel" style="display: none;" align="center">
            <td colspan="2">
               <table width="100%">
               <tr id="colour_palette" style="display: none;">
                  <td width="30%"></td>
                  <td align="center">
                     <label>Цвет шрифта:</label>
                     <script type="text/javascript">
                        colorPalette('h', 15, 10, 'center');
                     </script>
                  </td>
               </tr>
               <tr>
                  <td align="center">
                     <input type="button" class="button2" accesskey="b" name="addbbcode0" value=" B " style="font-weight:bold; width: 30px" onclick="bbstyle(0)" title="Жирный текст: [b]text[/b]" />
                     <input type="button" class="button2" accesskey="i" name="addbbcode2" value=" i " style="font-style:italic; width: 30px" onclick="bbstyle(2)" title="Наклонный текст: [i]text[/i]" />
                     <input type="button" class="button2" accesskey="u" name="addbbcode4" value=" u " style="text-decoration: underline; width: 30px" onclick="bbstyle(4)" title="Подчеркнутый текст: [u]text[/u]" />
                     <input type="button" class="button2" accesskey="q" name="addbbcode6" value="Quote" style="width: 50px" onclick="bbstyle(6)" title="Цитата: [quote]text[/quote]" />
                     <input type="button" class="button2" accesskey="c" name="addbbcode8" value="Code" style="width: 40px" onclick="bbstyle(8)" title="Код: [code]code[/code]" />
                     <input type="button" class="button2" accesskey="l" name="addbbcode10" value="List" style="width: 40px" onclick="bbstyle(10)" title="Список: [list]text[/list]" />
                     <input type="button" class="button2" accesskey="o" name="addbbcode12" value="List=" style="width: 40px" onclick="bbstyle(12)" title="Нумерованный список: [list=]text[/list]" />
                     <input type="button" class="button2" accesskey="t" name="addlitsitem" value="[*]" style="width: 40px" onclick="bbstyle(-1)" title="Элемент списка: [*]text[/*]" />
                     <input type="button" class="button2" accesskey="p" name="addbbcode14" value="Img" style="width: 40px" onclick="bbstyle(14)" title="Вставить изображение: [img]http://image_url[/img]" />
                     <input type="button" class="button2" accesskey="w" name="addbbcode16" value="URL" style="text-decoration: underline; width: 40px" onclick="bbstyle(16)" title="Вставить ссылку: [url]http://url[/url] или [url=http://url]URL text[/url]" />
                     <input type="button" class="button2" accesskey="d" name="addbbcode18" value="Flash" onclick="bbstyle(18)" title="Флэш: [flash=width,height]http://url[/flash]" />
                     <select id="addbbcode20" name="addbbcode20" onchange="bbfontstyle('[size=' + document.getElementById('addbbcode20').options[document.getElementById('addbbcode20').selectedIndex].value + ']', '[/size]'); document.getElementById('addbbcode20').selectedIndex = 2;" title="Размер шрифта: [size=x-small]small text[/size]">
                        <option value="50">Очень маленький</option>
                        <option value="85">Маленький</option>
                        <option value="100" selected="selected">Нормальный</option>
                        <option value="150">Большой</option>
                        <option value="200">Очень большой</option>
                     </select>
                     <input type="button" class="button2" name="bbpalette" id="bbpalette" value="Цвет шрифта" onclick="change_palette();" title="Цвет шрифта: [color=red]text[/color] Совет: Вы можете использовать также конструкцию color=#FF0000" />
                     <!-- BEGIN custom_tags -->
                        <input type="button" class="button2" name="addbbcode{custom_tags.BBCODE_ID}" value="{custom_tags.BBCODE_TAG}" onclick="bbstyle({custom_tags.BBCODE_ID})" title="{custom_tags.BBCODE_HELPLINE}" />
                     <!-- END custom_tags -->
                     </td>
                  </tr>
                  <tr>
                     <td align="center">
                        <!-- BEGIN smiley -->
                           <a href="#" onclick="insert_text('{smiley.A_SMILEY_CODE}',true); return false;"><img src="{smiley.SMILEY_IMG}" width="{smiley.SMILEY_WIDTH}" height="{smiley.SMILEY_HEIGHT}" alt="{smiley.SMILEY_CODE}" title="{smiley.SMILEY_DESC}" /></a>
                        <!-- END smiley   -->
                     </td>
                  </tr>
               </table>
            </td>
         </tr>
         <tr>
            <td class="cat" colspan="2" align="center">
               {L_DETAILS}
               <img src="{T_IMAGESET_PATH}/act_indicator.gif" id="act_indicator" />
               <strong>• {L_UPDATES} <span id="update_seconds">{DELAY}</span> {L_UNIT}</strong>
            </td>
         </tr>
      </table>
   </div>
   <!-- IF S_CHAT -->
      <!-- INCLUDE overall_footer.html -->
   <!-- ENDIF -->
<!-- ENDIF -->
<!-- ENDIF -->
Аватар пользователя
klimovdima777
Новичок
 
Сообщений: 3
Зарегистрирован:
18 сен 2012, 11:11
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 17 фев 2013, 12:27

Добрый день. У кого-нибудь есть готовое решение как сделать чтобы при нажатии на ник, ник вставлялся в поле для отправки сообщения, а не открывался профиль пользователя?
например [b]nickname[/b],
frazelli
Новичок
 
Сообщений: 7
Зарегистрирован:
17 фев 2013, 12:19
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 16 июн 2013, 12:45

Такая проблема. Модераторы не могут удалить сообщения чата. При нажатии на крестик сообщения исчезают, как им и положено, но при обновлении страницы появляются вновь )
У админов такое бывало, что не с первого раза удалялись. Но я списывал это на случайности и особенности чата.

Потестировал варианты:
1. Проверено на нескольких аккаунтах модеров, с чисткой кукисов. Сообщения также не удаляются.
2. С имитацией прав модератора из под админа - сообщения удаляются отлично, или не хуже, чем у админа.
3. Если проставить в поле user_type 3 (админ), то не помогает.
4. Если в базе переписать поле user_permissions у модера на админские, и почистить куки, то вроде, начинают удаляться.
Поле Permissions - это перечень прав? Но какие должны быть настроены и где "особые" разрешения для чата, если модератор и так имеет все права для удаления и правки постов на форуме?

После этих тестов, можно конечно, теперь начать разбирать код чата, где там и какие права нужны, но может, кто-то сталкивался?
Feiruzo
Новичок
 
Сообщений: 1
Зарегистрирован:
16 июн 2013, 11:29
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 03 ноя 2013, 18:53

Здравствуйте.
Можно ли как-то реализовать в этом чате полноценную историю сообщений?
В БД они остаются, а вот со страницы затираются более новыми.. Как сделать так,
чтобы история все-таки присутствовала в виде: 20 -30 сообщений чата на странице,
затем количество страниц истории чата в виде 1,2,3,4,5......10,11 и так далее.
shumkov
Новичок
 
Сообщений: 1
Зарегистрирован:
03 ноя 2013, 18:47
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 07 июн 2014, 15:02

Всем привет!
Подскажите глупцу. Где в админ части управлять чатом?
Не могу найти. И еще вопрос. Не могу писать сообщения в чата. Набираю текст, нажимаю Ентер, но сообщение не отправляется и рядом с именем пользователя красный кружек, я так понимаю пользователь ОФФлайн. Как сделать, чтобы пользователь был ОНлайн?

Спасибо.
Bendjamin.Darling
Новичок
 
Сообщений: 3
Зарегистрирован:
05 июн 2014, 23:37
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 06 авг 2014, 10:29

Демо форум с данным чатом не работает, не мог бы кто нибудь ссылку дать с работающим чатом?
master_cifra
Новичок
 
Сообщений: 3
Зарегистрирован:
05 авг 2014, 15:28
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение 06 авг 2014, 10:36

@master_cifra, на сайте bb3x.ru забанили? http://startrekguide.com/
crash
Поддержка
 
Сообщений: 11331
Зарегистрирован:
27 янв 2009, 03:22
Благодарил (а): 1 раз.
Поблагодарили: 568 раз.

Сообщение 06 авг 2014, 10:44

crash писал(а):@master_cifra, на сайте bb3x.ru забанили? http://startrekguide.com/

не уверен, но когда иду по ссылке http://demo.bb3x.ru/sb1/ вижу:
The requested URL /sb1/ was not found on this server.
Apache/2.2.15 (CentOS) Server at demo.bb3x.ru Port 80
Спасибо за ссылку!)
master_cifra
Новичок
 
Сообщений: 3
Зарегистрирован:
05 авг 2014, 15:28
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.


Вернуться в Моды каталога

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Форум поддержки phpBB
2008 - 2017 © BB3x.ru - русская поддержка форума phpBB3
Создано на основе phpBB® Forum Software © phpBB Group
авторов модов
разработчиков скинов
русификаторов
и всех поклонников phpBB3