summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2022-03-24 13:11:40 +0800
committerchai <chaifix@163.com>2022-03-24 13:11:40 +0800
commit1d127b4ae3e31456f0a8351388cefa4d13d3a4b0 (patch)
tree69f8bb9e08c17a288c05b9a847787b080ec53c36
parent19a99f9ad9104cdc86dc7192f4c663e5fbe26520 (diff)
+admin album
-rw-r--r--admin_albums.php26
-rw-r--r--admin_modify_album.php70
-rw-r--r--admin_new_album.php2
-rw-r--r--admin_template.php12
-rw-r--r--admin_uber.php2
-rw-r--r--cover/1648093414_21_cat.pngbin0 -> 116264 bytes
-rw-r--r--cover/1648093520_168_cat.pngbin0 -> 116264 bytes
-rw-r--r--cover/1648093538_672_cat.pngbin0 -> 116264 bytes
-rw-r--r--cover/1648093739_688_cat.pngbin0 -> 116264 bytes
-rw-r--r--cover/1648093985_649_cat.pngbin0 -> 116264 bytes
-rw-r--r--cover/1648094024_626_cat.pngbin0 -> 116264 bytes
-rw-r--r--music.php136
-rw-r--r--res/admin.css89
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
new file mode 100644
index 0000000..511d7c1
--- /dev/null
+++ b/cover/1648093414_21_cat.png
Binary files differ
diff --git a/cover/1648093520_168_cat.png b/cover/1648093520_168_cat.png
new file mode 100644
index 0000000..511d7c1
--- /dev/null
+++ b/cover/1648093520_168_cat.png
Binary files differ
diff --git a/cover/1648093538_672_cat.png b/cover/1648093538_672_cat.png
new file mode 100644
index 0000000..511d7c1
--- /dev/null
+++ b/cover/1648093538_672_cat.png
Binary files differ
diff --git a/cover/1648093739_688_cat.png b/cover/1648093739_688_cat.png
new file mode 100644
index 0000000..511d7c1
--- /dev/null
+++ b/cover/1648093739_688_cat.png
Binary files differ
diff --git a/cover/1648093985_649_cat.png b/cover/1648093985_649_cat.png
new file mode 100644
index 0000000..511d7c1
--- /dev/null
+++ b/cover/1648093985_649_cat.png
Binary files differ
diff --git a/cover/1648094024_626_cat.png b/cover/1648094024_626_cat.png
new file mode 100644
index 0000000..511d7c1
--- /dev/null
+++ b/cover/1648094024_626_cat.png
Binary files 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