From 1d127b4ae3e31456f0a8351388cefa4d13d3a4b0 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 24 Mar 2022 13:11:40 +0800 Subject: +admin album --- admin_albums.php | 26 ++++++++- admin_modify_album.php | 70 ++++++++++++++++++++++ admin_new_album.php | 2 +- admin_template.php | 12 ++++ admin_uber.php | 2 +- cover/1648093414_21_cat.png | Bin 0 -> 116264 bytes cover/1648093520_168_cat.png | Bin 0 -> 116264 bytes cover/1648093538_672_cat.png | Bin 0 -> 116264 bytes cover/1648093739_688_cat.png | Bin 0 -> 116264 bytes cover/1648093985_649_cat.png | Bin 0 -> 116264 bytes cover/1648094024_626_cat.png | Bin 0 -> 116264 bytes music.php | 136 ++++++++++++++++++++++++++++++++++++++----- res/admin.css | 89 ++++++++++++++++++++++++++++ 13 files changed, 320 insertions(+), 17 deletions(-) create mode 100644 admin_modify_album.php create mode 100644 cover/1648093414_21_cat.png create mode 100644 cover/1648093520_168_cat.png create mode 100644 cover/1648093538_672_cat.png create mode 100644 cover/1648093739_688_cat.png create mode 100644 cover/1648093985_649_cat.png create mode 100644 cover/1648094024_626_cat.png diff --git a/admin_albums.php b/admin_albums.php index 8858f76..9a02f48 100644 --- a/admin_albums.php +++ b/admin_albums.php @@ -38,11 +38,33 @@ form .text { ?>
- - + new album + + + new album
+
+ 0){ + foreach($arr as $album){ + html_admin_album($album); + } + } + + $url = "./admin_albums.php?"; + $current_page_index = $page; + ?> + +
+
diff --git a/admin_modify_album.php b/admin_modify_album.php new file mode 100644 index 0000000..568a393 --- /dev/null +++ b/admin_modify_album.php @@ -0,0 +1,70 @@ + + + + + + + + + +
+ + + + + + + + + +

Add Album

+ +
+ +
+ +
+
+
+ +
+
+
+ + +
+
+ +
+
+ +
+ +
+ + + + \ No newline at end of file diff --git a/admin_new_album.php b/admin_new_album.php index aed04d6..ba4d5e4 100644 --- a/admin_new_album.php +++ b/admin_new_album.php @@ -16,6 +16,6 @@ if($album != null) { } // 跳转 -//header('Location: '.'index.php'); +header('Location: '.'admin_albums.php'); ?> \ No newline at end of file diff --git a/admin_template.php b/admin_template.php index efbd0bd..9f6f677 100644 --- a/admin_template.php +++ b/admin_template.php @@ -32,4 +32,16 @@ function html_admin_paginate_link_current($url, $pagei) { echo '' . ($pagei + 1) . ''; } + +function html_admin_album($album) { + echo '
'; + echo ''; + echo ''; + echo ''; + echo 'Delete'; + echo 'Modify'; + echo '
'; + echo '
'; +} + ?> \ No newline at end of file diff --git a/admin_uber.php b/admin_uber.php index ac34286..8d13709 100644 --- a/admin_uber.php +++ b/admin_uber.php @@ -31,7 +31,7 @@ function handle_delete_tag($tag_id) { } function handle_delete_album($album_id) { - + delete_album($album_id); } ?> \ No newline at end of file diff --git a/cover/1648093414_21_cat.png b/cover/1648093414_21_cat.png new file mode 100644 index 0000000..511d7c1 Binary files /dev/null and b/cover/1648093414_21_cat.png differ diff --git a/cover/1648093520_168_cat.png b/cover/1648093520_168_cat.png new file mode 100644 index 0000000..511d7c1 Binary files /dev/null and b/cover/1648093520_168_cat.png differ diff --git a/cover/1648093538_672_cat.png b/cover/1648093538_672_cat.png new file mode 100644 index 0000000..511d7c1 Binary files /dev/null and b/cover/1648093538_672_cat.png differ diff --git a/cover/1648093739_688_cat.png b/cover/1648093739_688_cat.png new file mode 100644 index 0000000..511d7c1 Binary files /dev/null and b/cover/1648093739_688_cat.png differ diff --git a/cover/1648093985_649_cat.png b/cover/1648093985_649_cat.png new file mode 100644 index 0000000..511d7c1 Binary files /dev/null and b/cover/1648093985_649_cat.png differ diff --git a/cover/1648094024_626_cat.png b/cover/1648094024_626_cat.png new file mode 100644 index 0000000..511d7c1 Binary files /dev/null and b/cover/1648094024_626_cat.png differ diff --git a/music.php b/music.php index 6903fc3..4405401 100644 --- a/music.php +++ b/music.php @@ -13,7 +13,7 @@ class Tag class Album { public $uid; - public $name; + public $title; public $cover; public $description; public $array_music_ids; // 包含的音乐id(考虑到效率,这里不存为music结构) @@ -71,18 +71,6 @@ function fetch_all_tags() { return $arr; } -function fetch_album_by_id($uid) -{ - $result = execute_sql("SELECT * FROM " . Config::$tb_album . " where id=" . $uid); - while($row = mysqli_fetch_assoc($result)){ - $album = new Album; - $album->uid = $uid; - $album->name = $row['name']; - return $album; - } - return null; -} - function fetch_album_by_name($name) { $result = execute_sql("SELECT * FROM " . Config::$tb_album . " where name='" . $name . "'"); @@ -126,6 +114,19 @@ function add_unique_album($name) { return $arr[0]; } +function fetch_albums_music_ids($album_id) { + $sql = "SELECT music_id FROM " . Config::$tb_album_music . ' WHERE album_id=' . $album_id; + $result = execute_sql($sql); + if($result == NULL || $result->num_rows == 0) + return null; + $arr = array(); + while($row = mysqli_fetch_assoc($result)){ + $mid = $row['music_id']; + array_push($arr, $mid); + } + return $arr; +} + // 获得某个音乐的tags function fetch_music_tags($uid) { $sql = "SELECT * FROM " . Config::$tb_music_tag . ' WHERE music_id=' . $uid; @@ -177,6 +178,24 @@ function fetch_music_by_id($uid) { } } +function fetch_album_by_id($uid) { + $sql = "SELECT * FROM " . Config::$tb_album . " WHERE id=" . $uid; + $result = execute_sql($sql); + if($result == NULL || $result->num_rows == 0) + { + return null; + } + while($row = mysqli_fetch_assoc($result)){ + $album = new Album(); + $album->uid = $row['id']; + $album->cover = $row['cover']; + $album->title = $row['title']; + $album->description = $row['description']; + $album->array_music_ids = fetch_albums_music_ids($album->uid); + return $album; + } +} + // 从第from个记录开始的count个 function fetch_range_music($from=0, $count=100) { $sql = "SELECT id FROM " . Config::$tb_music . " ORDER BY time DESC LIMIT " . $from . ", " . $count ; @@ -195,6 +214,24 @@ function fetch_range_music($from=0, $count=100) { return $arr; } +// 从第from个记录开始的count个 +function fetch_range_album($from=0, $count=100) { + $sql = "SELECT id FROM " . Config::$tb_album . " ORDER BY id DESC LIMIT " . $from . ", " . $count ; + $result = execute_sql($sql); + if($result == NULL || $result->num_rows == 0) + { + return null; + } + $arr = array(); + while($row = mysqli_fetch_assoc($result)){ + $id = $row['id']; + $album = fetch_album_by_id($id); + array_push($arr, $album); + } + + return $arr; +} + //搜索 function fetch_musics_by_name($name, $from=0, $count=100) { @@ -275,6 +312,18 @@ function get_all_music_count() { return 0; } +function get_all_album_count() { + $sql = "SELECT COUNT(*) as count FROM " . Config::$tb_album; + $result = execute_sql($sql); + if($result == null || $result->num_rows == 0) + return 0; + $row = mysqli_fetch_assoc($result); + if($row != null){ + return $row['count']; + } + return 0; +} + function add_unique_music_tag( $music_id, $tag_id ) { $result = execute_sql("SELECT * FROM " . Config::$tb_music_tag . " where music_id=" . $music_id . " and tag_id=" . $tag_id ); @@ -354,6 +403,18 @@ function get_music_albums_id_string($music) { return $album_str; } +// 返回编辑中的music_id字符串 +function get_albums_music_id_string($album) { + if($album->array_music_ids == null || count($album->array_music_ids) == 0){ + return ""; + } + $music_str = $album->array_music_ids[0]; + for($i = 1; $i < count($album->array_music_ids); $i++) { + $music_str = $music_str . ',' . $album->array_music_ids[$i]; + } + return $music_str; +} + function delete_music_tag($music) { $sql = "DELETE FROM " . Config::$tb_music_tag . " WHERE music_id=" . $music->uid; execute_sql($sql); @@ -528,4 +589,53 @@ function get_album_from_post() { return $album; } + +// 将album写入数据库(插入或更新) +function write_album_to_db($album) { + if ($album == null ) + return ; + + if($album->uid == -1){// 插入新的 + + $sql = "INSERT INTO " . Config::$tb_album . " (title, description, cover) values (" . + "'". $album->title . "',". + "'". $album->description . "',". + "'". $album->cover . "'". + ")" ; + //println($sql); + execute_sql($sql); + + $id = get_last_insert_id(); + + foreach($album->array_music_ids as $mid){ + add_unique_music_album($mid, $id); + } + } + 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); + // } + } +} + + ?> \ No newline at end of file diff --git a/res/admin.css b/res/admin.css index 10e1de3..e58bc6b 100644 --- a/res/admin.css +++ b/res/admin.css @@ -181,3 +181,92 @@ body{ color:red; font-weight: bold; } + +/* album */ +#add-album-link { + text-decoration: none; + color:black; + float:right; + font-size:12px; + padding: 5px; +} + +#add-album-link:hover { + color:white; + background-color: black; +} + +#admin-album-list{ + margin: 10px 0; +} + +.admin-album { + background-color: #fafafa; + box-sizing: border-box; + padding: 5px; + margin-bottom: 10px; +} + +.admin-album .admin-album-cover { + width:30px; + height:30px; + float: left; +} + +#admin-album-list{ + margin: 10px 0; +} + +.admin-album a{ + display: block; + float:right; + height:30px; + line-height: 30px; + text-decoration: none; + padding: 0 10px; + font-size:12px; + font-weight: bold; +} + +.admin-album a:hover{ + color: white; +} + +.admin-album .admin-album-modify { + color:black; + margin-right: 10px; +} + +.admin-album .admin-album-modify:hover { + background-color: black; +} + +.admin-album .admin-album-delete { + color:red; +} + +.admin-album .admin-album-delete:hover { + background-color: red; + color:white; +} + +.admin-album-name { + display: block; + float: left; + height: 30px; + line-height: 30px; + font-size: 15px; + margin-left: 30px; + width: 150px; + overflow:hidden; +} + +.admin-album-id { + display: block; + float: left; + height: 30px; + line-height: 30px; + font-size: 15px; + margin-left: 10px; + width: 30px; +} \ No newline at end of file -- cgit v1.1-26-g67d0