Pagina 1 din 1

ajax chat

Scris: 12-Mar-2010, 19:55:34
de yOz
salut. cum pot face un ajax chat dar pe tipul de tema hestia? nu folosesc prosilver sau subsilver2 ci folosesc hestia si difera putin fisierele, are cineva vreun chat gen ajax chat dar care sa functioneze pe tema hestia? folosesc phpbb 3.0.6

Re: ajax chat

Scris: 12-Mar-2010, 20:12:56
de Gotyc
Pentru hestia :

Cod: Selectaţi tot

<!-- IF S_GET_CHAT -->
       <!-- IF S_READ or S_ADD -->
          <!-- BEGIN chatrow -->
             <div id="p{chatrow.MESSAGE_ID}">
                <table cellspacing="0" width="100%">
                   <tr>
                      <td class="row1">
                         <!-- 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">
       <!--
          .shouts {
             width: 100%;
             height:300px;
             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>
       <div class="box">
           {$CA_BLOCK_START}
          {$CA_CAP2_START}
              {SITENAME} {L_CHAT}
          {$CA_CAP2_END}
          <table class="tablebg" cellspacing="{$CA_SPACING}" width="100%">
             <!-- IF S_USER_LOGGED_IN -->
                <tr>
                   <td align="center" class="cat nav" width="85%">
                      <form name="text" id="text" method="post" action="javascript:void(0);" onsubmit="handle_send('add', this)" autocomplete="off">{L_MESSAGE}:
                         <input type="text" tabindex="1" name="message" id="message" class="post" size="28" />
                         <input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" />
                      </form>
                   </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 cellspacing="0" width="100%">
                                  <tr>
                                     <td class="row1">
                                        <!-- 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>
             <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>
           {$CA_BLOCK_END}
       </div>
       <br clear="all" />
       <!-- IF S_CHAT -->
          <!-- INCLUDE overall_footer.html -->
       <!-- ENDIF -->
    <!-- ENDIF -->

Re: ajax chat

Scris: 12-Mar-2010, 23:35:56
de yOz
mersi