Example #1
0
 /**
  * This function should word atomic.
  * It requires .... feature in database.
  * However MySQL 3.x does not provide it!
  *
  * To make a membership request, one should be 
  * a member first.
  *
  * User may use their existing profiles or create
  * a new profile when subscribing to new gnippets.
  */
 function acceptMembershipRequest($mid, $sp = false)
 {
     _filter_var($mid);
     $gids = '';
     // gnippet_ids to update
     $res =& $this->Database->getRow("SELECT member_name, profile_id FROM membership_requests  WHERE member_id='{$mid}'", array(), 2);
     if (PEAR::isError($res)) {
         die($res->getMessage());
     }
     if (sizeof($res) != 2) {
         die('Error No 41');
     } else {
         if (!empty($res['member_name']) && empty($res['profile_id'])) {
             $n = $res['member_name'];
             $gids = ',' . $this->GroupID . ',';
             $q =& $this->Database->query("INSERT INTO memberships (membership_id, member_id, subscribed_on, member_name, website, blog, flickr, delicious, avatar, membership_name) VALUES (NULL,'{$mid}', NOW(),'{$n}','','','','','12', '')");
             if (PEAR::isError($q)) {
                 die($q->getMessage());
             }
             if (!$q) {
                 return false;
             } else {
                 $q =& $this->Database->query("DELETE FROM membership_requests WHERE member_id='{$mid}'");
                 if (PEAR::isError($q)) {
                     die($q->getMessage());
                 }
             }
         } elseif (!empty($res['profile_id']) && empty($res['member_name'])) {
             $gids = ',' . $this->GroupID . ',';
             $rr =& $this->Database->getRow("SELECT * FROM memberships  WHERE membership_id='{$res['profile_id']}'", array(), 2);
             if (PEAR::isError($rr)) {
                 die($rrr->getMessage());
             }
             $q =& $this->Database->query("INSERT INTO memberships (membership_id, member_id, subscribed_on, member_name, website, blog, flickr, delicious, avatar, membership_name) VALUES (NULL,'{$rr["member_id"]}',NOW(),'{$rr["member_name"]}','{$rr["website"]}','{$rr["blog"]}','{$rr["flickr"]}','{$rr["delicious"]}','{$rr["avatar"]}','{$rr["membership_name"]}')");
             if (PEAR::isError($q)) {
                 die($q->getMessage());
             }
             if (!$q) {
                 return false;
             } else {
                 $q =& $this->Database->query("DELETE FROM membership_requests WHERE AND member_id='{$mid}'");
                 if (PEAR::isError($q)) {
                     die($q->getMessage());
                 }
             }
         } elseif ($sp) {
             $n = '';
             $q =& $this->Database->query("INSERT INTO memberships (membership_id, member_id, subscribed_on, member_name, website, blog, flickr, delicious, avatar, membership_name) VALUES (NULL,'{$mid}', NOW(),'{$n}','','','','','12', '')");
             if (PEAR::isError($q)) {
                 die($q->getMessage());
             }
             if (PEAR::isError($q)) {
                 die($q->getMessage());
             }
             if (!$q) {
                 return false;
             } else {
                 $q =& $this->Database->query("DELETE FROM membership_requests WHERE member_id='{$mid}'");
                 if (PEAR::isError($q)) {
                     die($q->getMessage());
                 }
             }
         } else {
             die("Error No 14");
             // not possible
         }
     }
     if ($q) {
         $uname = _getMemberUsername($mid);
         $u = new User($uname);
         $u->createProfile($this->GroupName);
         if (isset($_SESSION['valid_user']) && $_SESSION['valid_user'] == $uname) {
             updateUserLocations();
         }
         return true;
     } else {
         return false;
     }
 }