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;
     }
 }
Example #2
0
 function getComments($member_id)
 {
     _filter_var($member_id);
     // keeps track of duplicate entries
     // because we don't delete old entries, but show only
     // one of them, actually the last one
     $has_comment = array();
     $comments_res = array();
     // we'll return this
     $comments =& $this->Database->getAll("SELECT author_id, comment, added_on,comment_id FROM comments WHERE member_id = '{$member_id}' ORDER BY added_on DESC", array(), 2);
     if (PEAR::isError($comments)) {
         die($comments->getMessage());
     }
     if (sizeof($comments) > 0) {
         $_now = date('Y-m-d H:i:s');
         foreach ($comments as $i => $comment) {
             $user_id = $comment["author_id"];
             // multiple comments allowed now,
             // because this is wall now
             //if(!in_array($user_id,$has_comment)) {
             $has_comment[] = $user_id;
             $username = _getMemberUsername($user_id);
             $user = new User($username);
             $usersnamesurname = $user->getNameSurname();
             $usersicon = $user->getMiniIcon();
             // from GeneralFunctions.php
             $timediff = getStyledDateDiff($comment['added_on'], $_now);
             $comments_res[$i]["author"] = $usersnamesurname;
             $comments_res[$i]["author_username"] = $username;
             $comments_res[$i]["comment"] = $comment["comment"];
             $comments_res[$i]["icon"] = $usersicon;
             $comments_res[$i]["date"] = $timediff;
             $comments_res[$i]["id"] = $comment["comment_id"];
             //}
         }
     }
     return $comments_res;
 }
Example #3
0
     break;
 case "talks":
     include 'includes/Page.TalksZZZZZ.class.php';
     $talkspage = new TalksPage($group_name);
     $talks_strict_maillist = $group->moduleOptions_getTalksStrictMaillist();
     $allmsgs = $talkspage->getAllMessagesCompact();
     if ($allow_talks && ($access_isGroupMember || $open_talks) && !empty($allmsgs)) {
         $isok = true;
         $isok_content[] = array("Latest Topics", $allmsgs);
     }
     break;
 case "people":
     $members = $group->getMembers();
     $html = "";
     foreach ($members as $m) {
         $member_name = _getMemberUsername($m['member_id']);
         $u = new User($member_name);
         if (isset($_SESSION['valid_user']) && $member_name != $_SESSION['valid_user']) {
             $a = $u->getAvatarAsHTML($group_name, 15, false);
         } else {
             $a = $u->getAvatarAsHTML($group_name, 15, true);
         }
         $html .= "<a href=\"{$service_host}{$group_name}/people/{$member_name}\">{$a}</a>";
     }
     $isok = true;
     $isok_content[] = array("Members", $html);
     break;
 case "blogs":
 default:
     include_once 'includes/Page.BlogsZZZZZ.class.php';
     $blogspage = new BlogsPage($group_name);
Example #4
0
 /**
  * This function differs from others;
  * it does not use default to_name and to_email
  * functions.
  * It first tries to find out the admins of the group
  * because the mail will be sent to them..
  */
 function notifyJoining($group_title)
 {
     /**
      * First let's notify the admins
      */
     $g = new Group($this->groupname);
     $admins = $g->getAdmins();
     $skipper = false;
     if (!$admins || sizeof($admins) == 0) {
         $skipper = true;
     }
     if (!$skipper) {
         foreach ($admins as $admin) {
             $admins_user_id = $admin['member_id'];
             $admin_username = _getMemberUsername($admins_user_id);
             $admin_obj = new User($admin_username);
             $tmp_name = $admin_obj->getNameSurname($this->groupname);
             $tmp_email = $admin_obj->getEmail();
             $this->AddAddress($tmp_email, $tmp_name);
         }
         $msg = "";
         $msg .= "<p>Dear administrator of {$group_title},</p>";
         $msg .= "\r\n\r\n";
         $msg .= "<p>A new user <u>{$this->to_email}</u> has joined your group - <a href=\"http://grou.ps/{$this->groupname}\">http://grou.ps/{$this->groupname}</a></p>";
         $msg .= $this->thanks;
         $this->Subject = "New Member";
         $this->Body = $msg;
     }
     // TODO: Add logging features
     if (!$skipper && !$this->Send()) {
         $this->ClearAddresses();
         return false;
         // an error has occurred
     } else {
         /**
          * Success, so it's time to 
          * notify the user 
          */
         $this->ClearAddresses();
         // no need to filter $group_title
         $nmsg = "";
         $nmsg .= "<p>{$this->to_email}</p>";
         $nmsg .= "\r\n\r\n";
         $nmsg .= "<p>You have sucessfuly joined <u>{$group_title}</u>.</p>";
         $nmsg .= $this->thanks;
         $this->Subject = "Your Joining Request APPROVED!";
         $this->Body = $nmsg;
         $this->AddAddress($this->to_email, $this->to_name);
         // TODO: Add logging features
         if (!$this->Send()) {
             $this->ClearAddresses();
             return false;
         } else {
             $this->ClearAddresses();
             return true;
         }
     }
 }