diff options
author | chai <chaifix@163.com> | 2022-03-24 13:11:40 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2022-03-24 13:11:40 +0800 |
commit | 1d127b4ae3e31456f0a8351388cefa4d13d3a4b0 (patch) | |
tree | 69f8bb9e08c17a288c05b9a847787b080ec53c36 | |
parent | 19a99f9ad9104cdc86dc7192f4c663e5fbe26520 (diff) |
+admin album
-rw-r--r-- | admin_albums.php | 26 | ||||
-rw-r--r-- | admin_modify_album.php | 70 | ||||
-rw-r--r-- | admin_new_album.php | 2 | ||||
-rw-r--r-- | admin_template.php | 12 | ||||
-rw-r--r-- | admin_uber.php | 2 | ||||
-rw-r--r-- | cover/1648093414_21_cat.png | bin | 0 -> 116264 bytes | |||
-rw-r--r-- | cover/1648093520_168_cat.png | bin | 0 -> 116264 bytes | |||
-rw-r--r-- | cover/1648093538_672_cat.png | bin | 0 -> 116264 bytes | |||
-rw-r--r-- | cover/1648093739_688_cat.png | bin | 0 -> 116264 bytes | |||
-rw-r--r-- | cover/1648093985_649_cat.png | bin | 0 -> 116264 bytes | |||
-rw-r--r-- | cover/1648094024_626_cat.png | bin | 0 -> 116264 bytes | |||
-rw-r--r-- | music.php | 136 | ||||
-rw-r--r-- | res/admin.css | 89 |
13 files changed, 320 insertions, 17 deletions
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 { ?> <div style="height:auto;"> - <label class="admin-h1">Albums</label> - <a id="add-music-link" href="admin_add_album.php">+ new album</a> + <label class="admin-h1">Album</label> + <a id="add-album-link" href="admin_add_album.php">+ new album</a> <div style="clear:both;"></div> </div> + <div id="admin-album-list"> + <?php + $page = $_GET['p']; + if($page == null){ + $page = 0; + } + + $arr = fetch_range_album($page*AdminConfig::$music_per_page, AdminConfig::$music_per_page); + $total_page = ceil(get_all_album_count() / AdminConfig::$music_per_page ); + + if($arr != null && count($arr) > 0){ + foreach($arr as $album){ + html_admin_album($album); + } + } + + $url = "./admin_albums.php?"; + $current_page_index = $page; + ?> + + </div> + <?php require_once 'admin_paginate.php';?> <div> 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 @@ +<html> + +<head> +<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no, target-densityDpi=device-dpi"> +<style type="text/css"> +#container { + margin:0 auto; + max-width: 500px; +} +form .title { + display:block; + font-size:0.8em; + margin-bottom: 3px; +} +form .section{ + margin-bottom: 10px; + padding: 5px; + background: #efefef; +} +form .text { + width: 100%; +} +</style> + +</head> + +<body> + <div id="container"> + +<?php require_once 'utils.php';?> +<?php require_once 'config.php';?> +<?php require_once 'music.php';?> + +<?php + require_once('checkadmin.php'); +?> + +<?php + $album_id = $_GET['aid']; + $album = fetch_album_by_id($album_id); +?> + +<h1 style="font-size:1.2em;display:block;color:#c5c5c5;" >Add Album</h1> + + <form action="admin_new_album.php" method="post" enctype="multipart/form-data"> + <input type="hidden" name="aid" value="<?php echo $album->uid;?>"/> + <div class="section"> + <label class="title" for="title" >title:</label> + <input class="text" type="text" name="title" value="<?php echo $album->title; ?>"/><br/> + </div> + <div class="section"> + <label class="title" for="description" >description:</label> + <input class="text" type="text" name="description" value="<?php echo $album->description; ?>"/><br/> + </div> + <div class="section"> + <label class="title" for="coverImage" >cover:</label> + <input type="file" name="coverImage"/> + </div> + <div class="section"> + <label class="title" for="music_list" >music ids (seprate with comma):</label> + <input class="text" type="text" name="music_list" value="<?php echo get_albums_music_id_string($album);?>"/><br/> + </div> + <input style="float:right" type="submit" value="Update" name="submit"/> + </form> + + <div> + +</body> + +</html>
\ 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 '<a class="current" href="' . $url . '&p=' . $pagei . '">' . ($pagei + 1) . '</a>'; } + +function html_admin_album($album) { + echo '<div class="admin-album">'; + echo '<img class="admin-album-cover" src="' . $album->cover . '"/>'; + echo '<label class="admin-album-name">' . $album->title .'</label>'; + echo '<label class="admin-album-id">' . $album->uid . '</label>'; + echo '<a class="admin-album-delete" href="./admin_uber.php?op=DEL_ALBUM&aid='. $album->uid .'">Delete</a>'; + echo '<a class="admin-album-modify" href="./admin_modify_album.php?aid=' . $album->uid . '">Modify</a>'; + echo '<div style="clear:both"></div>'; + echo '</div>'; +} + ?>
\ 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 Binary files differnew file mode 100644 index 0000000..511d7c1 --- /dev/null +++ b/cover/1648093414_21_cat.png diff --git a/cover/1648093520_168_cat.png b/cover/1648093520_168_cat.png Binary files differnew file mode 100644 index 0000000..511d7c1 --- /dev/null +++ b/cover/1648093520_168_cat.png diff --git a/cover/1648093538_672_cat.png b/cover/1648093538_672_cat.png Binary files differnew file mode 100644 index 0000000..511d7c1 --- /dev/null +++ b/cover/1648093538_672_cat.png diff --git a/cover/1648093739_688_cat.png b/cover/1648093739_688_cat.png Binary files differnew file mode 100644 index 0000000..511d7c1 --- /dev/null +++ b/cover/1648093739_688_cat.png diff --git a/cover/1648093985_649_cat.png b/cover/1648093985_649_cat.png Binary files differnew file mode 100644 index 0000000..511d7c1 --- /dev/null +++ b/cover/1648093985_649_cat.png diff --git a/cover/1648094024_626_cat.png b/cover/1648094024_626_cat.png Binary files differnew file mode 100644 index 0000000..511d7c1 --- /dev/null +++ b/cover/1648094024_626_cat.png @@ -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 |