Файл: Arhmobi_esdcms/pages/comm.avatar.php
Строк: 131
<?php
include_once '../sys/inc/start.php';
if (AJAX)
$doc = new document_json(1);
else
$doc = new document(1);
$doc->title = __('Комментарии фото анкеты');
if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
header('Refresh: 1; url=./');
$doc->err(__('Ошибка выбора фото анкеты'));
exit;
}
$id_st = (int) $_GET['id'];
$q = $db->prepare("SELECT * FROM `users` WHERE `id` = ?");
$q->execute(Array($id_st));
if (!$ava= $q->fetch()) {
header('Refresh: 1; url=./');
$doc->err(__('Пользователь не найден'));
exit;
}
$avtor = new user((int) $ava['id']);
if($avtor->avatar == 0) {
$doc->err(__('фото анкеты не установлено'));
exit;
}
$listing = new listing();
$post = $listing->post();
$post->title = $avtor->nick();
$post->time= '♥ нравится '.$db->query("SELECT COUNT(*) FROM `ava_like` WHERE `id_ava` = '$avtor->id' ")->fetchColumn();
$post->post = "<img class='photo' src='" . $avtor->getAvatar($dcms->browser_type == 'full' ? '320':'220') . "'/>";
$listing->display();
if (isset($_GET['comment']) && $user->id == $avtor->id) {
$id_message = (int) $_GET['comment'];
$q = $db->prepare("SELECT * FROM `ava_komm` WHERE `id` = ? LIMIT 1");
$q->execute(Array($id_message));
if (!$message =$q->fetch()) {
$doc->err(__('Комментарий не найден'));
} else {
$q = $db->prepare("DELETE FROM `ava_komm` WHERE `id` = ? LIMIT 1");
$q->execute(Array($id_message));
$doc->msg(__('Комментарий успешно удален'));
header('Refresh: 1; url=?id=' . $ava['id'] . '&' . passgen() . '&' . SID);
}
}
$ank = (empty($_GET ['id'])) ? $user : new user((int)$_GET ['id']);
$can_write = true;
if (!$user->is_writeable) {
$doc->msg(__('Писать запрещено'), 'write_denied');
$can_write = false;
}
$pages = new pages($db->query("SELECT COUNT(*) FROM `ava_komm` WHERE `id_ava` = '".$ava['id']."'")->fetchColumn());
if ($can_write && $pages->this_page == 1) {
if (isset($_POST['send']) && isset($_POST['message']) && isset($_POST['token']) && $user->group) {
$message = (string)$_POST['message'];
$users_in_message = text::nickSearch($message);
$message = text::input_text($message);
if (!antiflood::useToken($_POST['token'], 'ava_komm')) {
// нет токена (обычно, повторная отправка формы)
} elseif ($dcms->censure && $mat = is_valid::mat($message)) {
$doc->err(__('Обнаружен мат: %s', $mat));
} elseif ($message) {
//$user->balls += $dcms->add_balls_chat ;
if ($users_in_message) {
for ($i = 0; $i < count($users_in_message) && $i < 20; $i++) {
$user_id_in_message = $users_in_message[$i];
if ($user_id_in_message == $user->id) {
continue;
}
$ank_in_message = new user($user_id_in_message);
if ($ank_in_message->notice_mention) {
$ank_in_message->mess("[user]{$user->id}[/user] упомянул" . ($user->sex ? '' : 'а') . " о Вас в комментарии к [url=/comm.avatar.php?id=" . $ava['id'] . "]Аватару[/url]");
}
}
}
elseif ($avtor->id != $user->id) {
$avtor->mess("[user]{$user->id}[/user] оставил" . ($user->sex ? '' : 'а') . " комментарий у вас [url=/comm.avatar.php?id=".$ava['id']."]в Аватаре[/url]");}
$res = $db->prepare("INSERT INTO `ava_komm` (`id_user`, `time`, `msg`, `id_ava`) VALUES (?,?, ?, ?)");
$res->execute(Array($user->id, TIME, $message, intval($ava['id'])));
header('Refresh: 1; url=?id=' . $ava['id'] . '&' . passgen() . '&' . SID);
$doc->ret(__('Вернуться'), '?' . passgen());
$doc->msg(__('Сообщение успешно отправлено'));
if ($doc instanceof document_json) {
$doc->form_value('message', '');
$doc->form_value('token', antiflood::getToken('ava_komm'));
}
exit;
} else {
$doc->err(__('Сообщение пусто'));
}
if ($doc instanceof document_json)
$doc->form_value('token', antiflood::getToken('ava_komm'));
}
if ($user->group) {
$message_form = '';
if (isset($_GET ['message']) && is_numeric($_GET ['message'])) {
$id_message = (int)$_GET ['message'];
$q = $db->prepare("SELECT * FROM `ava_komm` WHERE `id` = ? LIMIT 1");
$q->execute(Array($id_message));
if ($message = $q->fetch()) {
$ank = new user($message['id_user']);
if (isset($_GET['reply'])) {
$message_form = '@' . $ank->login . ',';
} elseif (isset($_GET['quote'])) {
$message_form = "@$ank->login, [quote id_user="{$ank->id}" time="{$message['time']}"]{$message['message']}[/quote]";
}
}
}
if (!AJAX) {
$form = new form('?id=' . $ava['id'] . '&' . passgen());
$form->refresh_url('?id=' . $ava['id'] . '&' . passgen());
$form->setAjaxUrl('?id=' . $ava['id'] . '&' . passgen());
$form->hidden('token', antiflood::getToken('ava_komm'));
$form->textarea('message', __('Сообщение'), $message_form, true);
$form->button(__('Отправить'), 'send', false);
$form->display();
}
}
}
$listing = new listing();
// привязываем форму к листингу, чтобы листинг мог обновиться при отправке формы через AJAX
if (!empty($form))
$listing->setForm($form);
$q = $db->query("SELECT * FROM `ava_komm` WHERE `id_ava` = '" . $ava['id'] . "' ORDER BY `id` DESC LIMIT " . $pages->limit);
$after_id = false;
if ($arr = $q->fetchAll()) {
foreach ($arr AS $message) {
$ank = new user($message['id_user']);
$post = $listing->post();
$post->id = 'ava_komm_' . $message['id'];
$post->url = '/profile.view.php?id=' . $ank->id;
$post->time = misc::when($message['time']);
$post->title = $ank->nick();
$post->image = $ank->ava();
$post->post = text::toOutput($message['msg']);
if ($user->group) {
$post->action('reply', '?id=' . $ava['id'] . '&message=' . $message['id'] . '&reply');
$post->action('quote', '?id=' . $ava['id'] . '&message=' . $message['id'] . '&quote');
}
if ($user->group >= 2 || $user->id == $avtor->id) {
$post->action('delete', '?id=' . $ava['id'] . '&comment=' . $message['id'] . '&page=' . $pages->this_page);
}
if (!$doc->last_modified)
$doc->last_modified = $message['time'];
if ($doc instanceof document_json)
$doc->add_post($post, $after_id);
$after_id = $post->id;
}
}
if ($doc instanceof document_json && !$arr){
$post = new listing_post(__('Комментарии отсутствуют'));
$post->icon('empty');
$doc->add_post($post);
}
$listing->setAjaxUrl('?id=' . $ava['id'] . '&page=' . $pages->this_page);
$listing->display(__('Комментарии отсутствуют'));
$pages->display('?id=' . $ava['id'] . '&'); // вывод страниц
if ($doc instanceof document_json)
$doc->set_pages($pages);
$doc->ret(__('Вернуться в анкету'), '/profile.view.php?id=' . $avtor->id);