コード例 #1
0
 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;
 }
コード例 #2
0
 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();
     }
 }
コード例 #3
0
 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;
 }
コード例 #4
0
 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;
 }