Voodoo chat ЧаВо


1. Общие вопросы о движке и использовании
   1.1. Что такое стрим-режим?
   1.2. Что такое демон и зачем он нужен?
   1.3. Системные тербования?
   1.4. Должен ли я платить за использование чата? А за коммерческое использование?
   1.5. Как убрать копирайты разработчиков?
   1.6. Я очень хочу убрать копирайты! Есть какой-нибудь способ?
   1.7. Какую поддержку я могу получить?
   1.8. Где скачать?


2. Технические проблемы при инсталляции
   2.1. При "непрерывном" типе чата вместо центрального фрейма получаю сообщение "сайт не найден"
   2.2. Как запустить демона?
   2.3. Демон периодически перестает работать
   2.4. При использовании чата в режиме "непрерывный на пхп" в центральном фрейме ничего не показывает
   2.5. При использовании чата в режиме "непрерывный на пхп" в центральном фрейме показывает ошибку "скрипт превысил максимальное время работы"


3. Настройка пользователей
   3.1. Как добавить модератора?
   
3.2. Как разрешить использование русских букв в никах?
   3.3. Как избавиться от "похожих" ников, в которых буквы написаны латиницей или кириллицей (о и o)?


4. Доработка внешнего вида напильником
   4.1. Как убрать "Кому-то шепчет"?
   4.2. Как изменить список цветов?
   4.3. Как добавить смайлы?
   4.4. Как убрать стандартные смайлы? (например, комбинацию :) )
   4.5. Как изменить фон/шрифт/цвет шрифта в центральном окне?
   4.6. Как добавить линки на ники в центральном окне, чтобы можно было вставить обращение в сообщение?



1.1. Что такое стрим-режим?   наверх
Очень много людей уверены (и убеждают других) что веб-чатам для работы необходимо постоянно посылать запросы к серверу и релоадить страницу сообщений.
Это не так! Большинство современных браузеров могут выводить ХТМЛ еще во время загрузки документа. Поэтому можно организовать работу следующим образом: браузер посылает запрос к серверу, тот в ответ отправляет "шапку" html-документа, и _не закрывает_ соединение. После этого, скажем, раз в секунду, сервер "досылает" данные браузеру. При этом нового соединения _не происходит_, и браузер скачивает лишь новый кусок html-документа и выводит его пользователю.
Такой режим работы я называю stream (возможно, в других местах это называется по другому. часто встречается название server-push).

1.2. Что такое демон и зачем он нужен   наверх
Демон -- это программа, которая работает в фоновом режиме и что-то там делает. В случае voodoo chat -- демон обрабатывает подключения пользователей к центральному окну (окно сообщений) и в непрерывном режиме выдает им новые сообщения. Сделан этот демон для уменьшения нагрузки на сервер, т.к. Вам нужен всего лишь один демон для всех подключившихся (к окну сообщений) пользователей. При использовании демона voodoo chat выдерживает нагрузку в 600 одновременных посетителей (это данные с реального чата, а не "прогноз" Потенциально движок чата может выдержать больше. Да и на упомянутом сервере стоит несколько чатов ;)).

1.3.Системные тербования?   наверх
Чтобы запустить Voodoo-chat, необходим веб-сервер и PHP версии не ниже 4.2.0 (рекомендуется использовать последний релиз, на 23.02.04 это 4.3.4). PHP в safe_mode может вызвать проблемы (например, невозможность удаления/изменения фото из анкеты). При PHP в cgi-режиме чат должен работать нормально, но серьезного тестирования не проводилось. Поэтому оптимально, -- использовать PHP как модуль Апача
ОС -- практически любая. Т.к. Windows 95/98/ME не поддерживают блокировку файлов, Вы сможете использовать чат на этих системах только на MySQL-движке.
Web-server -- рекомендуется Apache, последний из ветки 1.3.х. IIS может вызвать неприятности при использовании файлового движка.
Чтобы запустить демона (перл-версию), необходим установленный в системе Perl, желательно не ниже 5.6. Если Вы используете MySQL движок, необходимо установить дополнительные perl-модули, см. Perl Installation Notes

1.4. Должен ли я платить за использование чата? А за коммерческое использование?   наверх
Нет, пока Вы не нарушаете лицензию и авторские права, Вы не должны ничего платить.
Т.к. мало кто читает лицензию, отмечу что п.3. лицензии _запрещает_ удаление или модификацию любой информации о copyright-ах
Желающим узнать что бывает за нарушение -- смотреть сюда (законы РФ).

1.5. Как убрать копирайты разработчиков?   наверх
Никак. Это нарушение лицензии и авторских прав. Законы всех стран охраняют авторские права.
Допускатся лишь изменение копирайтов в случае, когда Вы создали Ваш собственный дизайн для чата. Например:
chat design © 2004 by Vasya Pupkin
chat engine © 1999-2004 by Vlad Vostrykh


1.6. Я очень хочу убрать копирайты! Есть какой-нибудь способ?   наверх
Ок. Предлагаю натуральный обмен. Я Вам -- чат без копирайтов, Вы мне -- 0.7 EUR x (Maximum number of users in the chat), минимум 7Eur (лимит на 10 пользователей).
35 евро за чат с 50 посетителями, по-моему, вполне разумная цена.
Платеж одноразовый, на одну инсталляцию чата. Возврату не подлежит.
Это предложение касается только чата и включенных в основной архив скинов. В случае, если Вы испльзуете скины сторонних программистов, Вам придется еще договариваться персонально с ними.

1.7. Какую поддержку я могу получить?   наверх
Есть два уровня поддержки:
  • Бесплатная поддержка:
    На большинство вопросов, связанных с проблемами во время инсталляции/настройки, Вы сможете получить ответ в форуме проекта.
    Если Вам необходима какая-то дополнительная функциональность, Вы можете оставлять свои запросы там же. Возможно, кто-то уже сделал то, что Вам необходимо, и поделится кодом; возможно, если фича интересная, она будет включена в основную ветку и Вы увидите ее в следующих релизах.
    Пожалуйста, чтобы не возникало конфликтов, помните, что никто Вам ничего не должен, и все запросы будут рассматриваться только как пожелания, но ни в коем случае не как руководство к действию. Чат скачивают 100 раз в день, и я просто не могу выполнять капризы всех пользователей.

  • Платная поддержка:
    Если Вам совершенно необходимо запрограммировать какую-то фичу к следующей среде, но Вы не можете сделать это самостоятельно, Вам придется нанять программиста. Например, меня ;).
    Также я могу помочь в создании персонального дизайна (Вы предоставляете "скриншот" чата, каким Вы хотите его видеть, я делаю "скин" персонально для Вас).
    Еще одна услуга, которую я могу предложить -- установка и настройка программного обеспечения на Ваш сервер (Апач, ПХП, МуСКЛ, файрвол и т.п.). На FeeBSD и Linux.
    Заинтересованы? Пишите:


1.8. Где скачать?   наверх
Основные ресурсы чата:


2. Технические проблемы при инсталляции   наверх

2.1. При "непрерывном" типе чата вместо центрального фрейма получаю сообщение "сайт не найден"   наверх
Существует только три причины для такой ситуации:
I. не запущен демон. "Непрерывный" тип чата обслуживается специальной программой -- чат-демоном. Если он не запущен, браузеру посетителя просто не к чему приконнектиться
II. некорректные настройки демона. Две наиболее типичные ошибки -- в качестве параметра 'Daemon url'
  а) указывается http://www.server.com/voc/data/daemon/daemon.pl.
Это неверно. daemon.pl -- это маленький веб-сервер, который сам обрабатывает веб-запросы браузера. Вы не должны вызывать его через ваш апач (или вебсервер который у вас используется). В большинстве случаев правильное значение -- http://www.server.com (где www.server.com -- домен вашего сервера с чатом)
  б) указывается http://localhost
Представьте себе что к Вам в чат пришел посетитель. Когда он попытается залогиниться, он получит ссылку на http://localhost, и попытается подключиться по этому адресу. Вы уверены что у него на компьютере запущен чат-демон? А Вы уверены что он работает с данными Вашего чата? ;)
III. Последний случай -- firewall, который блокирует соединения по нестандартным портам. Многие провайдеры разрешают доступ только к некоторым портам, например к 80 (http), и отклоняют все запросы к "неразрешенным". В этом случае демон просто не получает запросов от Ваших посетителей. Единственное что можно сделать -- разрешить доступ на порт, используемый демоном. Но это не всегда возможно. Например, уговорить masterhost.ru и valuehost.ru еще никому не удалось.

2.2. Как запустить демона?   наверх
Для запуска демона Вам неободимо из shell (командная строка) просто запустить daemon.pl или daemon (c++ версия) как обычную программу. Например, /home/voodoo/voc.data/daemon/daemon.pl. Если все прошло нормально, Вы должны увидеть сообщение initialized. Также проверьте лог-файл daemon.log на наличие сообщений об ошибках
В случае windows, запускать демон надо примерно так: perl c:\apache\data\daemon\daemon_win.pl
Можно также установить windows-service версию демона, подробнее смотри в readme.

2.3. Демон периодически перестает работать   наверх
Прежде всего, проверьте файл daemon.log. Когда демон по каким-либо причинам останавливается, он пишет сообщение об этом в лог-файл. Вы должны увидеть что-то подобное "got signal 1" или "SIGChecker". Запустите man 7 signal и Вы увидите по каким причинам демон был остановлен.
Часто бывает что на сервере ограничено время процессора, которое может быть использовано программой. Проверьте это командой ulimit -a. Если Вы видите что cpu time не unlimited, это значит что после определенного времени Ваш чат-демон будет остановлен. Вы можете попросить администратора запустить чат-демона без этого ограничения. Другой вариант -- поставить запуск демона в crontab.

2.4. При использовании чата в режиме "непрерывный на пхп" в центральном фрейме ничего не показывает   наверх
Сегодняшние версии PHP по умолчанию используют буффер 4КБайта для вывода данных. Это означает, что пока скрипт не выведет 4К текста, ничего не будет отправлено пользователю. Для работы в режиме "непрерывный на ПХП" Вы должны запретить буферизацию для скрипта chat/tail.php, например в корне чата можно положить файл .htaccess с содержимым
<Files tail.php>
php_value output_buffering 0
</Files>

Note! Также, возможно что буферизация включена на уровне веб-сервера (например, mod_gzip для Apache). В этом случае, читайте доки на используемый софт ;)

2.5. При использовании чата в режиме "непрерывный на пхп" в центральном фрейме показывает ошибку "скрипт превысил максимальное время работы"   наверх
Ну это уж такие ограничения на сервере. Ничего не поделать ;)



3. Настройка пользователей   наверх

3.1. Как добавить модератора?   наверх
Модератором можно сделать любого _зарегистрированного_ пользователя чата. Откройте "админ-зону" чата. Слева вверху есть форма поиска пользователей -- сделайте поиск ника, которому Вы ходите выдать модераторские права. В результатах поиска кликните на нужный Вам ник. Вы увидите форму где можно назначать различные модераторские права. Кликните на нужные чекбоксы и сохраните изменения.

3.2. Как разрешить использование русских букв в никах?   наверх
Измените параметр "available chars in nickname". _a-zA-Z0-9а-яА-Я вполне подойдет. Убедитесь только что локаль на сервере настроена корректно. Скорее всего, Вам будет необходимо добавить строчку setlocale('LC_ALL', 'ru_RU.CP1251'); (или подобную) в файл chat/inc_common.php. Проконсультируйтесь у администратора сервера о точном наименовании локали для кодировки windows-1251.

3.3. Как избавиться от "похожих" ников, в которых буквы написаны латиницей или кириллицей (о и o)?   наверх
В чате есть функция для проверки ников на "похожесть". Во время инсталляции Вы можете выбрать тип проверки, наиболее подходящий Вам. Скорей всего, это rus-win1251. Для того чтобы проверка rus-win1251 работала корректно, необходимо чтобы была правильно выставлена "локаль" (см. 2.2)



4. Доработка внешнего вида напильником   наверх

4.1. Как убрать "Кому-то шепчет"?   наверх
В конфигурации чата есть параметр "private hidden message format". Удалите все, оставьте это поле пустым. Если Вы используете демона, необходимо его рестартовать (kill -HUP `cat daemon.pid`)

4.2. Как изменить список цветов?   наверх
Откройте файл chat/languages/LANG.php (где LANG -- выбранный Вами язык для чата). В конце файла Вы увидите массив используемых цветов. Отредактируйте как хочется

4.3. Как добавить смайлы?   наверх
Выложите смайлы, которые Вы хотите видеть в чате в папку chat/converts. Зайдите в админ-зону и запустите 'smileys tools'.

4.4. Как убрать стандартные смайлы? (например, комбинацию :) )   наверх
Откройте файл chat/sender.php, найдите строчку
$m_text = addFaces(wordwrap($m_text, 75," ", 1));
и замените ее на
$m_text = wordwrap($m_text, 75," ", 1);

4.5. Как изменить фон/шрифт/цвет шрифта в центральном окне?   наверх
Вам нужен файл chat/designes/YOUR_DESIGN/daemon_html_header.html -- отредактируйте его как Вам нужно и перезапустите демон (kill -HUP`cat daemon.pid`)
Note! важно использовать "абсолютные" пути до картинок/стилей. Т.е. http://www.server.com/images/chat_background.gif.

4.6. Как добавить линки на ники в центральном окне, чтобы можно было вставить обращение в сообщение?   наверх
Измените формат отображения сообщений в конфигурации. Для добавления ника в поле ввода сообщений используйте
<a href="javascript:SendTo('[NICK_WO_TAGS]');" target="voc_sender">[NICK]</a>
Для добавления в поле "приват" используйте
<a href="javascript:WhisperTo('[NICK_WO_TAGS]');" target="voc_sender">[NICK]</a>
Как обычно, рестартуйте демона (kill -HUP `cat daemon.pid`)