Вход Регистрация
Файл: CMS/core/modules/users_friends.php
Строк: 428
<?php

if (!defined('CMS')) { die('Access Denied!'); }

$actions = array('friends' => 'Мои друзья''friends_requests' => 'Заявки''friends_proposals' => 'Предложения');

$types = array(
               
=> array('Друг''Подруга'),
               
=> array('Лучший друг''Лучшая подруга'),
               
=> array('Одноклассник''Одноклассница'),
               
=> array('Однокурсник''Однокурсница'),
               
=> array('Коллега''Коллега'),
               
=> array('Брат''Сестра'),
               
=> array('Отец''Мать'),
               
=> array('Супруг''Супруга'),
               
=> array('Родственник''Родственница'),
);

/* Действия пользователя */
if ($is_logged && $uz == $log) {

    
$error '';

    if (!empty(
$_REQUEST['add_ok'])) {

      
$add_ok check($_REQUEST['add_ok']);

      if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

        if (
$add_ok <> $log) {

          
$row $db->selectRow("SELECT * FROM ?_users WHERE `users_login` = ? LIMIT 1;"$add_ok);

          if (!empty(
$row)) {

            
$frend_exst $db->selectCell("SELECT `id` FROM ?_friends WHERE `users_login` = ? AND `friends_login` = ? LIMIT 1;"$log$add_ok);

            if (empty(
$frend_exst)) {

              
$ignor_exst $db->selectCell("SELECT `ignore_id` FROM ?_users_ignor_list 
                                             WHERE `ignore_user` = ? AND `ignore_name` = ? LIMIT 1;"
$add_ok$log);

              if (empty(
$ignor_exst)) {

                
$data $db->selectRow("SELECT * FROM ?_friends_new WHERE `user_login` = ? AND `frend_login` = ? LIMIT 1;"$log$add_ok);

                if (!empty(
$data)) {

                  
$db->query("INSERT INTO ?_friends (`users_login`, `friends_login`, `time`, `level`) 
                              VALUES (?, ?, ?, ?);"
$add_ok$logSITE_TIME$data['level']);

                  
$db->query("INSERT INTO ?_friends (`users_login`, `friends_login`, `time`, `level`) 
                              VALUES (?, ?, ?, ?);"
$log$add_okSITE_TIME$data['level']);

                  
$db->query("UPDATE ?_users SET `users_newprivat` = (`users_newprivat` + 1) WHERE `users_login` = ?"$add_ok);

                  
$priv 'Пользователь [b]' nickname($log) . '[/b] подтвердил предложение дружбы с вами!';

                  
$db->query("INSERT INTO ?_users_inbox (`inbox_user`, `inbox_author`, `inbox_text`, `inbox_time`)
                              VALUES (?, ?, ?, ?);"
$add_ok$log$privSITE_TIME);
 
                  
$db->query("DELETE FROM ?_friends_new WHERE `user_login` = ? AND `frend_login` = ? LIMIT 1;"$add_ok$log);

                  
$db->query("DELETE FROM ?_friends_new WHERE `user_login` = ? AND `frend_login` = ? LIMIT 1;"$log$add_ok);

                  
$db->query("OPTIMIZE TABLE ?_friends, ?_friends_new");

                  
$inSes->addMessage('Пользователь успешно добавлен в список ваших друзей!''ok');

                  
gen_red('friends');
                }
                else 
$error 'Ошибка! Заявка необнаружена!';
              }
              else 
$error 'Ошибка! Данный пользователь занес вас в свой игнор-лист!';
            }
            else 
$error 'Ошибка! Данный пользователь уже есть в списке ваших друзей!';
          }
          else 
$error 'Ошибка! Пользователя с данным логином не существует!';
        }
        else 
$error 'Ошибка! Запрещено добавлять самого себя!';
      }
      else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
    }


    if (!empty(
$_REQUEST['add_no'])) {

      
$add_no check($_REQUEST['add_no']);

      if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

        
$row $db->selectRow("SELECT * FROM ?_friends_new WHERE `user_login` = ? AND `frend_login` = ? LIMIT 1;"$log$add_no);

        if (!empty(
$row)) {

          
$db->query("UPDATE ?_users SET `users_newprivat` = (`users_newprivat` + 1) WHERE `users_login` = ?"$add_no);

          
$priv 'Пользователь [b]' nickname($log) . '[/b] отклонил предложение дружбы с вами!';

          
$db->query("INSERT INTO ?_users_inbox (`inbox_user`, `inbox_author`, `inbox_text`, `inbox_time`) 
                      VALUES (?, ?, ?, ?);"
$add_no$log$privSITE_TIME);

          
$db->query("DELETE FROM ?_friends_new WHERE `user_login` = ? AND `frend_login` = ? LIMIT 1;"$add_no$log);

          
$db->query("DELETE FROM ?_friends_new WHERE `user_login` = ? AND `frend_login` = ? LIMIT 1;"$log$add_no);

          
$db->query("OPTIMIZE TABLE ?_friends, ?_friends_new");

          
$inSes->addMessage('В предложении дружбы успешно отказано!''ok');

          
gen_red('friends');

        }
        else 
$error 'Ошибка! Заявка необнаружена!';
      }
      else 
$error 'Ошибка! Неверный идентификатор сессии, повторите действие!';
    }


    if (!empty(
$_POST['del'])) {

      
$del intar($_POST['del']);

      if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

        if ( @
count($del) > 0) {

          
$del implode(','$del);

          
$rows $db->select("SELECT * FROM ?_friends WHERE `id` IN (" $del ") AND `users_login` = ?;"$log);

          if (!empty(
$rows)) {

            
$priv 'Пользователь [b]' nickname($log) . '[/b] удалил вас из списка своих друзей!';

            foreach(
$rows as $row) {

              
$db->query("UPDATE ?_users SET `users_newprivat` = (`users_newprivat` + 1) WHERE `users_login` = ?"$row['friends_login']);

              
$db->query("INSERT INTO ?_users_inbox (`inbox_user`, `inbox_author`, `inbox_text`, `inbox_time`) 
                          VALUES (?, ?, ?, ?);"
$row['friends_login'], $log$privSITE_TIME);

              
$db->query("DELETE FROM ?_friends WHERE `users_login` = ? AND `friends_login` = ?;"$row['friends_login'], $log);
            }

            
$db->query("DELETE FROM ?_friends WHERE `id` IN (" $del ") AND `users_login` = ?;"$log);
          }

          
$db->query("OPTIMIZE TABLE ?_friends, ?_friends_new");

          
$inSes->addMessage('Выбранные пользователи успешно удалены из списка ваших друзей!''ok');

          
gen_red('friends');
        }
        else 
$error 'Ошибка! Не выбраны пользователи для удаления!';
      }
      else 
$error 'Ошибка! Неверный идентификатор сессии, повторите действие!';
    }


    if (!empty(
$_GET['del_friends'])) {

      
$user check($_GET['del_friends']);

      if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

        
$row $db->selectRow("SELECT * FROM ?_friends_new WHERE `user_login` = ? AND `frend_login` = ? LIMIT 1;"$user$log);

        if (!empty(
$row)) {

          
$db->query("DELETE FROM ?_friends_new WHERE `user_login` = ? AND `frend_login` = ? LIMIT 1;"$user$log);

          
$inSes->addMessage('Предложение успешно удалено!''ok');

          
gen_red('friends_proposals'''RND);
        }
        else 
$error 'Ошибка! Предложение необнаружено!';
      }
      else 
$error 'Ошибка! Неверный идентификатор сессии, повторите действие!';
    }

    if (!empty(
$error)) $inSes->addMessage($error'error');
}

$onpage = !empty($config['user_list']) ? num($config['user_list']) : 10;

if (
$page 1$from = ($page 1) * $onpage; else $from 0;

$counts $db->selectRow("SELECT COUNT(`id`) AS `friends`,
                         (SELECT COUNT(`id`) FROM ?_friends_new WHERE `user_login` = ?) AS `friends_requests`,
                         (SELECT COUNT(`id`) FROM ?_friends_new WHERE `frend_login` = ?) AS `friends_proposals`
                          FROM ?_friends WHERE `users_login` = ? LIMIT 1;"
$uz$uz$uz);

if (
$is_logged && $uz == $log) {

    
$show = array();

    foreach(
$actions as $key => $val) {

        
$cnt = !empty($counts[$key]) ? num($counts[$key]) : 0;

        if (!empty(
$mod) && $mod == $key$show[$key] = '<b>' $val ' (' $cnt ')</b>';
        else 
$show[] = $show[$key] = '<a href="' gen_uri($key) . '">' $val '</a> (' $cnt ')';

   }

   
$users_menu '<div class="b">' implode(' / 'array_unique($show)) . '</div>';

}
else 
$users_menu '';

switch(
$mod):

case 
'add_friends':

  if (
$is_logged) {

    if (!empty(
$_REQUEST['user'])) {

      
$user check($_REQUEST['user']);

      if (
$user <> $log) {

        
$row $db->selectRow("SELECT * FROM ?_users WHERE `users_login` = ? LIMIT 1;"$user);

        if (!empty(
$row)) {

          
$frend_exst = (int) $db->selectCell("SELECT `id` FROM ?_friends WHERE `users_login` = ? AND `friends_login` = ? LIMIT 1;"$log$user);

          if (
$frend_exst 1) {

            
$new_frend_exst = (int) $db->selectCell("SELECT `id` FROM ?_friends_new WHERE `user_login` = ? AND `frend_login` = ? LIMIT 1;"$user$log);

            if (
$new_frend_exst 1) {

              
$ignor_exst = (int) $db->selectCell("SELECT `ignore_id` FROM ?_users_ignor_list 
                                                   WHERE `ignore_user` = ? AND `ignore_name` = ? LIMIT 1;"
$user$log);

              if (
$ignor_exst 1) {

                
$sex = ($row['users_gender'] == 'М' || $row['users_gender'] == 1) ? 1;

                if (!empty(
$_POST['submit'])) {

                  if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

                    
$msg = !empty($_POST['msg']) ? $_POST['msg'] : '';
                    
$type = !empty($_POST['type']) ? num($_POST['type']) : 1;

                    if ( 
cms_strlen($msg) < 1000) {

                      if (
array_key_exists($type,$types)) {

                          
$db->query("INSERT INTO ?_friends_new (`user_login`, `frend_login`, `time`, `message`,`level`) VALUES (?, ?, ?, ?, ?);"$user$logSITE_TIME$msg$type);
                          
$img   = ($sex == 1) ? 'qlt_woman.png' 'qlt_man.png';
                          
$priv  '<img src="' $config['site_url'] . '/images/icons/' $img '" alt="" /> ';
                          
$priv .= 'Пользователь [b]' nickname($log) . '[/b] предлаггает Вам дружбу!<br />';
                          
$priv .= !empty($msg) ? 'Комментарий: ' $msg '<br />''';
                          
$priv .= '[add_ok=' $log ']Принять[/add_ok] / ';
                          
$priv .= '[add_no=' $log ']Отклонить[/add_no]';

                          
$db->query("UPDATE ?_users SET `users_newprivat` = (`users_newprivat` + 1) WHERE `users_login` = ?"$user);

                          
$db->query("INSERT INTO ?_users_inbox (`inbox_user`, `inbox_author`, `inbox_text`, `inbox_time`)
                                      VALUES (?, ?, ?, ?);"
$user$log$privSITE_TIME);

                          
$inSes->addMessage('Предложение дружить успешно отправлено!''ok');

                          
gen_red('friends'''RND);

                      }
                      else 
$inSes->addMessage('''error');
                    }
                    else 
$inSes->addMessage('Ошибка! Слишком <u>длиннннный</u> комментарий!');
                  }
                  else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
                }

                
show_header('Предложение дружбы');
                echo 
$users_menu '<div class="b"><span class="blink">*</span> ';
                echo 
'Пользователь ' users_anketa($user) . ' должен будет потвердить, что вы с ним друзья!<br /></div>';
                
$form = new cmsForm('?rnd=' $_SESSION['token'], 'post');
                
$show = array();
                foreach(
$types as $key => $val$show[$key] = $val[$sex];
                
$form->addRadio('''type'request('type',1), $show);
                
$form->addCode('<br />');
                
$form->addTextarea('Комментарий:''msg'request('msg'));
                
$form->addHidden('user'$user);
                echo 
$form->Submit('Отправить заявку''submit');
                unset(
$form);

              }
              else {
                
$inSes->addMessage('Ошибка! Данный пользователь занес вас в свой игнор-лист!');
                
gen_red('friends'''RND);
              }
            }
            else {
              
$inSes->addMessage('Ошибка! Заявка уже была отправлена данному пользователю!');
              
gen_red('friends'''RND);
            }
          }
          else {
            
$inSes->addMessage('Ошибка! Данный пользователь уже есть в списке ваших друзей!');
            
gen_red('friends'''RND);
          }
        }
        else {
          
$inSes->addMessage('Ошибка! Пользователя с данным логином не существует!');
          
gen_red('friends'''RND);
        }
      }
      else {
        
$inSes->addMessage('Ошибка! Запрещено добавлять самого себя!');
        
gen_red('friends'''RND);
      }
    }
    else {
      
show_header('Предложение дружбы');
      
show_error('Ошибка! Вы не ввели имя друга!');
    }
  }
  else {
    
show_header('Предложение дружбы');
    
show_login('Вы не авторизованы, для добавления друзей, необходимо');
  }

  echo 
'<div class="b">' icon('return.png');
  echo 
' <a href="' gen_uri('friends') . '">Мои друзья</a><br /></div>';

break;
case 
'friends_requests':

    if (
$is_logged) {

        
show_header('Мои заявки');

        echo 
$users_menu;

        
$rows $db->selectPage$total"SELECT `f`.*, `u`.`users_gender`
                                          FROM ?_friends_new `f` LEFT JOIN ?_users `u`
                                          ON `f`.`frend_login` = `u`.`users_login`
                                          WHERE `f`.`user_login` = ? ORDER BY `f`.`time` DESC 
                                          LIMIT ?d, ?d"
$log$from$onpage);

        if (!empty(
$rows) && $total 0) {

            
$ok  '<img src="/images/icons/add.png" class="icon" alt"" /> ';
            
$no  '<img src="/images/icons/delete.png" class="icon" alt"" /> ';

            foreach(
$rows as $row) {
 
                
$sex = ($row['users_gender'] == 'М' || $row['users_gender'] == 1) ? 1;
                
$who $types[$row['level']][$sex];

                echo 
'<div class="b">';
                echo 
user_visit_icon($row['frend_login'], $row['users_gender']);
                echo 
' <b>' users_anketa($row['frend_login']) . '</b> <small>(' $who '</small> ';
                
//echo user_online($row['frend_login']) . ' ';
                //echo user_title($row['frend_login']) . '<br /> ';
                
echo ' <small>/ ' get_date($row['time']) . ')</small><br />';

                if (!empty(
$row['message'])) {

                    echo 
'<i><small>Комментарий заявки:</small></i><br />' bb_code($row['message']) . '<br/>';
                }

                echo 
$ok ' <a href="?add_ok=' $row['frend_login'] . '&amp;rnd=' $_SESSION['token'] . '">Принять</a> ';
                echo 
$no ' <a href="?add_no=' $row['frend_login'] . '&amp;rnd=' $_SESSION['token'] . '">Отклонить</a>';
                echo 
'</div>';
            }

            echo 
show_pages('friends_requests''''p');
        }
        else {

            
show_error('Список заявок пуст!');
        }
    }
    else {

        
show_header('Друзья пользователя ' nickname($uz));
        
show_login('Вы не авторизованы, для добавления друзей, необходимо');
    }

break;
case 
'friends_proposals':

    if (
$is_logged) {

        
show_header('Мои предложения');

        echo 
$users_menu;

        
$rows $db->selectPage$total"SELECT `f`.*, `u`.`users_gender`
                                          FROM ?_friends_new `f` LEFT JOIN ?_users `u`
                                          ON `f`.`user_login` = `u`.`users_login`
                                          WHERE `f`.`frend_login` = ? ORDER BY `f`.`time` DESC
                                          LIMIT ?d, ?d"
$log$from$onpage);

        if (!empty(
$rows) && $total 0) {

            foreach(
$rows as $row) {

                
$sex = ($row['users_gender'] == 'М' || $row['users_gender'] == 1) ? 1;
                
$who $types[$row['level']][$sex];

                echo 
'<div class="b">';
                echo 
user_visit_icon($row['frend_login'], $row['users_gender']);
                echo 
' <b>' users_anketa($row['user_login']) . '</b> <small>(' $who ' / ' get_date($row['time']) . ')</small><br />';

                if (!empty(
$row['message'])) {

                    echo 
'<i><small>Ваш комментарий:</small></i><br />' bb_code($row['message']) . '<br />';
                }

                echo 
'<img src="/images/icons/delete.png" class="icon" alt"" /> ';
                echo 
'<a href="?del_friends=' $row['user_login'] . '&amp;rnd=' $_SESSION['token'] . '">Отменить предложение</a>';
                echo 
'</div>';
            }

            echo 
show_pages('friends_requests''''p');
        }
        else {

            
show_error('Список предложений пуст!');
        }
    }
    else {

        
show_header('Друзья пользователя ' nickname($uz));
        
show_login('Вы не авторизованы, для добавления друзей, необходимо');
    }

break;
default:

    
show_header('Друзья пользователя ' nickname($uz));

    echo 
$users_menu;

    if (!empty(
$id) && srrsy_key_exists($id,$types)) {

    }
    else 
$where '';

    
$rows $db->selectPage($total"SELECT `f`.*, `u`.`users_gender`
                                     FROM ?_friends `f` LEFT JOIN ?_users `u`
                                     ON `f`.`friends_login` = `u`.`users_login`
                                     WHERE `f`.`users_login` = ?
                                     ORDER BY `f`.`time` DESC
                                     LIMIT ?d, ?d"
$uz$from$onpage);

    if (!empty(
$rows) && $total 0) {

        if (
$is_logged && $log == $uz) echo '<form action="?rnd=' $_SESSION['token'] . '" method="post" name="friends">';

        foreach(
$rows as $row) {

            
$sex = ($row['users_gender'] == 'М' || $row['users_gender'] == 1) ? 1;
            
$who $types[$row['level']][$sex];

            echo 
'<div class="b">';
            echo 
user_visit_icon($row['friends_login'], $row['users_gender']);
            echo 
' <b>' users_anketa($row['friends_login']) . '</b> <small>(' $who ')</small> ';
            
//echo user_online($row['friends_login']) . '<br />';
            //echo user_title($row['friends_login']) . '<br />';
            
echo '<small>Подружились: ' get_date($row['time']) . '</small><br />';

            if (
$log == $uz) {
                echo 
'<input type="checkbox" name="del[]" value="' $row['id'] . '" /> ';
            }
            echo 
'<img src="' IMAGES 'icons/email.png" class="icon" alt="" /> ';
            echo 
'<a href="' gen_uri('add_privat''''user=' $row['friends_login']) . '">Отправить сообщение</a>';
            echo 
'</div>';
        }

        echo 
show_pages('friends_requests''''p');

        if (
$is_logged && $log == $uz) {
            echo 
'<div class="b">';
             echo 
'<input type="checkbox" name="master_box" title="Отметить всё" onclick="javascript:ckeck_uncheck_all()">';
             echo 
'<input type="submit" class="btns" value="Удалить выбранное" /></form><br /></div>';
        }

    }
    else 
show_error('Список друзей пуст!');

    if (
$is_logged && $log == $uz) {

        echo 
'<div class="b form"><form action="' gen_uri('add_friends''''rnd=' $_SESSION['token']) . '" method="post">';
        echo 
'Логин юзера:<br /><input type="text" name="user" value="' request('user') . '" />';
        echo 
'<input type="submit" class="btns" name="add_friends" value="Добавить" /></form></div>';
        echo <<<JSCRIPT

<script language='JavaScript' type="text/javascript">
<!--
function ckeck_uncheck_all() {
    var frm = document.friends;
    if(frm.master_box.checked == true){ frm.master_box.checked = false; }
    else{ frm.master_box.checked = true; }
    for (var i=0;i<frm.elements.length;i++) {
        var elmnt = frm.elements[i];
        if (elmnt.type=='checkbox') {
            if(frm.master_box.checked == true){ elmnt.checked=false; }
            else{ elmnt.checked=true; }
        }
    }
    //if(frm.master_box.checked == true){ frm.master_box.checked = false; }
    //else{ frm.master_box.checked = true; }
}
-->
</script>

JSCRIPT;
    }

break;
endswitch;

?>
Онлайн: 0
Реклама