diff options
Diffstat (limited to 'music.php')
-rw-r--r-- | music.php | 129 |
1 files changed, 127 insertions, 2 deletions
@@ -2,6 +2,7 @@ require_once 'config.php'; require_once 'connect.php'; +require_once 'utils.php'; class Tag { @@ -13,6 +14,9 @@ class Album { public $uid; public $name; + public $cover; + public $description; + public $array_music_ids; // 包含的音乐id(考虑到效率,这里不存为music结构) } class Music @@ -296,6 +300,70 @@ function get_last_id() { } } +function delete_music($music_id) { + $sql = "DELETE FROM ". Config::$tb_music . " WHERE id=" . $music_id; + echo $sql; + execute_sql($sql); + $sql = "DELETE FROM " . Config::$tb_music_tag . " WHERE music_id=" . $music_id; + execute_sql($sql); + $sql = "DELETE FROM " . Config::$tb_album_music . " WHERE music_id=" . $music_id; + execute_sql($sql); + + redirect('admin_music.php'); +} + +function delete_tag($tag_id) { + $sql = "DELETE FROM " . Config::$tb_tags . " WHERE id=" . $tag_id; + execute_sql($sql); + $sql = "DELETE FROM " . Config::$tb_music_tag . " WHERE tag_id=" . $tag_id; + execute_sql($sql); + + redirect('admin_tags.php'); +} + +function delete_album($album_id) { + $sql = "DELETE FROM " . Config::$tb_album . " WHERE id=" . $album_id; + execute_sql($sql); + $sql = "DELETE FROM " . Config::$tb_album_music . " WHERE album_id=" . $album_id; + execute_sql($sql); + + redirect('admin_albums.php'); +} + +// 返回描述music tag的字符串 +function get_music_tag_string($music) { + if($music->array_tags == null || count($music->array_tags) == 0){ + return ""; + } + $tag_str = $music->array_tags[0]->name; + for($i = 1; $i < count($music->array_tags); $i++) { + $tag_str = $tag_str . ',' . $music->array_tags[$i]->name; + } + return $tag_str; +} + +// 返回描述music所属专辑的id字符串 +function get_music_albums_id_string($music) { + if($music->array_albums == null || count($music->array_albums) == 0){ + return ""; + } + $album_str = $music->array_albums[0]->uid; + for($i = 1; $i < count($music->array_albums); $i++) { + $album_str = $album_str . ',' . $music->array_albums[$i]->uid; + } + return $album_str; +} + +function delete_music_tag($music) { + $sql = "DELETE FROM " . Config::$tb_music_tag . " WHERE music_id=" . $music->uid; + execute_sql($sql); +} + +function delete_music_album($music) { + $sql = "DELETE FROM " . Config::$tb_album_music . " WHERE music_id=" . $music->uid; + execute_sql($sql); +} + // 提交上来的表单中构建music function get_music_from_post() { @@ -311,8 +379,9 @@ function get_music_from_post() return null; $music->path = $res_music[1]; } - else // 必须有音乐文件 + else // 必须有音乐文件 { + echo 'Music file is essential.'; return null; } @@ -361,6 +430,10 @@ function get_music_from_post() $music->uid = -1; // 未插入数据库 + if($_POST["mid"] != null) { + $music->uid = $_POST["mid"]; + } + //println($music); return $music; @@ -392,15 +465,67 @@ function write_music_to_db($music) { foreach($music->array_albums as $album){ add_unique_music_album($id, $album->uid); } - } else // 更新 { + $sql = "UPDATE " . Config::$tb_music . " SET " . + "path='" . $music->path ."'," . + "title='" . $music->title ."'," . + "cover='" . $music->cover ."'," . + "project='" . $music->project ."'" . + " WHERE id=" . $music->uid; + //println($sql); + execute_sql($sql); + + delete_music_tag($music); + delete_music_album($music); + $id = $music->uid; + foreach($music->array_tags as $tag){ + add_unique_music_tag($id, $tag->uid); + } + foreach($music->array_albums as $album){ + add_unique_music_album($id, $album->uid); + } } +} + +function get_album_from_post() { + $album = new Album; + + $cover_image = $_FILES["coverImage"]; + + if(is_upload_notempty($cover_image)) { + $res_cover = upload_file(Config::$cover_upload_dir, $cover_image); + if($res_cover[0] == 0) + return null; + $album->cover = $res_cover[1]; + } + + if($_POST["music_list"] != null && $_POST["music_list"] != "") + $music_ids = explode(',', $_POST["music_list"]); + + $album->array_music_ids = array(); + if($music_ids != null && count($music_ids) > 0) { + foreach($music_ids as $music_id){ + array_push($album->array_music_ids, $music_id); + } + } + + $album->title = html_escape_string($_POST["title"]); + $album->description = html_escape_string($_POST["description"]); + + $album->uid = -1; // 未插入数据库 + + if($_POST["aid"] != null) { + $album->uid = $_POST["aid"]; + } + + // println($album); + return $album; } ?>
\ No newline at end of file |