Shoutbox - миниЧат для Вашего сайта!

Хотели бы вы иметь на своем сайте мини-чат? Думаю, многие скажут "ДА". Сегодня мы рассмотрим замечательный мини-чат Shoutbox, он работает на php, mysql и jQuery. Прежде чем начать работу, посмотрите Демо (после советую до конца прочитать урок, дабы не делать поспешных выводов) 

Не правда ли классно? Теперь о том, как такую вещь реализовать.

Скрипт для работы использует БД Mysql. Давайте создадим в базе таблицу shoutbox для упрощения задачи Вам и себе привожу готовый SQL-запрос:

Code
CREATE TABLE `shoutbox` (
`id` INT( 5 ) NOT NULL AUTO_INCREMENT ,
`date` TIMESTAMP NOT NULL ,
`user` VARCHAR( 25 ) NOT NULL ,
`message` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )  
) CHARACTER SET = utf8;


Обрабатывает сообщения файл shoutbox.php. Найдите в нем следующие строки и отредактируйте:

Code
define("HOST", "Ваш MySql-хост - обычно это localhost");
define("USER", "имя пользователя MySql");
define("PASSWORD", "пароль к вашей MySql ");
define("DB", "Имя БД");


Думаю, с этим сложностей быть не должно smile Еще пара настроек в этом же файле:

Code
header ("Location: index.html");
$res = getContent($link, 50);


header - Здесь мы отправляем нерадивых юзеров, которые пытаются напрямую вызвать работу файла, shoutbox.php на страницу index.html.
getContent($link, 50) - количество сообщений на страницу. В данном примере будет выбрано 50 последних сообщений.

Теперь в нужном месте вставляем форму отправки сообщения и div-контейнер, который будет содержать последние сообщения чата:

Code
<form method="post" id="form">
  <table>
  <tr>
  <td><label>Ваше имя</label></td>
  <td><input class="text user" id="nick" type="text" MAXLENGTH="25" /></td>
  </tr>
  <tr>
  <td><label>Сообщение</label></td>
  <td><input class="text" id="message" type="text" MAXLENGTH="255" /></td>
  </tr>
  <tr>
  <td></td>
  <td><input id="send" type="submit" value="Отправить" /></td>
  </tr>
  </table>
  </form>
<div id="container">
<div class="content">
  <h1>Последние сообщения</h1>
  <div id="loading"><img src="css/images/loading.gif" alt="Загрузка..." /></div>
  <ul>
  </div>
</div>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="shoutbox.js"></script>


Обычная форма с 3-ми input. После формы идет div#container, пусть вас не смущает наличие одинокого тега p. Все сообщения выводяться в виде

Имя - сообщение

(см. файл shoutbox.php). И в конце мы подключаем jQuery и сам скрипт shoutbox.js (можете это сделать и традиционно между тегами head)

CSS здесь отвечает только за внешний вид чата. Поэтому подробно рассматривать его в этом уроке не будем. Просто не забудьте включить стили из файла css/general.css на вашу страницу, или, что еще лучше, сделайте индивидуальный дизайн. Единственное что стоит помнить, id и class из приведенного выше кода использует и скрипт shoutbox.js, поэтому если вы будете изменять имена id и class на свои, не забудьте сделать это также в shoutbox.js

На сегодня это все. Пусть этот урок станет для вас подарком на первомайские праздники, думаю, этот мини-чат вы найдете куда пристроить wink

P.S. Для тех кто хочет из этого скрипта получить более полноценный чат, слегка доработаем оригинальный скрипт:

Смысл в том, что мы будем обновлять содержание окошка чата через определенное время. Для этого нам понадобится плагин, который существенно упростит задачу jquery.timers.js. Его подключаем как обычно, а в shoutbox.js добавляем следующие строки:

Code
$(".content > p").everyTime(30000, function() {
  $.ajax({
  type: "POST", url: "shoutbox.php", data: "action=update",
  complete: function(data){
  loading.fadeOut();
  messageList.html(data.responseText);
  messageList.fadeIn("fast");
  }
  });
   
});
  


everyTime(30000) - время в милисекундах, через которое содержимое окна будет обновляться. В примере стоит 30 секунд.
Скачать плагин с исправленным shoutbox.js здесь. Демка работает по первоначальному варианту, но вы можете легко протестировать обновленный скрипт у себя на сайте.

P.P.S исправляем проблему букв "И" и "ш"
Я решил эти буквы просто заменить на их символы из "Таблица символов Unicode". Найдите строчку case "insert": (66-ая строка) в файле shoutbox.php и замените содержимое case на этот код: напишите следующее правило:

Code
$message = str_replace("ш", "ш", $_POST['message']);  
$message = str_replace("И", "И", $message);  
$nick = str_replace("ш", "ш", $_POST['nick']);  
$nick = str_replace("И", "И", $nick);
echo insertMessage($nick, $message);


Решение достаточно простое: мы просто перед тем как новое сообщение добавить в БД, заменяем проблемные буквы на них же, но в символьном варианте

  • FalleN

  • 9906

  • 1

  • 308

Ссылки на статью:

Похожие статьи: