LotGDocker/lotgd-web/lotgd/lib/clan/clan_withdraw.php

56 lines
3.2 KiB
PHP
Raw Normal View History

2020-08-17 19:16:42 -04:00
<?php
modulehook("clan-withdraw", array('clanid'=>$session['user']['clanid'], 'clanrank'=>$session['user']['clanrank'], 'acctid'=>$session['user']['acctid']));
if ($session['user']['clanrank']>=CLAN_LEADER){
//first test to see if we were the leader.
$sql = "SELECT count(*) AS c FROM " . db_prefix("accounts") . " WHERE clanid={$session['user']['clanid']} AND clanrank>=".CLAN_LEADER." AND acctid<>{$session['user']['acctid']}";
$result = db_query($sql);
$row = db_fetch_assoc($result);
if ($row['c']==0){
//we were the solitary leader.
$sql = "SELECT name,acctid,clanrank FROM " . db_prefix("accounts") . " WHERE clanid={$session['user']['clanid']} AND clanrank > " . CLAN_APPLICANT . " AND acctid<>{$session['user']['acctid']} ORDER BY clanrank DESC, clanjoindate LIMIT 1";
$result = db_query($sql);
if ($row = db_fetch_assoc($result)){
//there is no alternate leader, let's promote the
//highest ranking member (or oldest member in the
//event of a tie). This will capture even people
//who applied for membership.
$sql = "UPDATE " . db_prefix("accounts") . " SET clanrank=".CLAN_LEADER." WHERE acctid={$row['acctid']}";
db_query($sql);
output("`^Promoting %s`^ to leader as they are the highest ranking member (or oldest member in the event of a tie).`n`n",$row['name']);
}else{
//There are no other members, we need to delete the clan.
modulehook("clan-delete", array("clanid"=>$session['user']['clanid']));
$sql = "DELETE FROM " . db_prefix("clans") . " WHERE clanid={$session['user']['clanid']}";
db_query($sql);
//just in case we goofed, we don't want to have to worry
//about people being associated with a deleted clan.
$sql = "UPDATE " . db_prefix("accounts") . " SET clanid=0,clanrank=".CLAN_APPLICANT.",clanjoindate='0000-00-00 00:00:00' WHERE clanid={$session['user']['clanid']}";
db_query($sql);
output("`^As you were the last member of this clan, it has been deleted.");
}
}else{
//we don't have to do anything special with this clan as
//although we were leader, there is another leader already
//to take our place.
}
}else{
//we don't have to do anything special with this clan as we were
//not the leader, and so there should still be other members.
}
$sql = "SELECT acctid FROM " . db_prefix("accounts") . " WHERE clanid='{$session['user']['clanid']}' AND clanrank>=".CLAN_OFFICER." AND acctid<>'{$session['user']['acctid']}'";
$result = db_query($sql);
$withdraw_subj = array("`\$Clan Withdraw: `&%s`0",$session['user']['name']);
$msg = array("`^One of your clan members has resigned their membership. `&%s`^ has surrendered their position within your clan!",$session['user']['name']);
$sql = "DELETE FROM " . db_prefix("mail") . " WHERE msgfrom=0 AND seen=0 AND subject='".serialize($withdraw_subj)."'";
db_query($sql);
while ($row = db_fetch_assoc($result)){
systemmail($row['acctid'],$withdraw_subj,$msg);
}
$session['user']['clanid']=0;
$session['user']['clanrank']=CLAN_APPLICANT;
$session['user']['clanjoindate']="0000-00-00 00:00:00";
output("`&You have withdrawn from your clan.");
addnav("Clan Options");
addnav("Return to the Lobby","clan.php");
?>