Файл: core/modules/users_dialog.php
Строк: 91
<?php
if (!defined('CMS')) { die('Access Denied!'); }
if ($is_logged) {
if ($id < 1) {
$inSes->addMessage('Ошибка! Данного адресата не существует!');
gen_red('index', '', RND);
}
$data = array();
$data = $db->selectRow("SELECT `u`.*, `v`.`visit_nowtime`
FROM ?_users `u` LEFT JOIN ?_users_visit `v`
ON `u`.`users_login` = `v`.`visit_user`
WHERE `u`.`users_id` = ?
LIMIT 1", $id);
if (empty($data)) {
$inSes->addMessage('Ошибка! Данного адресата не существует!');
gen_red('index', '', RND);
}
if ($data['users_login'] == $log && !is_admin()) {
$inSes->addMessage('Запрещено вести самим с собой диалоги!');
gen_red('index', '', RND);
}
if (!empty($_POST['send'])) {
$text = !empty($_POST['text']) ? check($_POST['text']) : '';
$_SESSION['crc32'] = !empty($_SESSION['crc32']) ? $_SESSION['crc32'] : NULL;
if (!empty($_POST['rnd']) && $_POST['rnd'] == md5($_SESSION['token'])) {
if (cms_strlen($text) >= 3 && cms_strlen($text) < 1001) {
if ( crc32($text) <> $_SESSION[SP]['crc32'] ) {
if (is_flood($log)) {
$_SESSION[SP]['crc32'] = crc32($text);
$text = antimat($text);
$text = smiles($text);
$db->query("INSERT INTO ?_users_dialog (`dialog_group`, `dialog_user`, `dialog_message`, `dialog_time`)
VALUES (?, ?, ?, ?);", $log . '_and_' . $data['users_login'], $log, $text, SITE_TIME);
$db->query("INSERT INTO ?_users_dialog (`dialog_group`, `dialog_user`, `dialog_message`, `dialog_time`)
VALUES (?, ?, ?, ?);", $data['users_login'] . '_and_' . $log, $log, $text, SITE_TIME);
$inSes->addMessage('Ваше сообщение успешно отправлено!', 'ok');
gen_red($mod, $data['users_id'], RND);
}
else $inSes->addMessage('Антифлуд! Разрешается отправлять сообщения раз в ' . flood_period() . ' секунд!');
}
else $inSes->addMessage('Ошибка! Ваше сообщение <u>уже было</u> успешно отправлено!');
}
else $inSes->addMessage('Ошибка! Слишком короткое или длинное сообщение!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
if (!empty($_GET['del'])) {
$db->query("DELETE FROM ?_users_dialog WHERE `dialog_group` = ?", $log . '_and_' . $data['users_login']);
$db->query("OPTIMIZE TABLE ?_users_dialog");
$inSes->addMessage('Сообщения успешно удалены!');
gen_red($mod, $data['users_id'], RND);
}
if ($config['dialog_refresh'] > 0) {
header('Refresh: ' . num($config['dialog_refresh']) . '; url=' . gen_uri('dialog', $data['users_id'], RND));
}
show_header('Диалог с ' . nickname($data['users_login']));
if (!empty($_GET['code'])) include( MODULES_PATH . 'code.inc.php' );
else if (!empty($_GET['smiles'])) include( MODULES_PATH . 'smiles.inc.php' );
else {
$onpage = !empty($config['mail_num']) ? num($config['mail_num']) : 10;
if ($page > 1) $from = ($page - 1) * $onpage; else $from = 0;
$rows = $db->selectPage($total, "SELECT `d`.*, `u`.`users_gender`, `u`.`users_id`, `v`.`visit_nowtime`
FROM ?_users_dialog `d`
LEFT JOIN ?_users `u`
ON `d`.`dialog_user` = `u`.`users_login`
LEFT JOIN ?_users_visit `v`
ON `d`.`dialog_user` = `v`.`visit_user`
WHERE `d`.`dialog_group` = ?
ORDER BY `d`.`dialog_time` DESC
LIMIT ?d, ?d", $log . '_and_' . $data['users_login'], $from, $onpage);
if (!empty($rows) && $total > 0) {
$c = $from + 1;
foreach ($rows as $numRow => $row) {
echo '<div class="bl">';
echo '<table class="w100"><tr>';
echo '<td class="vhr" valign="top">' . user_avatars($row['dialog_user']) . '</td>';
echo '<td valign="top">';
echo '<span class="fr xsmall">' . get_date($row['dialog_time']) . '</span>';
echo user_visit_icon($row['dialog_user'], $row['users_gender'], $row['visit_nowtime']);
echo ' ' . users_anketa($row['users_id'], $row['dialog_user']) . '<hr />';
echo nl2br(bb_code($row['dialog_message'])) . '</td></tr></table></div>';
}
echo show_pages(gen_uri($mod, $data['users_id'], RND));
echo show_link(gen_uri($mod, $data['users_id'], 'del=1&' . RND), 'Очистить диалог');
}
else {
show_error('Сообщений пока нет!');
}
}
$form = new cmsForm(gen_uri($mod, $id, RND), 'post', ' name="form" id="form"');
$form->addCode('Сообщение: <span class="xsmall">[<a href="' . gen_uri($mod, $id, 'smiles=1') . '">Смайлы</a>] ');
$form->addCode('[<a href="' . gen_uri($mod, $id, 'code=1') . '">ББ-коды</a>]');
$form->addCode(' [<a href="#form" onclick="document.form.text.rows += 5;">+</a>]');
$form->addCode(' [<a href="#form" onclick="document.form.text.rows -= 5;">-</a>]</span>');
$form->addTextarea('', 'text', request('text'));
$form->addHidden('rnd', md5($_SESSION['token']));
echo $form->Submit('Отправить', 'send');
unset($form);
}
else {
show_header('Личная почта');
show_login('Вы не авторизованы, для просмотра писем, необходимо');
}
?>