Chciałbym edytować czat przemo.
Lecz pojawia sie tam js i nie wiem jak edytować kod.
może ktoś pomoże?
plik chat.class.php
<?php class Chat { public function deleteMessages() { $query = 'TRUNCATE TABLE phpbb_chat'; } public function postMessage($name, $message) { $userdata="select * from user WHERE login='$name'"; $id = $feth[0]; $query0 = "UPDATE user SET `chatMsgs` = `chatMsgs`+1 WHERE `id` = '$id'"; $query = 'INSERT INTO phpbb_chat (posted_on, user_name, message) VALUES ("'.date("H:i:s:u").'", "' . $name . '" , "' . $message . '")'; } public function retrieveNewMessages($id = 0) { if ($id > 0) { $query = 'SELECT chat_id, user_name, message, posted_on FROM phpbb_chat WHERE chat_id > ' . $id . ' ORDER BY chat_id ASC'; } else { $query = 'SELECT chat_id, user_name, message, posted_on FROM ' . '(SELECT chat_id, user_name, message, posted_on FROM phpbb_chat ' . 'ORDER BY chat_id DESC ' . 'LIMIT ' 20 ') AS Last50 ' . 'ORDER BY chat_id ASC'; } $response = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'; $response .= '<response>'; $response .= $this->isDatabaseCleared($id); $id = $row['chat_id']; $userName = $row['user_name']; $message = ($board_config['chatEmots']==1) ? $this->emoticons(htmlspecialchars($row['message'])) : htmlspecialchars($row['message']); $response .= '<id>' . $id . '</id>' . '<time>'. $time . '</time>' . '<name><![CDATA[' . $userName . ']]></name>' . '<message><![CDATA[' . $message . ']]></message>'; } } $response = $response . '</response>'; return $response; } public function emoticons($tekst) { $emots = array(':)',';)',':(',';(','',';d','8)','<hurra>','<lol>',':|','<omg>',';p','
',';]',':]');
$repla = array('smile','wink','sad2','sad2','biggrin','biggrin','cool','hooray','lol','neutral','omg','razz','razz','yeah','yeah'); $i=0; foreach ( $emots as $emotka ) { $i++; } return $tekst; } public function isDatabaseCleared($id) { if ($id > 0) { $check_clear = 'SELECT count(*) old FROM phpbb_chat where chat_id<=' . $id; if($row['old']==0) return '<clear>true</clear>'; } return '<clear>false</clear>'; } } ?>
plik chat.js
/* tworzy obiekty XMLHttpRequest, które zaktualizują wiadomości rozmowy i pobiorą wybrany kolor*/ var xmlHttpGetMessages = createXmlHttpRequestObject(); /* zmienna, która określa jak często łączyć się z serwerem*/ var updateInterval = 500; // w milisekundach /* lastMessageID - tidentyfikator najświeższej wiadomości rozmowy */ var lastMessageID = -1; var c = ""; /* tworzy instancję obiektu XMLHttpRequest */ function createXmlHttpRequestObject() { //przechowa referencję do obiektu XMLHttpRequest var xmlHttp; // powinno zadziałać dla przeglądarek nowszych niż IE6 try { // próbuje utworzyć obiekt XMLHttpRequest xmlHttp = new XMLHttpRequest(); } catch(e) { // zakładając że przeglądarką jest IE6 lub starsza "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"); // sprawdza każdy prog id, aż któryś zadziała for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) { try { // próbuje utworzyć obiekt XMLHttpRequest xmlHttp = new ActiveXObject(XmlHttpVersions[i]); } catch (e) {} } } // zwraca utworzony obiekt lub wyświetla wiadomość o błędzie if (!xmlHttp) alert("Błąd podczas tworzenia obiektu XMLHttpRequest."); else return xmlHttp; } /* funkcja rozpoczyna rozmowę; jest wykonywana w chwili załadowania strony */ function init() { // pobiera odwołanie do okna tekstowego, w którym użytkownik wpisuje nową wiadomość var oMessageBox = document.getElementById("messageBox"); // zapobiega uruchomieniu funkcji autouzupełniania oMessageBox.setAttribute("autocomplete", "off"); // rozpoczyna aktualizację nowego okna requestNewMessages(); } /* funkcja wywołana po wciśnięciu przycisku "Wyślij"*/ function sendMessage() { // zachowuje wiadomość w zmiennych lokalnych i czyści okienko tekstowe var oCurrentMessage = document.getElementById("messageBox"); var currentUser = document.getElementById("userName").value; // nie wysyła pustych wiadomości // jeśli musimy wysłać i pobrać wiadomość params = "mode=SendAndRetrieveNew" + "&id=" + encodeURIComponent(lastMessageID) + "&name=" + encodeURIComponent(currentUser) + "&message=" + encodeURIComponent(oCurrentMessage.value); // wywołuje działania po stronie serwera xmlHttpGetMessages.open("POST", "czat/chat.php", true); xmlHttpGetMessages.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlHttpGetMessages.onreadystatechange = handleReceivingMessages; xmlHttpGetMessages.send(params); oCurrentMessage.value = ""; } } /* funkcja wywołana po wciśnięciu przycisku "Usuń wszystko" */ function deleteMessages() { // ustawia flagę, która określa, że wiadomości są usuwane params = "mode=DeleteAndRetrieveNew"; // dodaje wiadomość do kolejki c = params; } /* wysyła asynchroniczne żądanie, aby pobrać nowe wiadomości, wysłać je lub usunąć*/ function requestNewMessages() { // pobiera nazwę użytkownika i kolor ze strony var currentUser = document.getElementById("userName").value; // kontynuuje jeśli xmlHttpGetMessages nie jest pusty if(xmlHttpGetMessages) { try { // nie zaczyna nowej operacji na serwerze, jeśli jakaś jest wykonywana if (xmlHttpGetMessages.readyState == 4 || xmlHttpGetMessages.readyState == 0) { // przechowa parametry potrzebne do wykonania żądania na serwerze if ( c == '' ) { params = "mode=RetrieveNew"+"&id="+lastMessageID; } else { params = c; } // wywołuje działania po stronie serwera xmlHttpGetMessages.open("POST", "czat/chat.php", true); xmlHttpGetMessages.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlHttpGetMessages.onreadystatechange = handleReceivingMessages; xmlHttpGetMessages.send(params); params = ""; c = ""; } else { // sprawdza ponownie czy są nowe wiadomości setTimeout("requestNewMessages();", updateInterval); } } catch(e) { displayError(e.toString()); } } } /* funkcja obsługująca odpowiedź HTTP podczas aktualizacji wiadomości*/ function handleReceivingMessages() { // kontynuuje jeśli proces jest zakończony if (xmlHttpGetMessages.readyState == 4) { // kontynuuje, jeśli status HTTP ma wartość "OK" if (xmlHttpGetMessages.status == 200) { try { // przetwarza odpowiedź serwera readMessages(); } catch(e) { // wyświetla wiadomość o błędzie displayError(e.toString()); } } else { // wyświetla wiadomość o błędzie displayError(xmlHttpGetMessages.statusText); } } } /* funkcja obsługująca odpowiedź serwera podczas aktualizacji wiadomości*/ function readMessages() { // pobiera odpowiedź serwera var response = xmlHttpGetMessages.responseText; // błąd serwera? if (response.indexOf("ERRNO") >= 0 || response.indexOf("błąd:") >= 0 || response.length == 0) throw(response.length == 0 ? "Pusta odpowiedź serwera." : response); // pobiera element dokumentu response = xmlHttpGetMessages.responseXML.documentElement; // pobiera flagę określającą czy okno rozmowy zostało wyczyszczone czy nie clearChat = response.getElementsByTagName("clear").item(0).firstChild.data; // jeśli flaga ma wartość true, trzeba wyczyścić okno wiadomości if(clearChat == "true") { // czyści okno wiadomości i zeruje id document.getElementById("scroll").innerHTML = ""; lastMessageID = -1; } // pobiera tablice z odpowiedzi serwera idArray = response.getElementsByTagName("id"); nameArray = response.getElementsByTagName("name"); timeArray = response.getElementsByTagName("time"); messageArray = response.getElementsByTagName("message"); // przechowuje lokalnie ID ostatniej otrzymanej wiadomości if(idArray.length>0){ lastMessageID = idArray.item(idArray.length - 1).firstChild.data;} // dodaje nową wiadomość do okna rozmowy displayMessages(idArray, nameArray, timeArray, messageArray); // ponownie uruchamia sekwencję setTimeout("requestNewMessages();", updateInterval); } /* funkcja dodająca nowe wiadomości do okna rozmowy */ function displayMessages(idArray, nameArray, timeArray, messageArray) { // każdy przebieg pętli dodaje nową wiadomość for(var i=0; i<idArray.length; i++) { // pobiera szczegóły wiadomości var name = nameArray.item(i).firstChild.data.toString(); var message = messageArray.item(i).firstChild.data.toString(); // tworzy kod HTML, który wyświetli wiadomość var htmlMessage = ""; htmlMessage += "<div class=\"item\" \">"; htmlMessage += message.toString(); htmlMessage += "</div>"; // wyświetla wiadomość displayMessage (htmlMessage); } } // wyświetla wiadomość function displayMessage(message) { // pobiera obiekt scroll var oScroll = document.getElementById("scroll"); // sprawdza, czy pasek jest przewinięty var scrollDown = (oScroll.scrollHeight - oScroll.scrollTop <= oScroll.offsetHeight ); // wyświetla wiadomość oScroll.innerHTML += message; // przewija na dół pasek przewijania oScroll.scrollTop = scrollDown ? oScroll.scrollHeight : oScroll.scrollTop; } // funkcja wyświetlająca komunikat o błędzie function displayError(message) { // wyświetla wiadomość o błędzie displayMessage("Błąd podczas dostępu do serwera!"+message); } /*obsługuje zdarzenie keydown aby określić, kiedy wciśnięto Enter*/ function handleKey(e) { // pobiera zdarzenie e = (!e) ? window.event : e; // pobiera kod wciśniętego znaku code = (e.charCode) ? e.charCode : ((e.keyCode) ? e.keyCode : ((e.which) ? e.which : 0)); // obsługuje zdarzenie keydown if (e.type == "keydown") { // jeśli został wciśnięty Enter (kod 13) if(code == 13) { // wysyła bieżącą wiadomość sendMessage(); } } } /* usuwa spacje z początku i końca łańcucha*/ { return s.replace(/(^\s+)|(\s+$)/g, "") } function pokaz(){ document.getElementById('emots').style.display="block"; } function clos(){ document.getElementById('emots').style.display="none"; } function emota(em){ d = document.getElementById("messageBox").value; document.getElementById("messageBox").value = d+' '+em; }