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; }
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']; }