[Скрипт] MEL.Chat ( PHP+AJAX )

Тема в разделе "Open Source", создана пользователем *SaT*, 9 авг 2009.

Модераторы: Amazko, Aste
  1. *SaT*

    *SaT*

    Регистр.:
    19 ноя 2008
    Сообщения:
    241
    Симпатии:
    24
    Melnaron Chat.
    Офф. сайт: http://melnaron.net/
    Пример работы последней версии чата: http://melnaron.net/melchat-beta/
    Последняя версия чата: MEL.Chat 2.0b3

    Кто нибудь пользовался этим чатом???
    У меня просто появилось несколько вопросов:
    1) Возможно ли на главной странице вывести число и ники пользователей находяшихся в чате??? Если это возможно то подскажите пож. как это сделать.
    2) Возможно ли сделать свой тег, тоесть я ввожу напимер в чате тег /mp3 ссылка_на_песню.mp3 и у всех пользователей появляется проигрователь и песенка вопроизводится??? Если это возможно то подскажите пож. как это сделать. ( с MP3 я просто привёл пример, так же можно сделать просто жирныйм шрифтом чтоб тыло всё написано или ещё как нибудь )
     
    vot нравится это.
  2. WTBG

    WTBG Создатель

    Регистр.:
    26 май 2008
    Сообщения:
    24
    Симпатии:
    3
    Чат поставил, но так и не смог туда зайти. В комментах на главной написано что это может быть связано с браузером, может оно и так, потому как не смог зайти и в демо что представленны в комментах.
    Но.
    По первому вопросу:
    В файле "\server\class.user.php" есть функция "public static function disconnect()" и в ней сказано:
    PHP:
    if ($users_sel db::select(TB_USERS'*''`nickname` != "'.$nickname.'" AND `timeout` > 0 AND `status` != 3''`access` DESC, `nickname`')) {
        foreach (
    $users_sel as $u) {
            
    $users[] = '{id: '.$u['id'].', nickname: "'.$u['nickname'].'", access: '.($u['access'] ? $u['access'] : '0').', status: '.$u['status'].'}';
        }
        
    $users implode(', '$users);
    } else {
        
    $users '';
    }
    Возможно, если изменить поменять запрос по типу
    PHP:
    if($user_count db::select(TB_USERS'count(`id`) as `c`''`timeout` > 0 AND `status` != 3', , )){
        foreach (
    $user_count as $u) {
            
    $users $u['c'];
        }
    } else {
        
    $users '0';
    }
    и вставить его на главную страницу по средством аякса или еще как нибудь.
    В том же файле есть еще функция "public static function disconnect()" и в ней прописано удаление пользователей при дисконнекте, возможно будет достаточно просто сделать выборку всех пользователей из таблицы 'users'.


    / ************************************************************ \


    По второму вопросу тебе, наверное лучше заглянуть в файл "\server\class.chat.php" там описаны команды "help", "motd", "nick", "whisper" и тд.
    И все же я не могу ручаться за точность своих советов, так как не смог запустить у себя етот чат.
     
    *SaT* нравится это.
  3. *SaT*

    *SaT*

    Регистр.:
    19 ноя 2008
    Сообщения:
    241
    Симпатии:
    24
    Скрины чата

    Выкладываю Скрины чата.
    WTBG Если у тебя выбило ошибку Соединение прервано то скорее всего твой ник зарегистрированный. И что у тебя за браузер?
     

    Вложения:

  4. WTBG

    WTBG Создатель

    Регистр.:
    26 май 2008
    Сообщения:
    24
    Симпатии:
    3
    Браузер у меня IE7.
    Когда я набираю ник и пароль и нажимаю кнопку "Войти" то ни чего не происходит версия чата 2.0b3
     
  5. *SaT*

    *SaT*

    Регистр.:
    19 ноя 2008
    Сообщения:
    241
    Симпатии:
    24
    WTBG по идее ты сначала должен ввести просто ник свой и нажать войти, а уже после входа в чат по желанию можеш зарегистрировать ник введя команду /reg [пароль]
     
  6. *SaT*

    *SaT*

    Регистр.:
    19 ноя 2008
    Сообщения:
    241
    Симпатии:
    24
    неможет быть вот у меня вся заходит посмотрите на адрес в браузере
     

    Вложения:

  7. rusel666

    rusel666 Постоялец

    Регистр.:
    11 мар 2009
    Сообщения:
    113
    Симпатии:
    9
    А чата на флеш ни у кого нету? Нужен чат на одном файле swf. Такие вообще есть?
     
  8. *SaT*

    *SaT*

    Регистр.:
    19 ноя 2008
    Сообщения:
    241
    Симпатии:
    24
    rusel666 такие чаты есть но наш написан на php+ajax
     
  9. serg575

    serg575 Постоялец

    Регистр.:
    7 май 2009
    Сообщения:
    108
    Симпатии:
    17
    А его пробывал кто то прикрутить до торрента свого?
     
  10. *SaT*

    *SaT*

    Регистр.:
    19 ноя 2008
    Сообщения:
    241
    Симпатии:
    24
    serg575 насчёт прикрутить этот чат к торрент трекеру незнаю, нужно интергировать этот чат с трекером.

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    У меня появился такой вот вопрос:
    У меня есть вот такой вот кусок кода, Код взят из скрипта чата
    PHP:
    /*
        * COMMAND: whisper
        * -params: to, message
        * -access: 0
        */
       
    public static function command_whisper($params)
       {
          
    user::access(0);
          list(
    $to$message) = explode(' '$params2);
          if (
    strtolower($to) == strtolower(user::$nickname)) {
             
    self::retAction('PrintErrorMessage''message: 6021'true);
          }
          if ((
    $to db::selectRow(TB_USERS'*''`nickname` = "'.$to.'" AND `timeout` > 0')) == false) {
             
    self::retAction('PrintErrorMessage''message: 6022'true);
          }
          if (! 
    strlen($message)) {
             
    self::retAction('PrintErrorMessage''message: 6023'true);
          }
          
    $time date('H:i:s'self::$time);
          
    $from user::$nickname;
          
    $tonm $to['nickname'];
          
    db::insert(TB_MESSAGES, array('time' => self::$time'from' => $from'to' => $tonm'message' => $message));
          
    self::addAction('PrintWhisper''time: "'.$time.'", from: "'.$from.'", to: "'.$tonm.'", message: "'.$message.'"''user'$to['id']);
          
    self::retAction('PrintWhisper''time: "'.$time.'", from: "'.$from.'", to: "'.$tonm.'", message: "'.$message.'"');
       }
    В коде присутствуют такие надписи 'message: 6021' это фразы которые занесены в отдельную базу данных.
    Из этого кода мне интересует только вот эта часть, эта часть кода отвечает за вывод привотного сообщения, мне нужно добавить в этот вывод приватного сообщения свою фразу
    PHP:
          $time date('H:i:s'self::$time);
          
    $from user::$nickname;
          
    $tonm $to['nickname'];
          
    db::insert(TB_MESSAGES, array('time' => self::$time'from' => $from'to' => $tonm'message' => $message));
          
    self::addAction('PrintWhisper''time: "'.$time.'", from: "'.$from.'", to: "'.$tonm.'", message: "'.$message.'"''user'$to['id']);
          
    self::retAction('PrintWhisper''time: "'.$time.'", from: "'.$from.'", to: "'.$tonm.'", message: "'.$message.'"');
    Если код неизменять то при выводе получится вот такое сообщение:
    [Время сообщения] Ник1 to Ник2: сообщение.
    Я хочу вместь to вставить свою фразу.
    Файл который я редактировал находится в папке chat\server\ файл называется class.chat.php строчти кода 334-340
    Подскажите пож. как это сделать.