diff options
Diffstat (limited to 'lib/class/flag.class.php')
-rw-r--r-- | lib/class/flag.class.php | 656 |
1 files changed, 328 insertions, 328 deletions
diff --git a/lib/class/flag.class.php b/lib/class/flag.class.php index ed1fef06..d7fdc811 100644 --- a/lib/class/flag.class.php +++ b/lib/class/flag.class.php @@ -1,5 +1,5 @@ <?php -/* vim:set tabstop=8 softtabstop=8 shiftwidth=8 noexpandtab: */ +/* vim:set softtabstop=4 shiftwidth=4 expandtab: */ /** * * LICENSE: GNU General Public License, version 2 (GPLv2) @@ -29,396 +29,396 @@ */ class Flag extends database_object { - public $id; - public $user; - public $object_id; - public $object_type; - public $comment; - public $flag; - public $date; - public $approved=0; + public $id; + public $user; + public $object_id; + public $object_type; + public $comment; + public $flag; + public $date; + public $approved=0; - /* Generated Values */ - public $name; // Blank - public $title; // Blank + /* Generated Values */ + public $name; // Blank + public $title; // Blank - /** - * Constructor - * This takes a flagged.id and then pulls in the information for said flag entry - */ - public function __construct($flag_id) { + /** + * Constructor + * This takes a flagged.id and then pulls in the information for said flag entry + */ + public function __construct($flag_id) { - $info = $this->get_info($flag_id,'flagged'); + $info = $this->get_info($flag_id,'flagged'); - foreach ($info as $key=>$value) { - $this->$key = $value; - } + foreach ($info as $key=>$value) { + $this->$key = $value; + } - return true; + return true; - } // Constructor + } // Constructor - /** - * gc - * - * This cleans out unused flagged items - */ - public static function gc() { - Dba::write("DELETE FROM `flagged` USING `flagged` LEFT JOIN `song` ON `song`.`id` = `flagged`.`object_id` WHERE `song`.`id` IS NULL AND `object_type` = 'song'"); - } + /** + * gc + * + * This cleans out unused flagged items + */ + public static function gc() { + Dba::write("DELETE FROM `flagged` USING `flagged` LEFT JOIN `song` ON `song`.`id` = `flagged`.`object_id` WHERE `song`.`id` IS NULL AND `object_type` = 'song'"); + } - /** - * build_cache - * This takes an array of ids and builds up a nice little cache - * for us - */ - public static function build_cache($ids) { + /** + * build_cache + * This takes an array of ids and builds up a nice little cache + * for us + */ + public static function build_cache($ids) { - if (!is_array($ids) OR !count($ids)) { return false; } + if (!is_array($ids) OR !count($ids)) { return false; } - $idlist = '(' . implode(',',$ids) . ')'; + $idlist = '(' . implode(',',$ids) . ')'; - $sql = "SELECT * FROM `flagged` WHERE `id` IN $idlist"; - $db_results = Dba::read($sql); + $sql = "SELECT * FROM `flagged` WHERE `id` IN $idlist"; + $db_results = Dba::read($sql); - while ($row = Dba::fetch_assoc($db_results)) { - parent::add_to_cache('flagged',$row['id'],$row); - } + while ($row = Dba::fetch_assoc($db_results)) { + parent::add_to_cache('flagged',$row['id'],$row); + } - } // build_cache + } // build_cache - /** - * build_map_cache - * This takes an array of ids and builds a map cache to avoid some of the object_type calls - * we would normally have to make - */ - public static function build_map_cache($ids,$type) { + /** + * build_map_cache + * This takes an array of ids and builds a map cache to avoid some of the object_type calls + * we would normally have to make + */ + public static function build_map_cache($ids,$type) { - if (!is_array($ids) OR !count($ids)) { return false; } + if (!is_array($ids) OR !count($ids)) { return false; } - $idlist = '(' . implode(',',$ids) . ')'; - $type = Dba::escape($type); + $idlist = '(' . implode(',',$ids) . ')'; + $type = Dba::escape($type); - $sql = "SELECT * FROM `flagged` " . - "WHERE `flagged`.`object_type`='$type' AND `flagged`.`object_id` IN $idlist"; - $db_results = Dba::read($sql); + $sql = "SELECT * FROM `flagged` " . + "WHERE `flagged`.`object_type`='$type' AND `flagged`.`object_id` IN $idlist"; + $db_results = Dba::read($sql); - while ($row = Dba::fetch_assoc($db_results)) { - $results[$row['object_id']] = $row; - } + while ($row = Dba::fetch_assoc($db_results)) { + $results[$row['object_id']] = $row; + } - // Itterate through the passed ids as we need to cache 'nulls' - foreach ($ids as $id) { - parent::add_to_cache('flagged_' . $type,$id,$results[$id]); - } + // Itterate through the passed ids as we need to cache 'nulls' + foreach ($ids as $id) { + parent::add_to_cache('flagged_' . $type,$id,$results[$id]); + } - return true; + return true; - } // build_map_cache + } // build_map_cache - /** - * has_flag - * Static function, tries to check the cache, but falls back on a query - */ - public static function has_flag($id,$type) { + /** + * has_flag + * Static function, tries to check the cache, but falls back on a query + */ + public static function has_flag($id,$type) { - if (parent::is_cached('flagged_' . $type,$id)) { - $data = parent::get_from_cache('flagged_' . $type,$id); - return $data['date']; - } + if (parent::is_cached('flagged_' . $type,$id)) { + $data = parent::get_from_cache('flagged_' . $type,$id); + return $data['date']; + } - // Ok we have to query this - $type = Dba::escape($type); + // Ok we have to query this + $type = Dba::escape($type); - $sql = "SELECT * FROM `flagged` WHERE `flagged`.`object_type`='$type' AND `flagged`.`object_id`='$id'"; - $db_results = Dba::read($sql); + $sql = "SELECT * FROM `flagged` WHERE `flagged`.`object_type`='$type' AND `flagged`.`object_id`='$id'"; + $db_results = Dba::read($sql); - $row = Dba::fetch_assoc($db_results); - parent::add_to_cache('flagged_' . $type,$row['object_id'],$row); + $row = Dba::fetch_assoc($db_results); + parent::add_to_cache('flagged_' . $type,$row['object_id'],$row); - return $row['date']; + return $row['date']; - } // has_flag + } // has_flag - /** - * get_recent - * This returns the id's of the most recently flagged songs, it takes an int - * as an argument which is the count of the object you want to return - */ - public static function get_recent($count=0) { + /** + * get_recent + * This returns the id's of the most recently flagged songs, it takes an int + * as an argument which is the count of the object you want to return + */ + public static function get_recent($count=0) { - if ($count) { $limit = " LIMIT " . intval($count); } + if ($count) { $limit = " LIMIT " . intval($count); } - $results = array(); + $results = array(); - $sql = "SELECT id FROM flagged ORDER BY date " . $limit; - $db_results = Dba::read($sql); + $sql = "SELECT id FROM flagged ORDER BY date " . $limit; + $db_results = Dba::read($sql); - while ($r = Dba::fetch_assoc($db_results)) { - $results[] = $r['id']; - } + while ($r = Dba::fetch_assoc($db_results)) { + $results[] = $r['id']; + } - return $results; + return $results; - } // get_recent + } // get_recent - /** - * get_disabled - * This returns all of the songs that have been disabled, this is - * a form of being flagged - */ - public static function get_disabled() { + /** + * get_disabled + * This returns all of the songs that have been disabled, this is + * a form of being flagged + */ + public static function get_disabled() { - $sql = "SELECT `id` FROM `song` WHERE `enabled`='0'"; - $db_results = Dba::read($sql); + $sql = "SELECT `id` FROM `song` WHERE `enabled`='0'"; + $db_results = Dba::read($sql); - $results = array(); + $results = array(); - while ($row = Dba::fetch_assoc($db_results)) { - $results[] = $row['id']; - } + while ($row = Dba::fetch_assoc($db_results)) { + $results[] = $row['id']; + } - return $results; + return $results; - } // get_disabled + } // get_disabled - /** - * get_all - * This returns an array of ids of flagged songs if no limit is passed - * it gets everything - */ - public static function get_all($count=0) { + /** + * get_all + * This returns an array of ids of flagged songs if no limit is passed + * it gets everything + */ + public static function get_all($count=0) { - if ($count) { $limit_clause = "LIMIT " . intval($count); } + if ($count) { $limit_clause = "LIMIT " . intval($count); } - $sql = "SELECT `id` FROM `flagged` $limit_clause"; - $db_results = Dba::read($sql); + $sql = "SELECT `id` FROM `flagged` $limit_clause"; + $db_results = Dba::read($sql); - /* Default it to an array */ - $results = array(); + /* Default it to an array */ + $results = array(); - /* While the query */ - while ($row = Dba::fetch_assoc($db_results)) { - $results[] = $row['id']; - } + /* While the query */ + while ($row = Dba::fetch_assoc($db_results)) { + $results[] = $row['id']; + } - return $results; + return $results; - } // get_all + } // get_all - /** - * get_approved - * This returns an array of approved flagged songs - */ - public static function get_approved() { + /** + * get_approved + * This returns an array of approved flagged songs + */ + public static function get_approved() { - $sql = "SELECT `id` FROM `flagged` WHERE `approved`='1'"; - $db_results = Dba::read($sql); + $sql = "SELECT `id` FROM `flagged` WHERE `approved`='1'"; + $db_results = Dba::read($sql); - /* Default the results array */ - $results = array(); + /* Default the results array */ + $results = array(); - /* While it */ - while ($r = Dba::fetch_assoc($db_results)) { - $results[] = $r['id']; - } + /* While it */ + while ($r = Dba::fetch_assoc($db_results)) { + $results[] = $r['id']; + } - return $results; + return $results; - } // get_approved + } // get_approved - /** - * add - * This adds a flag entry for an item, it takes an id, a type, the flag type - * and a comment and then inserts the mofo - */ - public static function add($id,$type,$flag,$comment) { + /** + * add + * This adds a flag entry for an item, it takes an id, a type, the flag type + * and a comment and then inserts the mofo + */ + public static function add($id,$type,$flag,$comment) { - $id = Dba::escape($id); - $type = Dba::escape($type); - $flag = self::validate_flag($flag); - $user = Dba::escape($GLOBALS['user']->id); - $comment = Dba::escape($comment); - $time = time(); - $approved = '0'; + $id = Dba::escape($id); + $type = Dba::escape($type); + $flag = self::validate_flag($flag); + $user = Dba::escape($GLOBALS['user']->id); + $comment = Dba::escape($comment); + $time = time(); + $approved = '0'; - /* If they are an content manager or higher, it's auto approved */ - if (Access::check('interface','75')) { $approved = '1'; } + /* If they are an content manager or higher, it's auto approved */ + if (Access::check('interface','75')) { $approved = '1'; } - $sql = "INSERT INTO `flagged` (`object_id`,`object_type`,`flag`,`comment`,`date`,`approved`,`user`) VALUES " . - " ('$id','$type','$flag','$comment','$time','$approved','$user')"; - $db_results = Dba::write($sql); + $sql = "INSERT INTO `flagged` (`object_id`,`object_type`,`flag`,`comment`,`date`,`approved`,`user`) VALUES " . + " ('$id','$type','$flag','$comment','$time','$approved','$user')"; + $db_results = Dba::write($sql); - return true; + return true; - } // add + } // add - /** - * delete - * This deletes the flagged entry and rescans the file to revert to the origional - * state, in a perfect world, I could just roll the changes back... not until 3.4 - * or.. haha 3.5! - */ - public function delete() { + /** + * delete + * This deletes the flagged entry and rescans the file to revert to the origional + * state, in a perfect world, I could just roll the changes back... not until 3.4 + * or.. haha 3.5! + */ + public function delete() { - // Re-scan the file - $song = new Song($this->object_id); - $info = Catalog::update_media_from_tags($song); - - // Delete the row - $sql = "DELETE FROM `flagged` WHERE `id`='$this->id'"; - $db_results = Dba::write($sql); - - // Reset the Last-Updated date so that it'll get re-scaned - $song->update_utime($song->id,1); - - return true; - - } // delete - - /** - * approve - * This approves the current flag object ($this->id) by setting approved to - * 1 - */ - public function approve() { - - $sql = "UPDATE `flagged` SET `approved`='1' WHERE `id`='$this->id'"; - $db_results = Dba::write($sql); - - $this->approved = 1; - - return true; - - } // approve - - /** - * format - * This function figures out what kind of object we've got and sets up all the - * vars all nice and fuzzy like - */ - public function format() { - - switch ($this->object_type) { - case 'song': - $song = new Song($this->object_id); - $song->format(); - $this->f_name = $song->f_link; - break; - } // end switch on type - - $client = new User($this->user); - $client->format(); - $this->f_user = $client->f_link; - - } // format - - /** - * print_status - * This prints out a userfriendly version of the current status for this flagged - * object - */ - public function print_status() { - - if ($this->approved) { echo T_('Approved'); } - else { echo T_('Pending'); } - - } // print_status - - /** - * print_flag - * This prints out a userfriendly version of the current flag type - */ - public function print_flag() { - - switch ($this->flag) { - case 'delete': - $name = T_('Delete'); - break; - case 'retag': - $name = T_('Re-Tag'); - break; - case 'reencode': - $name = T_('Re-encode'); - break; - case 'other': - $name = T_('Other'); - break; - default: - $name = T_('Unknown'); - break; - } // end switch - - echo $name; - - } // print_flag - - /** - * validate_flag - * This takes a flag input and makes sure it's one of the reigstered - * and valid 'flag' values - */ - public static function validate_flag($flag) { - - switch ($flag) { - case 'delete': - case 'retag': - case 'reencode': - case 'other': - return $flag; - break; - default: - return 'other'; - break; - } // end switch - - } // validate_flag - - /** - * fill_tags - * This is used by the write_tags script. - */ - public static function fill_tags( $tagWriter, $song, $type = 'comment' ) { - - // Set all of the attributes for the tag to be written(All pulled from the song object) - // Use a function since ID3v1, ID3v2, and vorbis/flac/ape are different - switch ($type) { - case 'comment': - $tagWriter->comments['title'] = $song->title; - $tagWriter->comments['date'] = $song->year; - $tagWriter->comments['year'] = $song->year; - $tagWriter->comments['comment'] = $song->comment; - $tagWriter->comments['size'] = $song->size; - $tagWriter->comments['time'] = $song->time; - $tagWriter->comments['album'] = $song->get_album_name(); - $tagWriter->comments['artist'] = $song->get_artist_name(); - $tagWriter->comments['genre'] = $song->get_genre_name(); - $tagWriter->comments['track'] = $song->track; - break; - case 'id3v1': - $tagWriter->title = $song->title; - $tagWriter->year = $song->year; - $tagWriter->comment = $song->comment; - $tagWriter->artist = $song->get_artist_name(); - $tagWriter->album = $song->get_album_name(); - $tagWriter->genre = $song->get_genre_name(); - $tagWriter->track = $song->track; - unset($tagWriter->genre_id); - break; - case 'id3v2': - $tagWriter->title = $song->title; - $tagWriter->year = $song->year; - $tagWriter->comment = $song->comment; - $tagWriter->artist = $song->get_artist_name(); - $tagWriter->album = $song->get_album_name(); - $tagWriter->genre = $song->get_genre_name(); - $tagWriter->track = $song->track; - unset($tagWriter->genre_id); - break; - } // end switch on type - - } // fill_tags + // Re-scan the file + $song = new Song($this->object_id); + $info = Catalog::update_media_from_tags($song); + + // Delete the row + $sql = "DELETE FROM `flagged` WHERE `id`='$this->id'"; + $db_results = Dba::write($sql); + + // Reset the Last-Updated date so that it'll get re-scaned + $song->update_utime($song->id,1); + + return true; + + } // delete + + /** + * approve + * This approves the current flag object ($this->id) by setting approved to + * 1 + */ + public function approve() { + + $sql = "UPDATE `flagged` SET `approved`='1' WHERE `id`='$this->id'"; + $db_results = Dba::write($sql); + + $this->approved = 1; + + return true; + + } // approve + + /** + * format + * This function figures out what kind of object we've got and sets up all the + * vars all nice and fuzzy like + */ + public function format() { + + switch ($this->object_type) { + case 'song': + $song = new Song($this->object_id); + $song->format(); + $this->f_name = $song->f_link; + break; + } // end switch on type + + $client = new User($this->user); + $client->format(); + $this->f_user = $client->f_link; + + } // format + + /** + * print_status + * This prints out a userfriendly version of the current status for this flagged + * object + */ + public function print_status() { + + if ($this->approved) { echo T_('Approved'); } + else { echo T_('Pending'); } + + } // print_status + + /** + * print_flag + * This prints out a userfriendly version of the current flag type + */ + public function print_flag() { + + switch ($this->flag) { + case 'delete': + $name = T_('Delete'); + break; + case 'retag': + $name = T_('Re-Tag'); + break; + case 'reencode': + $name = T_('Re-encode'); + break; + case 'other': + $name = T_('Other'); + break; + default: + $name = T_('Unknown'); + break; + } // end switch + + echo $name; + + } // print_flag + + /** + * validate_flag + * This takes a flag input and makes sure it's one of the reigstered + * and valid 'flag' values + */ + public static function validate_flag($flag) { + + switch ($flag) { + case 'delete': + case 'retag': + case 'reencode': + case 'other': + return $flag; + break; + default: + return 'other'; + break; + } // end switch + + } // validate_flag + + /** + * fill_tags + * This is used by the write_tags script. + */ + public static function fill_tags( $tagWriter, $song, $type = 'comment' ) { + + // Set all of the attributes for the tag to be written(All pulled from the song object) + // Use a function since ID3v1, ID3v2, and vorbis/flac/ape are different + switch ($type) { + case 'comment': + $tagWriter->comments['title'] = $song->title; + $tagWriter->comments['date'] = $song->year; + $tagWriter->comments['year'] = $song->year; + $tagWriter->comments['comment'] = $song->comment; + $tagWriter->comments['size'] = $song->size; + $tagWriter->comments['time'] = $song->time; + $tagWriter->comments['album'] = $song->get_album_name(); + $tagWriter->comments['artist'] = $song->get_artist_name(); + $tagWriter->comments['genre'] = $song->get_genre_name(); + $tagWriter->comments['track'] = $song->track; + break; + case 'id3v1': + $tagWriter->title = $song->title; + $tagWriter->year = $song->year; + $tagWriter->comment = $song->comment; + $tagWriter->artist = $song->get_artist_name(); + $tagWriter->album = $song->get_album_name(); + $tagWriter->genre = $song->get_genre_name(); + $tagWriter->track = $song->track; + unset($tagWriter->genre_id); + break; + case 'id3v2': + $tagWriter->title = $song->title; + $tagWriter->year = $song->year; + $tagWriter->comment = $song->comment; + $tagWriter->artist = $song->get_artist_name(); + $tagWriter->album = $song->get_album_name(); + $tagWriter->genre = $song->get_genre_name(); + $tagWriter->track = $song->track; + unset($tagWriter->genre_id); + break; + } // end switch on type + + } // fill_tags } //end of flag class |