public static function deleteUserAndAllInfo($user_id) { // Усі фото користувача $photos = (new Query())->select('id, src, date')->from('photos')->where(['id_author' => $user_id])->indexBy('id')->all(); $photos_id = self::arrayIdToString($photos); // Видаляємо всі фото користувача foreach ($photos as $photo) { Photo::deleteAllSizePhoto($photo, "img/photos/"); } // Усі статті користувача $articles = (new Query())->select('id, thumbnail')->from('articles')->where(['id_author' => $user_id])->indexBy('id')->all(); $articles_id = self::arrayIdToString($articles); // Видаляємо всі статті користувача foreach ($articles as $article) { if (file_exists('img/articles/' . $article['thumbnail'])) { unlink('img/articles/' . $article['thumbnail']); } } // Усі клуби користувача $clubs = (new Query())->select('id')->from('clubs')->where(['id_author' => $user_id])->indexBy('id')->all(); $clubs_id = self::arrayIdToString($clubs); // Усі фото що в клубах користувача або належать цьому користувачу $clubs_photo = (new Query())->select('id, src, date')->from('club_photo')->where(['id_author' => $user_id])->orWhere(['in', 'club_id', $clubs_id])->indexBy('id')->all(); $clubs_photo_id = self::arrayIdToString($clubs_photo); // Видаляємо всі фото в клубі користувача foreach ($clubs_photo as $photo) { Photo::deleteAllSizePhoto($photo, "img/club/photos/"); } $content_club = (new Query())->select('img_src')->from('content_club')->where('id_user=:user_id AND img_src <> ""', [':user_id' => $user_id])->orWhere('id_club IN (:clubs_id) AND img_src <> ""', [':clubs_id' => '1, 2'])->all(); // Видаляємо всі фото в дискусіях користувача foreach ($content_club as $content) { if (file_exists('img/club/discussion/' . $content['img_src'])) { unlink('img/club/discussion/' . $content['img_src']); } } // Видаляємо аватарку користувача if (file_exists('img/avatar/user_' . $user_id . '.jpg')) { unlink('img/avatar/user_' . $user_id . '.jpg'); } elseif (file_exists('img/avatar/user_' . $user_id . '.png')) { unlink('img/avatar/user_' . $user_id . '.png'); } elseif (file_exists('img/avatar/user_' . $user_id . '.gif')) { unlink('img/avatar/user_' . $user_id . '.gif'); } // Видалення всіх записів з БД Yii::$app->db->createCommand('DELETE FROM album WHERE id_user=:user_id;')->bindValues([':user_id' => $user_id])->execute(); Yii::$app->db->createCommand('DELETE FROM archive_date WHERE id_photo IN (' . $photos_id . ');')->execute(); Yii::$app->db->createCommand('DELETE FROM archive_month WHERE id_photo IN (' . $photos_id . ');')->execute(); Yii::$app->db->createCommand('DELETE FROM archive_week WHERE id_photo IN (' . $photos_id . ');')->execute(); Yii::$app->db->createCommand('DELETE FROM best_photo_area WHERE photo_id IN (' . $photos_id . ');')->execute(); Yii::$app->db->createCommand('DELETE FROM comments_photo WHERE id_photo IN (' . $photos_id . ');')->execute(); Yii::$app->db->createCommand('DELETE FROM favorites WHERE id_photo IN (' . $photos_id . ') OR id_article IN (' . $articles_id . ') OR id_author=:user_id;')->bindValues([':user_id' => $user_id])->execute(); Yii::$app->db->createCommand('DELETE FROM likes WHERE id_photo IN (' . $photos_id . ') OR id_article IN (' . $articles_id . ');')->bindValues([':user_id' => $user_id])->execute(); Yii::$app->db->createCommand('DELETE FROM marks_photo WHERE id_photo IN (' . $photos_id . ');')->bindValues([':user_id' => $user_id])->execute(); Yii::$app->db->createCommand('DELETE FROM club_likes WHERE photo_id IN (' . $clubs_photo_id . ');')->bindValues([':user_id' => $user_id])->execute(); Yii::$app->db->createCommand('DELETE FROM club_photo WHERE club_id IN (' . $clubs_id . ') OR id_author=:user_id;')->bindValues([':user_id' => $user_id])->execute(); Yii::$app->db->createCommand('DELETE FROM comments_blog WHERE id_article IN (' . $articles_id . ');')->bindValues([':user_id' => $user_id])->execute(); Yii::$app->db->createCommand('DELETE FROM comments_club WHERE id_photo IN (' . $clubs_photo_id . ');')->bindValues([':user_id' => $user_id])->execute(); Yii::$app->db->createCommand('DELETE FROM content_club WHERE id_club IN (' . $clubs_id . ') OR id_user=:user_id;')->bindValues([':user_id' => $user_id])->execute(); Yii::$app->db->createCommand('DELETE FROM marks_article WHERE id_article IN (' . $articles_id . ');')->bindValues([':user_id' => $user_id])->execute(); Yii::$app->db->createCommand('DELETE FROM users_clubs WHERE id_club IN (' . $clubs_id . ') OR id_user=:user_id;')->bindValues([':user_id' => $user_id])->execute(); Yii::$app->db->createCommand('DELETE FROM articles WHERE id_author=:user_id;')->bindValues([':user_id' => $user_id])->execute(); Yii::$app->db->createCommand('DELETE FROM clubs WHERE id_author=:user_id;')->bindValues([':user_id' => $user_id])->execute(); Yii::$app->db->createCommand('DELETE FROM friends WHERE id_user1=:user_id OR id_user2=:user_id;')->bindValues([':user_id' => $user_id])->execute(); Yii::$app->db->createCommand('DELETE FROM photos WHERE id_author=:user_id;')->bindValues([':user_id' => $user_id])->execute(); // Записуємо в БД що користувач видалився $avatar = self::getDeleteUserAvatar(); Yii::$app->db->createCommand(' UPDATE user SET is_deleted_user=1, avatar="' . $avatar . '", rating=1, cup=0, money=0, photo_day=0, photo_month=0, photo_week=0, photo_year=0, photos=0, comments=0, email="" WHERE id = :user_id ')->bindValues([':user_id' => $user_id])->execute(); }