View file modules/users/plugins/friends_and_subscribers.php

File size: 7.88Kb
<?php
  
if (user('ID') > 0){
  
  /*
  ---------------------
  Добавить в подписчики
  ---------------------
  */
  
  if (get('subscribe_ok')){
    
    //db_filter();
    get_check_valid();
    $so_id = intval(get('subscribe_ok'));
    
    //Определение данных
    $subscribe = db::get_string("SELECT `ID` FROM `SUBSCRIBERS` WHERE `MY_ID` = ? AND `USER_ID` = ? LIMIT 1", [user('ID'), $so_id]);
    
    if (!isset($subscribe['ID']) && user('ID') != $so_id && $so_id > 0){ 
      
      db::get_add("INSERT INTO `SUBSCRIBERS` (`USER_ID`, `MY_ID`) VALUES (?, ?)", [$so_id, user('ID')]);
      
      if (db::get_column("SELECT COUNT(*) FROM `NOTIFICATIONS_SETTINGS` WHERE `USER_ID` = ? AND `SUBSCRIBERS` = '1' LIMIT 1", [$so_id]) == 1){ 
        
        db::get_add("INSERT INTO `NOTIFICATIONS` (`USER_ID`, `OBJECT_ID`, `TIME`, `TYPE`) VALUES (?, ?, ?, ?)", [$so_id, user('ID'), TM, 'subscribe_success']);
      
      }
    
    }
    
  }
  
  /*
  ----------------------
  Удалить из подписчиков
  ----------------------
  */
  
  if (get('subscribe_delete')){
    
    //db_filter();
    get_check_valid();
    $sd_id = intval(get('subscribe_delete'));
    
    //Определение данных
    $subscribe = db::get_string("SELECT `ID` FROM `SUBSCRIBERS` WHERE `MY_ID` = ? AND `USER_ID` = ? LIMIT 1", [user('ID'), $sd_id]);
    
    if (isset($subscribe['ID']) && user('ID') != $sd_id && $sd_id > 0){ 
      
      db::get_set("DELETE FROM `SUBSCRIBERS` WHERE `USER_ID` = ? AND `MY_ID` = ? LIMIT 1", [$sd_id, user('ID')]);
    
    }
    
  }
  
  /*
  -----------------
  Удалить из друзей
  -----------------
  */
  
  if (get('friends_delete')){
    
    //db_filter();
    get_check_valid();
    $fd_id = intval(get('friends_delete'));
    
    //Определение данных
    $frend = db::get_string("SELECT `ID` FROM `FRIENDS` WHERE (`USER_ID` = ? AND `MY_ID` = ? OR `USER_ID` = ? AND `MY_ID` = ?) AND `ACT` = '0' LIMIT 1", [user('ID'), $fd_id, $fd_id, user('ID')]);
    
    if (isset($frend['ID'])){ 
      
      db::get_set("DELETE FROM `FRIENDS` WHERE (`USER_ID` = ? AND `MY_ID` = ? OR `MY_ID` = ? AND `USER_ID` = ?) AND `ACT` = '0'", [$fd_id, user('ID'), $fd_id, user('ID')]);
      db::get_set("DELETE FROM `SUBSCRIBERS` WHERE (`USER_ID` = ? AND `MY_ID` = ? OR `MY_ID` = ? AND `USER_ID` = ?) LIMIT 2", [$fd_id, user('ID'), $fd_id, user('ID')]);
      
      if (db::get_column("SELECT COUNT(*) FROM `NOTIFICATIONS_SETTINGS` WHERE `USER_ID` = ? AND `FRIENDS` = '1' LIMIT 1", [$fd_id]) == 1){
        
        db::get_add("INSERT INTO `NOTIFICATIONS` (`USER_ID`, `OBJECT_ID`, `TIME`, `TYPE`) VALUES (?, ?, ?, ?)", [$fd_id, user('ID'), TM, 'friends_delete']);
        
      }
    
    }
  
  }
  
  /*
  ---------------------------
  Отменить предложение дружбы
  ---------------------------
  */
  
  if (get('friends_cancel')){
    
    //db_filter();
    get_check_valid();
    $fc_id = intval(get('friends_cancel'));
    
    //Определение данных
    $frend = db::get_string("SELECT `USER_ID`,`ID` FROM `FRIENDS` WHERE `MY_ID` = ? AND `USER_ID` = ? AND `ACT` = '1' LIMIT 1", [user('ID'), $fc_id]);
    
    if (isset($frend['ID']) && user('ID') != $frend['USER_ID'] && $frend['USER_ID'] > 0){ 
      
      db::get_set("DELETE FROM `FRIENDS` WHERE `MY_ID` = ? AND `USER_ID` = ? AND `ACT` = '1' LIMIT 2", [user('ID'), $frend['USER_ID']]);      
      db::get_set("DELETE FROM `SUBSCRIBERS` WHERE `USER_ID` = ? AND `MY_ID` = ? LIMIT 2", [$frend['USER_ID'], user('ID')]);
      
      if (db::get_column("SELECT COUNT(*) FROM `NOTIFICATIONS_SETTINGS` WHERE `USER_ID` = ? AND `FRIENDS` = '1' LIMIT 1", [$fc_id]) == 1){
        
        db::get_add("INSERT INTO `NOTIFICATIONS` (`USER_ID`, `OBJECT_ID`, `TIME`, `TYPE`) VALUES (?, ?, ?, ?)", [$frend['USER_ID'], user('ID'), TM, 'friends_cancel']);
        
      }
    
    }
  
  }
  
  /*
  -----------------
  Предложить дружбу
  -----------------
  */
  
  if (get('friends_add')){
    
    //db_filter();
    get_check_valid();
    $fr_set = db::get_string("SELECT `USER_ID`,`FRIENDS_PRIVATE_ADD` FROM `USERS_SETTINGS` WHERE `USER_ID` = ? LIMIT 1", [intval(get('friends_add'))]);
    
    if ($fr_set['FRIENDS_PRIVATE_ADD'] == 1){
      
      //Определение данных
      $frend = db::get_string("SELECT `ID`,`USER_ID` FROM `FRIENDS` WHERE `MY_ID` = ? AND `USER_ID` = ? AND `ACT` = '1' LIMIT 1", [user('ID'), $fr_set['USER_ID']]);
      
      if (!isset($frend['ID']) && user('ID') != $fr_set['USER_ID'] && $fr_set['USER_ID'] > 0){ 
        
        db::get_set("DELETE FROM `FRIENDS` WHERE `MY_ID` = ? AND `USER_ID` = ?", [$fr_set['USER_ID'], user('ID')]);
        db::get_add("INSERT INTO `FRIENDS` (`USER_ID`, `MY_ID`, `TIME`) VALUES (?, ?, ?)", [$fr_set['USER_ID'], user('ID'), TM]);
        
        if (db::get_column("SELECT COUNT(*) FROM `SUBSCRIBERS` WHERE `USER_ID` = ? AND `MY_ID` = ? LIMIT 1", [$fr_set['USER_ID'], user('ID')]) == 0){
          
          db::get_add("INSERT INTO `SUBSCRIBERS` (`USER_ID`, `MY_ID`) VALUES (?, ?)", [$fr_set['USER_ID'], user('ID')]);
        
        }
        
        if (db::get_column("SELECT COUNT(*) FROM `NOTIFICATIONS_SETTINGS` WHERE `USER_ID` = ? AND `FRIENDS` = '1' LIMIT 1", [$fr_set['USER_ID']]) == 1){
          
          db::get_add("INSERT INTO `NOTIFICATIONS` (`USER_ID`, `OBJECT_ID`, `TIME`, `TYPE`) VALUES (?, ?, ?, ?)", [$fr_set['USER_ID'], user('ID'), TM, 'friends_add']);
          
        }
        
      }
    
    }
  
  }
  
  /*
  ---------------
  Принятие заявки
  ---------------
  */
  
  if (get('friends_ok')){
    
    //db_filter();
    get_check_valid();
    $fo_id = intval(get('friends_ok'));
    
    //Определение данных
    $frend = db::get_string("SELECT `ID`,`MY_ID` FROM `FRIENDS` WHERE `MY_ID` = ? AND `USER_ID` = ? AND `ACT` = '1' LIMIT 1", [$fo_id, user('ID')]);
    
    if (user('ID') != $frend['MY_ID'] && isset($frend['ID'])){
      
      db::get_set("UPDATE `FRIENDS` SET `ACT` = '0' WHERE `MY_ID` = ? AND `USER_ID` = ? AND `ACT` = '1' LIMIT 2", [$frend['MY_ID'], user('ID')]);      
      db::get_add("INSERT INTO `FRIENDS` (`USER_ID`, `MY_ID`, `TIME`, `ACT`) VALUES (?, ?, ?, ?)", [$frend['MY_ID'], user('ID'), TM, 0]);
      
      if (db::get_column("SELECT COUNT(*) FROM `SUBSCRIBERS` WHERE `USER_ID` = ? AND `MY_ID` = ? LIMIT 2", [$frend['MY_ID'], user('ID')]) == 0){
        
        db::get_add("INSERT INTO `SUBSCRIBERS` (`USER_ID`, `MY_ID`) VALUES (?, ?)", [$frend['MY_ID'], user('ID')]);
        
      }
      
      if (db::get_column("SELECT COUNT(*) FROM `NOTIFICATIONS_SETTINGS` WHERE `USER_ID` = ? AND `FRIENDS` = '1' LIMIT 1", [$frend['MY_ID']]) == 1){
        
        db::get_add("INSERT INTO `NOTIFICATIONS` (`USER_ID`, `OBJECT_ID`, `TIME`, `TYPE`) VALUES (?, ?, ?, ?)", [$frend['MY_ID'], user('ID'), TM, 'friends_success']);
        
      }
    
    }
    
  }
  
  /*
  -----------------
  Отклонение заявки
  -----------------
  */
  
  if (get('friends_no')){
    
    //db_filter();
    get_check_valid();
    $fn_id = intval(get('friends_no'));
    
    //Определение данных
    $frend = db::get_string("SELECT `ID` FROM `FRIENDS` WHERE (`MY_ID` = ? AND `USER_ID` = ? OR `MY_ID` = ? AND `USER_ID` = ?) AND `ACT` = '1' LIMIT 1", [user('ID'), $fn_id, $fn_id, user('ID')]);
    
    if (isset($frend['ID'])){ 
      
      db::get_set("DELETE FROM `FRIENDS` WHERE (`USER_ID` = ? AND `MY_ID` = ? OR `MY_ID` = ? AND `USER_ID` = ?) AND `ACT` = '1' LIMIT 2", [$fn_id, user('ID'), $fn_id, user('ID')]);
      
      if (db::get_column("SELECT COUNT(*) FROM `NOTIFICATIONS_SETTINGS` WHERE `USER_ID` = ? AND `FRIENDS` = '1' LIMIT 1", [$fn_id]) == 1){
        
        db::get_add("INSERT INTO `NOTIFICATIONS` (`USER_ID`, `OBJECT_ID`, `TIME`, `TYPE`) VALUES (?, ?, ?, ?)", [$fn_id, user('ID'), TM, 'friends_no']);
        
      }
    
    }
  
  }

}