Файл: modules/profile/friends.php
Строк: 143
<?php
if(!defined('SHCMS_ENGINE')) {
die( "Неправильное действие" );
}
if(isset($id_user)) {
//Выводим данные всех друзей и пользователей по значениям $id and $id_user
$all_friend = $db->get_array($db->query("SELECT * FROM `friends` WHERE (`id_user` = '".$id."' AND `id_friends` = '".$id_user."') OR (`id_user` = '".$id_user."' AND `id_friends` = '".$id."')"));
switch($do):
/*
* Добавление пользователя в друзья
*/
case 'new_friend':
//Если существует $ID то выполнит следующие действие
if(isset($_GET['id']) and is_numeric($_GET['id'])) {
//Из $_GET преобразуем обычную $
$id = (int) $_GET['id'];
//Если захотите добавить самого себя то выведит сразу ошибку
if($id_user == $id) {
echo engine::error(Lang::__('Данного пользователя запрещено добавить в друзья'));
echo engine::home(array(Lang::__('Назад'),'?id='.$id.''));
exit;
}
//Проверка прошло ли время с момента удаление друга
$add_frend = $db->get_array($db->query("SELECT * FROM `friends_flood` WHERE `id_friends` = '".$id."' AND `id_user` = '".$id_user."'"));
//Выполнение функции со временем это обязательный параметр советую не убирать для точного добавления выбранного пользователя
if(isset($add_frend['time'])) {
if($add_frend['time'] > time()) {
echo engine::error(Lang::__('В течение 10 минут вы не сможете добавить только что удаленного пользователя в друзья'));
echo engine::home(array(Lang::__('Назад'),'?id='.$id.''));
exit;
}
}
//Проверка введенного $id
$insert = $db->get_array($db->query("SELECT * FROM `users` WHERE `id` = '".$id."'"));
//Проверка добавлен ли пользователь в друзья
$select = $db->get_array($db->query("SELECT * FROM `friends` WHERE `id_friends` = '".$id."' AND `id_user` = '".$id_user."'"));
//Проверка если пользователь уже иммется в друзьях то выводит ошибку ниже
if($select['id_friends'] == $id) {
echo engine::error(Lang::__('Произошла ошибка'),Lang::__('Пользователь уже у вас друзьях'));
echo engine::home(array(Lang::__('Назад'),'?id='.$id.''));
exit;
}
//Если под введенным $id отсутствует пользователь то выведит ошибку ниже указанный
if($id != $insert['id']) {
engine::error(Lang::__('Произошли ошибки при удаление'),Lang::__('Пользователь не найден')); //Ошибка
echo engine::home(array(Lang::__('Назад'),'friends.php')); //Переадресация
exit; //Закрываем доступ
}
//Проверяем если пользователь не в друзьях то выводим ему кнопку добавить в друзья
if($all_friend['id_friends'] != $id and $id_user != $id) {
if($all_friend['approved'] == 0) {
//Если же все правильно введено и нет ошибок выполняется добавления в друзья пользователя с обеих сторон
$db->query("INSERT INTO `friends` (`id_user`,`id_friends`,`approved`,`time`) VALUES ('".$id_user."','".$id."','0','".time()."')");
header("Location: /modules/profile.php?id=$id"); //Переадресует на переходящую страницу
}
}
}
break;
/*
* Удаление пользователя из друзей
*/
case 'delete_friend':
//Если существует $ID то выполнит следующие действие
if(isset($_GET['id']) and is_numeric($_GET['id'])) {
//Из $_GET преобразуем обычную $
$id = (int) $_GET['id'];
//Проверка введенного $id
$delete = $db->get_array($db->query("SELECT * FROM `friends` WHERE `id_friends` = '".$id."' AND `id_user` = '".$id_user."'"));
//Если под введенным $id отсутствует пользователь то выведит ошибку ниже указанный
if($id != $delete['id_friends']) {
engine::error(Lang::__('Произошли ошибки при удаление'),Lang::__('Пользователь не найден у вас в друзьях')); //Ошибка
echo engine::home(array(Lang::__('Назад'),'friends.php')); //Переадресация
exit; //Закрываем доступ
}
if($all_friend['id_friends'] == $id and $all_friend['id_user'] == $id_user) {
if($all_friend['approved'] == 0) {
echo engine::error(Lang::__('Заявка уже отправлено Дождитесь ответа'));
exit;
}
}
//Если же все правильно введено и нет ошибок выполняется удаление пользователя с обеих сторон
$db->query("DELETE FROM `friends` WHERE `id_user` = '".$id_user."' AND `id_friends` = '".$id."' OR `id_user` = '".$id."' AND `id_friends` = '".$id_user."'");
//Удаленного пользователя и друга добавим в список запоминаний
$db->query("DELETE FROM `friends_flood` WHERE `id_user` = '".$id_user."' AND `id_friends` = '".$id."' OR `id_user` = '".$id."' AND `id_friends` = '".$id_user."'");
$db->query("INSERT INTO `friends_flood` (`id_user`,`id_friends`,`time`) VALUES ('".$id_user."','".$id."','".(time()+600)."')");
header("Location: /modules/profile.php?id=$id"); //Переадресует на переходящую страницу
}
break;
endswitch;
echo '<div class="privice">';
//Проверяем если пользователь не в друзьях то выводим ему кнопку добавить в друзья
if($all_friend['id_friends'] != $id and $id_user != $id) {
if($all_friend['approved'] == 0) {
echo '<a href="?do=new_friend&id='.$id.'" class="btn btn-small"><img src="/engine/template/icons/user_add.png"> '.Lang::__('Добавить в друзья').'</a> ';
}else {
echo '<a href="?do=delete_friend&id='.$id.'" class="btn btn-small"><img src="/engine/template/icons/user_add.png"> '.Lang::__('Удалить из друзей').'</a> ';
}
//Если пользователь в друзьях и вы заходите удалить его то нажмите на Удалить из друзей
}elseif($all_friend['id_friends'] == $id and $all_friend['id_user'] == $id_user) {
if($all_friend['approved'] == 0) {
echo 'Заявка на дружбу отправлена ';
}else {
echo '<a href="?do=delete_friend&id='.$id.'" class="btn btn-small"><img src="/engine/template/icons/user_add.png"> '.Lang::__('Удалить из друзей').'</a> ';
}
}
//Проверяем если пользователь является подходящий id с вашим то выведит ошибку
if($id_user != $id) {
//Отправка личного сообщения пользователю
echo '<a href="/modules/messaging.php?act=newsend&id='.$id.'" class="btn btn-small"><img src="/engine/template/icons/email_open1.png"> '.Lang::__('Отправить в ЛС').'</a> ';
}
echo '</div>';
}