AJAX Chat для phpBB 3.0.9 под стиль CA Gen2

x00peR
Сообщения: 141
Зарегистрирован: 05 мар 2011
Скажите, какой чат поставить для движка 3.0.9.
Ставил ajax chat, который установлен здесь, но он отображается совсем криво.
9a2c1f78f71379b87bd30f9c8f1c0fa0.jpg

Скачивал отсюда http://bb3x.ru/mods/info/32

В инструкции написано:
browse to chat_install.php?mode=install to install the chat database.
Remove the chat_install.php when you are finished

Вот это выполнилось нормально chat_install.php?mode=install

А когда перехожу по chat_install.php, то выдается белый фон и надпись: you did not select a mode

Как мне исправить эту ошибку? Или может есть какая то альтернатива?

-- добавлено 25 фев 2012, 14:29 --

При повторном переходе по chat_install.php?mode=install выдается это
Общая ошибка
SQL ERROR [ mysqli ]

Table 'phpbb_chat' already exists [1050]

-- добавлено 25 фев 2012, 14:54 --

Скачал отсюда http://startrekguide.com/community/view ... 127&t=8675
Выдает это при переходе сюда /adm/index.php.
Общая ошибка
SQL ERROR [ mysqli ]

Table 'phpbb_chat' doesn't exist [1146]

Аватара пользователя
Distructor
Администратор
Сообщения: 1599
Зарегистрирован: 28 дек 2009
x00peR писал(а):А когда перехожу по chat_install.php, то выдается белый фон и надпись: you did not select a mode
а ты переходи на chat.php

x00peR
Сообщения: 141
Зарегистрирован: 05 мар 2011
Когда перехожу, то выводится чат как на скрине
9a2c1f78f71379b87bd30f9c8f1c0fa0.jpg


-- добавлено 25 фев 2012, 15:41 --

Я так понимаю чат должен выглядеть вот так: http://startrekguide.com/community/chat.php
НО почему у меня наоборот?

Аватара пользователя
Distructor
Администратор
Сообщения: 1599
Зарегистрирован: 28 дек 2009
x00peR писал(а):НО почему у меня наоборот?
потому что у тебя другой стиль с другими CSS

x00peR
Сообщения: 141
Зарегистрирован: 05 мар 2011
А как мне подогнать оформление как на этому форуме?

Аватара пользователя
Distructor
Администратор
Сообщения: 1599
Зарегистрирован: 28 дек 2009

Код: Выделить всё

                           <!-- BEGIN chatrow -->
                                           <li id="p{chatrow.MESSAGE_ID}" class="bg{chatrow.CLASS} row" style="padding:2px 4px;">
                                                       <!-- IF U_ACP or U_MCP -->
                                                           <a href="javascript:void({chatrow.MESSAGE_ID})" title="{L_DELETE_POST}" onclick="delete_post('{chatrow.MESSAGE_ID}')">[x]</a>
                                                       <!-- ENDIF -->
                                                           <span class="author" style="color:#bbb; font-size:10px">{chatrow.TIME} </span>
                                                           <span class="author">{chatrow.USERNAME_FULL} </span>
                                                           <span class="content" style="font-weight:normal;"> > {chatrow.MESSAGE}</span>
                                           </li>
                           <!-- END chatrow -->


хотя возможно еще что-то потребуется поменять. давно это было))

x00peR
Сообщения: 141
Зарегистрирован: 05 мар 2011
chat_body исправил и выдалось вот это
Parse error: syntax error, unexpected $end in Z:\home\real.ru\www\cache\tpl_ca-gen2_chat_body.html.php on line 277
277 строка </div>
Убрал и получилось, что вся инфа:
КТО СЕЙЧАС НА ФОРУМЕ
Сейчас посетителей на форуме: 1, из них зарегистрированных: 1, 0 скрытых и гостей: 0 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (2) на форуме было 25 фев 2012, 15:12

Стала по центру.

Поставил два
</div>
</div>
И получается что инф вернулась обратно. Но Чат таким же остался.


Код: Выделить всё

<!-- IF S_GET_CHAT -->
   <!-- IF S_READ or S_ADD -->
      <!-- BEGIN chatrow -->
         <div id="p{chatrow.MESSAGE_ID}" class="post bg{chatrow.CLASS}">
            <div class="inner"><span class="corners-top"><span></span></span>
               <div class="postbody">
                  <p class="author">{chatrow.TIME} </p>
                  
                  <div class="content">{chatrow.MESSAGE}</div>
               </div>
               <dl class="postprofile" id="profile{postrow.POST_ID}">
                  <dt>{chatrow.USERNAME_FULL}</dt>
               </dl>
                  <!-- IF U_ACP or U_MCP -->
                     <ul class="profile-icons postprofile">
                        <li class="delete-icon">
                           <a href="javascript:void({chatrow.MESSAGE_ID})" title="{L_DELETE_POST}" onclick="delete_post('{chatrow.MESSAGE_ID}')"><span>{L_DELETE_POST}</span></a>
                        </li>
                     </ul>
                  <!-- ENDIF -->
               <span class="corners-bottom"><span></span></span>
            </div>
         </div>
      <!-- END chatrow -->---{LAST_ID}
      <!-- IF S_WHOISONLINE -->---
         <!-- BEGIN whoisrow -->
            <div>
               <div class="inner">
                  <div class="user"><img src="{T_IMAGESET_PATH}/{whoisrow.USER_STATUS}.png" class="online_img" /> : {whoisrow.USERNAME_FULL}</div>
               </div>
            </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">
   <!--
      #act_indicator {
         visibility:hidden;
      }
      .shouts {
         width: 85%;
         height:300px;
         overflow:auto;
         float:left;
      }
      #chat {
         width: 100%;
         text-align:left;
      }
      .postprofile {
         min-height: 5px !important;
      }
      .chatform {
         width: 90%;
         text-align:center;
      }
      .onlinelist {
         width: 15%;
         overflow:auto;
         height:300px;
      }
      .users {
         width: 90%;
         text-align: left;
         text-indent: 5px;
         margin-left:auto;
         margin-right:auto;
      }
      .user {
         width: 95%;
         font-size: 1.1em;
         font-family:Verdana, Arial, Helvetica, sans-serif;
         line-height: 1.4em;
      }
      #act_indicator {
         visibility: hidden;
      }
      .chatinput {width: 80% !important;}
      .online_img {
         vertical-align:middle;
      }
   -->
   </style>
   <!-- IF S_USER_LOGGED_IN -->
      <div class="forabg">
         <div class="inner">
            <span class="corners-top"><span></span></span>
            <div class="chatform" align="center">         
               <form name="text" id="text" method="post" action="javascript:void(0);" onsubmit="handle_send('add', this)" autocomplete="off">
                  <strong style="color: white;">{L_MESSAGE}:</strong> <input type="text" tabindex="1" name="message" id="message" class="inputbox chatinput" />
                  <input type="submit" class="button1" value="{L_SUBMIT}" name="submit" tabindex="6" accesskey="s"/><br />
               </form>
            </div>
            <span class="corners-bottom"><span></span></span>
         </div>
      </div>
   <!-- ENDIF -->
   <div class="forabg" align="left">
      <div class="inner">
         <span class="corners-top"><span></span></span>
         <div class="shouts">
            <div id="chat">
               <!-- BEGIN chatrow -->
                  <div id="p{chatrow.MESSAGE_ID}" class="post bg{chatrow.CLASS}">
                     <div class="inner"><span class="corners-top"><span></span></span>
                        <div class="postbody">
                           <p class="author">{chatrow.TIME} </p>
                           
                           <div class="content">{chatrow.MESSAGE}</div>
                        </div>
                        <dl class="postprofile" id="profile{postrow.POST_ID}">
                           <dt>{chatrow.USERNAME_FULL}</dt>
                        </dl>
                           <!-- IF U_ACP or U_MCP -->
                              <ul class="profile-icons postprofile">
                                 <li class="delete-icon">
                                    <a href="javascript:void({chatrow.MESSAGE_ID})" title="{L_DELETE_POST}" onclick="delete_post('{chatrow.MESSAGE_ID}')"><span>{L_DELETE_POST}</span></a>
                                 </li>
                              </ul>
                           <!-- ENDIF -->
                        <span class="corners-bottom"><span></span></span>
                     </div>
                  </div>
               <!-- END chatrow -->
            </div>
         </div>
         <div class="onlinelist bg1">
            <div class="users" id="whois_online">
               <!-- BEGIN whoisrow -->
                  <div>
                     <div class="inner">
                        <div class="user"><img src="{T_IMAGESET_PATH}/{whoisrow.USER_STATUS}.png" class="online_img" /> {whoisrow.USERNAME_FULL}</div>
                     </div>
                  </div>
               <!-- END whoisrow -->
            </div>
         </div>
         <span class="corners-bottom"><span></span></span>
      </div>
   </div>
   <div class="forabg" align="center">
      <div class="inner">
         <span class="corners-top"><span></span></span>
         <div class="post">
            <div id="author">{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>
            </div>
         </div>
         <span class="corners-bottom"><span></span></span>
      </div>
   </div>
   <!-- IF S_CHAT -->
      <!-- INCLUDE overall_footer.html -->
   <!-- ENDIF -->
<!-- ENDIF -->

chat_body без изменения

-- добавлено 25 фев 2012, 16:56 --

Завтра с утра поставлю заново все форум и попробую поставить еще раз версию отсюда http://startrekguide.com/community/view ... 127&t=8675
И вставить код в него

Код: Выделить всё

                           <!-- BEGIN chatrow -->
                                           <li id="p{chatrow.MESSAGE_ID}" class="bg{chatrow.CLASS} row" style="padding:2px 4px;">
                                                       <!-- IF U_ACP or U_MCP -->
                                                           <a href="javascript:void({chatrow.MESSAGE_ID})" title="{L_DELETE_POST}" onclick="delete_post('{chatrow.MESSAGE_ID}')">[x]</a>
                                                       <!-- ENDIF -->
                                                           <span class="author" style="color:#bbb; font-size:10px">{chatrow.TIME} </span>
                                                           <span class="author">{chatrow.USERNAME_FULL} </span>
                                                           <span class="content" style="font-weight:normal;"> > {chatrow.MESSAGE}</span>
                                           </li>
                           <!-- END chatrow -->

Завтра отпишусь тогда что получилось.

А то я уже запутался где какая версия стоит и где что наменял :(

Аватара пользователя
Distructor
Администратор
Сообщения: 1599
Зарегистрирован: 28 дек 2009
x00peR писал(а):chat_body без изменения
я копировал как раз из него..

прикрепил полностью файл chat_body.html, отредактированный мной под стиль CA Gen2
Вложения
chat_body.zip    3.01 КБ • 87 скачиваний

x00peR
Сообщения: 141
Зарегистрирован: 05 мар 2011
Хотелось бы сделать так: чтобы при нажатии на ник - ник бы появлялся в строке сообщения.
Чтобы цвета ников были согласно легенде.
Чтобы отображались смайлы, а не их коды.
На главной странице написано что чат обновляется каждые 5 секунд, на самом деле каждые 15.
При переходе на страничку чата написано что через 15 и обновляется действильно через 15.

И теперь самое главное )))
Если на главной странице написал хоть одно сообщение в чате, то каждые 15 секунд оно появляется снова и снова и флудит весь чат ))))) Уже 400 сообщений )))))

А на отдельной странице чата сообщений также размножаются, но после обновления странице пропадают.

-- добавлено 25 фев 2012, 22:37 --

Вот стиль прикрепил свой на всякий случай.

-- добавлено 25 фев 2012, 23:07 --

Нету

Код: Выделить всё

<link href="{T_THEME_PATH}/large.css" rel="alternate stylesheet" type="text/css" title="A++" />

Есть

Код: Выделить всё

<link href="{T_THEME_PATH}/print.css" rel="stylesheet" type="text/css" media="print" title="printonly" />

Нету

Код: Выделить всё

<li class="icon-faq"><a href="{U_FAQ}" title="{L_FAQ_EXPLAIN}">{L_FAQ}</a></li>

Есть

Код: Выделить всё

<li<!-- IF $CA_PAGE == 'faq' --> class="current"<!-- ENDIF -->>
            <a href="{U_FAQ}" title="{L_FAQ_EXPLAIN}">{L_FAQ}</a>
        </li>


Вот этого вообще нету - я так понял это просто вставка иконки чата и она не собо нужна. А если нужна, то как быть? Куда вставлять эти строки?
Открыть: styles/prosilver/theme/buttons.css
Найти

Код: Выделить всё

.sitehome, .icon-faq, .icon-members, .icon-home, .icon-ucp, .icon-register, .icon-logout,

Найти в строке

Код: Выделить всё

.icon-faq,

Добавить в строку перед найденным следующий код

Код: Выделить всё

.icon-chat,


Открыть: styles/prosilver/theme/bidi.css
Найти

Код: Выделить всё

.rtl .sitehome, .rtl .icon-faq, .rtl .icon-members, .rtl .icon-home, .rtl .icon-ucp, .rtl .icon-register, .rtl .icon-logout,

Найти в строке

Код: Выделить всё

.rtl .icon-faq,

Добавить в строку перед найденным следующий код

Код: Выделить всё

.rtl .icon-chat,


Открыть: styles/prosilver/theme/colours.css
Найти

Код: Выделить всё

.icon-faq                  { background-image: url("{T_THEME_PATH}/images/icon_faq.gif"); }

Добавить перед

Код: Выделить всё

.icon-chat                  { background-image: url("{T_THEME_PATH}/images/icon_chat.gif"); }



Поставил новый движок и залил туда тему.
Поставил chat_body из этой темы.
Смайлы появляются. Всего остального что описывал выше нету.
А имеено:
Хотелось бы сделать так: чтобы при нажатии на ник - ник бы появлялся в строке сообщения.
Чтобы цвета ников были согласно легенде.
На главной странице написано что чат обновляется каждые 5 секунд, на самом деле каждые 15.
При переходе на страничку чата написано что через 15 и обновляется действильно через 15.

Вот лог чата:
[x] меньше минуты назад cagen2 > 5
[x] меньше минуты назад cagen2 > 4
[x] меньше минуты назад cagen2 > 3
[x] меньше минуты назад cagen2 > 2
[x] меньше минуты назад cagen2 > 1
[x] меньше минуты назад cagen2 > 5
[x] меньше минуты назад cagen2 > 4
[x] меньше минуты назад cagen2 > 3
[x] меньше минуты назад cagen2 > 2
[x] меньше минуты назад cagen2 > 1
[x] меньше минуты назад cagen2 > 4
[x] меньше минуты назад cagen2 > 3
[x] меньше минуты назад cagen2 > 2
[x] меньше минуты назад cagen2 > 1
[x] меньше минуты назад cagen2 > 3
[x] меньше минуты назад cagen2 > 2
[x] меньше минуты назад cagen2 > 1
[x] меньше минуты назад cagen2 > 2
[x] меньше минуты назад cagen2 > 1
[x] меньше минуты назад cagen2 > 1


Это я написал поочереди 1, 2, 3, 4, 5. Выводится непонтяно как.
После обновления страницы выводится так:
[x] меньше минуты назад cagen2 > 5
[x] меньше минуты назад cagen2 > 4
[x] меньше минуты назад cagen2 > 3
[x] меньше минуты назад cagen2 > 2
[x] 1 минуту назад cagen2 > 1


Обновление идет каждые 15 секунд хотя написано что каждые 5.
Ох и головоломка с этим чатом :(

-- добавлено 27 фев 2012, 13:56 --

Можно как то это починить?
Вложения
ca_gen2.zip    237.04 КБ • 86 скачиваний

Аватара пользователя
Distructor
Администратор
Сообщения: 1599
Зарегистрирован: 28 дек 2009
если не менять ничего в моде, то сообщения не дублируются?
если не дублируются, то изменяй только оформление не трогая js вставки

x00peR
Сообщения: 141
Зарегистрирован: 05 мар 2011
Если ничего не менять, то все работает норм.
Я только chat_body отсюда вставил и все.

Аватара пользователя
Distructor
Администратор
Сообщения: 1599
Зарегистрирован: 28 дек 2009
у меня он более старой версии и доработанный "под себя".
просто поправь оформление в стандартном, не заменяя весь код полностью


Вернуться в «phpBB3»