_get_info($shout_id); return true; } // Constructor /** * _get_info * does the db call, reads from the user_shout table */ private function _get_info($shout_id) { $sticky_id = Dba::escape($shout_id); $sql = "SELECT * FROM `user_shout` WHERE `id`='$shout_id'"; $db_results = Dba::query($sql); $data = Dba::fetch_assoc($db_results); foreach ($data as $key=>$value) { $this->$key = $value; } return true; } // _get_info /** * get_top * This returns the top user_shouts, shoutbox objects are always shown regardless and count against the total * number of objects shown */ public static function get_top($limit) { $shouts = self::get_sticky(); // If we've already got too many stop here if (count($shouts) > $limit) { $shouts = array_slice(0,$limit,$shouts); return $shouts; } // Only get as many as we need $limit = intval($limit) - count($shouts); $sql = "SELECT * FROM `user_shout` WHERE `sticky`='0' ORDER BY `date` DESC LIMIT $limit"; $db_results = Dba::query($sql); while ($row = Dba::fetch_assoc($db_results)) { $shouts[] = $row['id']; } return $shouts; } // get_top /** * get_sticky * This returns all current sticky shoutbox items */ public static function get_sticky() { $sql = "SELECT * FROM `user_shout` WHERE `sticky`='1' ORDER BY `date` DESC"; $db_results = Dba::query($sql); $results = array(); while ($row = Dba::fetch_assoc($db_results)) { $results[] = $row['id']; } return $results; } // get_sticky /** * get_object * This takes a type and an ID and returns a created object */ public static function get_object($type,$object_id) { $allowed_objects = array('song','genre','album','artist','radio'); if (!in_array($type,$allowed_objects)) { return false; } $object = new $type($object_id); return $object; } // get_object /** * get_image * This returns an image tag if the type of object we're currently rolling with * has an image assoicated with it */ public function get_image() { switch ($this->object_type) { case 'album': $image_string = ""; break; case 'artist': break; case 'song': $song = new Song($this->object_id); $image_string = ""; break; default: // Rien a faire break; } // end switch return $image_string; } // get_image /** * create * This takes a key'd array of data as input and inserts a new shoutbox entry, it returns the auto_inc id */ public static function create($data) { $user = Dba::escape($GLOBALS['user']->id); $text = Dba::escape(strip_tags($data['comment'])); $date = time(); $sticky = make_bool($data['sticky']); $object_id = Dba::escape($data['object_id']); $object_type = Dba::escape($data['object_type']); $sql = "INSERT INTO `user_shout` (`user`,`date`,`text`,`sticky`,`object_id`,`object_type`) " . "VALUES ('$user','$date','$text','$sticky','$object_id','$object_type')"; $db_results = Dba::query($sql); $insert_id = Dba::insert_id(); return $insert_id; } // create /** * update * This takes a key'd array of data as input and updates a shoutbox entry */ public static function update($data) { $id = Dba::escape($data['shout_id']); $text = Dba::escape(strip_tags($data['comment'])); $sticky = make_bool($data['sticky']); $sql = "UPDATE `user_shout` SET `text`='$text', `sticky`='$sticky' WHERE `id`='$id'"; $db_results = Dba::query($sql); return true; } // create /** * format * this function takes the object and reformats some values */ public function format() { if ( $this->sticky == "0" ) { $this->sticky = "No"; } else { $this->sticky = "Yes"; } $this->date = date("m\/d\/Y - H:i",$this->date); return true; } //format /** * delete * this function deletes a specific shoutbox entry */ public function delete($shout_id) { // Delete the shoutbox post $sql = "DELETE FROM `user_shout` WHERE `id`='$shout_id'"; $db_results = Dba::query($sql); } // delete } // shoutBox class ?>