Мини-чат for JohnCMS 6.1.2

15.32K
.

Str@nnik, Мне то не тяжело, но по сути мне чат и не нужен, просто новичкам же проще будет если ты пальцем укажешь что да куда вписывать, а менять главное меню это вообще ересь, у всех оно другое а ты предлагаешь ради 1 ссылки со счетчиком менять целый файл

.
Новый архив! Установка проста:
1. Распаковать архив в корень сайта!
2. Перейти по адресу site.ru/mchat/install.php

Далее я опишу куда вставлять куски кодов для полной работоспособности чата. Попрошу пока никому ничего не писать.
Ищем файл incfiles/classes/counters.php и после этого куска кода
/*
    -----------------------------------------------------------------
    Счетчик посетителей онлайн
    -----------------------------------------------------------------
    */
    static function online()
    {
        $users = mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `lastdate` > '" . (time() - 300) . "'"), 0);
        $guests = mysql_result(mysql_query("SELECT COUNT(*) FROM `cms_sessions` WHERE `lastdate` > '" . (time() - 300) . "'"), 0);
        return (core::$user_id || core::$system_set['active'] ? '<a href="' . core::$system_set['homeurl'] . '/users/index.php?act=online">' . functions::image('menu_online.png') . $users . ' / ' . $guests . '</a>' : core::$lng['online'] . ': ' . $users . ' / ' . $guests);
    }

вставляем этот
/*
    -----------------------------------------------------------------
    Счетчик мини-чата
    -----------------------------------------------------------------
    */
static function mchat()
{
$total = mysql_result(mysql_query('select count(*) from `m_chat`'), 0);
$new = mysql_result(mysql_query('select count(*) from `m_chat` where `time` > ' . (time() - 3600*24) . ''), 0);
if ($new)
$total .= '&#160;/&#160;<span class="red">+'.$new.'</span>';
return $total;
}
.
Сам архив
Прикрепленные файлы:
.

Далее ищем файл users/includes/profile/stat.php, открываем его и ищем следующий кусок кода

'<li><span class="gray">' . $lng['comments'] . ':</span> ' . $user['komm'] . '</li>' .

после него вставляем этот код
'<li><span class="gray">Мини-чат:</span> <a href="profile.php?act=activity&amp;mod=messages&amp;user=' . $user['id'] . '">' . $user['postchat'] . '</a></li>' .


далее в этом же файле меняем этот код
$query = array(
    'postforum' => $lng['forum'],
    'postguest' => $lng['guestbook'],
    'komm' => $lng['comments']
);

на этот
$query = array(
    'postforum' => $lng['forum'],
    'postguest' => $lng['guestbook'],
    'komm' => $lng['comments'],
'postchat' => 'Мини-чат'
);
.
Str@nnik

Открываем файл users/includes/profile/activity.php, ищем в нем эту строку

($mod == 'comments' ? '<b>' . $lng['comments'] . '</b>' : '<a href="profile.php?act=activity&amp;mod=comments&amp;user=' . $user['id'] . '">' . $lng['comments'] . '</a>'),

после нее вставляем этот код
($mod == 'messages' ? '<b>Мини-чат</b>' : '<a href="profile.php?act=activity&amp;mod=messages&amp;user=' . $user['id'] . '">Мини-чат</a>'),


далее ищем этот кусок кода
+ (+/-)
/*
        -----------------------------------------------------------------
        Список сообщений в Гостевой
        -----------------------------------------------------------------
        */
        $total = mysql_result(mysql_query("SELECT COUNT(*) FROM `guest` WHERE `user_id` = '" . $user['id'] . "'" . ($rights >= 1 ? '' : " AND `adm` = '0'")), 0);
        echo '<div class="phdr"><b>' . $lng['comments'] . '</b></div>';
        if ($total > $kmess) echo '<div class="topmenu">' . functions::display_pagination('profile.php?act=activity&amp;mod=comments&amp;user=' . $user['id'] . '&amp;', $start, $total, $kmess) . '</div>';
        $req = mysql_query("SELECT * FROM `guest` WHERE `user_id` = '" . $user['id'] . "'" . ($rights >= 1 ? '' : " AND `adm` = '0'") . " ORDER BY `id` DESC LIMIT $start, $kmess");
        if (mysql_num_rows($req)) {
            $i = 0;
            while ($res = mysql_fetch_assoc($req)) {
                echo ($i % 2 ? '<div class="list2">' : '<div class="list1">') . functions::checkout($res['text'], 2, 1) . '<div class="sub">' .
                     '<span class="gray">(' . functions::display_date($res['time']) . ')</span>' .
                     '</div></div>';
                ++$i;
            }
        } else {
            echo '<div class="menu"><p>' . $lng_profile['guest_empty'] . '</p></div>';
        }
        break;

и после него вставляем этот код
+ (+/-)
/*
        -----------------------------------------------------------------
        Список сообщений в Мини-чате
        -----------------------------------------------------------------
        */
        $total = mysql_result(mysql_query("SELECT COUNT(*) FROM `m_chat` WHERE `user_id` = '" . $user['id'] . "'"), 0);
        echo '<div class="phdr"><b>Сообщения в мини-чате</b></div>';
        if ($total > $kmess) echo '<div class="topmenu">' . functions::display_pagination('profile.php?act=activity&amp;mod=messages&amp;user=' . $user['id'] . '&amp;', $start, $total, $kmess) . '</div>';
        $req = mysql_query('select * from `m_chat` where `user_id` = '.$user['id'].' order by `time` desc limit ' . $start . ', ' . $kmess . ';');
        if (mysql_num_rows($req)) {
            $i = 0;
            while ($res = mysql_fetch_assoc($req)) {
                echo ($i % 2 ? '<div class="list2">' : '<div class="list1">') . functions::checkout($res['message'], 2, 1) . '&nbsp;<a href="../../mchat/view_mess.php?id='.$res['id'].'">[#]</a><div class="sub">' .
                     '<span class="gray">(' . functions::display_date($res['time']) . ')</span>' .
                     '</div></div>';
                ++$i;
            }
        } else {
            echo '<div class="menu"><p>Сообщений нету</p></div>';
        }
        break;
.

и последний файл - pages/mainmenu.php
ищем в нем эту строку

echo '<div class="menu"><a href="forum/">' . $lng['forum'] . '</a> (' . counters::forum() . ')</div>';

и после нее вставляем эту
// Ссылка на мини-чат
echo '<div class="menu"><a href="mchat/">Мини-чат</a> (' . counters::mchat() . ')</div>';

Если вы еще желаете вывести форму ввода и три последних сообщения (как здесь) то ниже вставляем еще эту строку
require('mchat/include.php');

Всё. Установка завершена.
.

Umenya stroka idyot posle kajdoy posta. Nu pochemu takoy stroka nujen yesli vozmojno uberite etotgo stroku. Zamuchal uje

.

A v osnovnom vsyo ok.

.
AlkatraZ
╭∩╮ (`-`) ╭∩╮

Уважаемые, дык кто-то бы склепал архивчег со всеми доработками под новую версию
---
Не забывайте, у нас свободное ПО, если аффтар пропал, или нет времени доработать, Вы можете с полным правом "гордо подхватить упавшее знамя"...

Только обязательно снабжайте архивчег readme.txt с описанием, мол исходный скрипт был создан (указать авторов) и доведен до кошерного состояния тем-то...
В коде авторские копирайты не выпиливайте. Если что-то доработали, просто добавляйте (после автора) свои.

.

бек, Так задумано

Всего: 279