Модуль чата для фф от фс

  • Автор темы Pizza52
  • Дата начала
Pizza52
Участник
Сообщения
335
Реакции
21
В общем в одной теме из форума этого был выложен мод чата ФС для ФФ, сделал всё по инструкции, залил базы, прописал всё везде, вроде бы всё красиво, но!
В чат захожу, всё отлично смотрится, набираю сообщение в поле ввода, что отправить надо энтер нажать, нажимаю и никакой реакции... Где может быть ошибка?
Вот ссылка на сам арфив файла чата, все его файлы тут.. http://www.fayloobmennik.net/5908520
 
Последнее редактирование:
Pizza52
Участник
Сообщения
335
Реакции
21
если нужно, могу загрузить исходные коды файлов которые в модуле...
В инструкции было написано как примотать модуль:

1) делаем зарос в БД

ALTER TABLE `db_users_a` ADD `ava` VARCHAR( 255 ) NOT NULL
ALTER TABLE `db_users_a` ADD `chat_moder` INT( 1 ) NOT NULL DEFAULT '0'
ALTER TABLE `db_users_b` ADD `chat` INT NOT NULL DEFAULT '0'
ALTER TABLE `db_users_b` ADD `chat_money` DOUBLE( 10, 2 ) NOT NULL DEFAULT '0'
ALTER TABLE `db_users_a` ADD `ban_chat` INT( 1 ) NOT NULL DEFAULT '0'

CREATE TABLE IF NOT EXISTS `db_chat_message` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL DEFAULT '0',
`user_name` varchar(255) NOT NULL,
`user_to_id` int(11) NOT NULL DEFAULT '0',
`user_to_name` varchar(255) CHARACTER SET cp1250 NOT NULL,
`time_add` int(11) NOT NULL DEFAULT '0',
`private` tinyint(1) NOT NULL DEFAULT '0',
`message` text(255) NOT NULL,
`ava` varchar(255) NOT NULL,
`user_status` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

CREATE TABLE IF NOT EXISTS `db_chat_online` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`user_name` varchar(255) CHARACTER SET utf8 NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '0',
`color` varchar(10) CHARACTER SET utf8 NOT NULL,
`time_add` int(11) NOT NULL,
`ava` varchar(255) NOT NULL,
`banan` int(10) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

2) открываем файл .htaccess и добавляем

RewriteRule ^account/chat(/?)+$ index.php?menu=account&sel=chat [L]
RewriteRule ^account/chat/noban/([a-zA-Z0-9]+)(/?)+$ index.php?menu=account&sel=chat&noban=$1 [L]
3) открываем файл /pages/account.php и добавляем

case "chat": include("pages/account/_chat.php"); break;

4) открываем файл /inc/_user_menu.php и добавляем

<div class="field-gr"><a href="/account/chat">Чат</a></div>

5) открываем файл /classes/_class.db.php и добавляем

function FetchAssoc(){
//if($this->LastQuery)
return mysqli_fetch_assoc($this->LastQuery);
}

6) всё!
 
Pizza52
Участник
Сообщения
335
Реакции
21
Запрос к бд делал таким образом, сначала по одной строке первые 5 строк сделал запросами.... После чего второй столб занёс в файл sql и залил, с третим столбом так же сделал...
Вызывает подозрение последний пункт: вставить в конфиг бд
function FetchAssoc(){
//if($this->LastQuery)
return mysqli_fetch_assoc($this->LastQuery);
}
Для чего слэши эти во второй строке? Они же делают не активной её...
 
Pizza52
Участник
Сообщения
335
Реакции
21
Ну что некому помочь? Или у барыг жаба давит, они ведь это продавать хотят))
 
Pizza52
Участник
Сообщения
335
Реакции
21
Посмотрит может кто* ? А то человек выклал на публику, а работает не работает то что выклал ему видимо пофиг...
 
fhjktrdf
Участник
Сообщения
144
Реакции
10
Pizza52 написал(а):
Посмотрит может кто* ? А то человек выклал на публику, а работает не работает то что выклал ему видимо пофиг...
Так что ты не пишешь полностью. скинул только инструкцию. Чат у тебя на ajax. проблема именно там. Скрин чата выложи. Он скорее всего переделан, нажимай CTRL+ENTER.
 
Pizza52
Участник
Сообщения
335
Реакции
21
fhjktrdf написал(а):
Так что ты не пишешь полностью. скинул только инструкцию. Чат у тебя на ajax. проблема именно там. Скрин чата выложи. Он скорее всего переделан, нажимай CTRL+ENTER.
не помогают эти комбинации, там ошибка в самом файле JS и вот код из него http://codepad.org/TC2EDT5V
 
fhjktrdf
Участник
Сообщения
144
Реакции
10
Pizza52 написал(а):
не помогают эти комбинации, там ошибка в самом файле JS и вот код из него http://codepad.org/TC2EDT5V
при нажатии enter что происходит? Не надо ссылки кидай сюда в спойлере код
 
Pizza52
Участник
Сообщения
335
Реакции
21
fhjktrdf написал(а):
при нажатии enter что происходит? Не надо ссылки кидай сюда в спойлере код
ничего не происходит.. Тишина .. Там ссылка на код... А тут спойлеры это хрень какая то
 
Pizza52
Участник
Сообщения
335
Реакции
21
  • #10
function scroll()
{
$("#chat-message").scrollTop(document.getElementById('chat-message').scrollHeight);
}

function descchange(elem)
{
if (elem.value.length > 255) {
elem.value = elem.value.substr(0,255);
}
document.forms['mailform'].scount.value = 'Осталось '+(255-elem.value.length)+' символов';
}

function mailappendtag(text1, text2)
{
if (document.forms['mailform']) {
if ((document.selection))
{
document.forms['mailform'].message.focus();
document.forms['mailform'].document.selection.createRange().text = text1+document.forms['mailform'+ndx].document.selection.createRange().text+text2;
} else
if (document.forms['mailform'].message.selectionStart !== undefined) {
var element = document.forms['mailform'].message;
var str = element.value;
var start = element.selectionStart;
var length = element.selectionEnd - element.selectionStart;
element.value = str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length);
} else document.forms['mailform'].message.value += text1+text2;
}
return true;
}

function appendcommtag(text1, text2)
{
if ((document.selection))
{
document.mailform.message.focus();
document.mailform.document.selection.createRange().text = text1+document.mailform.document.selection.createRange().text+text2;
} else if(document.mailform.message.selectionStart !== undefined) {
var element = document.mailform.message;
var str = element.value;
var start = element.selectionStart;
var length = element.selectionEnd - element.selectionStart;
element.value = str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length);
} else document.mailform.message.value += text1+text2;
}

function AppendSmile(asmile) {
appendcommtag(asmile,'');
}

function chat_control(name)
{
var sm = getCookie('ch'+name);

if (sm == '1')
{
document.cookie="ch"+name+"=0";
$(".chat-control-"+name).removeClass("ch-"+name+"-yes");
$(".chat-control-"+name).addClass("ch-"+name+"-no");
}
else
{
document.cookie="ch"+name+"=1";
$(".chat-control-"+name).removeClass("ch-"+name+"-no");
$(".chat-control-"+name).addClass("ch-"+name+"-yes");
}

if (name == 'smile')
{
$(".smiles").toggle();
}
}

function chat_ban(id, elem)
{
issend = confirm('Вы уверены что хотите забанить пользователя?');

if (issend)
{
// var test = $(elem).parent();
//
// var test2 = $(test).attr('name');
//
// $('.'+test2).css('text-decoration', 'line-through');
//
// $(elem).remove();
//
// $('.'+test2).after('<span class="chat-ban" onclick="chat_razban('+id+', this);"></span>');

var data = {'mode':'ban_users', 'id':id};

//var bantime = $("#chat-ban-time").val();
//var data = {'mode':'ban_users', 'id':id, 'bantime':bantime};

$.ajax({
cache: false,
data: data,
dataType: "json",
type: "post",
timeout: 5000,
url: '/ajax/us-chat.php',
success: function(data) {
if (data.status == 'yes')
{
$('#entermsg').html('<div class=msgbox-success>Пользователь забанен</div>');

}
else
{
$('#entermsg').html('<div class=msgbox-error>Не получается почему-то...</div>');
}
}
});

return false;
}
}

function getCookie(name) {
var cookie = " " + document.cookie;
var search = " " + name + "=";
var setStr = null;
var offset = 0;
var end = 0;
if (cookie.length > 0) {
offset = cookie.indexOf(search);
if (offset != -1) {
offset += search.length;
end = cookie.indexOf(";", offset)
if (end == -1) {
end = cookie.length;
}
setStr = unescape(cookie.substring(offset, end));
}
}
return(setStr);
}

document.onkeyup = function(e)
{
e = e || window.event;
if (e.keyCode === 13)
{
if ($('#message').is( ":focus" ))
{
send_message();
}
else
{
send_reklama();
}
}
}

function send_reklama()
{
var message = $(".truuu").val();

var data = {'mode':'add_reklama', 'message':message};

$.ajax({
cache: false,
data: data,
dataType: "json",
type: "post",
timeout: 5000,
url: '/ajax/us-chat.php',
success: function(data) {
if (data.status == 'yes')
{
alert('Выполнено!');
}
}
});

return false;
}

function send_message()
{
var message = $("#message").val();
var touser = $("#message-to-user").text();
var private = $('.private-check').is(':checked') && touser !== '' ? '1' : '0';
var data = {'mode':'add_message', 'message':message, 'touser':touser, 'private':private};
var tm;

function hidemsg()
{
$('#entermsg').fadeOut('slow');
if (tm) clearTimeout(tm);
}

if (!message) return;

$.ajax({
cache: false,
data: data,
dataType: "json",
type: "post",
timeout: 5000,
url: '/ajax/us-chat.php',
success: function(data) {
if (data.status == 'yes')
{
$('#chat-message').append(data.html);
$('#message').val('');
if (getCookie('chsound') == '1' || getCookie('chsound') === null) { $("#sound-message-send")[0].play(); }

if (getCookie('chscroll') == '1' || getCookie('chscroll') === null)
{
scroll();
}
}
else
{
$('#entermsg').show();
$('#entermsg').html('<span class="msgbox-error">'+data.msg+'</span>');
tm = setTimeout(function() { hidemsg(); }, 5000);
if (getCookie('chsound') == '1' || getCookie('chsound') === null)
{
$("#sound-message-error")[0].play();
}
}
}
});

return false;
}


function delmsg(id)
{
issend = confirm("Вы уверены что хотите удалить сообщение?");

if (issend)
{

var data = {'mode':'del_message', 'id':id};

$.ajax({
cache: false,
data: data,
dataType: "json",
type: "post",
timeout: 5000,
url: '/ajax/us-chat.php',
success: function(data) {
if (data.status == 'yes')
{
$('#entermsg').hide();
$('#'+id).remove();
$('#message').val('');

if (getCookie('chscroll') == '1' || getCookie('chscroll') === null)
{
scroll();
}
}
else
{
$('#entermsg').html('<span class="msgbox-error">'+data.msg+'</span>');

var tm;

function hidemsg()
{
$('#entermsg').fadeOut('slow');
if (tm) clearTimeout(tm);
}

tm = setTimeout(function() { hidemsg() }, 2000);
}
}
});

return false;
}
}

function refresh(id)
{
var new_online = $('#count-online').val();

var data = {'mode':'refresh', 'id':id, 'online':new_online};

$.ajax({
cache: false,
data: data,
dataType: "json",
type: "post",
timeout: 5000,
url: '/ajax/us-chat.php',
success: function(data) {
if (data.status == 'yes')
{
$('#chat-message').append(data.html);
$('#chat-online').html(data.html2);

if (getCookie('chsound') == '1' || getCookie('chsound') === null)
{
if (data.html) { $("#sound-message-send")[0].play(); }
if (data.sound) { $("#sound-message-get")[0].play(); }

$('#count-online').val(data.sound_new);

if (data.sound_new > new_online)
{
$("#sound-message-new")[0].play();
}
}

if ((getCookie('chscroll') == '1' || getCookie('chscroll') === null) && data.html !== '')
{
scroll();
}
}
}
});

return false;
}
fhjktrdf написал(а):
при нажатии enter что происходит? Не надо ссылки кидай сюда в спойлере код
 
fhjktrdf
Участник
Сообщения
144
Реакции
10
  • #11
Pizza52 написал(а):
function scroll()
{
$("#chat-message").scrollTop(document.getElementById('chat-message').scrollHeight);
}

function descchange(elem)
{
if (elem.value.length > 255) {
elem.value = elem.value.substr(0,255);
}
document.forms['mailform'].scount.value = 'Осталось '+(255-elem.value.length)+' символов';
}

function mailappendtag(text1, text2)
{
if (document.forms['mailform']) {
if ((document.selection))
{
document.forms['mailform'].message.focus();
document.forms['mailform'].document.selection.createRange().text = text1+document.forms['mailform'+ndx].document.selection.createRange().text+text2;
} else
if (document.forms['mailform'].message.selectionStart !== undefined) {
var element = document.forms['mailform'].message;
var str = element.value;
var start = element.selectionStart;
var length = element.selectionEnd - element.selectionStart;
element.value = str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length);
} else document.forms['mailform'].message.value += text1+text2;
}
return true;
}

function appendcommtag(text1, text2)
{
if ((document.selection))
{
document.mailform.message.focus();
document.mailform.document.selection.createRange().text = text1+document.mailform.document.selection.createRange().text+text2;
} else if(document.mailform.message.selectionStart !== undefined) {
var element = document.mailform.message;
var str = element.value;
var start = element.selectionStart;
var length = element.selectionEnd - element.selectionStart;
element.value = str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length);
} else document.mailform.message.value += text1+text2;
}

function AppendSmile(asmile) {
appendcommtag(asmile,'');
}

function chat_control(name)
{
var sm = getCookie('ch'+name);

if (sm == '1')
{
document.cookie="ch"+name+"=0";
$(".chat-control-"+name).removeClass("ch-"+name+"-yes");
$(".chat-control-"+name).addClass("ch-"+name+"-no");
}
else
{
document.cookie="ch"+name+"=1";
$(".chat-control-"+name).removeClass("ch-"+name+"-no");
$(".chat-control-"+name).addClass("ch-"+name+"-yes");
}

if (name == 'smile')
{
$(".smiles").toggle();
}
}

function chat_ban(id, elem)
{
issend = confirm('Вы уверены что хотите забанить пользователя?');

if (issend)
{
// var test = $(elem).parent();
//
// var test2 = $(test).attr('name');
//
// $('.'+test2).css('text-decoration', 'line-through');
//
// $(elem).remove();
//
// $('.'+test2).after('<span class="chat-ban" onclick="chat_razban('+id+', this);"></span>');

var data = {'mode':'ban_users', 'id':id};

//var bantime = $("#chat-ban-time").val();
//var data = {'mode':'ban_users', 'id':id, 'bantime':bantime};

$.ajax({
cache: false,
data: data,
dataType: "json",
type: "post",
timeout: 5000,
url: '/ajax/us-chat.php',
success: function(data) {
if (data.status == 'yes')
{
$('#entermsg').html('<div class=msgbox-success>Пользователь забанен</div>');

}
else
{
$('#entermsg').html('<div class=msgbox-error>Не получается почему-то...</div>');
}
}
});

return false;
}
}

function getCookie(name) {
var cookie = " " + document.cookie;
var search = " " + name + "=";
var setStr = null;
var offset = 0;
var end = 0;
if (cookie.length > 0) {
offset = cookie.indexOf(search);
if (offset != -1) {
offset += search.length;
end = cookie.indexOf(";", offset)
if (end == -1) {
end = cookie.length;
}
setStr = unescape(cookie.substring(offset, end));
}
}
return(setStr);
}

document.onkeyup = function(e)
{
e = e || window.event;
if (e.keyCode === 13)
{
if ($('#message').is( ":focus" ))
{
send_message();
}
else
{
send_reklama();
}
}
}

function send_reklama()
{
var message = $(".truuu").val();

var data = {'mode':'add_reklama', 'message':message};

$.ajax({
cache: false,
data: data,
dataType: "json",
type: "post",
timeout: 5000,
url: '/ajax/us-chat.php',
success: function(data) {
if (data.status == 'yes')
{
alert('Выполнено!');
}
}
});

return false;
}

function send_message()
{
var message = $("#message").val();
var touser = $("#message-to-user").text();
var private = $('.private-check').is(':checked') && touser !== '' ? '1' : '0';
var data = {'mode':'add_message', 'message':message, 'touser':touser, 'private':private};
var tm;

function hidemsg()
{
$('#entermsg').fadeOut('slow');
if (tm) clearTimeout(tm);
}

if (!message) return;

$.ajax({
cache: false,
data: data,
dataType: "json",
type: "post",
timeout: 5000,
url: '/ajax/us-chat.php',
success: function(data) {
if (data.status == 'yes')
{
$('#chat-message').append(data.html);
$('#message').val('');
if (getCookie('chsound') == '1' || getCookie('chsound') === null) { $("#sound-message-send")[0].play(); }

if (getCookie('chscroll') == '1' || getCookie('chscroll') === null)
{
scroll();
}
}
else
{
$('#entermsg').show();
$('#entermsg').html('<span class="msgbox-error">'+data.msg+'</span>');
tm = setTimeout(function() { hidemsg(); }, 5000);
if (getCookie('chsound') == '1' || getCookie('chsound') === null)
{
$("#sound-message-error")[0].play();
}
}
}
});

return false;
}


function delmsg(id)
{
issend = confirm("Вы уверены что хотите удалить сообщение?");

if (issend)
{

var data = {'mode':'del_message', 'id':id};

$.ajax({
cache: false,
data: data,
dataType: "json",
type: "post",
timeout: 5000,
url: '/ajax/us-chat.php',
success: function(data) {
if (data.status == 'yes')
{
$('#entermsg').hide();
$('#'+id).remove();
$('#message').val('');

if (getCookie('chscroll') == '1' || getCookie('chscroll') === null)
{
scroll();
}
}
else
{
$('#entermsg').html('<span class="msgbox-error">'+data.msg+'</span>');

var tm;

function hidemsg()
{
$('#entermsg').fadeOut('slow');
if (tm) clearTimeout(tm);
}

tm = setTimeout(function() { hidemsg() }, 2000);
}
}
});

return false;
}
}

function refresh(id)
{
var new_online = $('#count-online').val();

var data = {'mode':'refresh', 'id':id, 'online':new_online};

$.ajax({
cache: false,
data: data,
dataType: "json",
type: "post",
timeout: 5000,
url: '/ajax/us-chat.php',
success: function(data) {
if (data.status == 'yes')
{
$('#chat-message').append(data.html);
$('#chat-online').html(data.html2);

if (getCookie('chsound') == '1' || getCookie('chsound') === null)
{
if (data.html) { $("#sound-message-send")[0].play(); }
if (data.sound) { $("#sound-message-get")[0].play(); }

$('#count-online').val(data.sound_new);

if (data.sound_new > new_online)
{
$("#sound-message-new")[0].play();
}
}

if ((getCookie('chscroll') == '1' || getCookie('chscroll') === null) && data.html !== '')
{
scroll();
}
}
}
});

return false;
}
в js НУЖНО СМОТРЕТЬ ТАМ ОТВЕЧАЕТ ЗА ОТПРАВКУ СООБЩЕНИЯ (e.keyCode === 13 ) ВРОДЕ ТАКОЙ КОД ДОЛЖЕН БЫТЬ. гДЕ ТЫ СКАЧИВАЛ СКРИПТ. еСЛИ В ИНТЕРНЕТЕ ТО ОН РАБОЧИЙ Я САМ СКАЧИВАЛ. еСЛИ ТЫ НА DENWERE ПРОВЕРЯЕШЬ ЧАТ, ТО БЕСПОЛЕЗНО, ЧАТ НА DENWERE НЕ РАБОТАЕТ ТОЛЬКО НА СЕРВЕРЕ
 
Pizza52
Участник
Сообщения
335
Реакции
21
  • #12
fhjktrdf написал(а):
в js НУЖНО СМОТРЕТЬ ТАМ ОТВЕЧАЕТ ЗА ОТПРАВКУ СООБЩЕНИЯ (e.keyCode === 13 ) ВРОДЕ ТАКОЙ КОД ДОЛЖЕН БЫТЬ. гДЕ ТЫ СКАЧИВАЛ СКРИПТ. еСЛИ В ИНТЕРНЕТЕ ТО ОН РАБОЧИЙ Я САМ СКАЧИВАЛ. еСЛИ ТЫ НА DENWERE ПРОВЕРЯЕШЬ ЧАТ, ТО БЕСПОЛЕЗНО, ЧАТ НА DENWERE НЕ РАБОТАЕТ ТОЛЬКО НА СЕРВЕРЕ
я тут на форуме нашол этот мод... И он явно весь в ошибках и кривой, я не работаю с денвером...
 
Pizza52
Участник
Сообщения
335
Реакции
21
  • #13
fhjktrdf написал(а):
в js НУЖНО СМОТРЕТЬ ТАМ ОТВЕЧАЕТ ЗА ОТПРАВКУ СООБЩЕНИЯ (e.keyCode === 13 ) ВРОДЕ ТАКОЙ КОД ДОЛЖЕН БЫТЬ. гДЕ ТЫ СКАЧИВАЛ СКРИПТ. еСЛИ В ИНТЕРНЕТЕ ТО ОН РАБОЧИЙ Я САМ СКАЧИВАЛ. еСЛИ ТЫ НА DENWERE ПРОВЕРЯЕШЬ ЧАТ, ТО БЕСПОЛЕЗНО, ЧАТ НА DENWERE НЕ РАБОТАЕТ ТОЛЬКО НА СЕРВЕРЕ
дай ссылку где скачать этот мод что ли.. А то у меня явно этот мод кривой
 
fhjktrdf
Участник
Сообщения
144
Реакции
10
  • #14
Pizza52 написал(а):
дай ссылку где скачать этот мод что ли.. А то у меня явно этот мод кривой
Пробей в гугле, я не помню
 
fhjktrdf
Участник
Сообщения
144
Реакции
10
  • #18
Pizza52 написал(а):
а свой (рабочий чат ) запечатать?
у меня чат отправляет сообщения при нажатии ctrl+enter.
тебе нужен enter. скачай чат по ссылке и закинь файл js к себе и попробуй.
И скрипт выложи на js
 
Pizza52
Участник
Сообщения
335
Реакции
21
  • #19
fhjktrdf написал(а):
у меня чат отправляет сообщения при нажатии ctrl+enter.
тебе нужен enter. скачай чат по ссылке и закинь файл js к себе и попробуй.
И скрипт выложи на js
оно мне по той ссылке не разрешает скачивать)) Пишет нет доступа для скачивания
 
fhjktrdf
Участник
Сообщения
144
Реакции
10
  • #20
Pizza52 написал(а):
оно мне по той ссылке не разрешает скачивать)) Пишет нет доступа для скачивания
там зарегиться нужно. И это не единственный источник, есть еще пара, в гугле набей чат для фермы на ajax
 
Сверху