slug = $slug; $this->db = $db; if (!$this->load_from_slug()) { return false; } else { return true; } } private function load_from_slug(): bool { $socials = []; $dj = $this->get_dj_by_slug($this->slug); if ($dj) { if (isset($dj['id'])) { $this->id = $dj['id']; } if (isset($dj['name'])) { $this->name = $dj['name']; } if (isset($dj['bio'])) { $this->bio = $dj['bio']; } if (isset($dj['img'])) { // is this legacy code? // the code is legacy if it starts with /dj/, // if it does, prefix with https://www.utahsdjs.com if (substr($dj['img'], 0, 5) == "/djs/") { // remove /djs/ from the string $dj['img'] = substr($dj['img'], 4); $this->img = "https://cdn.utahsdjs.com" . $dj['img']; } else { $this->img = $dj['img']; } } if (isset($dj['email'])) { $this->email = $dj['email']; } if (isset($dj['facebook_url'])) { $this->socials['facebook'] = $dj['facebook_url']; } if (isset($dj['instagram_url'])) { $this->socials['instagram'] = $dj['instagram_url']; } if (isset($dj['twitter_url'])) { $this->socials['twitter'] = $dj['twitter_url']; } if (isset($dj['myspace_url'])) { $this->socials['myspace'] = $dj['myspace_url']; } if (isset($dj['soundcloud_url'])) { $this->socials['soundcloud'] = $dj['soundcloud_url']; } if (isset($dj['mixcloud_url'])) { $this->socials['mixcloud'] = $dj['mixcloud_url']; } if (isset($dj['spotify_url'])) { $this->socials['spotify'] = $dj['spotify_url']; } if (isset($dj['active'])) { $this->active = $dj['active']; } if (isset($dj['claimed_by']) && $dj['claimed_by'] != null) { // TODO: pull some quick data on the user who claimed this DJ $this->claimed = true; } if (isset($dj['created'])) { $this->created = $dj['created']; } if (isset($dj['updated'])) { $this->updated = $dj['updated']; } return true; } else { return false; } } private function get_dj_by_slug($slug) { $stmt = $this->db->prepare("SELECT * FROM djs WHERE slug = ?"); $stmt->bind_param("s", $slug); $stmt->execute(); $result = $stmt->get_result(); $dj = $result->fetch_assoc(); $stmt->close(); return $dj; } public function get_slug(): string { return $this->slug; } public function get_id(): int { return $this->id; } public function get_name(): string { return $this->name; } public function get_bio(): string { return $this->bio; } public function get_img(): string { return $this->img; } public function get_active(): bool { return $this->active; } public function get_email(): string { return $this->email; } public function get_socials(): array { return $this->socials; } public function get_created(): string { return $this->created; } public function get_updated(): string { return $this->updated; } public function get_claimed(): bool { return $this->claimed; } }