Событие MyChat Server: OnBBSMessage, новое сообщение на доске объявлений
"Для разработчиков", "Серверные скрипты", "Скриптовые события", "Chat events", "Доска объявлений", "OnBBSMessage".
Событие создания нового сообщения на общей доске объявлений MyChat.
Шаблон события
function OnBBSMessage(iCID, iUIN: integer; bStick: boolean; dtPosted, dtExpire: double; sMsg: string): boolean;
begin
// your own code
result := true;
end;
begin
end.
Вместо комментария может быть любой ваш код.
Описание параметров
Параметр |
Тип |
Значение |
iCID |
integer |
Connection ID клиента, уникальный сеансовый идентификатор в онлайн-структуре сетевых подключений к серверу; |
iUIN |
integer |
уникальный идентификатор отправителя сообщения (число > 0); |
bStick |
boolean |
"прилепленное" объявление. Если truе — разместить сообщение выше всех на доске; |
dtPosted |
double |
дата и время размещения сообщения на доске, в UTC; |
dtExpire |
double |
дата и время актуальности объявления (в UTC), после истечения которого оно будет автоматически перемещено в архив; |
sMsg |
string |
текст сообщения. |
Возвращаемое значение
True, если вы разрешаете размещение объявления на доске, False — если нет.
Пример
const
sFileName = 'c:\denwer\home\company\www\bbs.html';
function OnBBSMessage(iCID, iUIN: integer; bStick: boolean; dtPosted, dtExpire: double; sMsg: string): boolean;
var
s: string;
begin
s := ReplaceString(sMsg, '<', '<', true, false);
s := ReplaceString(s, '>', '>', true, false);
s := '' + CRLF +
'' + CRLF +
s +
'
' + CRLF +
FormatDateTime('[dd.mm.yyyy hh:nn]', dtPosted) + ' ' +
mGetUserAttribute(iUIN, 'DisplayName') + CRLF +
'' + CRLF +
'';
DeleteFile(sFileName);
AddLineToFile(s, sFileName);
result := true;
end;
begin
end.
Скрипт создаёт html-файл для размещения на корпоративном WEB-сервере, где дублирует текст сообщения, а также указывает отправителя и дату размещения объявления.
После размещения сообщения на доске объявлений оно показывается в чате:
А также формируется HTML-файл "c:\denwer\home\company\www\bbs.html":
В браузере это выглядит так: