private function doLoadMemberships($privacy = false, $count = false, $start = 0, $which = 0, $orderbymostrecent = false) { $limitclause = $privacyclause = ""; if (!$start) { $start = 0; } if ($count) { $limitclause = " LIMIT {$start}, {$count}"; } if ($privacy !== false && $privacy !== null) { $privacyclause = " b.brd_privacy={$privacy} "; } if ($this->userid && $which) { if ($which > 0) { if ($orderbymostrecent) { //$sql = "SELECT q1.*, q2.max_date FROM (SELECT * FROM boards b, memberships m WHERE b.brd_id = m.mem_board_id AND m.mem_user_id=".$this->userid . ($privacyclause ? "AND $privacyclause" : "") . ") as q1 LEFT OUTER JOIN (SELECT MAX(msg_date) as max_date, mem_board_id FROM messages msg, memberships mem WHERE msg.msg_board_id=mem.mem_board_id GROUP BY mem_board_id) as q2 ON q1.brd_id=q2.mem_board_id ORDER BY max_date DESC $limitclause"; $sql = "SELECT q1.*, q2.lastpost FROM (SELECT * FROM boards b, memberships m, users u WHERE b.brd_creator=u.user_id AND b.brd_id = m.mem_board_id AND m.mem_user_id=" . $this->userid . ($privacyclause ? "AND {$privacyclause}" : "") . ") as q1 LEFT OUTER JOIN (SELECT MAX(msg_date) as lastpost, mem_board_id FROM messages msg, memberships mem WHERE msg.msg_board_id=mem.mem_board_id GROUP BY mem_board_id) as q2 ON q1.brd_id=q2.mem_board_id ORDER BY lastpost DESC {$limitclause}"; } else { //$sql = "SELECT * FROM boards b, memberships m WHERE b.brd_id = m.mem_board_id AND m.mem_user_id=".$this->userid . ($privacyclause ? "AND $privacyclause" : "") . " ORDER BY b.brd_id DESC ".$limitclause; $sql = "SELECT * FROM boards b, memberships m, users u WHERE b.brd_creator=u.user_id AND b.brd_id = m.mem_board_id AND m.mem_user_id=" . $this->userid . ($privacyclause ? "AND {$privacyclause}" : "") . " ORDER BY b.brd_id DESC " . $limitclause; } } /* elseif($which<0) { //$sql = "SELECT * FROM boards b WHERE b.brd_id NOT IN (SELECT mem_board_id FROM memberships m WHERE m.mem_user_id=".$this->userid.") ". ($privacyclause ? "AND $privacyclause" : "") . " ORDER BY b.brd_id DESC $limitclause"; $sql = "SELECT * FROM boards b, users u WHERE b.brd_creator=u.user_id AND b.brd_id NOT IN (SELECT mem_board_id FROM memberships m WHERE m.mem_user_id=".$this->userid.") ". ($privacyclause ? "AND $privacyclause" : "") . " ORDER BY b.brd_id DESC $limitclause"; } */ } /* else { $sql = "SELECT * FROM boards b, users u WHERE b.brd_creator=u.user_id " . ($privacyclause ? " AND $privacyclause" : "") . $limitclause; } */ //echo $sql; $db = new SCDB(); $memberships = $db->queryArray($sql); foreach ($memberships as $id => $membership) { $new_membership = new SCMembership($membership); $new_membership->hideUser(); $this->memberships[] = $new_membership; /* $this->boards[] = array( "id"=>$board["brd_id"], "name"=>$board["brd_name"], "creator"=>$board["brd_creator"], "creatorname"=>$board["user_name"], "createdate"=>$board["brd_createdate"], "privacy"=>$board["brd_privacy"], "description"=>$board["brd_description"], "max_date"=>(isset($board["max_date"]) ? $board["max_date"] : null), "messages"=>array() ); */ } $this->hasmemberships = sizeof($memberships); return $this; }
private function loadData($invitecode) { $sql = "SELECT * FROM invitations WHERE inv_hash='{$invitecode}'"; $db = new SCDB(); $result = $db->queryArray($sql); if (sizeof($result)) { $this->id = $result[0]["inv_id"]; $this->email = $result[0]["inv_email"]; $this->board_id = $result[0]["inv_board_id"]; $this->from_id = $result[0]["inv_from_id"]; $this->hash = $result[0]["inv_hash"]; $this->accepted = $result[0]["inv_accepted"]; $this->date = $result[0]["inv_date"]; } else { $this->setNull(); } }
public function getMessages($count = false, $since = false) { $limitclause = ""; if ($count) { $limitclause = " LIMIT 0, {$count}"; } $sinceclause = ""; if ($since) { $sinceclause = " AND m.msg_id > {$since} "; } $sql = "SELECT * FROM messages m, users u WHERE (m.msg_id=" . $this->messageid . " OR m.msg_thread=" . $this->messageid . ") AND u.user_id=m.msg_author {$sinceclause} ORDER BY m.msg_id ASC {$limitclause}"; $db = new SCDB(); $threadinfo = $db->queryArray($sql); $this->messageset = array(); foreach ($threadinfo as $id => $msg) { $this->messageset[] = new SCMessage($msg); } return $this; }
private function userFromCookie() { $cookie = SC::getCookie("sc_auth"); if (!$cookie) { return false; } $cookie_array = explode("||", base64_decode($cookie)); //echo (var_dump($cookie_array)); $user_id = $cookie_array[0]; $cookie_auth_token = $cookie_array[1]; $sql = "SELECT user_password, user_email from users WHERE user_id=" . $user_id; $db = new SCDB(); $result = $db->queryArray($sql); if (sizeof($result)) { //$auth_token = $this->createAuthToken($user_id, $result[0]["user_password"]); $auth_token = md5($result[0]["user_email"] . $result[0]["user_password"]); if (strcmp($cookie_auth_token, $auth_token) === 0) { $this->setSessionUser($user_id, SCUser::saltPassword($result[0]["user_password"])); return $this->getSessionUser(); } } return false; }