get_info($id); // Foreach what we've got foreach ($info as $key=>$value) { $this->$key = $value; } return true; } //constructor /** * Update broadcast state. * @param boolean $started * @param string $key */ public function update_state($started, $key='') { $sql = "UPDATE `broadcast` SET `started` = ?, `key` = ?, `song` = '0', `listeners` = '0' WHERE `id` = ?"; Dba::write($sql, array($started, $key, $this->id)); $this->started = $started; } /** * Update broadcast listeners. * @param int $listeners */ public function update_listeners($listeners) { $sql = "UPDATE `broadcast` SET `listeners` = ? " . "WHERE `id` = ?"; Dba::write($sql, array($listeners, $this->id)); $this->listeners = $listeners; } /** * Update broadcast current song. * @param int $song_id */ public function update_song($song_id) { $sql = "UPDATE `broadcast` SET `song` = ? " . "WHERE `id` = ?"; Dba::write($sql, array($song_id, $this->id)); $this->song = $song_id; $this->song_position = 0; } /** * Delete the broadcast. * @return boolean */ public function delete() { $sql = "DELETE FROM `broadcast` WHERE `id` = ?"; return Dba::write($sql, array($this->id)); } /** * Create a broadcast * @param string $name * @param string $description * @return int */ public static function create($name, $description='') { if (!empty($name)) { $sql = "INSERT INTO `broadcast` (`user`, `name`, `description`, `is_private`) VALUES (?, ?, ?, '1')"; $params = array($GLOBALS['user']->id, $name, $description); Dba::write($sql, $params); return Dba::insert_id(); } return 0; } /** * Update a broadcast from data array. * @param array $data * @return int */ public function update(array $data) { if (isset($data['edit_tags'])) { Tag::update_tag_list($data['edit_tags'], 'broadcast', $this->id, true); } $sql = "UPDATE `broadcast` SET `name` = ?, `description` = ?, `is_private` = ? " . "WHERE `id` = ?"; $params = array($data['name'], $data['description'], !empty($data['private']), $this->id); Dba::write($sql, $params); return $this->id; } public function format($details = true) { $this->f_name = $this->name; $this->f_link = '' . scrub_out($this->f_name) . ''; if ($details) { $this->tags = Tag::get_top_tags('broadcast', $this->id); $this->f_tags = Tag::get_display($this->tags, true, 'broadcast'); } } /** * Get item keywords for metadata searches. * @return array */ public function get_keywords() { return array(); } /** * Get item fullname. * @return string */ public function get_fullname() { return $this->f_name; } /** * Get parent item description. * @return array|null */ public function get_parent() { return null; } /** * Get item childrens. * @return array */ public function get_childrens() { return array(); } /** * Search for item childrens. * @param string $name * @return array */ public function search_childrens($name) { return array(); } /** * Get all childrens and sub-childrens medias. * @param string $filter_type * @return array */ public function get_medias($filter_type = null) { // Not a media, shouldn't be that $medias = array(); if (!$filter_type || $filter_type == 'broadcast') { $medias[] = array( 'object_type' => 'broadcast', 'object_id' => $this->id ); } return $medias; } /** * get_catalogs * * Get all catalog ids related to this item. * @return int[] */ public function get_catalogs() { return array(); } /** * Get item's owner. * @return int|null */ public function get_user_owner() { return $this->user; } /** * Get default art kind for this item. * @return string */ public function get_default_art_kind() { return 'default'; } public function get_description() { return null; } public function display_art($thumb = 2) { if (Art::has_db($this->id, 'broadcast')) { Art::display('broadcast', $this->id, $this->get_fullname(), $thumb, $this->link); } } /** * Get all broadcasts sql query. * @return string */ public static function get_broadcast_list_sql() { $sql = "SELECT `id` FROM `broadcast` WHERE `started` = '1' "; return $sql; } /** * Get all broadcasts. * @return int[] */ public static function get_broadcast_list() { $sql = self::get_broadcast_list_sql(); $db_results = Dba::read($sql); $results = array(); while ($row = Dba::fetch_assoc($db_results)) { $results[] = $row['id']; } return $results; } /** * Generate a new broadcast key. * @return string */ public static function generate_key() { // Should be improved for security reasons! return md5(uniqid(rand(), true)); } /** * Get broadcast from its key. * @param string $key * @return Broadcast|null */ public static function get_broadcast($key) { $sql = "SELECT `id` FROM `broadcast` WHERE `key` = ?"; $db_results = Dba::read($sql, array($key)); if ($results = Dba::fetch_assoc($db_results)) { return new Broadcast($results['id']); } return null; } /** * Show action buttons. */ public function show_action_buttons() { if ($this->id) { if ($GLOBALS['user']->has_access('75')) { echo "id . "\" onclick=\"showEditDialog('broadcast_row', '" . $this->id . "', 'edit_broadcast_" . $this->id . "', '" . T_('Broadcast edit') . "', 'broadcast_row_')\">" . UI::get_icon('edit', T_('Edit')) . ""; echo " id ."\">" . UI::get_icon('delete', T_('Delete')) . ""; } } } /** * Get broadcast link. * @return string */ public static function get_broadcast_link() { $link = "
"; $link .= "" . UI::get_icon('broadcast', T_('Broadcast')) . ""; $link .= "
"; return $link; } /** * Get unbroadcast link. * @param int $id * @return string */ public static function get_unbroadcast_link($id) { $link = "
"; $link .= Ajax::button('?page=player&action=unbroadcast&broadcast_id=' . $id, 'broadcast', T_('Unbroadcast'), 'broadcast_action'); $link .= "
"; $link .= "
(0)
"; return $link; } /** * Get broadcasts from an user. * @param int $user_id * @return int[] */ public static function get_broadcasts($user_id) { $sql = "SELECT `id` FROM `broadcast` WHERE `user` = ?"; $db_results = Dba::read($sql, array($user_id)); $broadcasts = array(); while ($results = Dba::fetch_assoc($db_results)) { $broadcasts[] = $results['id']; } return $broadcasts; } public static function gc() { } /* * Get play url. * * @param int $oid * @param string $additional_params * @param string $player * @param boolean $local * @return string * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public static function play_url($oid, $additional_params='', $player=null, $local=false) { return $oid; } } // end of broadcast class