View file chat/index.php

File size: 10.49Kb
<?php
#---------------------------------------------#
#      ********* RotorCMS *********           #
#           Author  :  Vantuz                 #
#            Email  :  [email protected]     #
#             Site  :  http://visavi.net      #
#              ICQ  :  36-44-66               #
#            Skype  :  vantuzilla             #
#---------------------------------------------#
require_once ('../includes/start.php');
require_once ('../includes/functions.php');
require_once ('../includes/header.php');
include_once ('../themes/header.php');

$config['chatpost'] = 10;
$config['shutnik'] = 1; // Шутник включен
$config['magnik'] = 1; // Умник включен
$config['botnik'] = 1; // Бот включен

$act = (isset($_GET['act'])) ? check($_GET['act']) : 'index';
$start = (isset($_GET['start'])) ? abs(intval($_GET['start'])) : 0;
$name = (isset($_GET['name'])) ? '[b]' . check($_GET['name']) . '[/b], ' : '';

show_title('Мини-чат');

if ($act == 'index') {

	echo '<a href="#down"><img src="/images/img/downs.gif" alt="image" /></a> ';
	echo '<a href="#form">Написать</a> / ';
	echo '<a href="index.php?rand=' . mt_rand(100, 999) . '">Обновить</a>';
	if (is_admin()) {
		echo ' / <a href="/admin/minichat.php?start=' . $start . '">Управление</a>';
	}
	echo '<hr />';

	// ---------------------------------------------------------------//
	if (! file_exists(DATADIR . "/temp/chat.dat")){
		touch(DATADIR . "/temp/chat.dat");
	}

	$file = file(DATADIR . "/temp/chat.dat");
	$file = array_reverse($file);
	$total = count($file);

	if ($total > 0) {

		if (is_user()) {
			// --------------------------генерация анекдота------------------------------------------------//
			if ($config['shutnik'] == 1) {
				$anfi = file("bots/chat_shut.php");
				$an_rand = array_rand($anfi);
				$anshow = trim($anfi[$an_rand]);

				$tifi = file(DATADIR . "/temp/chat.dat");
				$tidw = explode("|", end($tifi));

				if (SITETIME > ($tidw[3] + 180) && empty($tidw[6])) {
					$unifile = unifile(DATADIR . "/temp/chat.dat", 9);
					$antext = no_br($anshow . '|Весельчак||' . SITETIME . '|Opera|127.0.0.2|1|' . $tidw[7] . '|' . $tidw[8] . '|' . $unifile . '|');

					write_files(DATADIR . "/temp/chat.dat", "$antext\r\n");
				}
			}
			// ------------------------------- Ответ на вопрос ----------------------------------//
			if ($config['magnik'] == 1) {
			$mmagfi = file(DATADIR . "/temp/chat.dat");
			$mmagshow = explode("|", end($mmagfi));

			if ($mmagshow[8] != "" && SITETIME > $mmagshow[7]) {
				$unifile = unifile(DATADIR . "/temp/chat.dat", 9);
				$magtext = no_br('На вопрос никто не ответил, правильный ответ был: [b]' . $mmagshow[8] . '[/b]! Следующий вопрос через 1 минуту|Вундер-киндер||' . SITETIME . '|Opera|127.0.0.3|0|' . (SITETIME + 60) . '||' . $unifile . '|');

				write_files(DATADIR . "/temp/chat.dat", "$magtext\r\n");
			}
			// ------------------------------  Новый вопрос  -------------------------------//
			$magfi = file("bots/chat_mag.php");
			$mag_rand = array_rand($magfi);
			$magshow = $magfi[$mag_rand];
			$magstr = explode("|", $magshow);

			if (empty($mmagshow[8]) && SITETIME > $mmagshow[7] && $magstr[0] != "") {
				$strlent = utf_strlen($magstr[1]);

				if ($strlent > 1 && $strlent < 5) {
				$podskazka = "$strlent буквы";
				} else {
				$podskazka = "$strlent букв";
				}

				$unifile = unifile(DATADIR . "/temp/chat.dat", 9);
				$magtext = no_br('Вопрос всем: ' . $magstr[0] . ' - (' . $podskazka . ')|Вундер-киндер||' . SITETIME . '|Opera|127.0.0.3|0|' . (SITETIME + 600) . '|' . $magstr[1] . '|' . $unifile . '|');

				write_files(DATADIR . "/temp/chat.dat", "$magtext\r\n");
			}
			}
			// ----------------------------  Подключение бота  -----------------------------------------//
			if ($config['botnik'] == 1) {
			if (empty($_SESSION['botochat'])) {
				$hellobots = array('Приветик', 'Здравствуй', 'Хай', 'Добро пожаловать', 'Салют', 'Hello', 'Здарова');
				$hellobots_rand = array_rand($hellobots);
				$hellobots_well = $hellobots[$hellobots_rand];

				$mmagfi = file(DATADIR . "/temp/chat.dat");
				$mmagshow = explode("|", end($mmagfi));

				$unifile = unifile(DATADIR . "/temp/chat.dat", 9);
				$weltext = no_br($hellobots_well . ', ' . nickname($log) . '!|Настюха||' . SITETIME . '|SIE-S65|127.0.0.2|0|' . $mmagshow[7] . '|' . $mmagshow[8] . '|' . $unifile . '|');

				write_files(DATADIR . "/temp/chat.dat", "$weltext\r\n");

				$_SESSION['botochat'] = 1;
			}
			}

			$countstr = counter_string(DATADIR . "/temp/chat.dat");
			if ($countstr >= $config['maxpostchat']) {
			delete_lines(DATADIR . "/temp/chat.dat", array(0, 1, 2, 3, 4));
			}
		}

		if ($start < 0 || $start >= $total) {
		$start = 0;
		}
		if ($total < $start + $config['chatpost']) {
		$end = $total;
		} else {
		$end = $start + $config['chatpost'];
		}
		for ($i = $start; $i < $end; $i++) {
		$data = explode("|", $file[$i]);

		$useronline = user_online($data[1]);
		$useravatars = user_avatars($data[1]);

		if ($data[1] == 'Вундер-киндер') {
			$useravatars = '<img src="img/mag.gif" alt="image" /> ';
			$useronline = '<img src="/images/img/on.gif" alt="image">';
		}
		if ($data[1] == 'Настюха') {
			$useravatars = '<img src="img/bot.gif" alt="image" /> ';
			$useronline = '<img src="/images/img/on.gif" alt="image">';
		}
		if ($data[1] == 'Весельчак') {
			$useravatars = '<img src="img/shut.gif" alt="image" /> ';
			$useronline = '<img src="/images/img/on.gif" alt="image">';
		}

		echo '<div class="b">';
		echo '<div class="img">' . $useravatars . '</div>';

		echo '<b><a href="index.php?name=' . nickname($data[1]) . '#form">' . nickname($data[1]) . '</a></b>  <small>(' . date_fixed($data[3]) . ')</small><br />';
		echo user_title($data[1]) . ' ' . $useronline . '</div>';
		echo '<div>' . bb_code($data[0]) . '<br />';
		echo '<span class="data">(' . $data[4] . ', ' . $data[5] . ')</span></div>';
		}

		page_strnavigation('index.php?', $config['chatpost'], $start, $total);

	} else {
		show_error('Сообщений нет, будь первым!');
	}

	if (is_user()) {
		echo '<div class="form" id="form">';
		echo '<form action="index.php?act=add" method="post">';
		echo '<b>Сообщение:</b><br />';
		echo '<textarea id="markItUp" cols="25" rows="5" name="msg">' . $name . '</textarea><br />';
		echo '<input type="submit" value="Добавить" /></form></div>';
	} else {
		show_login('Вы не авторизованы, чтобы добавить сообщение, необходимо');
	}
}

############################################################################################
##                                  Добавление сообщения                                  ##
############################################################################################
if ($act == 'add') {

	$msg = check($_POST['msg']);

	$config['header'] = 'Добавление сообщения';
	$config['newtitle'] = 'Мини-чат - Добавление сообщения';

	if (is_user()) {
		if (utf_strlen($msg) > 3 && utf_strlen($msg) < 1000) {
			if (is_quarantine($log)) {
				if (is_flood($log)) {

					$msg = antimat($msg);

					$file = file(DATADIR . "/temp/chat.dat");
					$data = explode("|", end($file));

					$unifile = unifile(DATADIR . "/temp/chat.dat", 9);

					if (!isset($data[7])) $data[7] = '';
					if (!isset($data[8])) $data[8] = '';

					$text = no_br($msg . '|' . $log . '||' . SITETIME . '|' . $brow . '|' . $ip . '|0|' . $data[7] . '|' . $data[8] . '|' . $unifile . '|');

					write_files(DATADIR . "/temp/chat.dat", "$text\r\n");

					$countstr = counter_string(DATADIR . "/temp/chat.dat");
					if ($countstr >= $config['maxpostchat']) {
						delete_lines(DATADIR . "/temp/chat.dat", array(0, 1, 2, 3, 4));
					}

					DB::run() -> query("UPDATE `users` SET `users_point`=`users_point`+1, `users_money`=`users_money`+5 WHERE `users_login`=?", array($log));

					// --------------------------------------------------------------------------//
					if ($config['botnik'] == 1) {
						include_once "bots/chat_bot.php";

						if ($mssg != "") {
							$unifile = unifile(DATADIR . "/temp/chat.dat", 9);
							$text = no_br($mssg . '|' . $namebots . '||' . SITETIME . '|MOT-V3|L-O-V-E|0|' . $data[7] . '|' . $data[8] . '|' . $unifile . '|');

							write_files(DATADIR . "/temp/chat.dat", "$text\r\n");
						}
					}
					// --------------------------------------------------------------------------//
					if ($config['magnik'] == 1) {
						if (!empty($data[8]) && stristr($msg, $data[8])) {
							$unifile = unifile(DATADIR . "/temp/chat.dat", 9);
							$text = no_br('Молодец ' . nickname($log) . '! Правильный ответ [b]' . $data[8] . '[/b]! Следующий вопрос через 1 минуту|Вундер-киндер||' . SITETIME . '|Opera|127.0.0.3|0|' . (SITETIME + 60) . '||' . $unifile . '|');

							write_files(DATADIR . "/temp/chat.dat", "$text\r\n");
						}
					}

					notice('Сообщение успешно добавлено!');
					redirect("index.php");

				} else {
					show_error('Антифлуд! Разрешается отправлять сообщения раз в ' . flood_period() . ' секунд!');
				}
			} else {
			show_error('Карантин! Вы не можете писать в течении ' . round($config['karantin'] / 3600) . ' часов!');
			}
		} else {
			show_error('Ошибка, слишком длинное или короткое сообщение!');
		}
	} else {
		show_login('Вы не авторизованы, чтобы добавить сообщение, необходимо');
	}

echo '<img src="/images/img/back.gif" alt="image" /> <a href="index.php">Вернуться</a><br /><br />';

}

echo '<a href="#up"><img src="/images/img/ups.gif" alt="image" /></a> ';
echo '<a href="/pages/rules.php">Правила</a> / ';
echo '<a href="/pages/smiles.php">Смайлы</a> / ';
echo '<a href="/pages/tags.php">Теги</a><br /><br />';

echo '<img src="/images/img/homepage.gif" alt="image" /> <a href="/index.php">На главную</a>';

include_once ("../themes/footer.php");