/my.mail.php
PHP | 161 lines | 123 code | 36 blank | 2 comment | 32 complexity | 50df9704c1992bfbc386b1186abb7d16 MD5 | raw file
- <?php
- include_once 'sys/inc/start.php';
- $doc = new document(1);
- $doc->title = __('??? ?????');
- if (isset($_GET ['id'])) {
- $id_kont = (int) $_GET ['id'];
- $ank = new user($id_kont);
- if (!$ank->group && !mysql_result(mysql_query("SELECT COUNT(*) FROM `mail` WHERE `id_user` = '{$user->id}' AND `id_sender` = '$id_kont'"), 0)) {
- $doc->err(__('???????????? ?? ??????'));
- $doc->ret(__('? ?????'), '?');
- exit();
- }
- $can_write = true;
- if (!$user->is_writeable) {
- $doc->msg(__('?????? ?????????'), 'write_denied');
- $can_write = false;
- }
- $accept_send = $ank->id && $ank->group && $ank->id != $user->id && $can_write;
- if ($ank->mail_only_friends && !$ank->is_friend($user)) {
- $accept_send = false;
- $doc->err(__('?????? ????????? ????? ?????? ??????'));
- if ($user->group > $ank->group) {
- $accept_send = true;
- $doc->msg(__('??? ?????? ????????? ???????? ????????? ??????? ???????????? ???????? ?? ????????????? ???????????'));
- }
- } elseif ($ank->id && $user->mail_only_friends && !$user->is_friend($ank) && $user->group >= $ank->group) {
- $doc->err(__('???????????? ?? ?????? ??? ????????'));
- }
- if ($accept_send && isset($_POST ['post']) && isset($_POST ['mess'])) {
- $mess = (string) $_POST ['mess'];
- text::nickSearch($mess); // ????? ? ?????????????? @nick
- $mess = text::input_text($mess);
- if ($user->group <= $ank->group && !$ank->is_friend($user) && (empty($_POST ['captcha']) || empty($_POST ['captcha_session']) || !captcha::check($_POST ['captcha'], $_POST ['captcha_session'])))
- $doc->err(__('??????????? ????? ??????? ???????'));
- elseif (!$mess)
- $doc->err(__('????????? ?????'));
- else {
- $ank->mess($mess, $user->id);
- $doc->msg(__('????????? ??????? ??????????'));
- header('Refresh: 1; url=?id=' . $id_kont);
- exit();
- }
- $doc->ret(__('? ??????????'), '?id=' . $id_kont);
- }
- $doc->title = __('????????? ? "%s"', $ank->login);
- if ($accept_send) {
- $smarty = new design ();
- $smarty->assign('method', 'post');
- $smarty->assign('action', "/my.mail.php?id=$id_kont&" . passgen());
- $elements = array();
- $elements [] = array('type' => 'textarea', 'title' => __('?????????'), 'br' => 1, 'info' => array('name' => 'mess'));
- if ($user->group <= $ank->group && !$ank->is_friend($user))
- $elements [] = array('type' => 'captcha', 'session' => captcha::gen(), 'br' => 1);
- $elements [] = array('type' => 'submit', 'br' => 0, 'info' => array('name' => 'post', 'value' => __('?????????'))); // ??????
- $elements [] = array('type' => 'submit', 'br' => 0, 'info' => array('name' => 'refresh', 'value' => __('????????'))); // ??????
- $smarty->assign('el', $elements);
- $smarty->display('input.form.tpl');
- }
- $pages = new pages ();
- $pages->posts = mysql_result(mysql_query("SELECT COUNT(*) FROM `mail` WHERE (`id_user` = '{$user->id}' AND `id_sender` = '$id_kont') OR (`id_user` = '$id_kont' AND `id_sender` = '{$user->id}')"), 0); // ?????????? ?????
- $pages->this_page(); // ???????? ??????? ????????
- $q = mysql_query("SELECT * FROM `mail`
- WHERE (`id_user` = '{$user->id}' AND `id_sender` = '$id_kont')
- OR (`id_user` = '$id_kont' AND `id_sender` = '{$user->id}')
- ORDER BY `id` DESC
- LIMIT $pages->limit");
- // ??????? ? ????????? ?????
- mysql_query("UPDATE `mail` SET `is_read` = '1' WHERE `id_user` = '{$user->id}' AND `id_sender` = '$id_kont'");
- // echo mysql_info();
- if (preg_match('#Changed: ([0-9]+)#i', mysql_info(), $ch)) {
- if ($ch [1]) {
- $user->mail_new_count = $user->mail_new_count - $ch [1];
- }
- }
- $listing = new listing();
- while ($mail = mysql_fetch_assoc($q)) {
- $ank2 = new user((int) $mail ['id_sender']);
- $post = $listing->post();
- $post->title = $ank2->nick();
- $post->url = '/profile.view.php?id=' . $ank2->id;
- $post->icon($ank2->icon());
- $post->content = output_text($mail ['mess']);
- $post->hightlight = !$mail ['is_read'];
- $post->time = vremja($mail ['time']);
- }
- $listing->display(__('????????? ???????????'));
- $pages->display('?id=' . $ank->id . '&'); // ????? ???????
- $doc->ret(__('??? ?????????'), '/my.mail.php');
- $doc->ret(__('?????? ????'), '/menu.user.php');
- exit();
- }
- $user->mail_new_count = mysql_result(mysql_query("SELECT COUNT(*) FROM `mail` WHERE `id_user` = '$user->id' AND `is_read` = '0'"), 0);
- if (isset($_GET ['only_unreaded'])) {
- $sql_add = " AND `is_read` = '0'";
- } else {
- $sql_add = '';
- }
- $pages = new pages ();
- $pages->posts = mysql_result(mysql_query("SELECT COUNT(DISTINCT(`id_sender`)) FROM `mail` WHERE `id_user` = '{$user->id}'$sql_add"), 0); // ?????????? ?????????? ?????????????
- $pages->this_page(); // ???????? ??????? ????????
- $q = mysql_query("SELECT `users`.`id`,
- `mail`.`id_sender`,
- MAX(`mail`.`time`) AS `time`,
- MIN(`mail`.`is_read`) AS `is_read`,
- COUNT(`mail`.`id`) AS `count`
- FROM `mail`
- LEFT JOIN `users` ON `mail`.`id_sender` = `users`.`id`
- WHERE `mail`.`id_user` = '{$user->id}'$sql_add
- GROUP BY `mail`.`id_sender`
- ORDER BY `time` DESC
- LIMIT $pages->limit");
- $listing = new listing();
- while ($mail = mysql_fetch_assoc($q)) {
- $ank = new user((int) $mail ['id_sender']);
- $post = $listing->post();
- $post->icon($ank->icon());
- $post->url = '?id=' . $ank->id;
- $post->title = $ank->nick();
- $post->counter = $sql_add ? '+' . $mail['count'] : $mail['count'];
- $post->hightlight = !$mail ['is_read'];
- }
- $listing->display(__('????? ???????????'));
- $pages->display('?');
- $doc->ret(__('?????? ????'), '/menu.user.php');
- ?>