コード例 #1
0
 public function getUser($id, $fields = null)
 {
     $user = array();
     $id = addslashes($id);
     $fields = explode(',', $fields);
     // information if he's online
     if (array_search('online', $fields) !== false) {
         $user['online'] = $this->db->fetchRow("SELECT * FROM presence WHERE UserID='{$id}' LIMIT 1");
     }
     // information about his friend
     if (array_search('friends', $fields) !== false) {
         $user['friends'] = $this->db->fetchAll("SELECT * FROM friends WHERE PrincipalID='{$id}'");
     }
     // information about the grid
     if (array_search('grid', $fields) !== false) {
         $user['grid'] = $this->db->fetchRow("SELECT * FROM griduser WHERE UserID='{$id}' LIMIT 1");
     }
     // information about the inventory
     if (array_search('inventory', $fields) !== false) {
         $user['inventory'] = $this->db->fetchAll("SELECT * FROM inventoryitems WHERE avatarID='{$id}'");
     }
     // information about the avatar
     if (array_search('avatar', $fields) !== false) {
         $user['avatar'] = $this->db->fetchAll("SELECT * FROM avatars WHERE PrincipalID='{$id}'");
     }
     // fetching user data
     $fields = $this->filterFields($fields);
     $user = $this->db->fetchRow("SELECT {$fields} FROM auth,useraccounts WHERE UUID=PrincipalID AND UUID='{$id}'");
     if (!$user) {
         return false;
     }
     $user['UUID'] = $id;
     return $user;
 }
コード例 #2
0
 public function add(array $data)
 {
     if (!isset($data['CreatorID']) || !isset($data['RegionUUID'])) {
         return false;
     }
     $data['CreationDate'] = time();
     if (count($this->db->fetchOne("SELECT UUID FROM auth WHERE UUID='{$data['CreatorID']}'")) != 1) {
         return false;
     }
     $data['OwnerID'] = isset($data['OwnerID']) ? $data['OwnerID'] : $data['CreatorID'];
     $data['LastOwnerID'] = isset($data['LastOwnerID']) ? $data['LastOwnerID'] : $data['CreatorID'];
     if (count($this->db->fetchOne("SELECT uuid FROM regions WHERE uuid='{$data['RegionUUID']}'")) != 1) {
         return false;
     }
     $data['UUID'] = $data['SceneGroupID'] = Model_OpenSim::getRandomId();
     $primsData = array();
     $primsFields = $this->db->fetchAll('SHOW COLUMNS FROM prims');
     foreach ($primsFields as $p) {
         $f = $p['Field'];
         if (array_key_exists($f, $data)) {
             $primsData[$f] = $data[$f];
         }
     }
     $shapeData = array();
     $shapeFields = $this->db->fetchAll('SHOW COLUMNS FROM primshapes');
     foreach ($shapeFields as $p) {
         $f = $p['Field'];
         if (array_key_exists($f, $data)) {
             $shapeData[$f] = $data[$f];
         }
     }
     $this->db->insert('prims', $primsData);
     $this->db->insert('primshapes', $shapeData);
     return $data['UUID'];
 }