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 .= ' / <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&mod=messages&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' => 'Мини-чат'
);
Открываем файл
users/includes/profile/activity.php, ищем в нем эту строку
($mod == 'comments' ? '<b>' . $lng['comments'] . '</b>' : '<a href="profile.php?act=activity&mod=comments&user=' . $user['id'] . '">' . $lng['comments'] . '</a>'),
после нее вставляем этот код
($mod == 'messages' ? '<b>Мини-чат</b>' : '<a href="profile.php?act=activity&mod=messages&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&mod=comments&user=' . $user['id'] . '&', $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&mod=messages&user=' . $user['id'] . '&', $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) . ' <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
Уважаемые, дык кто-то бы склепал архивчег со всеми доработками под новую версию
---
Не забывайте, у нас свободное ПО, если аффтар пропал, или нет времени доработать, Вы можете с полным правом "гордо подхватить упавшее знамя"...
Только обязательно снабжайте архивчег readme.txt с описанием, мол исходный скрипт был создан (указать авторов) и доведен до кошерного состояния тем-то...
В коде авторские копирайты не выпиливайте. Если что-то доработали, просто добавляйте (после автора) свои.