$rank->load($rank_to_delete); if (!$rank->isLoaded()) { $guild_errors2[] = 'Rank with ID ' . $rank_to_delete . ' doesn\'t exist.'; } else { if ($rank->getGuild()->getId() != $guild->getId()) { $guild_errors2[] = 'Rank with ID ' . $rank_to_delete . ' isn\'t from your guild.'; } else { if (count($rank_list) < 2) { $guild_errors2[] = 'You have only 1 rank in your guild. You can\'t delete this rank.'; } else { $players_with_rank = $rank->getPlayersList(); $players_with_rank_number = count($players_with_rank); if ($players_with_rank_number > 0) { foreach ($rank_list as $checkrank) { if ($checkrank->getId() != $rank->getId()) { if ($checkrank->getLevel() <= $rank->getLevel()) { $new_rank = $checkrank; } } } if (empty($new_rank)) { $new_rank = new OTS_GuildRank(); $new_rank->setGuild($guild); $new_rank->setLevel($rank->getLevel()); $new_rank->setName('New Rank level ' . $rank->getLevel()); $new_rank->save(); } foreach ($players_with_rank as $player_in_guild) { $player_in_guild->setRank($new_rank); $player_in_guild->save(); }