Browse Source

大致前端页面写好了,还剩下后端

root 4 years ago
parent
commit
92af2e25ab
9 changed files with 303 additions and 30 deletions
  1. 64 1
      includes/footer.php
  2. 6 1
      includes/function.php
  3. 13 20
      includes/header.php
  4. 2 2
      index.php
  5. 32 0
      pages/about.php
  6. 68 3
      pages/homepage.php
  7. 0 3
      pages/love.php
  8. 30 0
      pages/more.php
  9. 88 0
      pages/submit.php

+ 64 - 1
includes/footer.php

@@ -1 +1,64 @@
-<?php
+</div>
+<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/mdui.min.js"></script>
+<script src="https://static.llilii.cn/libs/jquery/3.5.1/jquery.min.js"></script>
+<script src="https://static.llilii.cn/libs/pjax/jquery.pjax.js"></script>
+<script src="https://static.llilii.cn/libs/md5/jquery.md5.js"></script>
+<script src="https://static.llilii.cn/libs/clipboard/clipboard.min.js"></script>
+<script>
+    $(document).pjax('a', '#pjax-container')
+    $("#isLoading").hide()
+    var inst = new mdui.Drawer('#main-drawer');
+    $(document).on('pjax:send', function() {
+        if (isMobile()) {
+            inst.close();
+        }
+        $("#isLoading").show()
+
+    })
+    $(document).on('pjax:complete', function() {
+        setTimeout(function() {
+            $("#isLoading").hide()
+        }, 2000);
+    })
+
+    function isMobile() {
+        var userAgentInfo = navigator.userAgent;
+        var mobileAgents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
+        var mobile_flag = false;
+        //根据userAgent判断是否是手机
+        for (var v = 0; v < mobileAgents.length; v++) {
+            if (userAgentInfo.indexOf(mobileAgents[v]) > 0) {
+                mobile_flag = true;
+                break;
+            }
+        }
+        var screen_width = window.screen.width;
+        var screen_height = window.screen.height;
+        //根据屏幕分辨率判断是否是手机
+        if (screen_width < 500 && screen_height < 800) {
+            mobile_flag = true;
+        }
+        return mobile_flag;
+    }
+
+    function getNowURL(){
+        return window.location.protocol+'//'+window.location.host
+    }
+
+    $(function() {
+        var clipboard = new ClipboardJS('.copy');
+        clipboard.on('success', function(e) {
+            mdui.snackbar({
+                message: '复制表白卡片地址成功!',
+                position: 'right-top'
+            });
+        });
+        clipboard.on('error', function(e) {
+            mdui.snackbar({
+                message: '复制表白卡片地址失败!请尝试手动复制!',
+                position: 'right-top'
+            });
+        });
+    });
+    //document.getElementById('').className += " mdui-list-item-active"
+</script>

+ 6 - 1
includes/function.php

@@ -4,6 +4,12 @@ function pdoConnect(){
     return new PDO('mysql:host=' . $GLOBALS['DB_HOST'] . ';dbname=' . $GLOBALS['DB_NAME'], $GLOBALS['DB_USER'], $GLOBALS['DB_PASS']);
 }
 
+function get_http_type()
+{
+    $http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';
+    return $http_type;
+}
+
 function getInfo($name)
 {
     try{
@@ -21,4 +27,3 @@ function getInfo($name)
         //echo $e->getMessage();
     }
 }
-?>

+ 13 - 20
includes/header.php

@@ -8,10 +8,7 @@
             echo getInfo('title') ?></title>
     <meta name="keywords" content="<?php echo getInfo('keywords') ?>">
     <meta name="description" content="<?php echo getInfo('description') ?>">
-    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/mdui.min.css" integrity="sha384-cLRrMq39HOZdvE0j6yBojO4+1PrHfB7a9l5qLcmRm/fiWXYY+CndJPmyu5FV/9Tw" crossorigin="anonymous" />
-    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/mdui.min.js" integrity="sha384-gCMZcshYKOGRX9r6wbDrvF+TcCCswSHFucUzUPwka+Gr+uHgjlYvkABr95TCOz3A" crossorigin="anonymous"></script>
-    <script src="https://static.llilii.cn/libs/jquery/3.5.1/jquery.min.js"></script>
-    <script src="https://static.llilii.cn/libs/jquery/pjax/jquery.pjax.js"></script>
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/mdui.min.css"/>
     <style>
         .copyright {
             box-sizing: border-box;
@@ -27,13 +24,16 @@
     </style>
 </head>
 
-<body class="mdui-appbar-with-toolbar  mdui-theme-primary-pink mdui-theme-accent-pink ">
+<body class="mdui-drawer-body-left mdui-bottom-nav-fixed mdui-appbar-with-toolbar mdui-theme-primary-pink mdui-theme-accent-pink mdui-theme-layout-auto mdui-loaded">
     <header class="mdui-appbar mdui-appbar-fixed">
         <audio src="<?php echo getInfo('audio') ?>" autoplay>
             您的浏览器不支持 audio 标签。
         </audio>
+        <div class="mdui-progress" id="isLoading">
+            <div class="mdui-progress-indeterminate"></div>
+        </div>
         <div class="mdui-toolbar mdui-color-theme">
-            <span class="mdui-btn mdui-btn-icon mdui-ripple mdui-ripple-white " mdui-drawer="{target: '#main-drawer', swipe: true}"><i class="mdui-icon material-icons">menu</i></span>
+            <span class="mdui-btn mdui-btn-icon mdui-ripple mdui-ripple-white " onclick="inst.open();"><i class="mdui-icon material-icons">menu</i></span>
             <a href="../" class="mdui-typo-headline mdui-hidden-xs"><?php echo $title; ?></a>
             <div class="mdui-toolbar-spacer"></div>
             <button id="logout" onclick='clearAllCookie()' mdui-tooltip="{content: '退出登录'}" class="mdui-btn mdui-btn-icon mdui-ripple mdui-ripple-white"><i class="mdui-icon material-icons">code</i></button>
@@ -46,15 +46,18 @@
                     <i class="mdui-list-item-icon mdui-icon material-icons">home</i>
                     <div class="mdui-list-item-content">主页</div>
                 </a>
-                <a href="<?php if($REWRITE) echo '/'; else echo '/?page=';?>love" id="userPage" class="mdui-list-item mdui-ripple ">
+                <a href="<?php if ($REWRITE) echo '/';
+                            else echo '/?page='; ?>submit" id="userPage" class="mdui-list-item mdui-ripple ">
                     <i class="mdui-list-item-icon mdui-icon material-icons">favorite</i>
                     <div class="mdui-list-item-content">去表白</div>
                 </a>
-                <a href="/" id="indexPage" class="mdui-list-item mdui-ripple ">
+                <a href="<?php if ($REWRITE) echo '/';
+                            else echo '/?page='; ?>more" id="indexPage" class="mdui-list-item mdui-ripple ">
                     <i class="mdui-list-item-icon mdui-icon material-icons">tag_faces</i>
                     <div class="mdui-list-item-content">更多功能</div>
                 </a>
-                <a href="/" id="indexPage" class="mdui-list-item mdui-ripple ">
+                <a href="<?php if ($REWRITE) echo '/';
+                            else echo '/?page='; ?>about" id="indexPage" class="mdui-list-item mdui-ripple ">
                     <i class="mdui-list-item-icon mdui-icon material-icons">code</i>
                     <div class="mdui-list-item-content">关于本站</div>
                 </a>
@@ -69,14 +72,4 @@
             </div>
         </div>
     </div>
-    <div class="mdui-container" id="pjax-container" style="max-width: 800px; ">
-        Go to <a href="/pjax.php">next page</a>.
-    </div>
-
-    <script>
-        $(document).pjax('a', '#pjax-container')
-        //document.getElementById('<?php if (empty($listName)) echo 'appm';
-                                    else echo $listName; ?>').className += " mdui-list-item-active"
-        //document.getElementById("logout").style.visibility = "<?php if ($logout) echo 'visible';
-                                                                else echo 'hidden'; ?>";
-    </script>
+    <div class="mdui-container" id="pjax-container" style="max-width: 800px; ">

+ 2 - 2
index.php

@@ -6,8 +6,8 @@ if ($templateMode) {
     include('./includes/header.php');
 }
 switch($_GET['page']){
-    case "love":
-        include('./pages/love.php');
+    case "submit":
+        include('./pages/submit.php');
         break;
     case "more":
         include('./pages/more.php');

+ 32 - 0
pages/about.php

@@ -0,0 +1,32 @@
+<br /><br />
+<div class="mdui-card mdui-hoverable" style="border-radius: 16px">
+    <!-- 卡片头部,包含头像、标题、副标题 -->
+
+    <!-- 卡片的媒体内容,可以包含图片、视频等媒体内容,以及标题、副标题 -->
+    <div class="mdui-card-media">
+        <img style="max-height: 1000px" src="https://static.llilii.cn/images/kagamine/32639516_p2.jpg" />
+    </div>
+
+    <!-- 卡片的标题和副标题 -->
+    <div class="mdui-card-primary">
+        <div class="mdui-card-primary-title">关于本站</div>
+        <div class="mdui-card-primary-subtitle">ABOUT US</div>
+    </div>
+
+    <!-- 卡片的内容 -->
+    <div class="mdui-card-content">
+        <div class="mdui-typo">
+        <?php echo getInfo('about')?>
+        </div>
+    </div>
+    <!--
+        <div class="mdui-card-actions">
+          <button class="mdui-btn mdui-btn-icon mdui-float-right">
+            <i class="mdui-icon material-icons">share</i>
+          </button>
+          <button class="mdui-btn mdui-btn-icon mdui-float-right">
+            <i class="mdui-icon material-icons">more</i>
+          </button>
+        </div>-->
+</div>
+<br /><br />

+ 68 - 3
pages/homepage.php

@@ -1,3 +1,68 @@
-<div class="mdui-container" id="pjax-container" style="max-width: 800px; ">
-        Go to <a href="/pjax.php">next page</a>.
-</div>
+<?php
+
+$a = 0;
+try {
+    $pdo = pdoConnect();
+    $stmt = $pdo->prepare("select * from loveway_data");
+    if ($stmt->execute()) {
+        while ($row = $stmt->fetch()) {
+            echo $row['value'];
+?>
+            <br /><br />
+            <div class="mdui-card mdui-hoverable" style="border-radius: 16px">
+                <!-- 卡片头部,包含头像、标题、副标题 -->
+                <div class="mdui-card-header">
+                    <img class="mdui-card-header-avatar" src="https://q1.qlogo.cn/g?b=qq&s=640&nk=<?php echo $row['contact']; ?>" />
+                    <div class="mdui-card-header-title"><?php echo $row['confessor']; ?></div>
+                    <div class="mdui-card-header-subtitle"><?php echo $row['time']; ?></div>
+                </div>
+
+                <!-- 卡片的媒体内容,可以包含图片、视频等媒体内容,以及标题、副标题 -->
+                <div class="mdui-card-media">
+                    <?php
+                    if (!empty($row['image'])) {
+                    ?>
+                        <div v-if="data.image != ''">
+                            <img style="max-height: 1000px" onerror="randomImage(data.image)" src="<?php echo $row['image']; ?>" />
+                        </div>
+                    <?php
+                    } else {
+                    ?>
+                        <div class="mdui-divider"></div>
+                    <?php } ?>
+                </div>
+
+
+
+                <!-- 卡片的标题和副标题 -->
+                <div class="mdui-card-primary">
+                    <div class="mdui-card-primary-title">To <?php echo $row['to_who']; ?></div>
+                    <div class="mdui-card-primary-subtitle">
+                        <?php echo $row['introduction']; ?>
+                    </div>
+                </div>
+
+                <!-- 卡片的内容 -->
+                <div class="mdui-card-content">
+                    <?php echo $row['content']; ?>
+                </div>
+                <div class="mdui-card-actions">
+                    <button data-clipboard-text="cn-hk1.rvh2.rainyun.com:1768" class="mdui-btn mdui-btn-icon mdui-float-right">
+                        <i class="mdui-icon material-icons">share</i>
+                    </button>
+                    <a class="copy mdui-btn mdui-btn-icon mdui-float-right" href="javascript:void(0);" data-clipboard-text="<?php echo get_http_type().$_SERVER['PHP_SELF'];if ($REWRITE) echo "/" . $row['id'];
+                                                                                                                            else echo '?id=' . $row['id']; ?>"><i class="mdui-icon material-icons">more</i></a>
+                    </a>
+                </div>
+            </div>
+
+<?php
+        }
+    } else {
+        return 'database connection failed';
+    }
+} catch (Exception $e) {
+    return 'database connection failed';
+    //echo $e->getMessage();
+}
+?>

+ 0 - 3
pages/love.php

@@ -1,3 +0,0 @@
-<div class="mdui-container" id="pjax-container" style="max-width: 800px; ">
-        Go to <a href="/pjax.php">next page</a>.
-</div>

+ 30 - 0
pages/more.php

@@ -0,0 +1,30 @@
+<br /><br />
+<div class="mdui-card mdui-hoverable" style="border-radius: 16px">
+    <!-- 卡片头部,包含头像、标题、副标题 -->
+
+    <!-- 卡片的媒体内容,可以包含图片、视频等媒体内容,以及标题、副标题 -->
+    <div class="mdui-card-media">
+        <img style="max-height: 1000px" src="https://static.llilii.cn/images/kagamine/78688114_p0.png" />
+    </div>
+
+    <!-- 卡片的标题和副标题 -->
+    <div class="mdui-card-primary">
+        <div class="mdui-card-primary-title">更多功能</div>
+        <div class="mdui-card-primary-subtitle">一起来探索本站吧!</div>
+    </div>
+
+    <!-- 卡片的内容 -->
+    <div class="mdui-card-content">
+        本站更多功能正在开发中...<br />预计我们将会支持以下功能:<br />1.支持一键生成表白卡片<br />2.支持点赞表白<br />3.支持表白搜索<br />
+    </div>
+    <!--
+        <div class="mdui-card-actions">
+          <button class="mdui-btn mdui-btn-icon mdui-float-right">
+            <i class="mdui-icon material-icons">share</i>
+          </button>
+          <button class="mdui-btn mdui-btn-icon mdui-float-right">
+            <i class="mdui-icon material-icons">more</i>
+          </button>
+        </div>-->
+</div>
+<br /><br />

+ 88 - 0
pages/submit.php

@@ -0,0 +1,88 @@
+<br /><br />
+<div class="mdui-card mdui-hoverable" style="border-radius: 16px">
+    <div class="mdui-card-primary">
+        <div class="mdui-card-primary-title">立即表白</div>
+        <div class="mdui-card-primary-subtitle">快向你喜欢的TA表白吧!</div>
+    </div>
+    <div class="mdui-divider"></div>
+    <div class="mdui-card-content">
+        <div class="mdui-textfield">
+            <label class="mdui-textfield-label">你的QQ</label>
+            <textarea id="qq" class="mdui-textfield-input" placeholder="2333333333"></textarea>
+        </div>
+        <div class="mdui-textfield">
+            <label class="mdui-textfield-label">你的名字</label>
+            <textarea id="name" class="mdui-textfield-input" placeholder="镜音连"></textarea>
+        </div>
+        <div class="mdui-textfield">
+            <label class="mdui-textfield-label">TA的名字</label>
+            <textarea id="taName" class="mdui-textfield-input" placeholder="镜音铃"></textarea>
+        </div>
+        <div class="mdui-textfield">
+            <label class="mdui-textfield-label">表白配图(可选)</label>
+            <textarea id="image" class="mdui-textfield-input" placeholder="https://kagamine.top/img.png"></textarea>
+        </div>
+        <div class="mdui-textfield">
+            <label class="mdui-textfield-label">一句话介绍一下TA</label>
+            <textarea id="introduceTA" class="mdui-textfield-input" placeholder="镜音铃是一个元气的二次元少女"></textarea>
+        </div>
+        <div class="mdui-textfield">
+            <label class="mdui-textfield-label">你要对TA说的话</label>
+            <textarea id="toTA" class="mdui-textfield-input" rows="4" placeholder="我喜欢你..."></textarea>
+        </div>
+    </div>
+
+    <div class="mdui-card-actions">
+        <button :disabled="isdisabledFn" class="mdui-btn mdui-color-theme-accent mdui-ripple mdui-float-right" onclick="submit()">
+            发射!
+        </button>
+    </div>
+    <script>
+        function submit() {
+            var contact = $("#qq").val();
+            var name = $("#name").val();
+            var taName = $("#taName").val();
+            var image = $("#image").val();
+            var introduceTA = $("#introduceTA").val();
+            var toTA = $("#toTA").val();
+            $.ajax({
+                type: 'post',
+                url: 'create',
+                data: {
+                    contact: contact,
+                    name: name,
+                    taName: taName,
+                    image: image,
+                    introduceTA: introduceTA,
+                    toTA: toTA
+                },
+                dataType: 'text',
+                success: function(data) {
+                    if (data == 1) {
+                        Swal.fire({
+                            type: 'success',
+                            title: '成功',
+                            text: '工单提交完毕!请在工单列表查看,并耐心等待客服回复',
+                        }).then((result) => {
+                            if (result.value) {
+                                window.location.reload();
+                            }
+                        })
+                    }
+                    $("#submitbtn").attr("disabled", false);
+                },
+                error: function(data) {
+                    var errors = data.responseJSON;
+                    $.each(errors.errors, function(key, value) {
+                        Swal.fire({
+                            type: 'error',
+                            title: '错误',
+                            text: value,
+                        })
+                    });
+                },
+            });
+        }
+    </script>
+</div>
+<br /><br />