Файл: mail/mail.php
Строк: 483
<?php
require_once '../core/system.php';
echo only_reg();
$header = 'Почта';
$header_link = '?';
require_once H.'/core/head.php';
# Адаптация
$inf = $user;
        
switch($_GET['m']) {
default:
    if(!check_mail())
    {
        echo'<font color="red"><strong>Данный раздел будет доступен только после <a href="/profile/mail_edit/">подтверждения E-mail</a></strong></font>';
        
        require_once H.'/core/foot.php';
        exit;
    }
    
    echo'<div class="phdr">
            <a href="?m=mess"><input value="Написать" type="button" /></a></strong>
        </div>';
        
        if(empty($_GET['page'])) $page = 0;
        else
        $page = (int)$_GET['page'];
        
        $num = 12;
        $posts = mysql_result(mysql_query("SELECT COUNT(*) FROM `mail_kontakt` WHERE `us`='".(int)$inf['id']."' GROUP BY `kontakt`"), 0);
        $total = intval(($posts - 1) / $num) + 1;  
        if(empty($page) OR $page < 0) $page = 1;  
        if($page > $total) $page = $total;
        $start = $page * $num - $num;
    $print = mysql_query("SELECT * FROM `mail_kontakt` WHERE `us`='".(int)$inf['id']."' GROUP BY `kontakt` ORDER BY `time` DESC LIMIT ".$start.",".($num)."");
    if (mysql_affected_rows() == 0) 
    {
        echo ' У вас нет открытых диалогов<br/>';
    }
    else
    {
        while($arr = mysql_fetch_array($print)) 
        {
            $kol_mess = mysql_num_rows(mysql_query ("SELECT `id` FROM `mail` WHERE ((`komu`='".(int)$inf['id']."' AND `kto`='".(int)$arr['kontakt']."') OR (`kto`='".(int)$inf['id']."' AND `komu`='".(int)$arr['kontakt']."'))  AND `adresat` = '".(int)$inf['id']."'"));
            $new_mess = mysql_num_rows(mysql_query ("SELECT `id` FROM `mail` WHERE `komu`='".(int)$inf['id']."' AND `kto`='".(int)$arr['kontakt']."' AND `active` = '0'  AND `adresat` != '".(int)$user['id']."'"));
            
                echo'<a href="?m=dialog&us='.$arr['kontakt'].'">
                        <div class="listing-information-two">
                            '.login($arr['kontakt'], 0).' <span>('.$new_mess.'/'.$kol_mess.')</span>
                        </div>
                    </a>
                    ';        
        }
        
        page_nav($page,$total,$cssClass="hr p5",$dopLink);
        
    }
    /*Вывод ссылок на разделы сообщений*/
    echo'<div class="title" style="text-align: left;"><a href="?m=show_mess_status&status=izb">Избранное <span>('.mysql_num_rows(mysql_query ("SELECT `id` FROM `mail` WHERE `status`='izb' ")).')</span></a></div>';
    echo'<div class="title" style="text-align: left;"><a href="?m=show_mess_status&status=save">Сохраненные<span>('.mysql_num_rows(mysql_query ("SELECT `id` FROM `mail` WHERE `status`='save' ")).')</span></a></div>';
break;
case 'mess':
    if(!$_POST['content'] && !$_POST['add'])
    {
        if($_GET['us_id'] == $inf['id'])
        {
            echo'Зачем писать сообщения самому себе? =)) <br />';
            echo'<a href="javascript:history.back()" onMouseOver="window.status="Назад";return true"><input value="Назад" type="button" /></a>';
        }
        else
        {
            echo "<form method="POST" action="?m=".$_GET['m']."" name="auth">
                ".($_GET['us_id'] ? "Сообщение для ".login($_GET['us_id']).": <br /> <input type="hidden" name="komu" value="".(int)$_GET['us_id']."">" : "Пользователь (id|ник): <br /><input type="text" name="komu">")." <br />
                Текст сообщения:<br/> <textarea name="content" maxlength="500" cols="20" rows="5"></textarea><br/>
                <br/><input type="submit" class="ibutton" value="Написать" name="enter"><br />
            </form>n";
        }
    } 
    else 
    {
        $komu = trim(mysql_real_escape_string(htmlspecialchars($_POST['komu'])));
        $content = trim(mysql_real_escape_string(htmlspecialchars($_POST['content'])));
            
        // Ecли присутствует отправка файла то просто инклюдим запись  загрузчика Ajax
        if($_FILES['files']['name'][1])
        {
            include 'ajaxUpload.php';
            header("Location:?m=dialog_wap&us=".(int)$u['id']."");
        }
        else
        {
            $u = mysql_fetch_array(mysql_query("SELECT `id` FROM `user` WHERE `id`='".(int)$komu."' OR `nick`='".$komu."'"));
            if($u['id'] == $inf['id']) $er = 'Зачем писать сообщения самому себе? =))';
            else        
            if(!$u['id']) $er = 'Пользователя которому Вы пытаетесь отправить сообщение не существует';
            else
            if((time() - $_SESSION['time_add']) < $settings['antiflud']) $er = 'Сообщение писать можно не чаще 1 в '.$settings['antiflud'].' сек. ';
            else
            if(!$content) $er = 'Слишком короткий текст сообщения!';
            
            if($er)
            {
                echo'<div style="colOR:red"><strong>'.$er.'</strong></div>';
                
                echo'<a href="javascript:history.back()" onMouseOver="window.status="Назад";return true"><input value="Назад" type="button" /></a>';
            } 
            else 
            {
                /*[ДЛЯ ПЕРВОГО ЮЗЕРА] Добавляем сообщение*/
                mysql_query("INSERT INTO `mail` SET `adresat`='".(int)$inf['id']."', `kto`='".(int)$inf['id']."', `komu`='".(int)$u['id']."', `content`='".$content."', `data`='".date('d.m.Y в H:i')."', `time`='".time()."'");
                /*[ДЛЯ ВТОРОГО ЮЗЕРА] Добавляем сообение*/
                mysql_query("INSERT INTO `mail` SET `adresat`='".(int)$u['id']."', `kto`='".(int)$inf['id']."', `komu`='".(int)$u['id']."', `content`='".$content."', `data`='".date('d.m.Y в H:i')."', `time`='".time()."'");
                
                /*[ДЛЯ ПЕРВОГО ЮЗЕРА] Обновляем время в контакте (что бы последните отвеченные были в верху)  или добавляем контакт*/
                if(mysql_result(mysql_query("SELECT COUNT(*) FROM `mail_kontakt` WHERE `us`='".(int)$inf['id']."' AND `kontakt`='".(int)$u['id']."'"), 0))
                {
                    mysql_query ("Update `mail_kontakt` set  `time` = '".time()."' WHERE `us`='".(int)$inf['id']."' AND `kontakt`='".(int)$u['id']."'");
                }
                else
                {
                    mysql_query("INSERT INTO `mail_kontakt` SET `us`='".(int)$inf['id']."', `kontakt`='".(int)$u['id']."', `time`='".time()."'");
                }                
                /*[ДЛЯ ВТОРОГО ЮЗЕРА] Обновляем время в контакте (что бы последните отвеченные были в верху)  или добавляем контакт*/
                if(mysql_result(mysql_query("SELECT COUNT(*) FROM `mail_kontakt` WHERE `us`='".(int)$u['id']."' AND `kontakt`='".(int)$inf['id']."'"), 0))
                {
                    mysql_query ("Update `mail_kontakt` set  `time` = '".time()."' WHERE `us`='".(int)$u['id']."' AND `kontakt`='".(int)$inf['id']."'");
                }
                else
                {
                    mysql_query("INSERT INTO `mail_kontakt` SET `us`='".(int)$u['id']."', `kontakt`='".(int)$inf['id']."', `time`='".time()."'");
                }
                
                /*записываем время (для антиспама)*/
                $_SESSION['time_add'] = time();
                
                if($_GET['vers'] == 'wap') header("Location:?m=dialog_wap&us=".(int)$u['id']."");
                else
                    header("Location:?m=dialog&us=".(int)$u['id']."");
            
            }
        }
    }
    
break;
///Сама переписка (Ajax)
case 'dialog':
    /*Подключаем js для выполнения запросов */
    echo'<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>';
    echo'<script type="text/javascript" src="./jquery.form.js"></script>';
    echo'<script type="text/javascript" src="./mess.js"></script>';
    echo'
    <style>
    #preview
    {
    color:#cc0000;
    font-size:12px
    }
    .fileList
    {
    max-height:150px;
    margin-left:5px;
    border:1px solid #dedede;
    padding:4px;
    float:left;
    }
    </style>
    ';
    
    echo'<div style="text-align: left;" class="listing-information">';
        echo'<div class="content" style="cursor: pointer;  margin: -9px -9px 5px -9px; padding: 5px;">';
            
            echo'<span id="sound">';
                if($_SESSION['sound_mail']) echo'<img onClick="sound2()" src="img/sound_on.png" alt="*">';
                else
                    echo'<img onClick="sound1()" src="img/sound_off.png" alt="*">';
            echo'</span>';
            
            
            echo' <a href="?m=del_contakt&kont_id='.(int)$_GET['us'].'"><button style="cursor: pointer;">Удалить диалог</button></a>';
            echo'<a href="?m=dialog_wap&us='.(int)$_GET['us'].'"><button style="cursor: pointer;">WAP</button></a>';
        echo'</div>';
                
        /* загруженные файлы */
        echo'<div style="display:none;" id="preview"></div>';    
        
        echo'
            '.fast_smile().'
            <br />
            <textarea id="mess" name="content" autofocus="autofocus"></textarea>
            
            <form id="fileform" method="post" enctype="multipart/form-data" action="ajaxUpload.php" style="clear:both">
                <input type="hidden" name="komu" id="komu" value="'.$_GET['us'].'"/> <br />    
                <div id="fileloadstatus" style="display:none"><img src="loader.gif" alt="Uploading...."/></div>
                <div id="fileloadbutton">
                <input id="add_mess" name="add_mess" type="button" value="Oтправить"/>
                <input type="file" name="files[]" id="file_input" multiple="true" /><br />
                </div>
            </form>
        ';
    echo'</div>';
    
    /*Вывод ошибок*/
    echo'<div id="err" class="err" style="display:none;"></div>';
    
    /* Выводим сообщения */
    echo'<div id="content"></div>';
break;
///Сама переписка (WAP)
case 'dialog_wap':
    echo'<div class="titl">';
        echo'<a href="?m=del_contakt&kont_id='.(int)$_GET['us'].'"><button>Удалить диалог</button></a>';
        echo'<a href="?m=dialog&us='.(int)$_GET['us'].'"><button>Ajax</button></a>';
    echo'</div>';
    
        echo "<form method="POST" action="?m=mess&vers=wap" name="auth" enctype="multipart/form-data">
                <input type="hidden" name="komu" value="".$_GET['us'].""> <br />
                Текст сообщения:<br/> <textarea name="content"></textarea> <br/>
                <input type="hidden" value="add" name="add">
                Файлы: <br />
                <input name="files[]" type="file" multiple="true"> <br />
                <input type="submit" class="ibutton" value="Написать" name="enter"><br /><br/>
            </form>n";
            
        /* Выводим ошибки если есть */
        if($_SESSION['er']) echo'<font color="red"><strong>'.$_SESSION['er'].'</strong></font>';
        unset($_SESSION['er']);
            
    if(empty($_GET['page'])) $page = 0;
    else
    $page = (int)$_GET['page'];
    $num = 12;
    $posts = mysql_result(mysql_query("SELECT COUNT(*) FROM `mail` WHERE ((`kto`='".(int)$_GET['us']."' AND `komu`='".(int)$inf['id']."') OR (`komu`='".(int)$_GET['us']."' AND `kto`='".(int)$inf['id']."')) AND `adresat`='".(int)$inf['id']."' AND `status`=''"), 0);
    $total = intval(($posts - 1) / $num) + 1;  
    if(empty($page) OR $page < 0) $page = 1;  
    if($page > $total) $page = $total;
    $start = $page * $num - $num;
    $print = mysql_query("SELECT * FROM `mail` WHERE ((`kto`='".(int)$_GET['us']."' AND `komu`='".(int)$inf['id']."') OR (`komu`='".(int)$_GET['us']."' AND `kto`='".(int)$inf['id']."')) AND `adresat`='".(int)$inf['id']."' AND `status`='' ORDER BY `id` DESC LIMIT ".$start.",".($num)."");
    if (mysql_affected_rows() == 0) 
    {
        echo 'Вам пока не поступало сообщений!<br/>';
    }
    else
    {
        while($arr = mysql_fetch_array($print)) 
        {
            echo'<div class="title" style="text-align: left;">
                    <a href="user'.$arr['kto'].'">'.login($arr['kto']).'</a>  ('.$arr['data'].') 
                    <span>
                        [<a href="?m=mess_status&mess_status=save&mess_id='.$arr['id'].'&us='.$_GET['us'].'">Сох</a>]
                        [<a href="?m=mess_status&mess_status=izb&mess_id='.$arr['id'].'&us='.$_GET['us'].'">Изб</a>]
                        [<a href="?m=mess_status&mess_status=del&mess_id='.$arr['id'].'&us='.$_GET['us'].'">Удал</a>]
                    </span>
                </div>';
            echo '<div class="div_3">'.smiles($arr['content']).'</div>';
        }
        
        page_nav($page,$total,$cssClass="phdr",$dopLink);
        ///Записуем что прочитаное сообщение
        $act = mysql_query("SELECT `id` FROM `mail` WHERE `komu`='".(int)$inf['id']."' AND `active` = '0'");
        while($arr = mysql_fetch_array($act)) 
        {
            mysql_query ("Update `mail` set  `active` = '1' WHERE  `id`='".(int)$arr['id']."'");
        }
    }
break;
/* Добавление сообщ */
case 'add_mess':
    if(!$_POST['komu'] || !$_POST['mess'])
    {
        if($_GET['us_id'] == $inf['id'])
        {
            echo'Зачем писать сообщения самому себе? =)) <br />';
            echo'<a href="javascript:history.back()" onMouseOver="window.status="Назад";return true"><input value="Назад" type="button" /></a>';
        }
        else
        {
            echo "<form method="POST" action="?m=".$_GET['m']."" name="auth">
                ".($_GET['us_id'] ? "Сообщение для ".login($_GET['us_id']).": <br /> <input type="hidden" name="komu" value="".(int)$_GET['us_id']."">" : "Пользователь (id|ник): <br /><input type="text" name="komu">")." <br />
                Текст сообщения:<br/> <textarea name="content" maxlength="500" cols="20" rows="5"></textarea><br/>
                <br/><input type="submit" class="ibutton" value="Написать" name="enter"><br />
            </form>n";
        }
    } 
    else 
    {
        $komu = trim(mysql_real_escape_string(htmlspecialchars($_POST['komu'])));
        $content = trim(mysql_real_escape_string(htmlspecialchars($_POST['mess'])));
        
        $u = mysql_fetch_array(mysql_query("SELECT `id` FROM `user` WHERE `id`='".(int)$komu."' OR `nick`='".$komu."'"));
        if($u['id'] == $inf['id']) $er = 'Зачем писать сообщения самому себе? =))';
        else        
        if(!$u['id']) $er = 'Пользователя которому Вы пытаетесь отправить сообщение не существует';
        else
        if((time() - $_SESSION['time_add']) < $settings['antiflud']) $er = 'Сообщение писать можно не чаще 1 в '.$settings['antiflud'].' сек. ';
        else
        if(!$content) $er = 'Слишком короткий текст сообщения!';
        
            if($er)
            {
                $_SESSION['er'] = $er;
            } 
            else 
            {
                /*[ДЛЯ ПЕРВОГО ЮЗЕРА] Добавляем сообщение*/
                mysql_query("INSERT INTO `mail` SET `adresat`='".(int)$inf['id']."', `kto`='".(int)$inf['id']."', `komu`='".(int)$u['id']."', `content`='".$content."', `data`='".date('d.m.Y в H:i')."', `time`='".time()."'");
                /*[ДЛЯ ВТОРОГО ЮЗЕРА] Добавляем сообение*/
                mysql_query("INSERT INTO `mail` SET `adresat`='".(int)$u['id']."', `kto`='".(int)$inf['id']."', `komu`='".(int)$u['id']."', `content`='".$content."', `data`='".date('d.m.Y в H:i')."', `time`='".time()."'");
                
                /*[ДЛЯ ПЕРВОГО ЮЗЕРА] Обновляем время в контакте (что бы последните отвеченные были в верху)  или добавляем контакт*/
                if(mysql_result(mysql_query("SELECT COUNT(*) FROM `mail_kontakt` WHERE `us`='".(int)$inf['id']."' AND `kontakt`='".(int)$u['id']."'"), 0))
                {
                    mysql_query ("Update `mail_kontakt` set  `time` = '".time()."' WHERE `us`='".(int)$inf['id']."' AND `kontakt`='".(int)$u['id']."'");
                }
                else
                {
                    mysql_query("INSERT INTO `mail_kontakt` SET `us`='".(int)$inf['id']."', `kontakt`='".(int)$u['id']."', `time`='".time()."'");
                }                
                /*[ДЛЯ ВТОРОГО ЮЗЕРА] Обновляем время в контакте (что бы последните отвеченные были в верху)  или добавляем контакт*/
                if(mysql_result(mysql_query("SELECT COUNT(*) FROM `mail_kontakt` WHERE `us`='".(int)$u['id']."' AND `kontakt`='".(int)$inf['id']."'"), 0))
                {
                    mysql_query ("Update `mail_kontakt` set  `time` = '".time()."' WHERE `us`='".(int)$u['id']."' AND `kontakt`='".(int)$inf['id']."'");
                }
                else
                {
                    mysql_query("INSERT INTO `mail_kontakt` SET `us`='".(int)$u['id']."', `kontakt`='".(int)$inf['id']."', `time`='".time()."'");
                }
                
                /*записываем время (для антиспама)*/
                $_SESSION['time_add'] = time();
            }
    }
break;
case 'mess_status':
    if($_GET['mess_status'] == 'save')
    {
        mysql_query ("Update `mail` set  `status` = 'save' WHERE `id` = '".(int)$_GET['mess_id']."' AND `adresat` = '".(int)$inf['id']."'");
        $_SESSION['er'] = 'Cообщение сохранено!';
    }
    else if($_GET['mess_status'] == 'izb')
    {
        mysql_query ("Update `mail` set  `status` = 'izb' WHERE `id` = '".(int)$_GET['mess_id']."' AND `adresat` = '".(int)$inf['id']."'");
        $_SESSION['er'] = 'Cообщение сохранено в "Избранное"!';
    }
    else if($_GET['mess_status'] == 'del')
    {
        // Удаляем все сообщения адресован данному пользователю
        $print = mysql_query("SELECT `id`, `arr_links_file` from `mail` WHERE `id` = '".(int)$_GET['mess_id']."' AND `adresat` = '".(int)$inf['id']."'");
        while($arr = mysql_fetch_array($print)) 
        {
            // Если больше никто не использует такие файлы, то удаляем
            if(mysql_result(mysql_query("SELECT COUNT(*) FROM `mail` WHERE `arr_links_file` = '".$arr['arr_links_file']."'"),0) < 2)
            {
                $files = explode(",", $arr['arr_links_file']);
                
                foreach ($files as $name => $value)
                {
                    unlink($_SERVER['DOCUMENT_ROOT'].'/mail/'.$value);
                    echo $_SERVER['DOCUMENT_ROOT'].'/mail/'.$value.' <br />';
                }
            }
            
            // Удаляем само сообщение
            mysql_query ("DELETE FROM `mail` WHERE `id` = '".(int)$_GET['mess_id']."'");
        
            $_SESSION['er'] = 'Сообщение удалено!';
        }
    }
    
    header('location: '.$_SERVER['HTTP_REFERER']);
 
break;
 
case 'del_contakt':
    if(!$_GET['del_ok'])
    {
        echo'При удалении диалога будут удалены все сообщения! <br />';
        echo'<a href="?m='.$_GET['m'].'&kont_id='.$_GET['kont_id'].'&del_ok=5"><button>Удалить</button></a>';
        echo'<a href="javascript:histORy.back()" onMouseOver="window.status="Назад";return true"><button>Назад</button></a>';
    }  
    else 
    {
        mysql_query ("DELETE FROM `mail_kontakt` WHERE `us` = '".(int)$inf['id']."' AND `kontakt`='".(int)$_GET['kont_id']."'");
        
        // Удаляем все сообщения адресован данному пользователю
        $print = mysql_query("SELECT `id`, `arr_links_file` from `mail` WHERE ((`kto`='".(int)$_GET['kont_id']."' AND `komu`='".(int)$inf['id']."') OR (`komu`='".(int)$_GET['kont_id']."' AND `kto`='".(int)$inf['id']."')) AND `adresat`='".(int)$inf['id']."'");
        while($arr = mysql_fetch_array($print)) 
        {
            // Если больше никто не использует такие файлы, то удаляем
            if(mysql_result(mysql_query("SELECT COUNT(*) FROM `mail` WHERE `arr_links_file` = '".$arr['arr_links_file']."'"),0) < 2)
            {
                $files = explode(",", $arr['arr_links_file']);
                
                foreach ($files as $name => $value)
                {
                    unlink($_SERVER['DOCUMENT_ROOT'].'/mail/'.$value);
                    echo $_SERVER['DOCUMENT_ROOT'].'/mail/'.$value.' <br />';
                }
            }
            
            // Удаляем само сообщение
            mysql_query ("DELETE FROM `mail` WHERE `id`='".(int)$arr['id']."'");
        }
        header("location: /mail/");
    }
break;
case 'show_mess_status':
    $status = trim(mysql_real_escape_string(htmlspecialchars($_GET['status'])));
    
    if(empty($_GET['page'])) $page = 0;
    else
    $page = (int)$_GET['page'];
    $num = 12;
    $posts = mysql_result(mysql_query("SELECT COUNT(*) FROM `mail` WHERE `adresat`='".(int)$inf['id']."' AND `status`='".$status."'"), 0);
    $total = intval(($posts - 1) / $num) + 1;  
    if(empty($page) OR $page < 0) $page = 1;  
    if($page > $total) $page = $total;
    $start = $page * $num - $num;
    $print = mysql_query("SELECT * FROM `mail` WHERE `adresat`='".(int)$inf['id']."' AND `status`='".$status."' ORDER BY `id` DESC LIMIT ".$start.",".($num)."");
    if (mysql_affected_rows() == 0) 
    {
        echo 'Сообщеней не найдено!<br/>';
    }
    else
    {
        while($arr = mysql_fetch_array($print)) 
        {
            echo'<div class="div_2">
                    <a href="user'.$arr['kto'].'">'.login($arr['kto']).'</a>  ('.$arr['data'].') 
                    <span>';
                        echo'<a href="?m='.$m.'&status='.$status.'&otv='.$arr['id'].'">Отв</a> ';
                        if($status == 'izb') echo'<a href="?m=mess_status&mess_status=save&status='.$status.'&mess_id='.$arr['id'].'">Seve</a> ';
                        else
                        echo'<a href="?m=mess_status&mess_status=izb&status='.$status.'&mess_id='.$arr['id'].'">Izb</a> ';
                        echo'<a href="?m=mess_status&mess_status=del&status='.$status.'&mess_id='.$arr['id'].'">del</a>';
                echo'</span>
                </div>';
            echo '<div class="div_3">';
                    echo smiles($arr['content']);
                if($_GET['otv'] == $arr['id'])
                {
                    echo "<form method="POST" action="?m=mess" name="auth">
                        <input type="hidden" name="komu" value="".(int)$arr['kto'].""> <br />
                        <div class='div_1'>
                            <a href="?m=$m&status=$status">[<font color="#FFF">X</font>]</a> 
                            Текст сообщения:
                        </div> 
                        <textarea name="content" maxlength="500" cols="20" rows="5"></textarea><br/>
                        <input type="submit" class="ibutton" value="Написать" name="enter"><br />
                    </form>n";
                }
            echo '</div>';
        }
        
        page_nav($page,$total,$cssClass='phdr',$dopLink='status='.$status.'&m='.$m.'&');
    }
break;
case 'sound':
    if($_GET['sn'])
    {
        $_SESSION['sound_mail'] = 1;
    }
    else
    {
        $_SESSION['sound_mail'] = 0;
    }
break;
} ///Закрывающий switch
require_once H.'/core/foot.php';
?>