main
水墨寒 1 year ago
commit e8ea46c644

@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

@ -0,0 +1,84 @@
# 六零导航页
#### 项目介绍
**六零导航页** (LyLme Spage) 致力于简洁高效无广告的上网导航和搜索入口,支持后台添加链接、自定义搜索引擎,沉淀最具价值链接,全站无商业推广,简约而不简单。
#### 演示站点
[https://hao.lylme.com](https://hao.lylme.com/)
#### 安装教程
1. 前往[Gitee Releases](https://gitee.com/LyLme/lylme_spage/releases/) 或[Github Releases](https://github.com/LyLme/lylme_spage/releases/) 下载最新版本源码压缩包,上传到网站根目录解压
2. 访问`http://域名/install`
3. 按提示配置数据库进行安装
4. 后台地址:`http://域名/admin`
5. 账号密码:`admin`/`123456`
#### 通过Docker安装
如果你是在 `x86_64 Linux` 架构的机器上安装,已经安装了 [Docker](https://docs.docker.com/engine/install/) 和 [`docker-compose`](https://docs.docker.com/compose/install/) 并且有 Docker 权限,你可以通过脚本快速部署:
```bash
curl -L 'https://aka.caomingjun.com/lylme/install.sh' | bash
```
其他架构未进行测试,可能无法通过脚本部署。
如果要安装到其他架构,或者如果你想使用一些进阶玩法,你也可以手动进行 Docker 部署,[这里是教程](https://aka.caomingjun.com/lylme/)。
#### 项目说明
**六零导航页** (LyLme Spage) 整合了一些优秀的导航页,为了让使用和网站管理更方便,增加了后台管理。并修改和优化了部分内容:
1. 使用PHP+MySql增加后台管理
2. 多模板选择,支持在后台切换模板
2. 增加常用搜索引擎,如:知乎、哔哩哔哩、在线翻译等(支持自定义)
3. 支持用户提交收录申请,地址:`http://域名/apply`
4. 部分模板优化和增加部分功能,如返回顶部、获取输入框焦点、时间日期显示等
5. 另外如果你有更好的建议或者反馈问题欢迎提交Issue
#### 背景设置
- **每日一图背景:** 六零导航页支持使用Bing每日一图作为背景接口地址`/assets/img/bing.php`,但直接调用的`bing.php`返回的图片并不是静态文件,不会产生缓存,会导致后续加载速度慢。
解决方案:修改`/assets/img/cron.php`文件配置秘钥然后添加一个每天执行的CRON任务`GET http://域名/assets/img/cron.php` 执行后会将Bing每日一图保存到`assets/img/background.jpg`,然后在后台修改背景地址为:`./assets/img/background.jpg`即可
- **其他背景:** 前往后台设置
#### 演示截图
![截图1](https://cdn.lylme.com/img/lylme_spage/lylme_spage1.png)
![六零导航页baisuTwo主题PC端截图](https://cdn.lylme.com/img/lylme_spage/image-20220501192454699.png)
![截图6](https://cdn.lylme.com/img/lylme_spage/lylme_spage6.png)
![截图2](https://cdn.lylme.com/img/lylme_spage/lylme_spage2.png)
![截图3](https://cdn.lylme.com/img/lylme_spage/lylme_spage3.png)
![截图4](https://cdn.lylme.com/img/lylme_spage/lylme_spage4.png)
![截图5](https://cdn.lylme.com/img/lylme_spage/lylme_spage5.png)
#### 鸣谢
**D.Young**
- 前端5iux主题和部分前端代码
- GitHub地址https://github.com/5iux
**笔下光年**
- 后台模板Light Year Admin
- Gitee地址https://gitee.com/yinqi/Light-Year-Admin-Template
**BaiSu**
- 前端baisu模板
- 原项目地址:[baisuTwo: onenav主题 (gitee.com)](https://gitee.com/baisucode/baisu-two)
- Fork仓库[六零导航页(LyLme Spage)baisu主题基于baisuTwo开发 (gitee.com)](https://gitee.com/LyLme/baisu)

@ -0,0 +1,24 @@
<h3>关于本站</h3>
<p>感谢来访,本站致力于简洁高效的上网导航和搜索入口,安全快捷。</p>
<p>如果您喜欢我们的网站,请将本站添加到收藏夹(快捷键<code>Ctrl+D</code>),并<a href="https://jingyan.baidu.com/article/4dc40848868eba89d946f1c0.html" target="_blank">设为浏览器主页</a>,方便您的下次访问,感谢支持。<p>
<hr>
<h3>本站承诺</h3>
<p><strong>绝对不会收集用户的隐私信息</strong><p>
<p>区别于部分导航网站,本站链接直接跳转目标,不会对链接处理再后跳转,不会收集用户的隐藏信息,包括但不限于点击记录,访问记录和搜索记录,请放心使用</p>
<hr>
<h3>申请收录</h3>
<p>请点<a href="../apply" target="_blank">这里</a></p>
<hr>
<h3>联系我们</h3>
<p>若您在使用本站时遇到了包括但不限于以下问题:</p>
<li>图标缺失</li>
<li>目标网站无法打开</li>
<li>描述错误</li>
<li>网站违规</li>
<li>收录加急处理</li>
<li>链接删除</li>
<p><strong>请发邮件与我们联系</strong></p>
<h5>联系邮箱</h5>
<p><a href="mailto:未配置邮箱">未配置邮箱</a></p>
<h5>联系说明</h5>
<p>为了您的问题能快速被处理,建议在邮件主题添加【反馈】【投诉】【推荐】【友链】</p>

@ -0,0 +1,32 @@
<?php include("../include/common.php"); ?>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>关于 - <?php echo explode("-", $conf['title'])[0];?></title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<link href="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/docsify/4.12.2/themes/vue.min.css" type="text/css" rel="stylesheet">
<style>body:not(.ready){overflow:auto!important}#main{max-width:90%}p.footer{margin-top:60px}p.footer a{text-decoration:none}</style>
</head>
<body>
<div class="markdown-section" id="main">
<?php
$about = 'about.txt';
//本页内容请修改about.txt文件防止更新后index.php文件被覆盖
if(file_exists($about)){
//文件存在,直接输出文件内容
echo file_get_contents($about);
}
else {
//文件不存在
@file_put_contents($about,'<h1>404</h1>');
echo file_get_contents($about);
}
?>
<center><p class="footer"><?php echo $conf['copyright']?></p></center>
</div>
</body>
</html>

@ -0,0 +1,34 @@
请勿删除 about.txt 文件,该文件存放网站关于页面的内容
如需修改关于本站的内容请修改about.txt文件防止更新后index.php文件被覆盖
该文件使用HTML语言编写 若您不了解html语言可使用在线生成
html生成https://www.lylme.com/html
默认内容如下:
<h3>关于本站</h3>
<p>感谢来访,本站致力于简洁高效的上网导航和搜索入口,安全快捷。</p>
<p>如果您喜欢我们的网站,请将本站添加到收藏夹(快捷键<code>Ctrl+D</code>),并<a href="https://jingyan.baidu.com/article/4dc40848868eba89d946f1c0.html" target="_blank">设为浏览器主页</a>,方便您的下次访问,感谢支持。<p>
<hr>
<h3>本站承诺</h3>
<p><strong>绝对不会收集用户的隐私信息</strong><p>
<p>区别于部分导航网站,本站链接直接跳转目标,不会对链接处理再后跳转,不会收集用户的隐藏信息,包括但不限于点击记录,访问记录和搜索记录,请放心使用</p>
<hr>
<h3>申请收录</h3>
<p>请点<a href="../apply" target="_blank">这里</a></p>
<hr>
<h3>联系我们</h3>
<p>若您在使用本站时遇到了包括但不限于以下问题:</p>
<li>图标缺失</li>
<li>目标网站无法打开</li>
<li>描述错误</li>
<li>网站违规</li>
<li>收录加急处理</li>
<li>链接删除</li>
<p><strong>请发邮件与我们联系</strong></p>
<h5>联系邮箱</h5>
<p><a href="mailto:未配置邮箱">未配置邮箱</a></p>
<h5>联系说明</h5>
<p>为了您的问题能快速被处理,建议在邮件主题添加【反馈】【投诉】【推荐】【友链】</p>

@ -0,0 +1,54 @@
<?php
include_once("../include/common.php");
if(isset($islogin)==1) {
} else exit("<script language='javascript'>window.location.href='./login.php';</script>");
header('Content-Type:application/json');
$set= isset($_GET['set']) ? $_GET['set'] : null;
switch($set) {
//修改分组
case 'status':
$id = $_POST['id'];
$sw = $_POST['status'];
$sql = "UPDATE `lylme_apply` SET `apply_status` = '".$sw."' WHERE `lylme_apply`.`apply_id` = ".$id.";";
if($sw==1) {
if ($DB->query($sql)) {
$applyres = $DB->get_row("SELECT * FROM `lylme_apply` WHERE `apply_id` = ".$id);
$name=strip_tags(daddslashes($applyres['apply_name']));
$url=strip_tags(daddslashes($applyres['apply_url']));
$icon=daddslashes($applyres['apply_icon']);
$group_id=strip_tags(daddslashes($applyres['apply_group']));
$mail=strip_tags(daddslashes($applyres['apply_mail']));
$link_order = $DB->count('select MAX(id) from `lylme_links`')+1;
$sql1 = "INSERT INTO `lylme_links` (`id`, `name`, `group_id`, `url`, `icon`, `PS`,`link_order`) VALUES (NULL, '" . $name . "', '" . $group_id . "', '" . $url . "', '" . $icon . "', '" . $mail . "的提交 ', '" . $link_order . "');";
if($DB->query($sql1)) {
exit('{"code": "200","msg":"成功!网站已成功收录!"}');
} else {
exit('{"code": "-1","操作失败!原因:\n'.$DB->error().'"}');
}
}
} else if($sw==2){
if ($DB->query($sql)) {
exit('{"code": "200","msg":"操作成功!"}');
}
else{
exit('{"code": "-1","操作失败!原因:\n'.$DB->error().'"}');
}
}
else{
exit('{"code": "-2","操作失败!-2"}');
}
break;
case 'delete':
$id = $_POST['id'];
$delsql = 'DELETE FROM `lylme_apply` WHERE apply_id =' . $id;
if ($DB->query($delsql)) {
exit('{"code": "200","msg":"操作成功!"}');
}else{
exit('{"code": "-2","操作失败!-2"}');
}
break;
default:
exit('error');
break;
}

@ -0,0 +1,114 @@
<?php
include_once("../include/common.php");
if(isset($islogin)==1) {
} else exit("<script language='javascript'>window.location.href='./login.php';</script>");
$submit = isset($_GET['submit']) ? $_GET['submit'] : null;
switch($submit) {
//修改分组
case 'set_group':
foreach($_POST['links'] as $lk=> $lv) {
$sql = "UPDATE `lylme_links` SET `group_id` = '".$_POST['group_id']."' WHERE `lylme_links`.`id` = ".$lv.";";
$DB->query($sql);
}
break;
case 'allorder':
//拖拽排序
for ($i=0; $i<count($_POST["link_array"]); $i++) {
$sql = "UPDATE `lylme_links` SET `link_order` = '".$i."' WHERE `lylme_links`.`id` = ".$_POST["link_array"][$i].";";
$DB->query($sql);
}
break;
case 'pwd_link':
//链接加密
foreach($_POST['links'] as $lk=> $lv) {
$sql = "UPDATE `lylme_links` SET `link_pwd` = '".$_POST['pwd_id']."' WHERE `lylme_links`.`id` = ".$lv.";";
$DB->query($sql);
}
break;
case 'on':
//链接启用
foreach($_POST['links'] as $lk=> $lv) {
$sql = "UPDATE `lylme_links` SET `link_status` = '1' WHERE `lylme_links`.`id` = ".$lv.";";
$DB->query($sql);
}
break;
case 'off':
//链接禁用
foreach($_POST['links'] as $lk=> $lv) {
$sql = "UPDATE `lylme_links` SET `link_status` = '0' WHERE `lylme_links`.`id` = ".$lv.";";
$DB->query($sql);
}
break;
case 'del':
//链接删除
foreach($_POST['links'] as $lk=> $lv) {
$sql = "DELETE FROM `lylme_links` WHERE `lylme_links`.`id` = ".$lv.";";
$DB->query($sql);
}
break;
//获取链接信息
case 'geturl':
$url = $_GET['url'];
$head = get_head($url);
if(empty($head['title'])&&empty($head['icon']))exit('Unable to access');
//download_img($url,head['icon']);
header('Content-Type:application/json');
exit(json_encode($head,JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE)); //输出json
break;
//检测更新
case 'update':
function zipExtract ($src, $dest) {
$zip = new ZipArchive();
if ($zip->open($src)===true) {
$zip->extractTo($dest);
$zip->close();
return true;
}
return false;
}
function deldir($dir) {
if(!is_dir($dir))return false;
$dh=opendir($dir);
while ($file=readdir($dh)) {
if($file!="." && $file!="..") {
$fullpath=$dir."/".$file;
if(!is_dir($fullpath)) {
unlink($fullpath);
} else {
deldir($fullpath);
}
}
}
closedir($dh);
if(rmdir($dir)) {
return true;
} else {
return false;
}
}
$scriptpath=str_replace('\\','/',$_SERVER['SCRIPT_NAME']);
$scriptpath = substr($scriptpath, 0, strrpos($scriptpath, '/'));
$admin_path = substr($scriptpath, strrpos($scriptpath, '/')+1);
$RemoteFile = $_POST['file'];
$ZipFile = "lylme_spage-update.zip";
copy($RemoteFile,$ZipFile) or die("无从更新服务器下载更新包文件!");
if (zipExtract($ZipFile,ROOT)) {
if($admin_path!='admin' && is_dir(ROOT.'admin')) {
//修改后台地址
deldir(ROOT.$admin_path);
rename(ROOT.'admin',ROOT.$admin_path);
}
unlink($ZipFile);
exit ('success');
}
else {
unlink($ZipFile);
exit('无法解压文件!请手动下载更新包解压');
}
break;
default:
exit('error');
break;
}

@ -0,0 +1,260 @@
<?php
$title = '收录管理';
include './head.php';
$applyrows=$DB->num_rows($DB->query("SELECT * FROM `lylme_apply`"));
$grouplists = $DB->query("SELECT * FROM `lylme_groups`");
?>
<script src="../assets/js/svg.js"></script>
<style>td img,td svg.icon {
width: 35px;
height: 35px;
max-width: 35px;
}
pre{
line-height: 1 !important;
}
</style>
<main class="lyear-layout-content">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<?php
$set = isset($_GET['set']) ? $_GET['set'] : null;
if ($set == 'edit') {
$id = $_GET['id'];
$row2 = $DB->query("select * from lylme_apply where apply_id='$id' limit 1");
$row = $DB->fetch($row2);
echo '<h4>修改链接信息</h4>
<div class="panel-body">
<form action="./apply.php?set=edit_submit&id=' . $id . '" method="POST">
<div class="form-apply">
<label>*名称:</label><br>
<input type="text" class="form-control" name="apply_name" value="' . $row['apply_name'] . '" required>
</div>
<div class="form-apply">
<label>*链接:</label><br>
<input type="text" class="form-control" name="apply_url" value="' . $row['apply_url'] . '" required>
</div>
<div class="form-apply">
<label>图标:</label><br>
<textarea type="text" class="form-control" name="apply_icon">' . $row['apply_icon'] . '</textarea>
<small class="help-block">方式1填写图标的<code>URL</code>地址,如<code>/img/logo.png</code><code>http://www.xxx.com/img/logo.png</code><br>
方式2粘贴图标的<code>SVG</code>代码,<a href="./help.php?doc=icon" target="_blank">查看教程</a><br>方式3留空使用默认图标<br><b>修改为svg代码后审核列表可能存在显示异常不会影响首页效果忽略即可</b></small>
</div>
<div class="form-group">
<label>*分组:</label><br>
<select class="form-control" name="apply_group">';
while ($grouplist = $DB->fetch($grouplists)) {
if ($grouplist["group_id"] == $row['apply_group']) {
$select = 'selected="selected"';
} else {
$select = '';
}
echo '<option value="' . $grouplist["group_id"] . '" ' . $select . '>' . $grouplist["group_id"] . ' - ' . $grouplist["group_name"] . '</option>';
}
echo '</select>
</div>
<div class="form-apply">
<input type="submit" class="btn btn-primary btn-block" value="确定修改"></form>
</div>
<br/><a href="./apply.php"><<返回收录管理列表</a></div></div>';
} elseif ($set == 'conf') {
echo '<h4>修改收录设置</h4>
<div class="panel-body">
<form action="./apply.php?set=conf_submit" method="POST">
<div class="form-group" id="apply">
<label class="btn-block" for="web_yan_status">申请收录</label>
<label class="lyear-switch switch-solid switch-cyan">
<select class="form-control" name="apply">
<option ';
if($conf['apply'] == 0) echo 'selected="selected"';
echo 'value="0">开启-需要审核</option><option ';
if($conf['apply'] == 1) echo 'selected="selected"';
echo 'value="1">开启-无需审核</option><option ';
if($conf['apply'] == 2) echo 'selected="selected"';
echo 'value="2">关闭-关闭申请</option>
</select>
</label>
<small class="help-block">申请收录开关,地址:<code>'. siteurl().'/apply</code><br>前往<a href="/apply" target="_blank">申请收录</a>提交页</small>
</div>
<div class="form-group">
<label for="apply_gg">收录页公告</label>
<textarea width="200px" type="text" rows="5" class="form-control" name="apply_gg" placeholder="显示在收录页的公告">'.$conf['apply_gg'].'</textarea>
<small class="help-block">显示在收录页的公告<code>使用HTML代码编写</code></small>
工具:<a href="https://www.lylme.com/html/" target="_blank">在线MD编辑器</a> 编辑后复制html代码粘贴
</div>
<div class="form-apply">
<input type="submit" class="btn btn-primary btn-block" value="保存"></form>
</div>
<br/><a href="./apply.php"><<返回收录管理列表</a></div></div>';
}elseif ($set == 'conf_submit') {
$apply= $_POST['apply'];
$apply_gg= $_POST['apply_gg'];
saveSetting('apply',$apply);
saveSetting('apply_gg',$apply_gg);
echo '<script>alert("修改成功!");window.location.href="./apply.php";</script>';
}
elseif ($set == 'edit_submit') {
$id = $_GET['id'];
$rows2 = $DB->query("select * from lylme_apply where apply_id='$id' limit 1");
$rows = $DB->fetch($rows2);
if (!$rows) echo '<script>alert("当前记录不存在!");history.go(-1);</script>';
$name = $_POST['apply_name'];
$icon = $_POST['apply_icon'];
$url = $_POST['apply_url'];
$group = $_POST['apply_group'];
if ($name == NULL) {
echo '<script>alert("保存错误,请确保带星号的都不为空!");history.go(-1);</script>';
} else {
$sql = "UPDATE `lylme_apply` SET `apply_name` = '" . $name . "', `apply_group` = '" . $group . "',`apply_icon` = '" . $icon . "',`apply_url` = '" . $url . "' WHERE `lylme_apply`.`apply_id` = '" . $id . "';";
if ($DB->query($sql)) echo '<script>alert("修改 ' . $name . ' 成功!");window.location.href="./apply.php";</script>'; else echo '<script>alert("' . $sql . '修改失败!原因:\n'.$DB->error().'");history.go(-1);</script>';
}
}
else {
echo '<pre>'.$conf['apply_gg'].'<br><a href="./apply.php?set=conf">修改</a></pre>';
echo '<div class="alert alert-info">
收录申请统计: <b>' . $applyrows . '</b><br/>
收录申请开关: <b>';
switch ($conf['apply']) {
case 0:
echo '开启-需要审核';
break;
case 1:
echo '开启-无需审核';
break;
case 2:
echo '关闭-关闭申请';
break;
}
echo '</b> &nbsp;<a href="./apply.php?set=conf">修改设置</a><br>
申请收录地址:<code>'. siteurl().'/apply</code> <a href="'. siteurl().'/apply" target="_blank">访问</a><br><br><sub>已审核的图标会被隐藏,点击图标可重新加载<br>部分网站图标一直处于加载或无法显示,可能原因:无法访问或跨域问题,建议建将图标本地化</sub></div>';
?>
<div class="table-responsive" id="applylist">
<table class="table table-striped">
<thead><tr><th>序号</th><th>图标</th><th>名称</th><th>链接</th><th>访问</th><th>分组</th><th>审核</th><th>操作</th><th>申请时间</th></tr></thead>
<tbody>
<?php
$rs = $DB->query("SELECT * FROM `lylme_apply` ORDER BY `lylme_apply`.`apply_time` DESC");
$i=0;
while ($res = $DB->fetch($rs)) {
$i++;
echo '<tr><td>';
if($res["apply_status"]==0) {echo '<font color="#48b0f7"><b>'.$i.'</b></font>';}
else{echo '<b>'.$i.'</b>';}
echo '</td><td>';
if($res["apply_status"]==0) {
if(empty($res["apply_icon"])){
echo '未提交图标';
}
else if (preg_match("/^<svg*/", $link["icon"])) {
echo $link["icon"];
}
else{
echo '<img class="lazy" src="https://cdn.lylme.com/admin/lyear/img/loading.gif" data-original="' . $res["apply_icon"] . '" />';
}
}
else{
echo '<img class="lazys" title="获取" src="https://cdn.lylme.com/admin/lyear/img/get.png" data-original="' . $res["apply_icon"] . '"';
}
echo '</td><td>' . $res['apply_name'] . '</td><td>' . $res['apply_url'] .'</td><td><a class="btn btn-purple btn-xs" href="../include/go.php?url='. $res['apply_url'].'" target="_blank">访问</a></td><td>'.$DB->fetch($DB->query("SELECT * FROM `lylme_groups` WHERE `group_id` = " . $res['apply_group'])) ["group_name"].'
</td><td>';
if($res["apply_status"]==2) {
echo '<font color="#f96868">已拒绝</font>';
} else if($res["apply_status"]==1) {
echo '<font color="#3c763d">已通过</font>';
} else {
echo '
<button class="btn btn-primary btn-xs" onclick="status(' . $res['apply_id'] . ',1)">通过</button>&nbsp;
<button class="btn btn-cyan btn-xs" onclick="status(' . $res['apply_id'] . ',2)">拒绝</a>';
}
echo '</td><td>';
if($res["apply_status"]==0) {echo '<a href="./apply.php?set=edit&id=' . $res['apply_id'] . '" class="btn btn-info btn-xs">编辑</a>&nbsp;';}
echo ' <button class="btn btn-xs btn-danger" onclick="deletes(' . $res['apply_id'] . ')">删除</button> </td>
<td>'.$res['apply_time'].'</td>
</tr>';
}
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<?php
}
include './footer.php';
?>
<script src="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery.lazyload/1.9.1/jquery.lazyload.min.js" type="application/javascript"></script>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/layer/3.1.1/layer.min.js" type="application/javascript"></script>
<script>
function status(id,status){
$.ajax({
url:"ajax_apply.php?set=status",
type:"POST",
dataType:"json",
data:{id:id,status:status},
success:function(data){
if(data.code == '200'){
layer.msg(data.msg);
$("#applylist").load(location.href+" #applylist>*","");
return true;
}
else{
layer.msg(data.msg);
return false;
}
},
error:function(data){
layer.msg('服务器错误');
return false;
}
});
}
function deletes(id){
if(!confirm("确定删除?")){
return false;
}
$.ajax({
url:"ajax_apply.php?set=delete",
type:"POST",
dataType:"json",
data:{id:id},
success:function(data){
if(data.code == '200'){
layer.msg(data.msg);
$("#applylist").load(location.href+" #applylist>*","");
return true;
}
else{
layer.msg(data.msg);
return false;
}
},
error:function(data){
layer.msg('服务器错误');
return false;
}
});
}
$("img.lazy").lazyload({
threshold : 100
});
$(document).ready(function(){
$(".lazys").click(function(){
$(this).attr('src','https://cdn.lylme.com/admin/lyear/img/loading.gif');
$(this).lazyload();
});
});
</script>

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
.clr-picker{display:none;flex-wrap:wrap;position:absolute;width:200px;z-index:1000;border-radius:10px;background-color:#fff;justify-content:space-between;box-shadow:0 0 5px rgba(0,0,0,.05),0 5px 20px rgba(0,0,0,.1);-moz-user-select:none;-webkit-user-select:none;user-select:none}.clr-picker.clr-open{display:flex}.clr-dark{background-color:#444}.clr-gradient{position:relative;width:100%;height:100px;margin-bottom:15px;border-radius:3px 3px 0 0;background-image:linear-gradient(rgba(0,0,0,0),#000),linear-gradient(90deg,#fff,currentColor);cursor:pointer}.clr-marker{position:absolute;width:12px;height:12px;margin:-6px 0 0 -6px;border:1px solid #fff;border-radius:50%;background-color:currentColor;cursor:pointer}.clr-picker input[type=range]::-webkit-slider-runnable-track{width:100%;height:8px}.clr-picker input[type=range]::-webkit-slider-thumb{width:8px;height:8px;-webkit-appearance:none}.clr-picker input[type=range]::-moz-range-track{width:100%;height:8px;border:0}.clr-picker input[type=range]::-moz-range-thumb{width:8px;height:8px;border:0}.clr-hue{background-image:linear-gradient(to right,red 0,#ff0 16.66%,#0f0 33.33%,#0ff 50%,#00f 66.66%,#f0f 83.33%,red 100%)}.clr-alpha,.clr-hue{position:relative;width:calc(100% - 40px);height:8px;margin:5px 20px;border-radius:4px}.clr-alpha span{display:block;height:100%;width:100%;border-radius:inherit;background-image:linear-gradient(90deg,rgba(0,0,0,0),currentColor)}.clr-alpha input,.clr-hue input{position:absolute;width:calc(100% + 16px);height:16px;left:-8px;top:-4px;margin:0;background-color:transparent;opacity:0;cursor:pointer;appearance:none;-webkit-appearance:none}.clr-alpha div,.clr-hue div{position:absolute;width:16px;height:16px;left:0;top:0;margin:-4px 0 0 -8px;border:2px solid #fff;border-radius:50%;background-color:currentColor;box-shadow:0 0 1px #888;pointer-events:none}.clr-alpha div:before{content:'';position:absolute;height:100%;width:100%;left:0;top:0;border-radius:50%;background-color:currentColor}.clr-swatches{order:2;width:calc(100% - 40px);margin:0 20px}.clr-swatches div{display:flex;flex-wrap:wrap;padding-bottom:12px;justify-content:center}.clr-swatches button{position:relative;width:20px;height:20px;margin:0 8px 6px 0;border:0;border-radius:50%;color:inherit;text-indent:-1000px;white-space:nowrap;overflow:hidden;cursor:pointer}.clr-swatches button:last-child,.clr-swatches button:nth-child(6n){margin-right:0}.clr-swatches button:after{content:'';display:block;position:absolute;width:100%;height:100%;left:0;top:0;border-radius:inherit;background-color:currentColor;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}.clr-dark .clr-swatches button:after{box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}input.clr-color{order:1;width:120px;height:32px;margin:15px 20px 15px 0;padding:0 15px;border:1px solid #ddd;border-radius:16px;color:#444;background-color:#fff;font-family:sans-serif;font-size:14px;text-align:left;box-shadow:none}.clr-dark input.clr-color{color:#fff;border-color:#777;background-color:#555}input.clr-color:focus{outline:0;border:1px solid #aaa}.clr-preview{position:relative;width:32px;height:32px;margin:15px 0 20px 20px;border:0;border-radius:50%;overflow:hidden;cursor:pointer}.clr-preview:after,.clr-preview:before{content:'';position:absolute;height:100%;width:100%;left:0;top:0;border:1px solid #fff;border-radius:50%}.clr-preview:after{border:0;background-color:currentColor;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}.clr-dark .clr-preview:after{box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}.clr-alpha div,.clr-color,.clr-hue div,.clr-marker{box-sizing:border-box}.clr-field{display:inline-block;position:relative;color:#000}.clr-field button{position:absolute;width:30px;height:100%;right:0;top:50%;transform:translateY(-50%);border:0;color:inherit;text-indent:-1000px;white-space:nowrap;overflow:hidden;pointer-events:none}.clr-field button:after{content:'';display:block;position:absolute;width:100%;height:100%;left:0;top:0;border-radius:inherit;background-color:currentColor;box-shadow:inset 0 0 1px rgba(0,0,0,.5)}.clr-alpha,.clr-alpha div,.clr-field button,.clr-preview:before,.clr-swatches button{background-image:repeating-linear-gradient(45deg,#aaa 25%,transparent 25%,transparent 75%,#aaa 75%,#aaa),repeating-linear-gradient(45deg,#aaa 25%,#fff 25%,#fff 75%,#aaa 75%,#aaa);background-position:0 0,4px 4px;background-size:8px 8px}.clr-marker:focus{outline:0}.clr-keyboard-nav .clr-alpha input:focus+div,.clr-keyboard-nav .clr-hue input:focus+div,.clr-keyboard-nav .clr-marker:focus{outline:0;box-shadow:0 0 0 2px #1e90ff,0 0 2px 2px #fff}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 2.1 MiB

@ -0,0 +1,17 @@
<script language="javascript">
function loginout(){
if( confirm("你确实要退出吗?")){
window.parent.location.href="login.php?logout";
}
else{
return;
}
}
</script>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/perfect-scrollbar.min.js"></script>
<script type="text/javascript" src="js/main.min.js"></script>
</body>
</html>
<?php $DB->close(); ?>

@ -0,0 +1,181 @@
<?php
$title = '分组管理';
include './head.php';
?>
<main class="lyear-layout-content">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<?php
$set = isset($_GET['set']) ? $_GET['set'] : null;
if ($set == 'add') {
echo '<h4>新增分组</h4>
<div class="panel-body"><form action="./group.php?set=add_submit" method="POST">
<div class="form-group">
<label>*名称:</label><br>
<input type="text" class="form-control" name="group_name" value="" required>
</div>
<div class="form-group">
<label>分组图标:</label><br>
<textarea type="text" class="form-control" name="group_icon" value=""></textarea>
<small class="help-block">方式1填写图标的<code>URL</code>地址,如<code>/img/logo.png</code><code>http://www.xxx.com/img/logo.png</code><br>
方式2粘贴图标的<code>SVG</code>代码,<a href="./help.php?doc=icon" target="_blank">查看教程</a><br>方式3留空使用默认图标</small>
</div>
<div class="form-group">
<label>分组加密:</label><br>
<select class="form-control" required name="group_pwd">';
$pwd_lists = $DB->query("SELECT * FROM `lylme_pwd`");
while ($pwd_list = $DB->fetch($pwd_lists)) {
echo '<option value="' . $pwd_list["pwd_id"] . '">' . $pwd_list["pwd_id"] . ' - ' . $pwd_list["pwd_name"] . ' | 密码['. $pwd_list["pwd_key"].']</option>';
}
echo '
<option value="0" selected="selected">0 - 不加密</option></select>
<small class="help-block"><code>注意:对链接所在的分组加密后,单独设置的链接加密将会失效</code><br>
加密后只能通过输入密码访问,使用该功能先配置加密组
<a href="./pwd.php" target="_blank">管理加密组</a></small>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary btn-block" value="确定添加"></form>
</div>
<br/><a href="./group.php"><<返回分组列表</a>
</div></div>
';
} elseif ($set == 'edit') {
$id = $_GET['id'];
$row2 = $DB->query("select * from lylme_groups where group_id='$id' limit 1");
$row = $DB->fetch($row2);
echo '<h4>修改分组信息</h4>
<div class="panel-body">
<form action="./group.php?set=edit_submit&id=' . $id . '" method="POST">
<div class="form-group">
<label>*名称:</label><br>
<input type="text" class="form-control" name="group_name" value="' . $row['group_name'] . '" required>
</div>
<div class="form-group">
<label>分组图标:</label><br>
<textarea type="text" class="form-control" name="group_icon">' . $row['group_icon'] . '</textarea>
<small class="help-block">方式1填写图标的<code>URL</code>地址,如<code>/img/logo.png</code><code>http://www.xxx.com/img/logo.png</code><br>
方式2粘贴图标的<code>SVG</code>代码,<a href="./help.php?doc=icon" target="_blank">查看教程</a><br>方式3留空使用默认图标</small>
</div>
<div class="form-group">
<label>分组加密:</label><br>
<select class="form-control" required name="group_pwd">';
$pwd_lists = $DB->query("SELECT * FROM `lylme_pwd`");
while ($pwd_list = $DB->fetch($pwd_lists)) {
if($row['group_pwd']==$pwd_list["pwd_id"]){$sel = 'selected="selected"';}else{$sel = '';}
echo '<option value="' . $pwd_list["pwd_id"] . '" '.$sel.' >' . $pwd_list["pwd_id"] . ' - ' . $pwd_list["pwd_name"] . ' | 密码['. $pwd_list["pwd_key"].']</option>';
}
if(empty($row['group_pwd'])) $sele = 'selected="selected"';
echo '
<option value="0" '.$sele.'>0 - 不加密</option></select>
<small class="help-block"><code>优先级:分组加密>链接加密</code><br>
加密后只能通过输入密码访问,使用该功能先配置加密组
<a href="./pwd.php" target="_blank">管理加密组</a></small>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary btn-block" value="确定修改"></form>
</div>
<br/><a href="./group.php"><<返回分组列表</a></div></div>';
} elseif ($set == 'add_submit') {
$name = $_POST['group_name'];
$icon = $_POST['group_icon'];
$pwd = $_POST['group_pwd'];
$group_order = $groupsrows + 1;
if ($name == NULL) {
echo '<script>alert("保存错误,请确保带星号的都不为空!");history.go(-1);</script>';
} else {
$sql = "INSERT INTO `lylme_groups` (`group_id`, `group_name`, `group_icon`,`group_order`,`group_pwd`) VALUES (NULL, '" . $name . "', '" . $icon . "', '" . $group_order . "', '" . $pwd . "')";
if ($DB->query($sql)) {
echo '<script>alert("添加分组 ' . $name . ' 成功!");window.location.href="./group.php";</script>';
exit();
} else echo '<script>alert("添加分组失败");history.go(-1);</script>';
exit();
}
echo '<script>alert("添加分组失败,名称重复");history.go(-1);</script>';
} elseif ($set == 'edit_submit') {
$id = $_GET['id'];
$rows2 = $DB->query("select * from lylme_groups where group_id='$id' limit 1");
$rows = $DB->fetch($rows2);
if (!$rows) echo '<script>alert("当前记录不存在!");history.go(-1);</script>';
$name = $_POST['group_name'];
$icon = $_POST['group_icon'];
$pwd = $_POST['group_pwd'];
if ($name == NULL) {
echo '<script>alert("保存错误,请确保带星号的都不为空!");history.go(-1);</script>';
} else {
$sql = "UPDATE `lylme_groups` SET `group_name` = '" . $name . "', `group_icon` = '" . $icon . "',`group_pwd` = '" . $pwd . "' WHERE `lylme_groups`.`group_id` = '" . $id . "';";
if ($DB->query($sql)) echo '<script>alert("修改分组 ' . $name . ' 成功!");window.location.href="./group.php";</script>';
else echo '<script>alert("' . $sql . '修改分组失败");history.go(-1);</script>';
}
} elseif ($set == 'del') {
$id = $_POST['group_id'];
$delsql1 = 'DELETE FROM `lylme_links` WHERE group_id =' . $id;
$delsql2 = 'DELETE FROM `lylme_groups` WHERE group_id=' . $id;
$DB->query($delsql1);
$DB->query($delsql2);
exit();
} elseif ($set == 'on') {
$id = $_POST['group_id'];
$sql = "UPDATE `lylme_groups` SET `group_status` = '1' WHERE `lylme_groups`.`group_id` =" . $id;
$DB->query($sql);
exit();
} elseif ($set == 'off') {
$id = $_POST['group_id'];
$sql = "UPDATE `lylme_groups` SET `group_status` = '0' WHERE `lylme_groups`.`group_id` =" . $id;
$DB->query($sql);
exit();
}
elseif ($set == 'sort') {
for ($i=0; $i<count($_POST["groups"]); $i++) {
$sql = "UPDATE `lylme_groups` SET `group_order` = '".$i."' WHERE `lylme_groups`.`group_id` = ".$_POST["groups"][$i].";";
$DB->query($sql);
}
exit();
}
// elseif ($set == 'up') {
// //上移
// $id = $_GET['id'];
// $order = $DB->get_row("SELECT `group_id`, `group_order` FROM `lylme_groups` WHERE `group_id` = ".$id.";")['group_order']; //当前排序
// $pl = $DB->get_row("SELECT * FROM `lylme_groups` WHERE `group_order` < ".$order." ORDER BY `lylme_groups`.`group_order` DESC LIMIT 1"); //上一行
// $DB->query("UPDATE `lylme_groups` SET `group_order` = '".$pl['group_order']."' WHERE `lylme_groups`.`group_id` = ".$id.";"); //设置为上一行的排序
// $DB->query("UPDATE `lylme_groups` SET `group_order` = '".$order."' WHERE `lylme_groups`.`group_id` = ".$pl['group_id'].";"); //设置上一行的排序为当前行
// echo '<script>window.location.href="./group.php?orderid=' . $id . '";</script>';
// exit();
// } elseif ($set == 'down') {
// $id = $_GET['id'];
// $order = $DB->get_row("SELECT `group_id`, `group_order` FROM `lylme_groups` WHERE `group_id` = ".$id.";")['group_order']; //当前排序
// $nl = $DB->get_row("SELECT * FROM `lylme_groups` WHERE `group_order` > ".$order." ORDER BY `lylme_groups`.`group_order` ASC LIMIT 1"); //下一行
// $DB->query("UPDATE `lylme_groups` SET `group_order` = '".$nl['group_order']."' WHERE `lylme_groups`.`group_id` = ".$id.";"); //设置为下一行的排序
// $DB->query("UPDATE `lylme_groups` SET `group_order` = '".$order."' WHERE `lylme_groups`.`group_id` = ".$nl['group_id'].";"); //设置下一行的排序为当前行
// echo '<script>window.location.href="./group.php?orderid=' . $id . '";</script>';
// exit();
// }
else {
?>
<div id="listTable"></div>
</div>
</div>
</div>
</div>
</div>
</main>
<?php
}
include './footer.php';
?>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/layer/3.1.1/layer.min.js" type="application/javascript"></script>
<script type="text/javascript" src="js/lightyear.js"></script>
<script src="js/bootstrap-notify.min.js"></script>
<link href="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery-confirm/3.3.0/jquery-confirm.min.css" type="text/css" rel="stylesheet" />
<script src="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery-confirm/3.3.0/jquery-confirm.min.js" type="application/javascript"></script>
<script type="text/javascript" src="js/group.js"></script>

@ -0,0 +1,124 @@
<?php
include_once("../include/common.php");
if(isset($islogin)==1) {
} else exit("<script language='javascript'>window.location.href='./login.php';</script>");
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<title><?php echo $title.' - '.$conf['title'];?></title>
<link rel="icon" href="/assets/img/logo.png" type="image/ico">
<meta name="author" content="yinqi">
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/materialdesignicons.min.css" rel="stylesheet">
<link href="css/style.min.css" rel="stylesheet">
</head>
<div class="lyear-layout-web">
<div class="lyear-layout-container">
<!--左侧导航-->
<aside class="lyear-layout-sidebar">
<!-- logo -->
<div id="logo" class="sidebar-header">
<a href="/"><img src="/assets/img/logo-sidebar.png" alt="LyLme" title="返回首页" /></a>
</div>
<div class="lyear-layout-sidebar-scroll">
<nav class="sidebar-main">
<ul class="nav nav-drawer">
<li class="nav-item active"> <a href="./"><i class="mdi mdi-home-map-marker"></i>后台首页</a> </li>
<li class="nav-item nav-item-has-subnav">
<a href="javascript:void(0)"><i class="mdi mdi-palette"></i>网站配置</a>
<ul class="nav nav-subnav">
<li> <a href="./set.php">网站基本设置</a> </li>
<li> <a href="./tag.php">导航菜单设置</a> </li>
<li> <a href="./sou.php">搜索引擎设置</a> </li>
<li> <a href="./user.php">修改账号密码</a> </li>
</ul>
</li>
<li class="nav-item active"> <a href="./theme.php"><i class="mdi mdi-invert-colors"></i>主题设置</a> </li>
<li class="nav-item active"> <a href="./apply.php"><i class="mdi mdi-link"></i>收录管理 </a>
<?php $applyrows = $DB->num_rows($DB->query("SELECT * FROM `lylme_apply` WHERE `apply_status` = 0"));
if($applyrows>0) {
echo'<style> .applyrow{width: 18px;height: 18px;top: 15px;right: 24px;font-size: 10px;font-weight: bold;color: #fff;background-color: red;border-radius: 100%;text-align: center;vertical-align: middle;position: absolute;line-height: 1.5;}</style>
<div class="applyrow">'.$applyrows.'</div>';
}
?></li>
<li class="nav-item nav-item-has-subnav">
<li class="nav-item active"> <a href="./group.php"><i class="mdi mdi-folder"></i>分组管理</a></li>
<li class="nav-item active"> <a href="./link.php"><i class="mdi mdi-web"></i>链接管理</a></li>
<li class="nav-item active"> <a href="./pwd.php"><i class="mdi mdi-key-variant"></i>加密管理</a></li>
<li class="nav-item active"> <a href="./update.php"><i class="mdi mdi-update"></i>检查更新</a> </li>
<li> <a href="javascript:loginout()"><i class="mdi mdi-logout"></i> 退出登录</a> </li>
</ul>
</nav>
<div class="sidebar-footer">
<p class="copyright">Copyright &copy;
<?php echo(date('Y'));
?> Powered by <br> <a href="https://gitee.com/LyLme/lylme_spage"><?php echo explode("-", $conf['title'])[0];?> </a></p>
</div>
</div>
</aside>
<!--End 左侧导航-->
<!--头部信息-->
<header class="lyear-layout-header">
<nav class="navbar navbar-default">
<div class="topbar">
<div class="topbar-left">
<div class="lyear-aside-toggler">
<span class="lyear-toggler-bar"></span>
<span class="lyear-toggler-bar"></span>
<span class="lyear-toggler-bar"></span>
</div>
<span class="navbar-page-title"> <?php echo $title;
?></span>
</div>
<ul class="topbar-right">
<li class="dropdown dropdown-profile">
<a href="javascript:void(0)" data-toggle="dropdown">
<span><?php echo $conf['admin_user'];
?><span class="caret"></span></span>
</a>
<ul class="dropdown-menu dropdown-menu-right">
<li> <a href="./user.php"><i class="mdi mdi-lock-outline"></i> 修改密码</a> </li>
<li class="divider"></li>
<li> <a href="javascript:loginout()"><i class="mdi mdi-logout-variant"></i> 退出登录</a> </li>
</ul>
</li>
<li class="dropdown dropdown-skin">
<span data-toggle="dropdown" class="icon-palette" aria-expanded="false"><i class="mdi mdi-palette"></i></span>
<ul class="dropdown-menu dropdown-menu-right" data-stoppropagation="true">
<li class="drop-title"><p>主题</p></li>
<li class="drop-skin-li clearfix">
<span class="inverse">
<input type="radio" name="site_theme" value="default" id="site_theme_1" >
<label for="site_theme_1" onclick="theme('default')"></label>
</span>
<span>
<input type="radio" name="site_theme" value="dark" id="site_theme_2" checked="">
<label for="site_theme_2" onclick="theme('dark')"></label>
</span>
</li>
</ul>
</li>
</ul>
</div>
</nav>
</header>
<script>
function theme(theme){
localStorage.setItem("theme", theme);
}
var themes = localStorage.getItem("theme");
if(themes != "dark"){
var themes = 'default';
document.getElementById('site_theme_1').checked = true;
}
else{
document.getElementById('site_theme_2').checked = true;
}
document.write('<body data-theme="'+themes+'">');
</script>
<!--End 头部信息-->

@ -0,0 +1,49 @@
<?php
$title = '后台管理';
include './head.php';
$title = 'SVG代码获取教程';
?>
<main class="lyear-layout-content">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<?php
$set=isset($_GET['doc'])?$_GET['doc']:null;
if($set=='icon'){
?>
<div class="card">
<div class="card-header"><h4>SVG代码获取教程</h4></div>
<div class="card-body">
<p>1. 以阿里图标库为例,访问<a href="https://www.iconfont.cn/" target="_blant">https://www.iconfont.cn/</a>注册登录</p>
<p>2. 点击网站顶部的搜索,输入需要的图标名称,在出现的结果中选择适合的图标</p>
<p>3. 鼠标悬停在图标上,会出现三个选项,选择最下面的下载按钮</p>
<p>4. 可以按个人喜好选择适合的颜色及大小(一般默认即可)</p>
<p>5. 点击底部的<b>复制SVG代码</b>,粘贴到图标的编辑框内</p>
<p><font color='red'><b>注意:<b>SVG代码必须以<code>&lt;svg </code>开头粘贴到编辑框的SVG代码前面不能包含任何字符包括空格否则将导致报错</font></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<?php
}
else {
echo '<script>alert("无效的访问!");history.go(-1);</script>';
}
include './footer.php';
?>

@ -0,0 +1,233 @@
<?php
$title = '后台管理';
include './head.php';
$last = date("Ym");
if(@file_get_contents('log.txt') != $last || !file_exists('cache.php')){
$update = update();
file_put_contents('log.txt',$last);
var_export($update,true);
$content = "<?php\nreturn ".var_export($update,true)."\n?>";
file_put_contents('cache.php', $content);
}
$mysqlversion=$DB->count("select VERSION()");
function tjsj($tjname) {
if($tjname=='') {
echo '0';
} else {
echo $tjname;
}
}
?>
<!--页面主要内容-->
<main class="lyear-layout-content">
<div class="container-fluid">
<?php
$update = require('cache.php');
if(!empty($update)) {
if($update['switch']) {
if($update['msg_switch'] && !empty($update['msg'])) {
echo '<div class="card"><div class="card-header"><h4>'.$update['title'].'</h4></div><ul class="list-group">'.$update['msg'].'</ul></div>';
}
if(getver($update['version']) > getver($conf['version'])) {
echo '<div class="card"><div class="card-header"><h4>更新提示</h4></div><ul class="list-group">'.$update['update_msg'].'</ul></div>';
}
}
}
?>
<div class="row">
<div class="col-sm-6 col-lg-3">
<div class="card bg-primary">
<div class="card-body clearfix">
<div class="pull-right">
<p class="h6 text-white m-t-0">链接数量</p>
<p class="h3 text-white m-b-0 fa-1-5x"><?php tjsj($linksrows);
?></p>
</div>
<div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><i class="mdi mdi-web fa-1-5x"></i></span> </div>
</div>
</div>
</div>
<div class="col-sm-6 col-lg-3">
<div class="card bg-danger">
<div class="card-body clearfix">
<div class="pull-right">
<p class="h6 text-white m-t-0">今日浏览量</p>
<p class="h3 text-white m-b-0 fa-1-5x"><?php tjsj($tjtoday);
?></p>
</div>
<div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><i class="mdi mdi-account fa-1-5x"></i></span> </div>
</div>
</div>
</div>
<div class="col-sm-6 col-lg-3">
<div class="card bg-success">
<div class="card-body clearfix">
<div class="pull-right">
<p class="h6 text-white m-t-0">昨日浏览量</p>
<p class="h3 text-white m-b-0 fa-1-5x"><?php tjsj($tjyesterday);
?></p>
</div>
<div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><i class="mdi mdi-account-convert fa-1-5x"></i></span> </div>
</div>
</div>
</div>
<div class="col-sm-6 col-lg-3">
<div class="card bg-purple">
<div class="card-body clearfix">
<div class="pull-right">
<p class="h6 text-white m-t-0">累计浏览量</p>
<p class="h3 text-white m-b-0 fa-1-5x"><?php tjsj($tjtotal);
?></p>
</div>
<div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><i class="mdi mdi-account-multiple fa-1-5x"></i></span> </div>
</div>
</div>
</div>
</div>
<?php
if($applyrows>0) {
echo'
<div class="row">
<div class="col-sm-6 col-lg-12">
<div class="card bg-info">
<div class="card-body clearfix">
<a href="./apply.php"> <div class="pull-right">
<p class="h6 text-white m-t-0">待审核链接</p>
<p class="h3 text-white m-b-0 fa-1-5x">'.$applyrows.'</p>
</div></a>
<div class="pull-left"> <span class="img-avatar img-avatar-48 bg-translucent"><i class="mdi mdi-link fa-1-5x"></i></span> </div>
</div>
</div>
</div>
</div>';
}
?>
<div class="row">
<div class="col-lg-6">
<div class="card">
<div class="card-header">
<h4>仪表盘柱状统计图</h4>
</div>
<div class="card-body">
<canvas class="js-chartjs-bars"></canvas>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="card">
<div class="card-header">
<h4>仪表盘折线统计图</h4>
</div>
<div class="card-body">
<canvas class="js-chartjs-lines"></canvas>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<h4>服务器信息</h4>
</div>
<ul class="list-group">
<li class="list-group-item">
<b>PHP 版本:</b><?php echo phpversion() ?>
<?php if(ini_get('safe_mode')) {
echo '线程安全';
} else {
echo '非线程安全';
}
?>
</li>
<li class="list-group-item">
<b>MySQL 版本:</b><?php echo $mysqlversion ?>
</li>
<li class="list-group-item">
<b>服务器软件:</b><?php echo $_SERVER['SERVER_SOFTWARE'] ?>
</li>
<li class="list-group-item">
<b>程序名称:</b>六零导航页(LyLme Spage)
</li>
<li class="list-group-item">
<b>建站日期:</b><?php echo $conf['build']?>
</li>
<li class="list-group-item">
<b>当前版本:</b><?php echo $conf['version']?> <a href="./update.php" target="_blant">检查更新</a>
</li>
<li class="list-group-item">
<b>最新版本:</b> <?php echo $update['version']?> <a href="https://gitee.com/LyLme/lylme_spage/releases" target="_blant">查看更新说明</a>
</li>
<li class="list-group-item">
<b>项目作者:</b>六零 <a href="https://www.lylme.com/support/" target="_blant">捐赠作者</a>
</li>
<li class="list-group-item">
<b>项目地址:</b>https://github.com/LyLme/lylme_spage
</li>
</ul>
</div>
</div>
</main>
<!--End 页面主要内容-->
</div>
</div>
<?php
include './footer.php';
?>
<!--图表插件-->
<script type="text/javascript" src="js/Chart.js"></script>
<script type="text/javascript">
$(document).ready(function(e) {
var $dashChartBarsCnt = jQuery( '.js-chartjs-bars' )[0].getContext( '2d' ),
$dashChartLinesCnt = jQuery( '.js-chartjs-lines' )[0].getContext( '2d' );
var $dashChartBarsData = {
labels: ['今日浏览', '昨日浏览', '本月浏览', '总浏览', '链接数', '分组数'],
datasets: [ {
label: '数量',
borderWidth: 1,
borderColor: 'rgba(0,0,0,0)',
backgroundColor: 'rgba(51,202,185,0.5)',
hoverBackgroundColor: "rgba(51,202,185,0.7)",
hoverBorderColor: "rgba(0,0,0,0)",
data: [<?php echo $tjtoday;
?>, <?php echo $tjyesterday;
?>, <?php echo $tjmonth;
?>, <?php echo $tjtotal;
?>, <?php echo $linksrows;
?>, <?php echo $groupsrows;
?>]
}
]
}
;
var $dashChartLinesData = {
labels: ['今日浏览', '昨日浏览', '本月浏览', '总浏览', '链接数', '分组数'],
datasets: [ {
label: '数量',
data: [<?php echo $tjtoday;
?>, <?php echo $tjyesterday;
?>, <?php echo $tjmonth;
?>, <?php echo $tjtotal;
?>,<?php echo $linksrows;
?>, <?php echo $groupsrows;
?>],
borderColor: '#358ed7',
backgroundColor: 'rgba(53, 142, 215, 0.175)',
borderWidth: 1,
fill: false,
lineTension: 0
}
]
}
;
new Chart($dashChartBarsCnt, {
type: 'bar',
data: $dashChartBarsData
}
);
var myLineChart = new Chart($dashChartLinesCnt, {
type: 'line',
data: $dashChartLinesData,
}
);
}
);
</script>

18962
admin/js/Chart.js vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,146 @@
function listTable(query){
var url = window.document.location.href.toString();
var queryString = url.split("?")[1];
query = query || queryString;
layer.closeAll();
var ii = layer.load(2, {shade:[0.1,'#fff']});
$.ajax({
type : 'GET',
url : 'table_group.php?'+query,
dataType : 'html',
cache : false,
success : function(data) {
layer.close(ii);
$("#listTable").html(data);
},
error:function(data){
layer.msg('服务器错误');
lightyear.loading('hide');
return false;
}
});
}
//载入页面
$(document).ready(function(){
if($("#listTable").length>0){
listTable()
}
});
$(document).on('click', '.sort-up', function(){
//上移
if($(this).parents('tr').prevAll().length > 0){
$(this).parents('tr').prev().before($(this).parents('tr').prop('outerHTML'));
$(this).parents('tr').remove();
save_order();
}
}).on('click', '.sort-down', function(){
//下移
if($(this).parents('tr').nextAll().length > 0){
$(this).parents('tr').next().after($(this).parents('tr').prop('outerHTML'));
$(this).parents('tr').remove();
save_order();
}
});
//保存排序
function save_order(){
var groups =[];
var $inputArr = $('input[name="group_id"]');
$inputArr.each(function(){
groups.push($(this).val());
});
lightyear.loading('show');
$.ajax({
url:"group.php?set=sort",
method:"POST",
data:{groups:groups},
success:function(data){
lightyear.loading('hide');
lightyear.notify('操作成功!', 'success', 1000);
listTable();
return true;
},
error:function(data){
layer.msg('服务器错误');
lightyear.loading('hide');
return false;
}
});
}
//启用分组
function on_group(id){
lightyear.loading('show');
$.ajax({
url:"group.php?set=on",
method:"POST",
data:{group_id:id},
success:function(data){
lightyear.loading('hide');
lightyear.notify('操作成功!', 'success', 1000);
listTable();
return true;
},
error:function(data){
layer.msg('服务器错误');
lightyear.loading('hide');
return false;
}
});
}
//禁用分组
function off_group(id){
lightyear.loading('show');
$.ajax({
url:"group.php?set=off",
method:"POST",
data:{group_id:id},
success:function(data){
lightyear.loading('hide');
lightyear.notify('操作成功!', 'success', 1000);
listTable();
return true;
},
error:function(data){
layer.msg('服务器错误');
lightyear.loading('hide');
return false;
}
});
}
//删除分组
function del_group(id) {
$.confirm({
title: '警告',
content: '删除分组会<b>同时删除该分组下的所有链接</b>,该操作不可逆!<br><font color="red">是否继续?</font>',
type: 'red',
typeAnimated: true,
buttons: {
tryAgain: {
text: '确定',
btnClass: 'btn-red',
action: function(){
lightyear.loading('show');
$.ajax({
url:"group.php?set=del",
method:"POST",
data:{
group_id:id
},
success:function(data){
lightyear.loading('hide');
lightyear.notify('操作成功!', 'success', 1000);
listTable();
return true;
}
});
}
},
close: {
text: '取消'
}
}
});
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,88 @@
var lightyear = function(){
/**
* 页面loading
*/
var pageLoader = function($mode) {
var $loadingEl = jQuery('#lyear-loading');
$mode = $mode || 'show';
if ($mode === 'show') {
if ($loadingEl.length) {
$loadingEl.fadeIn(250);
} else {
jQuery('body').prepend('<div id="lyear-loading"><div class="spinner-border text-primary" role="status"><span class="sr-only">Loading...</span></div></div>');
}
} else if ($mode === 'hide') {
if ($loadingEl.length) {
$loadingEl.fadeOut(250);
}
}
return false;
};
/**
* 页面小提示
* @param $msg 提示信息
* @param $type 提示类型:'info', 'success', 'warning', 'danger'
* @param $delay 毫秒数例如1000
* @param $icon 图标例如'fa fa-user' 'glyphicon glyphicon-warning-sign'
* @param $from 'top' 'bottom'
* @param $align 'left', 'right', 'center'
* @param $url 跳转链接 例如 https://www.xxxx.com
* @author CaiWeiMing <314013107@qq.com>
*/
var tips = function ($msg, $type, $delay, $icon, $from, $align, $url) {
$type = $type || 'info';
$delay = $delay || 1000;
$from = $from || 'top';
$align = $align || 'center';
$enter = $type == 'danger' ? 'animated shake' : 'animated fadeInUp';
$url = $url || url;
jQuery.notify({
icon: $icon,
message: $msg
},
{
element: 'body',
type: $type,
allow_dismiss: true,
newest_on_top: true,
showProgressbar: false,
placement: {
from: $from,
align: $align
},
offset: 20,
spacing: 10,
z_index: 10800,
delay: $delay,
//timer: 1000,
animate: {
enter: $enter,
exit: 'animated fadeOutDown'
}
});
if($url!=''){
setTimeout(function(){
window.location.href=$url;
},$delay);
}
};
var url = '';
return {
// 页面小提示
notify : function ($msg, $type, $delay, $icon, $from, $align, $url) {
tips($msg, $type, $delay, $icon, $from, $align, $url);
},
url : function ($url){
url=$url;
},
// 页面加载动画
loading : function ($mode) {
pageLoader($mode);
}
};
}();

@ -0,0 +1,433 @@
//请求页面
function listTable(query){
var url = window.document.location.href.toString();
var queryString = url.split("?")[1];
query = query || queryString;
layer.closeAll();
var ii = layer.load(2, {shade:[0.1,'#fff']});
$.ajax({
type : 'GET',
url : 'table_link.php?'+query,
dataType : 'html',
cache : false,
success : function(data) {
layer.close(ii);
$("#listTable").html(data);
$("#link").dragsort({
dragBetween: true,
dragSelector: "td.lylme",
dragEnd: showbutton,
placeHolderTemplate: "<tr></tr>",
});
},
error:function(data){
layer.msg('服务器错误');
lightyear.loading('hide');
return false;
}
});
}
//载入页面
$(document).ready(function(){
if($("#listTable").length>0){
listTable()
}
});
//获取选中
function get_check(){
var chk_value =[];
$('input[name="link-check"]:checked').each(function(){
chk_value.push($(this).val());
});
return chk_value;
}
//多选启用
function on_link(){
if(get_check().length == 0){
$.alert("未选择链接");
return false;
}
lightyear.loading('show');
$.ajax({
url:"ajax_link.php?submit=on",
method:"POST",
data:{links:get_check()},
success:function(data){
lightyear.loading('hide');
lightyear.notify('操作成功!', 'success', 1000);
listTable();
return true;
},
error:function(data){
layer.msg('服务器错误');
lightyear.loading('hide');
return false;
}
});
}
//多选禁用
function off_link(){
if(get_check().length == 0){
$.alert("未选择链接");
return false;
}
lightyear.loading('show');
$.ajax({
url:"ajax_link.php?submit=off",
method:"POST",
data:{links:get_check()},
success:function(data){
lightyear.loading('hide');
lightyear.notify('操作成功!', 'success', 1000);
listTable();
return true;
},
error:function(data){
layer.msg('服务器错误');
lightyear.loading('hide');
return false;
}
});
}
//获取网站信息
function geturl(){
var url = $("input[name=\'url\']").val();
if(!url){
layer.msg('链接地址不能为空');
return false;
}
$('#loading').css("display","flex");
if (!/^http[s]?:\/\/+/.test(url)&&url!="") {
var url = "http://"+url;
$("input[name=\'url\']").val(url);
}
$.ajax({
url:"ajax_link.php?submit=geturl",
type:"GET",
dataType:"json",
data:{url:url},
success:function(data){
$("input[name=\'name\']").val(data.title);
if(!data.title && !data.icon){
layer.msg('获取失败,请手动填写');
}
else if(!data.icon){
layer.msg('未获取到网站图标');
}
layer.msg('正则抓取目标网站图标...');
downloadimg(data.icon,url);
$('#loading').css("display","none");
return true;
},
error:function(data){
layer.msg('获取失败,目标网站无法访问或防火墙限制!');
$('#loading').css("display","none");
return false;
}
});
}
//抓取网站图标
function downloadimg(url,referer){
$.ajax({
url:"/include/file.php",
type:"POST",
dataType:"json",
data:{url:url,referer:referer},
success:function(data){
if(data.code == '200'){
layer.msg(data.msg);
$("textarea[name=\'icon\']").val(data.url);
return true;
}
else{
layer.msg(data.msg);
return false;
}
},
error:function(data){
layer.msg('服务器错误');
return false;
}
});
}
//上传图标
function uploadimg(e) {
var formData = new FormData();
formData.append("file", $("#file")[0].files[0]);
$.ajax({
method: 'POST',
url: '/include/file.php',
data: formData,
timeout: 20000,
cache: false,
processData: false,
contentType: false,
dataType:"JSON",
success:function(data){
if(data.code == '200'){
layer.msg(data.msg);
$("textarea[name=\'icon\']").val(data.url);
return true;
}
else{
layer.msg(data.msg);
return false;
}
},
error:function(data){
layer.msg('服务器错误');
return false;
}
});
}
//多选删除
function del_link(id){
var link_id = [];
link_id.push(id);
link_id = id ? link_id :get_check();
if(link_id.length == 0){
$.alert("未选择链接");
return false;
}
$.alert({
title: '警告',
content: '确定要删除吗?删除后不可恢复',
buttons: {
confirm: {
text: '删除',
btnClass: 'btn-danger',
action: function(){
lightyear.loading('show');
$.ajax({
url:"ajax_link.php?submit=del",
method:"POST",
data:{
links:link_id
},
success:function(data){
lightyear.loading('hide');
lightyear.notify('操作成功!', 'success', 1000);
listTable();
return true;
}
});
},
error:function(data){
layer.msg('服务器错误');
lightyear.loading('hide');
return false;
}
},
cancel: {
text: '取消'
}
}
});
}
//全选
function check_all(){
var ischecked = $("#check_all").prop('checked');
if(ischecked == true){
$('[name="link-check"]').prop('checked',true);
}else{
$('[name="link-check"]').prop('checked',false);
}
}
//拖拽排序
$(document).ready(function(){
$("#link").dragsort({ itemSelector: "tr",
dragEnd: showbutton,
dragBetween: true, dragSelector: "tr",placeHolderTemplate: "<tr></tr>" });
});
//显示保存
function showbutton() {
$("#save_order").show();
}
//保存拖拽排序
function save_order(){
var link_array =[];
var $inputArr = $('input[name="link-check"]');
$inputArr.each(function(){
link_array.push($(this).val());
});
lightyear.loading('show');
$.ajax({
url:"ajax_link.php?submit=allorder",
method:"POST",
data:{link_array:link_array},
success:function(data){
lightyear.loading('hide');
lightyear.notify('操作成功!', 'success', 1000);
listTable();
return true;
},
error:function(data){
layer.msg('服务器错误');
lightyear.loading('hide');
return false;
}
});
}
//点击排序
$(document).on('click', '.sort-up', function(){
//上移一行
if($(this).parents('tr').prevAll().length > 0){
$(this).parents('tr').prev().before($(this).parents('tr').prop('outerHTML'));
$(this).parents('tr').remove();
save_order();
}
}).on('click', '.sort-down', function(){
//下移一行
if($(this).parents('tr').nextAll().length > 0){
$(this).parents('tr').next().after($(this).parents('tr').prop('outerHTML'));
$(this).parents('tr').remove();
save_order();
}
}).on('click', '.sort-goup', function(){
//移到顶部
if($(this).parents('tr').prevAll().length > 0){
$(this).parents('tbody').children("tr:first-child").before($(this).parents('tr').prop('outerHTML'));
$(this).parents('tr').remove();
save_order();
}
}).on('click', '.sort-godown', function(){
//移到底部
if($(this).parents('tr').nextAll().length > 0){
$(this).parents('tbody').children("tr:last-child").after($(this).parents('tr').prop('outerHTML'));
$(this).parents('tr').remove();
save_order();
}
})
//移到分组
function edit_group(mv_group) {
if(get_check().length == 0){
$.alert("未选择链接");
return false;
}
$.confirm({
title: '移动分组',
content: mv_group,
buttons: {
formSubmit: {
text: '移动',
btnClass: 'btn-blue',
action: function () {
var group_id = this.$content.find('.group_id').val();
if(!group_id){
$.alert('请选择要移动到的分组');
return false;
}
lightyear.loading('show');
$.ajax({
url:"ajax_link.php?submit=set_group",
method:"POST",
data:{links:get_check(),group_id:group_id},
success:function(data){
console.log(data);
lightyear.loading('hide');
lightyear.notify('操作成功!', 'success', 1000);
listTable();
return true;
},
error:function(data){
layer.msg('服务器错误');
return false;
}
});
}
},
cancel: {
text: '取消'
},
}
});
};
//链接加密
function pwd_link(pwd_list) {
if(get_check().length == 0){
$.alert("未选择链接");
return false;
}
$.confirm({
title: '加密链接',
content: pwd_list,
buttons: {
formSubmit: {
text: '加密',
btnClass: 'btn-blue',
action: function () {
var pwd_id = this.$content.find('.pwd_id').val();
if(!pwd_id){
$.alert('请选择添加到的加密组');
return false;
}
lightyear.loading('show');
$.ajax({
url:"ajax_link.php?submit=pwd_link",
method:"POST",
data:{links:get_check(),pwd_id:pwd_id},
success:function(data){
console.log(data);
lightyear.loading('hide');
lightyear.notify('操作成功!', 'success', 1000);
listTable();
return true;
},
error:function(data){
layer.msg('服务器错误');
return false;
}
});
}
},
cancel: {
text: '取消'
},
}
});
};
//点击排序(弃用)
// function sort(id,mod,gid){
// lightyear.loading('show');
// $.ajax({
// url:"ajax_link.php?submit=order",
// method:"POST",
// data:{id:id,mod:mod,gid:gid},
// success:function(data){
// lightyear.loading('hide');
// lightyear.notify('操作成功!', 'success', 1000);
// listTable();
// return true;
// },
// error:function(data){
// layer.msg('服务器错误');
// lightyear.loading('hide');
// return false;
// }
// });
// }
function pwd_links(){
$.alert({
title: '分组已加密',
content: '当前分组已设置为加密,若想单独设置链接加密,请先删除该分组的加密',
});
}
$(document).on('click', '.tips', function(){
$.alert({
title: '提示',
content: '<hr><h4>拖动排序</h4><li>在电脑端可以拖拽链接的<b>名称</b>进行排序,拖拽完成后点击“保存排序”即可生效</li><hr><h4>链接加密</h4><li>加密后的链接地址在本页面显示为<font color="#f96197">粉色</font>,以便标识</li><li>加密分组后该分组下的链接单独设置的加密将失效,删除分组的加密后即可恢复</li><li><b>加密后链接只能使用密码登录后方可查看</b></li>',
});
});

161
admin/js/main.min.js vendored

@ -0,0 +1,161 @@
;
jQuery( function() {
$("body").on('click','[data-stopPropagation]',function (e) {
e.stopPropagation();
});
// 滚动条
const ps = new PerfectScrollbar('.lyear-layout-sidebar-scroll', {
swipeEasing: false,
suppressScrollX: true
});
// 侧边栏
$(document).on('click', '.lyear-aside-toggler', function() {
$('.lyear-layout-sidebar').toggleClass('lyear-aside-open');
$("body").toggleClass('lyear-layout-sidebar-close');
if ($('.lyear-mask-modal').length == 0) {
$('<div class="lyear-mask-modal"></div>').prependTo('body');
} else {
$( '.lyear-mask-modal' ).remove();
}
});
// 遮罩层
$(document).on('click', '.lyear-mask-modal', function() {
$( this ).remove();
$('.lyear-layout-sidebar').toggleClass('lyear-aside-open');
$('body').toggleClass('lyear-layout-sidebar-close');
});
// 侧边栏导航
$(document).on('click', '.nav-item-has-subnav > a', function() {
$subnavToggle = jQuery( this );
$navHasSubnav = $subnavToggle.parent();
$topHasSubNav = $subnavToggle.parents('.nav-item-has-subnav').last();
$subnav = $navHasSubnav.find('.nav-subnav').first();
$viSubHeight = $navHasSubnav.siblings().find('.nav-subnav:visible').outerHeight();
$scrollBox = $('.lyear-layout-sidebar-scroll');
$navHasSubnav.siblings().find('.nav-subnav:visible').slideUp(500).parent().removeClass('open');
$subnav.slideToggle( 300, function() {
$navHasSubnav.toggleClass( 'open' );
// 新增滚动条处理
var scrollHeight = 0;
pervTotal = $topHasSubNav.prevAll().length,
boxHeight = $scrollBox.outerHeight(),
innerHeight = $('.sidebar-main').outerHeight(),
thisScroll = $scrollBox.scrollTop(),
thisSubHeight = $(this).outerHeight(),
footHeight = 121;
if (footHeight + innerHeight - boxHeight >= (pervTotal * 48)) {
scrollHeight = pervTotal * 48;
}
if ($subnavToggle.parents('.nav-item-has-subnav').length == 1) {
$scrollBox.animate({scrollTop: scrollHeight}, 300);
} else {
// 子菜单操作
if (typeof($viSubHeight) != 'undefined' && $viSubHeight != null) {
scrollHeight = thisScroll + thisSubHeight - $viSubHeight;
$scrollBox.animate({scrollTop: scrollHeight}, 300);
} else {
if ((thisScroll + boxHeight - $scrollBox[0].scrollHeight) == 0) {
scrollHeight = thisScroll - thisSubHeight;
$scrollBox.animate({scrollTop: scrollHeight}, 300);
}
}
}
});
});
// 提示
if($('[data-toggle="tooltip"]')[0]) {
$('[data-toggle="tooltip"]').tooltip({
"container" : 'body',
});
}
// 弹出框
if($('[data-toggle="popover"]')[0]) {
$('[data-toggle="popover"]').popover();
}
// 标签
$('.js-tags-input').each(function() {
var $this = $(this);
$this.tagsInput({
height: $this.data('height') ? $this.data('height') : '38px',
width: '100%',
defaultText: $this.attr("placeholder"),
removeWithBackspace: true,
delimiter: [',']
});
});
// 时间选择
jQuery('.js-datetimepicker').each(function() {
var $input = jQuery(this);
$input.datetimepicker({
format: $input.data('format') ? $input.data('format') : false,
useCurrent: $input.data('use-current') ? $input.data('use-current') : false,
locale: moment.locale('' + ($input.data('locale') ? $input.data('locale') : '') + ''),
showTodayButton: $input.data('show-today-button') ? $input.data('show-today-button') : false,
showClear: $input.data('show-clear') ? $input.data('show-clear') : false,
showClose: $input.data('show-close') ? $input.data('show-close') : false,
sideBySide: $input.data('side-by-side') ? $input.data('side-by-side') : false,
inline: $input.data('inline') ? $input.data('inline') : false,
});
});
// 日期选择
jQuery('.js-datepicker').each(function() {
var options = {
weekStart: 1,
autoclose: typeof($(this).data('auto-close')) != 'undefined' ? $(this).data('auto-close') : true,
language: 'zh-CN', // 默认简体中文
multidateSeparator: ', ', // 默认多个日期用,分隔
format: $(this).data('date-format') ? $(this).data('date-format') : 'yyyy-mm-dd',
};
if ( $(this).prop("tagName") != 'INPUT' ) {
options.inputs = [$(this).find('input:first'), $(this).find('input:last')];
}
$(this).datepicker(options);
});
// 颜色选取
jQuery('.js-colorpicker').each(function() {
var $colorpicker = jQuery(this);
var $colorpickerMode = $colorpicker.data('colorpicker-mode') ? $colorpicker.data('colorpicker-mode') : 'hex';
var $colorpickerinline = $colorpicker.data('colorpicker-inline') ? true: false;
$colorpicker.colorpicker({
'format': $colorpickerMode,
'inline': $colorpickerinline
});
});
// 复选框全选
$("#check-all").change(function () {
if ($boxname = $(this).data('name')) {
$(this).closest('table').find("input[name='" + $boxname + "']").prop('checked', $(this).prop("checked"));
} else {
$(this).closest('table').find(".lyear-checkbox input[type='checkbox']").prop('checked', $(this).prop("checked"));
}
});
// 设置主题配色
setTheme = function(input_name, data_name) {
$("input[name='"+input_name+"']").click(function(){
$('body').attr(data_name, $(this).val());
});
}
setTheme('site_theme', 'data-theme');
setTheme('logo_bg', 'data-logobg');
setTheme('header_bg', 'data-headerbg');
setTheme('sidebar_bg', 'data-sidebarbg');
});

File diff suppressed because one or more lines are too long

@ -0,0 +1,222 @@
<?php
$title = '链接管理';
include './head.php';
$grouplists = $DB->query("SELECT * FROM `lylme_groups`");
$pwd_lists = $DB->query("SELECT * FROM `lylme_pwd`");
?>
<main class="lyear-layout-content">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<?php
$set = isset($_GET['set']) ? $_GET['set'] : null;
if ($set == 'add') {
echo '<h4>新增链接</h4>
<div class="panel-body">
<form action="./link.php?set=add_submit" method="POST">
<div class="form-group">
<label>*URL链接地址:</label>
<div class="input-group">
<input type="text" class="form-control" name="url" placeholder="链接" value="" required>
<span class="input-group-btn">
<button class="btn btn-default" onclick="geturl()" type="button">获取</button>
</span>
</div></div>
<div class="form-group">
<label>*网站名称:</label><br>
<input type="text" class="form-control" placeholder="网站名称" name="name" value="" required>
<input type="text" class="coloris form-control" onchange="select_color()" placeholder="链接颜色" name="color" value="" />
</div>
<div class="input-group">
<label>链接图标:</label><br>
<textarea type="text" class="form-control" name="icon" placeholder="网站图标"></textarea>
<span class="input-group-btn">
<input type="file" id="file" onchange="uploadimg()" accept="image/png, image/jpeg,image/gif,image/x-icon" style="display: none" />
<button class="btn btn-default" id="uploadImage" onclick="$(&quot;#file&quot;).click();" type="button">选择</button>
</span>
</div>
<small class="help-block"><b>可选方案:</b><br>1. 填写图标的<code>URL</code>地址,如<code>/img/logo.png</code><code>http://www.xxx.com/img/logo.png</code><br>
2. 粘贴图标的<code>SVG</code>代码,<a href="./help.php?doc=icon" target="_blank">查看教程</a><br>3. 留空使用默认图标<br>4. 从本地上传</small>
</div>
<div class="form-group">
<label>*分组:</label><br>
<select class="form-control" name="group_id">';
while ($grouplist = $DB->fetch($grouplists)) {
if ($grouplist["group_id"] == $row['group_id']) {
$select = 'selected="selected"';
} else {
$select = '';
}
echo '<option value="' . $grouplist["group_id"] . '">' . $grouplist["group_id"] . ' - ' . $grouplist["group_name"] . '</option>';
}
echo '</select></div>
<div class="form-group">
<input type="submit" class="btn btn-primary btn-block" value="添加"></form>
</div>
<br/><a href="./link.php"><<返回</a>
</div></div>';
} elseif ($set == 'edit') {
$id = $_GET['id'];
$row2 = $DB->query("select * from lylme_links where id='$id' limit 1");
$row = $DB->fetch($row2);
preg_match_all('/<font color=[\"|\']+(.*?)[\"|\']>/i',$row['name'],$color);
echo '<h4>修改链接信息</h4>
<div class="panel-body">
<form action="./link.php?set=edit_submit&id=' . $id . '" method="POST">
<div class="form-group">
<label>*URL链接地址:</label>
<div class="input-group">
<input type="text" class="form-control" name="url" placeholder="链接" value="' . $row['url'] . '" required>
<span class="input-group-btn">
<button class="btn btn-default" onclick="geturl()" type="button">获取</button>
</span>
</div></div>
<div class="form-group">
<label>*网站名称:</label><br>
<input type="text" class="form-control" name="name" id="urlname" value="' . strip_tags($row['name']) . '" required>
<input type="text" class="coloris form-control" onchange="select_color()" placeholder="留空默认" name="color" value="'.$color[1][0].'" />
</div>
<div class="input-group">
<label>链接图标:</label><br>
<textarea type="text" class="form-control" name="icon" >' . $row['icon'] . '</textarea>
<span class="input-group-btn">
<input type="file" id="file" onchange="uploadimg()" accept="image/png, image/jpeg,image/gif,image/x-icon" style="display: none" />
<button class="btn btn-default" id="uploadImage" onclick="$(&quot;#file&quot;).click();" type="button">选择</button>
</span>
</div>
<small class="help-block"><b>可选方案:</b><br>1. 填写图标的<code>URL</code>地址,如<code>/img/logo.png</code><code>http://www.xxx.com/img/logo.png</code><br>
2. 粘贴图标的<code>SVG</code>代码,<a href="./help.php?doc=icon" target="_blank">查看教程</a><br>2. 留空使用默认图标<br>4. 从本地上传</small>
</div>
<div class="form-group">
<label>*分组:</label><br>
<select class="form-control" name="group_id">';
while ($grouplist = $DB->fetch($grouplists)) {
if ($grouplist["group_id"] == $row['group_id']) {
$select = 'selected="selected"';
} else {
$select = '';
}
echo '<option value="' . $grouplist["group_id"] . '" ' . $select . '>' . $grouplist["group_id"] . ' - ' . $grouplist["group_name"] . '</option>';
}
echo '</select>
</div>
<div class="form-group">
<label>链接加密:</label><br>
<select class="form-control" required name="link_pwd">';
$pwd_lists = $DB->query("SELECT * FROM `lylme_pwd`");
while ($pwd_list = $DB->fetch($pwd_lists)) {
if($row['link_pwd']==$pwd_list["pwd_id"]) {
$sel = 'selected="selected"';
} else {
$sel ='';
}
echo '<option value="' . $pwd_list["pwd_id"] . '" '.$sel.' >' . $pwd_list["pwd_id"] . ' - ' . $pwd_list["pwd_name"] . ' | 密码['. $pwd_list["pwd_key"].']</option>';
}
if(empty($row['link_pwd'])) $sele = 'selected="selected"';
echo '
<option value="0" '.$sele.'>0 - 不加密</option></select>
<small class="help-block"><code>注意:对链接所在的分组加密后,单独设置的链接加密将会失效</code><br>
加密后只能通过输入密码访问,使用该功能先配置加密组
<a href="./pwd.php" target="_blank">管理加密组</a></small>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary btn-block" value="修改"></form>
</div>
<br/><a href="./link.php"><<返回</a>
</div></div>
';
} elseif ($set == 'add_submit') {
$color = $_POST['color'];
$name = $_POST['name'];
if(empty($color)) {
$name1 = $name;
} else {
$name1 = '<font color="'.$color.'">'.$name.'</font>';
}
$url = $_POST['url'];
$icon = $_POST['icon'];
$group_id = $_POST['group_id'];
$link_order = $linksrows + 1;
if ($name == NULL or $url == NULL) {
echo '<script>alert("保存错误,请确保带星号的都不为空!");history.go(-1);</script>';
} else {
$sql = "INSERT INTO `lylme_links` (`id`, `name`, `group_id`, `url`, `icon`, `PS`,`link_order`) VALUES (NULL, '" . $name1 . "', '" . $group_id . "', '" . $url . "', '" . $icon . "', '" . $name . "', '" . $link_order . "');";
if ($DB->query($sql)) {
echo '<script>alert("添加链接 ' . $name . ' 成功!");window.location.href="./link.php";</script>';
} else echo '<script>alert("添加链接失败!");history.go(-1);</script>';
}
} elseif ($set == 'edit_submit') {
$id = $_GET['id'];
$rows2 = $DB->query("select * from lylme_links where id='$id' limit 1");
$rows = $DB->fetch($rows2);
if (!$rows) exit('<script>alert("当前记录不存在!");history.go(-1);</script>');
$color = $_POST['color'];
$name = $_POST['name'];
if(empty($color)) {
$name1 = $name;
} else {
$name1 = '<font color="'.$color.'">'.$name.'</font>';
}
$url = $_POST['url'];
$icon = $_POST['icon'];
$link_pwd = $_POST['link_pwd'];
$group_id = $_POST['group_id'];
if ($name == NULL or $url == NULL) {
echo '<script>alert("保存错误,请确保带星号的都不为空!");history.go(-1);</script>';
} else {
$sql = "UPDATE `lylme_links` SET `name` = '" . $name1 . "', `url` = '" . $url . "', `icon` = '" . $icon . "', `group_id` = '" . $group_id . "', `link_pwd` = " . $link_pwd . " WHERE `lylme_links`.`id` = '" . $id . "';";
// exit($sql);
if ($DB->query($sql)) echo '<script>alert("修改链接 ' . $name . ' 成功!");window.location.href="./link.php";</script>'; else echo '<script>alert("修改链接失败!");history.go(-1);</script>';
}
// } elseif ($set == 'delete') {
// $id = $_GET['id'];
// $sql = "DELETE FROM lylme_links WHERE id='$id'";
// if ($DB->query($sql)) echo '<script>alert("删除成功!");window.location.href="./link.php";</script>';
// else echo '<script>alert("删除失败!");history.go(-1);</script>';
} else {
echo '<div id="listTable"></div>
</div>
</div>
</div>
</div>
</div>
</main>
';
}
include './footer.php';
?>
<script type="text/javascript" src="js/jquery.dragsort-0.5.2.min.js"></script>
<link href="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery-confirm/3.3.0/jquery-confirm.min.css" type="text/css" rel="stylesheet" />
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/layer/3.1.1/layer.min.js" type="application/javascript"></script>
<script src="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery-confirm/3.3.0/jquery-confirm.min.js" type="application/javascript"></script>
<!--选色器-->
<link rel="stylesheet" type="text/css" href="css/coloris.min.css" />
<script type="text/javascript" src="js/coloris.min.js"></script>
<script type="text/javascript">Coloris( {
el:'.coloris',swatches:['#000000','#555555','#666666','#264653','#2a9d8f','#f4a261','#e76f51','#ff0000','#d62828','#023e8a','#0077b6','#0096c7']
});
</script>
<style>.clr-alpha {display: none !important;}</style>
<script type="text/javascript">
select_color();
function select_color() {
var fontcolor = $('input[name="color"]').val();
$('#urlname').css("color",fontcolor);
}
</script>
<!--选色器-->
<!--消息提示-->
<script src="js/bootstrap-notify.min.js"></script>
<script type="text/javascript" src="js/lightyear.js"></script>
<script type="text/javascript" src="js/link.js"></script>
<script type="text/javascript">
//分组移动
var mv_group ='<form action="" class="formName">' + '<select class="form-control group_id" required><option value="">请选择分组...</option>'+'<?php while ($grouplist = $DB->fetch($grouplists)) {
echo '<option value="' . $grouplist["group_id"] . '">' . $grouplist["group_id"] . ' - ' . $grouplist["group_name"] . '</option>';}?>'+ '</select>';
//链接加密
var pwd_list = '<form action="" class="formName">' + '<select class="form-control pwd_id" required>'+'<?php while ($pwd_list = $DB->fetch($pwd_lists)) {
echo '<option value="' . $pwd_list["pwd_id"] . '">' . $pwd_list["pwd_id"] . ' - ' . $pwd_list["pwd_name"] . '</option>';}?>'+ '<option value="0">0 - 取消加密</option></select><br><a href="./pwd.php" target="_blank">管理加密组</a>';
</script>

@ -0,0 +1,115 @@
<?php
include("../include/common.php");
if(isset($_POST['user']) && isset($_POST['pass'])){
$user=daddslashes($_POST['user']);
$pass=daddslashes($_POST['pass']);
if($user==$conf['admin_user'] && $pass==$conf['admin_pwd']) {
$session=md5($user.$pass);
$token=authcode("{$user}\t{$session}", 'ENCODE', SYS_KEY);
setcookie("admin_token", $token, time() + 604800);
@header('Content-Type: text/html; charset=UTF-8');
exit("<script language='javascript'>alert('登陆管理中心成功!');window.location.href='./';</script>");
}elseif ($pass != $conf['admin_pwd']) {
@header('Content-Type: text/html; charset=UTF-8');
exit("<script language='javascript'>alert('用户名或密码不正确!');history.go(-1);</script>");
}
}elseif(isset($_GET['logout'])){
setcookie("admin_token", "", time() - 604800);
@header('Content-Type: text/html; charset=UTF-8');
exit("<script language='javascript'>alert('您已成功注销本次登陆!');window.location.href='./login.php';</script>");
}elseif(isset($islogin)==1){
exit("<script language='javascript'>alert('您已登陆!');window.location.href='./';</script>");
}
?>
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<title>后台登录 - <?php echo explode("-", $conf['title'])[0];?></title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/materialdesignicons.min.css" rel="stylesheet">
<link href="css/style.min.css" rel="stylesheet">
<style>
.lyear-wrapper {
position: relative;
}
.lyear-login {
display: flex !important;
min-height: 100vh;
align-items: center !important;
justify-content: center !important;
}
.lyear-login:after{
content: '';
min-height: inherit;
font-size: 0;
}
.login-center {
background: #fff;
min-width: 29.25rem;
padding: 2.14286em 3.57143em;
border-radius: 3px;
margin: 2.85714em;
}
.login-header {
margin-bottom: 1.5rem !important;
}
.login-center .has-feedback.feedback-left .form-control {
padding-left: 38px;
padding-right: 12px;
}
.login-center .has-feedback.feedback-left .form-control-feedback {
left: 0;
right: auto;
width: 38px;
height: 38px;
line-height: 38px;
z-index: 4;
color: #dcdcdc;
}
.login-center .has-feedback.feedback-left.row .form-control-feedback {
left: 15px;
}
</style>
</head>
<body>
<?php
if(!empty($background = background())){
$background = str_replace('./','../',$background);
echo '<div class="row lylme-wrapper" style="background-image: url('.$background.');background-size: cover;">';}
?>
<div class="row lyear-wrapper">
<div class="lyear-login">
<div class="login-center">
<div class="login-header text-center">
<h2>后台登录</h2>
</div>
<form action="" method="post">
<div class="form-group has-feedback feedback-left">
<input type="text" placeholder="用户名" class="form-control" name="user" id="username" value="<?php echo @$_POST['user']?>"/>
<span class="mdi mdi-account form-control-feedback" aria-hidden="true"></span>
</div>
<div class="form-group has-feedback feedback-left">
<input type="password" placeholder="密码" class="form-control" id="password" name="pass" />
<span class="mdi mdi-lock form-control-feedback" aria-hidden="true"></span>
</div>
<div class="form-group">
<button class="btn btn-block btn-primary" type="submit" id="login">登录</button>
</div>
</form>
<hr>
<footer class="col-sm-12 text-center">
<p class="m-b-0">Copyright ©2021 - <?php echo(date('Y')); ?> <a href="/"><?php echo explode("-", $conf['title'])[0];?></a></p>
</footer>
</div>
</div>
</div>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript">;</script>
</body>
</html>

@ -0,0 +1,132 @@
<?php
$title = '加密组管理';
include './head.php';
?>
<main class="lyear-layout-content">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<?php
$set = isset($_GET['set']) ? $_GET['set'] : null;
if ($set == 'add') {
echo '<h4>新增加密组</h4>
<div class="panel-body"><form action="./pwd.php?set=add_submit" method="POST">
<div class="form-group">
<label>*加密组名称:</label><br>
<input type="text" class="form-control" name="pwd_name" value="" required>
<small class="help-block">加密组名称,如:<code>会员组</code></small>
</div>
<div class="form-group">
<label>*加密组密码:</label><br>
<input type="text" class="form-control" name="pwd_key" value="" required>
<small class="help-block">加密组的密码(不超过20个字符)<br><code>提示:密码和其他加密组密码相同时,登录时显示同密码的所有加密链接</code></small>
</div>
<div class="form-group">
<label>加密组备注:</label><br>
<input type="text" class="form-control" name="pwd_ps" value="">
<small class="help-block">加密组备注,仅在后台显示(可不填)</small>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary btn-block" value="添加"></form>
</div>
<br/><a href="./pwd.php"><<返回加密组列表</a>
</div></div>
';
} elseif ($set == 'edit') {
$id = $_GET['id'];
$pg = $DB->fetch($DB->query("SELECT * FROM `lylme_pwd` WHERE `pwd_id` = ".$id));
echo '<h4>修改加密组信息</h4>
<div class="panel-body"><form action="./pwd.php?set=edit_submit&id=' . $id . '" method="POST">
<div class="form-group">
<label>*加密组名称:</label><br>
<input type="text" class="form-control" name="pwd_name" value="'.$pg['pwd_name'].'" required>
<small class="help-block">加密组名称,如:<code>会员组</code></small>
</div>
<div class="form-group">
<label>*加密组密码:</label><br>
<input type="text" class="form-control" name="pwd_key" value="'.$pg['pwd_key'].'" required>
<small class="help-block">加密组的密码(不超过20个字符)<br><code>提示:密码和其他加密组密码相同时,登录时显示同密码的所有加密链接</code></small>
</div>
<div class="form-group">
<label>加密组备注:</label><br>
<input type="text" class="form-control" name="pwd_ps" value="'.$pg['pwd_key'].'">
<small class="help-block">加密组备注,仅在后台显示(可不填)</small>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary btn-block" value="修改"></form>
</div>
<br/><a href="./pwd.php"><<返回加密组列表</a>
</div></div>
';
} elseif ($set == 'add_submit') {
$pwd_name = $_POST['pwd_name'];
$pwd_key = $_POST['pwd_key'];
$pwd_ps = $_POST['pwd_ps'];
if (empty($pwd_name) || empty($pwd_key)) {
echo '<script>alert("失败,请确保带星号的项目都不为空!");history.go(-1);</script>';
}else {
$sql = "INSERT INTO `lylme_pwd` (`pwd_id`, `pwd_name`, `pwd_key`, `pwd_ps`) VALUES (NULL, '".$pwd_name."', '".$pwd_key."', '".$pwd_ps."');";
if($DB->query($sql)) {
echo '<script>window.location.href="./pwd.php";</script>';
}
else{
echo '<script>alert("添加失败");history.go(-1);</script>';
}
}
} elseif ($set == 'edit_submit') {
$id = $_GET['id'];
$pwd_name = $_POST['pwd_name'];
$pwd_key = $_POST['pwd_key'];
$pwd_ps = $_POST['pwd_ps'];
if (empty($pwd_name) || empty($pwd_key)) {
echo '<script>alert("失败,请确保带星号的项目都不为空!");history.go(-1);</script>';
}else {
$sql = "UPDATE `lylme_pwd` SET `pwd_name` = '".$pwd_name."', `pwd_key` = '".$pwd_key."', `pwd_ps` = '".$pwd_ps."' WHERE `lylme_pwd`.`pwd_id` = ".$id.";";
if($DB->query($sql)) {
echo '<script>window.location.href="./pwd.php";</script>';
}
else{
echo '<script>alert("修改失败'.$sql.'");history.go(-1);</script>';
}
}
} elseif ($set == 'delete') {
$id = $_GET['id'];
$delsql = "DELETE FROM `lylme_pwd` WHERE `lylme_pwd`.`pwd_id` = ".$id;
if ($DB->query($delsql)){
echo '<script>window.location.href="./pwd.php";</script>';
}else{
echo '<script>alert("删除失败!");history.go(-1);</script>';
}
} else {
echo '<div class="alert alert-info"><h4>链接加密</h4><li>加密后的链接地址在本页面显示为<font color="#f96197">粉色</font>,以便标识</li><li>加密分组后该分组下的链接单独设置的加密将失效,删除分组的加密后即可恢复</li><li><b>加密后链接只能使用密码登录后方可查看</b></li><li>若多个加密组使用相同的密码,登录后会同时显示使用该密码的所有链接</li><li>默认登录地址:<code>'. siteurl().'/pwd</code>(可自行修改目录名更改)</li><br><a href="./pwd.php?set=add" class="btn btn-primary">新建加密</a></div>';
?>
<div class="table-responsive">
<table class="table table-striped">
<thead><tr><th>名称</th><th>密码</th><th>备注</th><th>操作</th></tr></thead>
<tbody>
<?php
$pgs = $DB->query("SELECT * FROM `lylme_pwd`");
while ($pg = $DB->fetch($pgs)) {
echo '<tr><td>' . $pg['pwd_name'] . '</td>
<td>' . $pg['pwd_key'] . '</td><td>' . $pg['pwd_ps'] . '</td><td>&nbsp;<a href="./pwd.php?set=edit&id=' . $pg['pwd_id'] . '" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="./pwd.php?set=delete&id=' . $pg['pwd_id'] . '" class="btn btn-xs btn-danger" onclick="return confirm(\'是否删除加密组 ' . $pg['pwd_name'] .'\');">删除</a> </td></tr>';
}
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<?php
}
include './footer.php';
?>

@ -0,0 +1,164 @@
<?php
$title = '网站设置';
include './head.php';
function uploadimg($arr,$uppath,$uptype) {
if((($arr["type"]=="image/jpeg") ||($arr["type"]=="image/jpg") ||($arr["type"]=="image/png")) && $arr["size"] < 10485760 ) {
copy($arr["tmp_name"],ROOT.$uppath);
saveSetting($uptype,'/'.$uppath);
} else if ($arr["size"]==0) {
} else {
echo '<script>alert("上传的图片大小超过10MB或类型不符");history.go(-1);</script>';
}
}
$set=isset($_GET['set'])?$_GET['set']:null;
if($set=='save') {
$title=$_POST['title'];
$logo=$_POST['logo'];
$background=$_POST['background'];
$wapbackground=$_POST['wapbackground'];
$keywords=$_POST['keywords'];
$description=$_POST['description'];
$copyright=$_POST['copyright'];
$icp=$_POST['icp'];
$yan=$_POST['yan'];
$tq=$_POST['tq'];
$wztj=$_POST['wztj'];
$cdnpublic=$_POST['cdnpublic'];
$home_title= $_POST['home-title'];
if($yan=='true') {
saveSetting('yan','true');
} else {
saveSetting('yan','false');
}
if($tq=='true') {
saveSetting('tq','true');
} else {
saveSetting('tq','false');
}
saveSetting('title',$title);
saveSetting('logo',$logo);
saveSetting('background',$background);
saveSetting('wap_background',$wapbackground);
saveSetting('keywords',$keywords);
saveSetting('description',$description);
saveSetting('copyright',$copyright);
saveSetting('icp',$icp);
saveSetting('wztj',$wztj);
saveSetting('cdnpublic',$cdnpublic);
saveSetting('home-title',$home_title);
uploadimg($_FILES["logoimg"],'assets/img/logo.png','logo');
uploadimg($_FILES["wapbackgroundimg"],'assets/img/wapbackground.jpg','wap_background');
uploadimg($_FILES["backgroundimg"],'assets/img/background.jpg','background');
echo '<script>alert("修改成功!");window.location.href="./set.php";</script>';
} else {
?>
<script>
function updatetext(check) {
document.getElementById(check).innerHTML="重新选择";
}
</script>
<!--页面主要内容-->
<main class="lyear-layout-content">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="tab-content">
<div class="tab-pane active">
<form action="set.php?set=save" method="post" name="edit-form" class="edit-form" enctype="multipart/form-data">
<div class="form-group">
<label for="web_site_title">网站标题</label>
<input class="form-control" type="text" id="web_site_title" name="title" value="<?php echo $conf['title']?>" placeholder="请输入站点标题" required >
</div>
<div class="form-group">
<label for="web_site_logo">网站LOGO</label>
<div class="input-group">
<input type="text" class="form-control" name="logo" id="web_site_logo" value="<?php echo $conf['logo']?>" />
<div class="input-group-btn">
<label class="btn btn-default" for="logoimg" id="checklogo" type="button">选择图片</label >
<input type="file" style="display:none" accept=".png,.jpeg,.jpg" id="logoimg" name="logoimg" onclick = "updatetext('checklogo');"/>
</div>
</div>
<small class="help-block">填写图片的URL默认值<code>./assets/img/logo.png</code><code><?php echo siteurl()?>/assets/img/logo.png</code>或从<code>本地上传</code></small>
</div>
<div class="form-group">
<label for="web_site_background">网站背景</label>
<div class="input-group">
<input type="text" class="form-control" name="background" accept="image/png,image/jpeg" id="web_site_background" value="<?php echo $conf['background']?>" />
<div class="input-group-btn">
<label class="btn btn-default" id="checkbackground" for="backgroundimg" type="button">选择图片</label >
<input type="file" style="display:none" accept="image/png,image/jpeg" id="backgroundimg" name="backgroundimg" onclick = "updatetext('checkbackground');"/>
</div></div>
<small class="help-block">填写图片的URL<code>./assets/img/background.jpg</code><code><?php echo siteurl()?>/assets/img/background.jpg</code>或从<code>本地上传</code><br>设置Bing每日壁纸<a href="https://doc.lylme.com/spage/#/%E8%83%8C%E6%99%AF%E8%AE%BE%E7%BD%AE" target="_blank">查看教程</a><br>注:修改后需要清除浏览器缓存才会改变</small>
</div>
<div class="form-group">
<label for="wap_site_background">手机端背景图片</label>
<div class="input-group">
<input type="text" class="form-control" name="wapbackground" accept="image/png,image/jpeg" id="wap_site_background" value="<?php echo $conf['wap_background']?>" />
<div class="input-group-btn">
<label class="btn btn-default" id="checkwapbackground" for="wapbackgroundimg" type="button">选择图片</label >
<input type="file" style="display:none" accept="image/png,image/jpeg" id="wapbackgroundimg" name="wapbackgroundimg" onclick = "updatetext('checkwapbackground');"/>
</div></div>
<small class="help-block">手机端独立背景留空则使用PC端壁纸<br>注:修改后需要清除浏览器缓存才会改变</small>
</div>
<div class="form-group">
<label for="web_site_keywords">站点关键词</label>
<input class="form-control" type="text" id="web_site_keywords" name="keywords" value="<?php echo $conf['keywords']?>" placeholder="请输入站点关键词" >
<small class="help-block">网站搜索引擎关键字</small>
</div>
<div class="form-group">
<label for="web_site_description">站点描述</label>
<textarea class="form-control" id="web_site_description" rows="5" name="description" placeholder="请输入站点描述" ><?php echo $conf['description']?></textarea>
<small class="help-block">网站描述,有利于搜索引擎抓取相关信息</small>
</div>
<div class="form-group">
<label for="web_site_home-title">首页提示语</label>
<textarea type="text" class="form-control" name="home-title" placeholder="请输入首页提示语支持HTML代码"><?php echo $conf['home-title']?></textarea>
<small class="help-block">首页提示语, 仅适用于部分主题<code>支持HTML代码</code></small>
</div>
<div class="form-group">
<label for="web_site_copyright">版权信息</label>
<textarea width="200px" type="text" rows="5" class="form-control" name="copyright" placeholder="请输入版权信息支持HTML代码"><?php echo $conf['copyright']?></textarea>
<small class="help-block">显示在首页底部的版权提示,<code>支持HTML代码</code></small>
</div>
<div class="form-group">
<label for="web_site_wztj">自定义footer</label>
<textarea type="text" rows="5" class="form-control" name="wztj" placeholder="可填写网站统计、引用JS文件等"><?php echo $conf['wztj']?></textarea>
<small class="help-block">站点底部自定义可填写网站统计、JS代码(需要script标签)、CSS代码(需要style标签)等<code>支持HTML代码</code> <a href="https://doc.lylme.com/spage/#/footer" target="_blank">查看教程</a></small>
</div>
<div class="form-group">
<label for="web_site_icp">备案号</label>
<input class="form-control" type="text" id="web_site_icp" name="icp" value="<?php echo $conf['icp']?>" placeholder="请输入备案号,留空首页不显示备案信息" >
</div>
<div class="form-group">
<label class="btn-block" for="web_yan_status">随机一言开关</label>
<label class="lyear-switch switch-solid switch-cyan">
<input type="checkbox" <?php if($conf['yan']!='false')echo 'checked="checked"';?> name="yan" value="true">
<span></span>
</label>
<small class="help-block">显示在首页的随机一言,自定义一言文件路径,一行一条<code>/assets/date/date.dat</code> </small>
</div>
<div class="form-group">
<label class="btn-block" for="web_tq_status">天气显示开关</label>
<label class="lyear-switch switch-solid switch-primary">
<input type="checkbox" <?php if($conf['tq']!='false')echo 'checked="checked"';?> name="tq" value="true">
<span></span>
</label>
<small class="help-block">和风天气插件,若不能使用请申请自己的密钥填入,<a href="https://doc.lylme.com/spage/#/%E5%A4%A9%E6%B0%94" target="_blank">查看教程</a><br><code>baisu模板关闭后同时关闭时间显示</code> </small>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary m-r-5">保 存</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<!--End 页面主要内容-->
<?php
}
include './footer.php';
?>

@ -0,0 +1,237 @@
<?php
$title='搜索引擎设置';
include './head.php';
$sousrows=$DB->num_rows($DB->query("SELECT * FROM `lylme_sou`"));
?>
<main class="lyear-layout-content">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<?php
$set=isset($_GET['set'])?$_GET['set']:null;
if($set=='add')
{
echo '<h4>新增搜索接</h4>
<div class="panel-body">
<form action="./sou.php?set=add_submit" method="POST">
<div class="form-group">
<label>*搜索引擎名称: (*必填)</label><br>
<input type="text" class="form-control" name="name" value="" required placeholder="如:百度一下">
<small class="help-block">搜索引擎名称,如<code>百度一下</code><code>搜狗搜索</code></small>
</div>
<div class="form-group">
<label>*搜索引擎别名: (*必填)</label><br>
<input type="text" class="form-control" name="alias" value="" required placeholder="如baidu">
<small class="help-block">注:仅支持字母,不能和其他搜索引擎的别名相同<br>建议填写搜索引擎的拼音或英文,如百度填写<code>baidu</code></small>
</div>
<div class="form-group">
<label>*搜索框提示: (*必填)</label><br>
<input type="text" class="form-control" name="hint" value="" required placeholder="如:请输入搜索内容">
</div>
<div class="form-group">
<label>*搜索引擎地址: (*必填)</label><br>
<input type="text" class="form-control" name="link" value="" required placeholder="如https://www.baidu.com/s?word=">
<small class="help-block">例:百度搜索 <code>https://www.baidu.com/s?word=</code><a href="https://blog.lylme.com/archives/lylme_spage.html#sou">查看获取接口教程</a>
<br>注意:当前仅支持搜索词作为末尾,例如:<code>https://www.baidu.com/s?word=搜索内容</code><br>如果使用GET请求搜索搜索词不处于末尾<code>https://www.baidu.com/s?wd=搜索词&ie=UTF-8</code>可将搜索词参数调换到末尾,如<code>https://www.baidu.com/s?ie=UTF-8&wd=搜索词</code>多个GET参数用以<code>&</code>分隔<br>如果搜索词不在末尾且非GET请求<code>https://xxx.com/s/搜索词.html</code>类似情况可用PHP页面定制搜索接口<a href="https://blog.lylme.com/archives/lylme_spage.html#souphp">查看教程</a></small>
</div>
<div class="form-group">
<label>搜索引擎手机端地址: (选填) </label><br>
<input type="text" class="form-control" name="waplink" value="" placeholder="一般情况下留空">
<small class="help-block">例:百度搜索的电脑端和手机端不会自适应,需要手动设置手机端,如<code>https://m.baidu.com/s?word=</code><br>如果你添加的搜索区分手机端和PC端则需要手动设置。<code>一般情况下留空即可</code></small>
</div>
<div class="form-group">
<label>标题文字颜色: (*必填) </label><br>
<input type="text" class="form-control" name="color" value="#696a6d" required>
<small class="help-block">(*必填) 填写颜色的十六进制码,如: <code>#FF0000</code>(红色)<br>默认值:<code>#696a6d</code></small>
</div>
<div class="form-group">
<label>搜索引擎图标:(*必填) </label><br>
<textarea type="text" class="form-control" name="icon" placeholder="<svg" required></textarea>
<small class="help-block">方案1粘贴图标的<code>SVG</code>代码(推荐) <a href="./help.php?doc=icon" target="_blank">查看教程</a><br>方案2使用图片地址需要img标签<code>&lt;img src="/assets/img/logo.png" /&gt; </code></small>
</div>
<div class="form-group">
<label class="btn-block" for="web_tq_status">启用开关</label>
<label class="lyear-switch switch-solid switch-primary">
<input type="checkbox" checked="checked" name="st" value="true">
<span></span>
</label>
<small class="help-block">说明:是否启用该搜索引擎(默认启用) </small>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary btn-block" value="添加"></form>
</div>
<br/><a href="./sou.php"><<返回</a>
</div></div>';
}
elseif($set=='edit')
{
$id=$_GET['id'];
$row2 = $DB->query("select * from lylme_sou where sou_id='$id' limit 1");
$row= $DB->fetch($row2);
echo '<h4>修改搜索引擎</h4>
<div class="panel-body">
<form action="./sou.php?set=edit_submit&id='.$id.'" method="POST">
<div class="form-group">
<label>*搜索引擎名称: (*必填)</label><br>
<input type="text" class="form-control" name="name" value="'.$row['sou_name'].'" required placeholder="如:百度一下">
<small class="help-block">搜索引擎名称,如<code>百度一下</code><code>搜狗搜索</code></small>
</div>
<div class="form-group">
<label>*搜索引擎别名: (*必填)</label><br>
<input type="text" class="form-control" name="alias" value="'.$row['sou_alias'].'" required placeholder="如baidu">
<small class="help-block">注:仅支持字母,<code>不能和其他搜索引擎的别名相同</code><br>建议填写搜索引擎的拼音或英文,如百度填写<code>baidu</code></small>
</div>
<div class="form-group">
<label>*搜索框提示: (*必填)</label><br>
<input type="text" class="form-control" name="hint" value="'.$row['sou_hint'].'" required placeholder="如:请输入搜索内容">
</div>
<div class="form-group">
<label>*搜索引擎地址: (*必填)</label><br>
<input type="text" class="form-control" name="link" value="'.$row['sou_link'].'" required placeholder="如https://www.baidu.com/s?word=">
<small class="help-block">例:百度搜索 <code>https://www.baidu.com/s?word=</code><a href="https://blog.lylme.com/archives/lylme_spage.html#sou">查看获取接口教程</a>
<br>注意:当前仅支持搜索词作为末尾,例如:<code>https://www.baidu.com/s?word=搜索内容</code><br>如果使用GET请求搜索搜索词不处于末尾<code>https://www.baidu.com/s?wd=搜索词&ie=UTF-8</code>可将搜索词参数调换到末尾,如<code>https://www.baidu.com/s?ie=UTF-8&wd=搜索词</code>多个GET参数用以<code>&</code>分隔<br>如果搜索词不在末尾且非GET请求<code>https://xxx.com/s/搜索词.html</code>类似情况可用PHP页面定制搜索接口<a href="https://blog.lylme.com/archives/lylme_spage.html#souphp">查看教程</a></small>
</div>
<div class="form-group">
<label>搜索引擎手机端地址: (选填) </label><br>
<input type="text" class="form-control" name="waplink" value="'.$row['sou_waplink'].'" placeholder="一般情况下留空">
<small class="help-block">注:百度搜索的电脑端和手机端不会自适应,需要手动设置手机端,如<code>https://m.baidu.com/s?word=</code><br>如果你添加的搜索区分手机端和PC端则需要手动设置。<code>一般情况下留空即可</code></small>
</div>
<div class="form-group">
<label>标题文字颜色: (*必填) </label><br>
<input type="text" class="form-control" name="color" value="'.$row['sou_color'].'" required>
<small class="help-block">(*必填) 填写颜色的十六进制码,如: <code>#FF0000</code>(红色)<br>默认值:<code>#696a6d</code></small>
</div>
<div class="form-group">
<label>搜索引擎图标:(*必填) </label><br>
<textarea type="text" class="form-control" name="icon" placeholder="<svg" required>'.$row['sou_icon'].'</textarea>
<small class="help-block">方案1粘贴图标的<code>SVG</code>代码(推荐) <a href="./help.php?doc=icon" target="_blank">查看教程</a><br>方案2使用图片地址需要img标签<code>&lt;img src="/assets/img/logo.png" /&gt; </code></small>
</div>
<div class="form-group">
<label>排序权重: (*必填) </label><br>
<input type="text" class="form-control" name="order" value="'.$row['sou_order'].'" required>
<small class="help-block">(*必填) 数字越小越靠前</small>
</div>
<div class="form-group">
<label class="btn-block" for="web_tq_status">启用开关</label>
<label class="lyear-switch switch-solid switch-primary">
<input type="checkbox"';
if($row['sou_st']==1){ echo 'checked="checked"'; }
echo 'name="st" value="true">
<span></span>
</label>
<small class="help-block">说明:是否启用该搜索引擎(默认启用) </small>
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary btn-block" value="修改"></form>
</div>
<br/><a href="./sou.php"><<返回</a>
</div></div>';
}
elseif($set=='add_submit')
{
$name=$_POST['name'];
$alias=$_POST['alias'];
$hint=$_POST['hint'];
$link=$_POST['link'];
$waplink=$_POST['waplink'];
$color=$_POST['color'];
$icon=$_POST['icon'];
if($_POST['st']==true){$st=1;}else{$st=0;}
$sou_order = $sousrows+1;
if (empty($name) && empty($alias)&& empty($hint) && empty($link) && empty($color) && empty($icon)){
echo '<script>alert("保存错误,请确保带星号的都不为空!");history.go(-1);</script>';
} else {
$sql="INSERT INTO `lylme_sou` (`sou_id`, `sou_alias`, `sou_name`, `sou_hint`, `sou_color`, `sou_link`, `sou_waplink`, `sou_icon`, `sou_st`, `sou_order`) VALUES
(NULL, '".$alias."', '".$name."', '".$hint."', '".$color."', '".$link."', '".$waplink."', '".$icon."', '".$st."', '".$sou_order."');
";
if($DB->query($sql)){
echo '<script>alert("添加搜索引擎 '.$name.' 成功!");window.location.href="./sou.php";</script>';
}else
echo '<script>alert("添加搜索引擎失败!");history.go(-1);</script>';
}
}
elseif($set=='edit_submit')
{
$id=$_GET['id'];
$rows2 = $DB->query("select * from lylme_sou where sou_id='$id' limit 1");
$rows=$DB->fetch($rows2);
if(!$rows)
echo '<script>alert("当前记录不存在!");history.go(-1);</script>';
$name=$_POST['name'];
$alias=$_POST['alias'];
$hint=$_POST['hint'];
$link=$_POST['link'];
$waplink=$_POST['waplink'];
$color=$_POST['color'];
$icon=$_POST['icon'];
$order=$_POST['order'];
if($_POST['st']==true){$st=1;}else{$st=0;}
if (empty($name) && empty($alias)&& empty($hint) && empty($link) && empty($color) && empty($icon) && empty($order)){
echo '<script>alert("保存错误,请确保带星号的都不为空!");history.go(-1);</script>';
} else {
$sql="UPDATE `lylme_sou` SET `sou_alias` = '".$alias."', `sou_name` = '".$name."', `sou_hint` = '".$hint."', `sou_color` = '".$color."', `sou_link` = '".$link."', `sou_waplink` = '".$waplink."', `sou_icon` = '".$icon."', `sou_st` = '".$st."', `sou_order` = '".$order."' WHERE `lylme_sou`.`sou_id` = ".$id.";";
if($DB->query($sql))
echo '<script>alert("修改搜索引擎 '.$name.' 成功!");window.location.href="./sou.php";</script>';
else
echo '<script>alert("修改失败!");history.go(-1);</script>';
}
}
elseif($set=='delete')
{
$id=$_GET['id'];
$sql="DELETE FROM lylme_sou WHERE sou_id='$id'";
if($DB->query($sql))
echo '<script>alert("删除成功!");window.location.href="./sou.php";</script>';
else
echo '<script>alert("删除失败!");history.go(-1);</script>';
}
else
{
echo '<div class="alert alert-info">系统共有 <b>'.$sousrows.'</b> 个搜索引擎<br/><a href="./sou.php?set=add" class="btn btn-primary">新增搜索引擎</a></div> <div class="table-responsive">
<table class="table table-striped">
<thead><tr><th>排序权重</th><th>名称</th><th>别名</th><th>地址</th><th>状态</th><th>操作</th></tr></thead>
<tbody>';
$rs=$DB->query("SELECT * FROM `lylme_sou` ORDER BY `lylme_sou`.`sou_order` ASC");
while($res = $DB->fetch($rs))
{
echo '<tr><td><b>'.$res['sou_order'].'</b></td><td><b><font color="'.$res['sou_color'].'">'.$res['sou_name'].'</font></b></td><td>'.$res['sou_alias'].'</td><td>'.$res['sou_link'].'</td><td>';
if($res['sou_st'] == 1){echo '<span class="label label-success">开启</span>';}else{echo '<span class="label label-danger">关闭</span>';}
echo '</td><td><a href="./sou.php?set=edit&id='.$res['sou_id'].'" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="./sou.php?set=delete&id='.$res['sou_id'].'" class="btn btn-xs btn-danger" onclick="return confirm(\'确定删除 '.$res['sou_name'].'\');">删除</a></td></tr>';
}
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<?php
}
include './footer.php';
?>

@ -0,0 +1,43 @@
<?php
include_once("../include/common.php");
if(isset($islogin)==1) {
} else exit("<script language='javascript'>window.location.href='./login.php';</script>");
echo '<div class="alert alert-info">系统共有 <b>' . $groupsrows . '</b> 个分组<br/><a href="./group.php?set=add" class="btn btn-primary">新建分组</a></div>
<div class="table-responsive">
<table class="table table-striped">
<thead><tr><th>名称</th><th>排序</th><th>链接数</th><th>访问密码</th><th>状态</th><th>操作</th></tr></thead>
<tbody>';
$sql = " 1";
$rs = $DB->query("SELECT * FROM lylme_groups WHERE{$sql} order by group_order asc");
while ($res = $DB->fetch($rs)) {
$pwd = $DB->get_row("SELECT `pwd_id`, `pwd_key` FROM `lylme_pwd` WHERE `pwd_id` = ".$res['group_pwd'])['pwd_key'];
echo '<tr><td><input type="hidden" name="group_id" value="'.$res['group_id'].'">' . $res['group_name'] . '</td><td>
<button class="btn btn-primary btn-xs sort-up">上移</button>&nbsp;<button class="btn btn-cyan btn-xs sort-down">下移</button></td>
<td>'. $DB->num_rows($DB->query("SELECT `id` FROM `lylme_links` WHERE `group_id` =".$res['group_id'])).'</td>
<td>';
if($pwd||$res['group_pwd']){
if(empty($pwd)){
echo '<font color="red">失效[请重新设置加密组]</font>';
}
else{
echo '<font color="f96197">'.$pwd.'</font>';
}
}
else{echo '<font color="green">未加密</font>';}
echo ' </td><td>';
if($res['group_status']){
echo '<button class="btn btn-pink btn-xs" onclick="off_group('.$res['group_id'].')">禁用</button>';
}else{
echo '<button class="btn btn-success btn-xs" onclick="on_group('.$res['group_id'].')">启用</button>';
}
echo'</td><td>&nbsp;<a href="./group.php?set=edit&id=' . $res['group_id'] . '" class="btn btn-info btn-xs">编辑</a>&nbsp;<button class="btn btn-xs btn-danger" onclick="del_group('.$res['group_id'].')">删除</button></td></tr>';
}
?>
</tbody>
</table>
</div>

@ -0,0 +1,82 @@
<?php
include_once("../include/common.php");
if(isset($islogin)==1) {
} else exit("<script language='javascript'>window.location.href='./login.php';</script>");
$page = isset($_GET['page'])? $_GET['page'] : 1;
$groups = $DB->query("SELECT * FROM `lylme_groups` ORDER BY `group_order` ASC"); //获取分组
$gpwd = $DB->fetch($DB->query("SELECT `group_id`, `group_pwd` FROM `lylme_groups` WHERE `group_id` = ".$page))["group_pwd"]; //分组加密状态
$rs = $DB->query("SELECT * FROM `lylme_links` WHERE `group_id` = ".$page." ORDER BY `lylme_links`.`id` ASC"); //获取链接
$grouprows=$DB->num_rows($rs);
echo '<div class="alert alert-info">系统收录: <b>' . $linksrows . '</b> 个链接 / 当前分组: <b>'.$grouprows.'</b>个链接
<i class="mdi mdi-help-circle tips"></i>
</div>
<nav><ul class="pagination">';
while ($group = $DB->fetch($groups)) {
echo '<li ';
if($page ==$group["group_id"]){echo 'class="active"';}
echo '><a href="?page='.$group["group_id"].'">'.$group["group_name"].'</a></li>';
}
echo '</ul>
</nav>
<!-- 功能按钮 S-->
<div id="toolbar" class="toolbar-btn-action">
<a href="./link.php?set=add" class="btn btn-primary btn-label">
<label><i class="mdi mdi-plus" aria-hidden="true"></i></label>新增</a>
<button id="btn_edit" type="button" class="btn btn-success btn-label" onclick="on_link()">
<label><i class="mdi mdi-check" aria-hidden="true"></i></label>启用</button>
<button id="btn_edit" type="button" class="btn btn-warning btn-label" onclick="off_link()">
<label><i class="mdi mdi-block-helper" aria-hidden="true"></i></label>禁用 </button>
<button id="btn_delete" type="button" class="btn btn-danger btn-label" onclick="del_link()">
<label><i class="mdi mdi-window-close" aria-hidden="true"></i></label>删除</button>
<button id="edit_group" type="button" class="btn btn-info btn-label" onclick="edit_group(mv_group)">
<label><i class="mdi mdi-account-edit" aria-hidden="true"></i></label>移动</button>
';
if(empty($gpwd)){
echo '<button id="btn_delete" type="button" class="btn btn btn-pink btn-label" onclick="pwd_link(pwd_list)">
<label><i class="mdi mdi-key-variant" aria-hidden="true"></i></label>加密</button>';
}
else{
echo '<button id="btn_delete" type="button" class="btn btn btn-pink btn-label" onclick="pwd_links()">
<label><i class="mdi mdi-key-variant" aria-hidden="true"></i></label>分组已加密</button>';
}
echo '
<button class="btn btn-label btn btn-purple" id="save_order" style="display:none" onclick="save_order()">
<label><i class="mdi mdi-checkbox-marked-circle-outline"></i></label> 保存排序</button>
</div>
<!-- 功能按钮 E -->
<div class="table-responsive">
<table class="table table-striped" id="classlisttbody">
<thead><tr style="cursor: pointer">
<th><input type="checkbox" class="checkbox-parent" id="check_all" onclick="check_all()"></th>
<th>排序</th><th>名称</th><th>链接</th><th>分组</th><th>启用</th><th>操作</th></tr></thead>
<tbody id="link">';
$rs = $DB->query("SELECT * FROM `lylme_links` WHERE `group_id` = ".$page." ORDER BY `lylme_links`.`link_order` ASC");
while ($res = $DB->fetch($rs)) {
echo '<tr><td><input type="checkbox" name="link-check" value="'.$res['id'].'"></td>
<!-- 链接排序 S -->
<td><a class="btn btn-success btn-xs sort-goup" data-toggle="tooltip" data-placement="top" title="移到顶部"><i class="mdi mdi-arrow-collapse-up"></i></a>
<a class="btn btn-info btn-xs sort-godown" data-toggle="tooltip" data-placement="top" title="移到底部"><i class="mdi mdi-arrow-collapse-down"></i></a>
<a class="btn btn-primary btn-xs sort-up" data-toggle="tooltip" data-placement="top" title="移到上一行"><i class="mdi mdi-arrow-up"></i></a>
<a class="btn btn-cyan btn-xs sort-down" data-toggle="tooltip" data-placement="top" title="移到下一行"><i class="mdi mdi-arrow-down"></i></a></td>
<!-- 链接排序 E -->
<td class="lylme">' . $res['name'] . '</td><td>';
if(!empty($res['link_pwd'])||!empty($gpwd)){ echo '<font color="#f96197">'. $res['url'] .'</font>';}else{echo $res['url'];}
echo
'</td><td>'. $DB->fetch($DB->query("SELECT * FROM `lylme_groups` WHERE `group_id` = " . $res['group_id'])) ["group_name"]. '</td>
<td>';
if($res['link_status']=="0"){ echo '<font color="red">禁用</font>';}else{echo '<font color="green">启用</font>';}
$de_llink = "del_link('".$res['id']."')";
echo'</td>
<td><a href="./link.php?set=edit&id=' . $res['id'] . '" class="btn btn-info btn-primary">编辑</a>&nbsp;<button class="btn btn-primary btn-danger" onclick="'.$de_llink.'">删除</button></td></tr>';
;
}
echo '
</tbody>
</table>
</div>
</div>';
?>

@ -0,0 +1,137 @@
<?php
$title = '导航菜单管理';
include './head.php';
$tagsrows = $DB->num_rows($DB->query("SELECT * FROM `lylme_tags`"));
?>
<main class="lyear-layout-content">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<?php
$set = isset($_GET['set']) ? $_GET['set'] : null;
if ($set == 'add') {
echo '<h4>新增导航菜单链接</h4>
<div class="panel-body">
<form action="./tag.php?set=add_submit" method="POST">
<div class="form-group">
<label>*名称:</label><br>
<input type="text" class="form-control" name="name" value="" required>
</div>
<div class="form-group">
<label>*链接地址:</label><br>
<input type="text" class="form-control" name="link" value="" required>
</div>
<div class="form-group">
<label>*打开方式:</label><br>
<select class="form-control" name="target">
<option value="0">0. 当前窗口打开</option>
<option selected="selected" value="1">1. 新窗口打开</option>
</select></div>
<div class="form-group">
<input type="submit" class="btn btn-primary btn-block" value="添加"></form>
</div>
<br/><a href="./tag.php"><<返回</a>
</div></div>';
} elseif ($set == 'edit') {
$id = $_GET['id'];
$row2 = $DB->query("select * from lylme_tags where tag_id='$id' limit 1");
$row = $DB->fetch($row2);
echo '<h4>修改导航菜单链接</h4>
<div class="panel-body">
<form action="./tag.php?set=edit_submit&id=' . $id . '" method="POST">
<div class="form-group">
<label>*名称:</label><br>
<input type="text" class="form-control" name="name" value="' . $row['tag_name'] . '" required>
</div>
<div class="form-group">
<label>*链接地址:</label><br>
<input type="text" class="form-control" name="link" value="' . $row['tag_link'] . '" required>
</div>
<div class="form-group">
<label>*打开方式:</label><br>
<select class="form-control" name="target">
<option value="0">0. 当前窗口打开</option>
<option ';
if ($row['tag_target'] == 1) {
echo 'selected="selected"';
}
echo 'value="1">1. 新窗口打开</option>
</select></div>
<div class="form-group">
<input type="submit" class="btn btn-primary btn-block" value="修改"></form>
</div>
<br/><a href="./tag.php"><<返回</a>
</div></div>';
} elseif ($set == 'add_submit') {
$name = $_POST['name'];
$link = $_POST['link'];
if ($_POST['target'] == true) {
$target = 1;
} else {
$target = 0;
}
if ($name == NULL or $link == NULL) {
echo '<script>alert("保存错误,请确保带星号的都不为空!");history.go(-1);</script>';
} else {
$sql = "INSERT INTO `lylme_tags` (`tag_id`, `tag_name`, `tag_link`, `tag_target`) VALUES (NULL, '" . $name . "', '" . $link . "', '" . $target . "');";
if ($DB->query($sql)) {
echo '<script>alert("添加导航菜单 ' . $name . ' 成功!");window.location.href="./tag.php";</script>';
} else echo '<script>alert("添加导航菜单失败");history.go(-1);</script>';
}
} elseif ($set == 'edit_submit') {
$id = $_GET['id'];
$rows2 = $DB->query("select * from lylme_tags where tag_id='$id' limit 1");
$rows = $DB->fetch($rows2);
if (!$rows) echo '<script>alert("当前记录不存在!");history.go(-1);</script>';
$name = $_POST['name'];
$link = $_POST['link'];
if ($_POST['target'] == true) {
$target = 1;
} else {
$target = 0;
}
if ($name == NULL or $link == NULL) {
echo '<script>alert("保存错误,请确保带星号的都不为空!");history.go(-1);</script>';
} else {
$sql = "UPDATE `lylme_tags` SET `tag_name` = '" . $name . "', `tag_link` = '" . $link . "', `tag_target` = '" . $target . "' WHERE `lylme_tags`.`tag_id` = " . $id . ";";
if ($DB->query($sql)) echo '<script>alert("修改导航菜单 ' . $name . ' 成功!");window.location.href="./tag.php";</script>';
else echo '<script>alert("修改导航菜单失败!");history.go(-1);</script>';
}
} elseif ($set == 'delete') {
$id = $_GET['id'];
$sql = "DELETE FROM lylme_tags WHERE tag_id='$id'";
if ($DB->query($sql)) echo '<script>alert("删除成功!");window.location.href="./tag.php";</script>';
else echo '<script>alert("删除失败!");history.go(-1);</script>';
} else {
echo '<div class="alert alert-info">系统共有 <b>' . $tagsrows . '</b> 个导航菜单<br/><a href="./tag.php?set=add" class="btn btn-primary">新增导航菜单</a></div>';
?>
<div class="table-responsive">
<table class="table table-striped">
<thead><tr><th>名称</th><th>链接</th><th>操作</th></tr></thead>
<tbody>
<?php
$rs = $DB->query("SELECT * FROM `lylme_tags`");
while ($res = $DB->fetch($rs)) {
echo '<tr><td>' . $res['tag_name'] . '</td><td>' . $res['tag_link'] . '</td><td><a href="./tag.php?set=edit&id=' . $res['tag_id'] . '" class="btn btn-info btn-xs">编辑</a>&nbsp;<a href="./tag.php?set=delete&id=' . $res['tag_id'] . '" class="btn btn-xs btn-danger" onclick="return confirm(\'确定删除 ' . $res['tag_name'] . ' \');">删除</a></td></tr>';
}
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<?php
}
include './footer.php';
?>

@ -0,0 +1,86 @@
<?php
$title = '主题设置';
include './head.php';
function theme($theme,$str){
$theme_ini = ROOT.'template/'.$theme.'/theme.ini';
$arr = json_decode(file_get_contents($theme_ini), true);
if(!empty($arr[$str])){
return strip_tags($arr[$str]);
}
else if($str =='theme_version'){
return '未知';
}
else if($str =='theme_name'){
return $theme;
}
else{
return false;
}
}
$set=isset($_GET['set'])?$_GET['set']:null;
if(!empty($set)) {
if(saveSetting('template',$set)) {
exit('<script>alert("主题修改成功!");window.location.href="./theme.php";</script>');
} else {
exit('<script>alert("主题修改失败!");window.location.href="./theme.php";</script>');
}
}
?>
<main class="lyear-layout-content">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-header"><h4>主题设置 <a href="https://spage.lylme.com/themes" target="_blank">更多主题 >></a></h4></div>
<div class="card-body">
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th>主题名称</th>
<th>主题说明</th>
<th>主题作者</th>
<th>在线演示</th>
<th>选择主题</th>
</tr>
</thead>
<tbody>
<?php
$theme_path = ROOT.'template/';
$themes = glob($theme_path."*", GLOB_ONLYDIR);
foreach($themes as $theme) {
$theme = str_replace($theme_path ,"" , $theme);
echo'<tr><td><h4>'.theme($theme,"theme_name").' </h4>版本:'.theme($theme,"theme_version").'</td>';
echo '<td><p>'.theme($theme,"theme_explain").'</p>';
if(theme($theme,"theme_course")){
echo ' <a href="'.theme($theme,"theme_course").'" target="_blank">主题教程</a>';
}
echo'</td>';
echo '<td><p>'.theme($theme,"author_name").'</p>';
if(theme($theme,"author_link")){
echo ' <a href="'.theme($theme,"author_link").'" target="_blank">作者主页</a>';
}
echo '</td><td>';
if(theme($theme,"theme_demo")){
echo '<p><a class="btn btn-default" href="'.theme($theme,"theme_demo").'" target="_blank">在线演示</a></p>';
}
echo '</td>';
if($conf['template'] == $theme) {
echo '<td><p class="btn btn-default disabled">当前使用</p></td>';
} else {
echo '<td><a href="./theme.php?set='.$theme.'" class="btn btn-label btn-primary"><label><i class="mdi mdi-checkbox-marked-circle-outline"></i></label>使用</a></td>';
}
echo '</tr>'."\n";
}
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</main>
<?php
include './footer.php';
?>

@ -0,0 +1,84 @@
<?php
$title = '检查更新';
include './head.php';
@unlink('log.txt');
$update = update();
?>
<!--页面主要内容-->
<main class="lyear-layout-content">
<div class="container-fluid">
<?php
if(getver($update['version']) > getver($conf['version']) && !empty($update['version']) ) {
echo '<div class="alert alert-info" role="alert">发现新版本:'.$update['version'].'&nbsp;&nbsp;当前版本:</b>'.$conf['version'].'&nbsp;&nbsp;<a href="https://gitee.com/LyLme/lylme_spage/releases" target="_blant" class="alert-link">查看发行版</a></div>
<div class="card"><div class="card-header"><h4>更新说明</h4></div><ul class="list-group">
'.$update['update_log'].'
<li class="list-group-item"><button onclick="update()" class="btn btn-primary">更新</button></li>';
} else if(!empty($update['version'])) {
echo '<div class="alert alert-success" role="alert">当前已是最新版本!&nbsp;&nbsp;<a href="https://gitee.com/LyLme/lylme_spage/releases" target="_blant" class="alert-link">查看发行版</a></div>
<div class="card"><div class="card-header"><h4>版本更新</h4></div><ul class="list-group">
<li class="list-group-item"><b>当前版本:</b>'.$conf['version'].'</li>
<li class="list-group-item"><b>最新版本:</b>'.$update['version'].'</li>';
} else {
echo '<div class="alert alert-danger" role="alert">检查更新失败!</div>
<div class="card"><div class="card-header"><h4>版本更新</h4></div><ul class="list-group">
<li class="list-group-item"><b>当前版本:</b>'.$conf['version'].'</li>
<li class="list-group-item"><b>手动更新:</b>请前往<a href="https://gitee.com/LyLme/lylme_spage/releases" target="_blant" class="alert-link">码云</a>下载最新版本<code>lylme_spage_update.zip</code>后缀的更新包上传到网站根目录解压即可,程序会自动更新数据库</a></li>';
}
?>
</ul></div>
</div>
</main>
</div>
</div>
<?php
include './footer.php';
?>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/layer/3.1.1/layer.min.js" type="application/javascript"></script>
<script type="text/javascript" src="js/lightyear.js"></script>
<script src="js/bootstrap-notify.min.js"></script>
<link href="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery-confirm/3.3.0/jquery-confirm.min.css" type="text/css" rel="stylesheet" />
<script src="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery-confirm/3.3.0/jquery-confirm.min.js" type="application/javascript"></script>
<script>
function update() {
$.confirm({
title: '更新',
content: '<p><b>注意:更新会替换大部分文件(不会删除原有文件)</b></p><p>若您修改了源码的内容,为防止丢失请先进行备份</p><p>另外不建议通过修改源码的方式来修改内容本程序预留了自定义JS的功能建议通过JS的方式来修改内容欢迎加群讨论获取',
type: 'orange',
buttons: {
omg: {
text: '更新',
btnClass: 'btn-orange',
action: function(){
lightyear.loading('show');
$.ajax({
url:"ajax_link.php?submit=update",
method:"POST",
data:{file:"<?php echo $update['file'] ?>"},
success:function(data){
if(data == 'success'){
lightyear.loading('hide');
lightyear.notify('更新成功!', 'success', 1000);
window.location.replace("./");
return true;
}else{
lightyear.loading('hide');
lightyear.notify(data, 'warning', 2000);
return false;
}
},
error:function(data){
layer.msg('服务器错误');
lightyear.loading('hide');
return false;
}
});
}
},
close: {
text: '取消',
}
}
});
}
</script>

@ -0,0 +1,106 @@
<?php
$title = '账号安全';
include './head.php';
$set=isset($_GET['set'])?$_GET['set']:null;
if($set=='save'){
$user=$_POST['new-usernameuser'];
$oldpwd=$_POST['oldpwd'];
$newpwd=$_POST['newpwd'];
$repwd=$_POST['confirmpwd'];
if($oldpwd==$conf['admin_pwd'])
{
if(empty($newpwd)){//未修改密码
if(empty($user))
{
echo '<script>alert("未做出更改");history.go(-1);</script>';//只修改用户名
}
else
{
saveSetting('admin_user',$user);
echo '<script>alert("用户名修改成功!\n新用户名'.$user.'\n请牢记将重新登录");window.location.href="./";</script>';
}
}
else if(!empty($newpwd))
{//修改密码
if ($newpwd==$repwd && empty($user))
{
saveSetting('admin_pwd',$newpwd);
echo '<script>alert("密码修改成功!\n新密码'.$newpwd.'\n请牢记将重新登录");window.location.href="./";</script>';
}
else if($newpwd==$repwd)
{
saveSetting('admin_user',$user);
saveSetting('admin_pwd',$newpwd);
echo '<script>alert("修改成功!\n新用户名'.$user.'\n新密码'.$newpwd.'\n请牢记将重新登录");window.location.href="./";</script>';
}
}
else
{
echo '<script>alert("两次新密码不一致!");history.go(-1);</script>';
}
}
else{
echo '<script>alert("当前密码错误!");history.go(-1);</script>';
}
}
else{
?>
<!--页面主要内容-->
<main class="lyear-layout-content">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-body">
<form method="post" action="user.php?set=save" class="site-form">
<div class="form-group">
<label for="username">当前用户名</label>
<input type="text" class="form-control" name="username" id="username" value="<?php echo $conf['admin_user'];?>" disabled="disabled">
</div>
<div class="form-group">
<label for="old-password">新用户名</label>
<input type="text" class="form-control" name="new-usernameuser" id="new-username" placeholder="请输入新用户名" autocomplete="new-password" value="">
<small class="help-block">留空为不修改用户名</small>
</div>
<div class="form-group">
<label for="old-password">*当前密码</label>
<input type="password" class="form-control" name="oldpwd" id="old-password" placeholder="输入账号的原登录密码" required autocomplete="new-password">
</div>
<div class="form-group">
<label for="new-password">新密码</label>
<input type="password" class="form-control" name="newpwd" id="new-password" placeholder="输入新的密码">
<small class="help-block">留空为不修改密码</small>
</div>
<div class="form-group">
<label for="confirm-password">确认新密码</label>
<input type="password" class="form-control" name="confirmpwd" id="confirm-password" placeholder="重复输入新的密码">
</div>
<button type="submit" class="btn btn-primary">修改</button>
</form>
</div>
</div>
</div>
</div>
</div>
</main>
<!--End 页面主要内容-->
<?php
}
include './footer.php';
?>

@ -0,0 +1,128 @@
<?php
include("../include/common.php");
$grouplists =$DB->query("SELECT * FROM `lylme_groups`");
if(!empty($url = isset($_GET['url']) ? $_GET['url'] : null)) {
header('Content-Type:application/json');
//获取网站信息
$head = get_head($_GET['url']);
$head = json_encode($head,JSON_UNESCAPED_UNICODE); //将合并后的数组转换为json
exit($head); //输出json
} else if(isset($_GET['submit']) == 'post') {
if(isset($_REQUEST['authcode'])) {
session_start();
if(strtolower($_REQUEST['authcode'])== $_SESSION['authcode']) {
$status = isset($conf["apply"]) ? $conf["apply"] :0;
if($status==2) {
exit('{"code": "400", "msg": "网站已关闭收录"}');
}
exit(apply($_POST['name'], $_POST['url'], $_POST['icon'], $_POST['group_id'], $status));
} else {
exit('{"code": "-6", "msg": "验证码错误"}');
}
}
exit();
}
?>
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<title>申请收录 - <?php echo explode("-", $conf['title'])[0];
?></title>
<link rel="icon" href="<?php echo get_urlpath($conf['logo'],siteurl().'/apply');?>" type="image/ico">
<link href="https://cdn.lylme.com/admin/lyear/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.lylme.com/admin/lyear/css/style.min.css" rel="stylesheet">
<style>#loading{position:absolute;left:0;top:0;height:100vh;width:100vw;z-index:100;display:none;align-items:center;justify-content:center;color:#bbb;font-size:16px}#loading>img{height:18px;width:18px}.lylme-wrapper{position:relative}.lylme-form{display:flex !important;min-height:100vh;align-items:center !important;justify-content:center !important}.lylme-form:after{content:'';min-height:inherit;font-size:0}.lylme-center{background:#fff;min-width:29.25rem;padding:30px;border-radius:20px;margin:2.85714em}.lylme-header{margin-bottom:1.5rem !important}.lylme-center .has-feedback.feedback-left .form-control-feedback{left:0;right:auto;width:38px;height:38px;line-height:38px;z-index:4;color:#dcdcdc}.lylme-center .has-feedback.feedback-left.row .form-control-feedback{left:15px}.code{height:38px}.apply_gg{margin:20px 0;font-size:15px;line-height:2}.home{text-decoration:none;color:#bbb;line-height:2}li{list-style-type:none}ol,ul{padding-left:10px}</style>
</head>
<body>
<div id="loading"><img src="https://cdn.lylme.com/admin/lyear/img/loading.gif"/> &nbsp;
正在获取....</div>
<?php
if(!empty($background = background())) {
$background = str_replace('./','../',$background);
echo '<div class="row lylme-wrapper" style="background-image: url('.$background.');background-size: cover;">';
} else {
echo '<div class="row lylme-wrapper">';
}
?>
<div class="lylme-form">
<div class="lylme-center">
<?php if($conf["apply"]==2) {
exit('<div class="lylme-header text-center"><h2>网站已关闭收录</h2></div>'. $conf['apply_gg']. '</div>');
}
?>
<div class="lylme-header text-center"><h2>申请收录</h2></div>
<div class="apply_gg">
<?php echo $conf['apply_gg']?>
</div>
<div class="form-group">
<label>*URL链接地址:</label>
<div class="input-group">
<input type="text" class="form-control" name="url" placeholder="完整链接或域名" value="" onchange="gurl()" required >
<span class="input-group-btn">
<button class="btn btn-default" onclick="get_url()" type="button">自动获取</button>
</span>
</div></div>
<div class="form-group has-feedback feedback-left row">
<div class="col-xs-12">
<label>* 选择分组:</label>
<select title="分组" class="form-control" name="group_id" required>
<option value="">请选择</option>
<?php
while($grouplist = $DB->fetch($grouplists)) {
echo '
<option value="'.$grouplist["group_id"].'">'.$grouplist["group_name"].'</option>';
}
?>
</select>
<span class="mdi mdi-folder form-control-feedback" aria-hidden="true"></span>
</div>
</div>
<div class="form-group has-feedback feedback-left row">
<div class="col-xs-12">
<label>* 网站名称:</label>
<input type="text" class="form-control" id="title" name="name" value="" required placeholder="网站名称">
<span class="mdi mdi-format-title form-control-feedback" aria-hidden="true"></span>
<small class="help-block">填写网站名称</small>
</div>
</div>
<div class="form-group">
<label>网站图标:</label>
<div class="input-group">
<!-- 用于展示上传文件名的表单 -->
<input type="text" id="icon" class="form-control" name="icon" placeholder="填写图标的URL地址">
<!-- 点击触发按钮 -->
<span class="input-group-btn">
<input type="file" id="file" onchange="uploadimg()" accept="image/png, image/jpeg,image/gif,image/x-icon" style="display: none" />
<button class="btn btn-default" id="uploadImage" onclick="$('#file').click();" type="button">选择</button>
</span>
</div>
<img id="review" src="" width="100px" height="100px" class="center-block" style="display: none;"/>
<span class="mdi mdi-emoticon form-control-feedback" aria-hidden="true"></span>
<small class="help-block">填写图标的<code>URL</code>地址,如:<code>http://www.xxx.com/logo.png</code><br>
部分网站无法自动获取,请手动填写</small>
</div>
<div class="form-group has-feedback feedback-left row">
<label>* 验证码:</label>
<div class="col-xs-8">
<input type="text" name="authcode" class="form-control" placeholder="验证码" required>
<span class="mdi mdi-check form-control-feedback" aria-hidden="true"></span>
</div>
<div class="col-xs-4">
<img id="captcha_img" title="验证码" src='../include/validatecode.php' class="pull-right code" onclick="recode()"/>
</div>
</div>
<div class="form-group">
<button class="btn btn-primary btn-block" onclick="submit()">提交</button>
</div>
<center><p><a href="../" class="home">返回首页</a></p><?php echo $conf['copyright']?></center>
</div>
</div>
</body>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-2-M/jquery/3.5.1/jquery.min.js" type="application/javascript"></script>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/layer/3.1.1/layer.min.js" type="application/javascript"></script>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/sweetalert/2.1.2/sweetalert.min.js" type="application/javascript"></script>
<script src="https://cdn.lylme.com/lylme_spage/js/apply.js" type="application/javascript"></script>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

@ -0,0 +1,21 @@
<?php
/**
* 作者LyLme
* 说明用于获取Bing每日壁纸以PHP文件返回图片
* 时间2022-01-20
*/
$str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1');
if(preg_match("/<url>(.+?)<\/url>/is",$str,$matches)){
$imgurl='http://cn.bing.com'.$matches[1];
}
if($imgurl){
header('Content-Type: image/JPEG');
@ob_end_clean();
@readfile($imgurl);
@flush(); @ob_flush();
exit();
}else{
exit('error');
}
?>

@ -0,0 +1,123 @@
<?php
header("Content-Type: text/html; charset=utf-8");
$pass = ''; //在这里配置密钥
/*
为保证安全,已禁止空密钥执行,请在 $pass 的引号内添加密钥
CRON任务GET http://域名/assets/img/cron.php?key=设置的密钥
例如:
$pass = 'lylme';
CRON地址为http://hao.lylme.com/assets/img/cron.php?key=lylme
*/
//########以下内容可忽略########
if(empty($pass)){
//密钥为空
exit('错误禁止空密钥执行CRON请在cron.php文件配置密钥');
}
else if (empty($_GET['key'])) {
//未传入key
exit('错误密钥为空请传入包含参数key的GET请求<br>
请求示例:<b>http://'.$_SERVER['HTTP_HOST'].'/assets/img/cron.php?key=秘钥</b>');
}
else if($pass != $_GET['key']){
//密钥错误
exit('错误传入参数key与密钥不匹配');
}
else {
//密钥正确,执行下面代码
/**
* PHP获取bing每日壁纸
* bing每日壁纸更新时间为UTC+8 1600
*/
if($_GET['idx']==null){
$str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1');
//
}
else{
$str=file_get_contents('http://cn.bing.com/HPImageArchive.aspx?idx='.$_GET['idx'].'&n=1');
}
if(preg_match("/<url>(.+?)<\/url>/is",$str,$matches)){
if(preg_match("/<fullstartdate>(.+?)<\/fullstartdate>/is",$str,$cdata)){
}
$crdate = date('Y年m月d日 H:i', strtotime($cdata[1]));
$imgurl = 'http://cn.bing.com'.$matches[1];
echo "壁纸地址:" . $imgurl."<br>";
echo "发布时间:" . $crdate."<br>";
}
/**
* 将bing每日壁纸保存到 当前目录/background.jpg
*/
function GrabImage($imgurl, $dir, $filename='/background.jpg'){
if(empty($imgurl)){
return false;
}
$ext = strrchr($imgurl, '.');
if($ext == '.js' && $ext == ".html" && $ext == ".php"){
echo "Format not supported";
return false;
}
$dir = realpath($dir);
$filename = $dir . $filename;
ob_start();
readfile($imgurl);
$img = ob_get_contents();
ob_end_clean();
$size = strlen($img);
$fp2 = fopen($filename , "w");
if(fwrite($fp2, $img)==true){
echo "壁纸大小:" . round($size / 1024) .'KB<br>';
echo "<p><font color='green'>成功当前壁纸已与Bing同步</font></p>";
}
else{
echo "<p><font color='red'>错误: 保存文件 <b>". $filename."</b> 失败,请检查目录权限</font></p>";
}
fclose($fp2);
// echo "保存路径:" . $filename."<br>";
return $filename;
}
GrabImage($imgurl,dirname(__FILE__));
/**
* 返回bing每日壁纸
*/
// if($imgurl){
// header('Content-Type: image/JPEG');
// @ob_end_clean();
// @readfile($imgurl);
// @flush(); @ob_flush();
// exit();
// }else{
// exit('error');
// }
}
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,10 @@
<?php
/*数据库配置*/
$dbconfig=array(
"host" => "localhost", //数据库服务器
"port" => 3306, //数据库端口
"user" => "", //数据库用户名
"pwd" => "", //数据库密码
"dbname" => "", //数据库名
);
?>

@ -0,0 +1,35 @@
<?php
@header ("Content-type:text/html;charset=utf-8");
define('IN_CRONLITE', true);
define('SYS_KEY', 'lylme_key');
define('SYSTEM_ROOT', dirname(__FILE__).'/');
define('ROOT', dirname(SYSTEM_ROOT).'/');
error_reporting(0);
require ROOT.'config.php';
if(!defined('SQLITE') && (!$dbconfig['user']||!$dbconfig['pwd']||!$dbconfig['dbname']))
{
@unlink(ROOT.'install/install.lock');
header('Content-type:text/html;charset=utf-8');
echo '你还没安装!<a href="install/">点此安装</a>';
exit();
}
include_once(SYSTEM_ROOT."db.class.php");
$DB=new DB($dbconfig['host'],$dbconfig['user'],$dbconfig['pwd'],$dbconfig['dbname'],$dbconfig['port']);
$rs= $DB->query("SELECT * FROM `lylme_config`");
while($row = $DB->fetch($rs)) $conf[$row['k']]=$row['v'];
include_once(SYSTEM_ROOT."lists.php");
include_once(SYSTEM_ROOT."function.php");
include_once(SYSTEM_ROOT."member.php");
include_once(SYSTEM_ROOT."tj.php");
include_once(SYSTEM_ROOT."version.php");
include_once(SYSTEM_ROOT."updbase.php");
$linksrows=$DB->num_rows($DB->query("SELECT * FROM `lylme_links`"));
$groupsrows=$DB->num_rows($DB->query("SELECT * FROM `lylme_groups`"));
$cdnpublic = cdnpublic($conf['cdnpublic']);
$templatepath ='./template/'.$conf["template"];
$template = $templatepath.'/index.php';
$background = $conf["background"];
$wap_background = $conf["wap_background"];
if(checkmobile()){if(!empty($wap_background)){$background_img = $wap_background;}
else{$background_img = $background; }}else{$background_img = $background; }
?>

@ -0,0 +1,191 @@
<?php
//MySQL、MySQLi、SQLite 三合一数据库操作类
if(!defined('IN_CRONLITE'))exit();
$nomysqli=false;
if(defined('SQLITE')==true){
class DB {
var $link = null;
function __construct($db_file){
global $siteurl;
$this->link = new PDO('sqlite:'.ROOT.'includes/sqlite/'.$db_file.'.db');
if (!$this->link) die('Connection Sqlite failed.\n');
return true;
}
function fetch($q){
return $q->fetch();
}
function get_row($q){
$sth = $this->link->query($q);
return $sth->fetch();
}
function count($q){
$sth = $this->link->query($q);
return $sth->fetchColumn();
}
function query($q){
return $this->result=$this->link->query($q);
}
function affected(){
return $this->result->rowCount();
}
function error(){
$error = $this->link->errorInfo();
return '['.$error[1].'] '.$error[2];
}
}
}
elseif(extension_loaded('mysqli') && $nomysqli==false) {
class DB {
var $link = null;
function __construct($db_host,$db_user,$db_pass,$db_name,$db_port){
$this->link = mysqli_connect($db_host, $db_user, $db_pass, $db_name, $db_port);
if (!$this->link) die('Connect Error (' . mysqli_connect_errno() . ') '.mysqli_connect_error());
//mysqli_select_db($this->link, $db_name) or die(mysqli_error($this->link));
mysqli_query($this->link,"set sql_mode = ''");
//字符转换,读库
mysqli_query($this->link,"set character set 'utf8'");
//写库
mysqli_query($this->link,"set names 'utf8'");
return true;
}
function fetch($q){
return mysqli_fetch_assoc($q);
}
function num_rows($result){
return mysqli_num_rows($result);
}
function get_row($q){
$result = mysqli_query($this->link,$q);
return mysqli_fetch_assoc($result);
}
function get_column($q){
$result = mysqli_query($this->link,$q);
$row = mysqli_fetch_array($result);
return $row[0];
}
function count($q){
$result = mysqli_query($this->link,$q);
$count = mysqli_fetch_array($result);
return $count[0];
}
function query($q){
return mysqli_query($this->link,$q);
}
function escape($str){
return mysqli_real_escape_string($this->link,$str);
}
function insert($q){
if(mysqli_query($this->link,$q))
return mysqli_insert_id($this->link);
return false;
}
function affected(){
return mysqli_affected_rows($this->link);
}
function insert_array($table,$array){
$q = "INSERT INTO `$table`";
$q .=" (`".implode("`,`",array_keys($array))."`) ";
$q .=" VALUES ('".implode("','",array_values($array))."') ";
if(mysqli_query($this->link,$q))
return mysqli_insert_id($this->link);
return false;
}
function error(){
$error = mysqli_error($this->link);
$errno = mysqli_errno($this->link);
return '['.$errno.'] '.$error;
}
function close(){
$q = mysqli_close($this->link);
return $q;
}
}
} else { // we use the old mysql
class DB {
var $link = null;
function __construct($db_host,$db_user,$db_pass,$db_name,$db_port){
$this->link = @mysql_connect($db_host.':'.$db_port, $db_user, $db_pass);
if (!$this->link) die('Connect Error (' . mysql_errno() . ') '.mysql_error());
mysql_select_db($db_name, $this->link) or die(mysql_error($this->link));
mysql_query("set sql_mode = ''");
//字符转换,读库
mysql_query("set character set 'utf8'");
//写库
mysql_query("set names 'utf8'");
return true;
}
function fetch($q){
return mysql_fetch_assoc($q);
}
function num_rows($result){
return mysql_num_rows($result);
}
function get_row($q){
$result = mysql_query($q, $this->link);
return mysql_fetch_assoc($result);
}
function get_column($q){
$result = mysql_query($q, $this->link);
$row = mysql_fetch_array($result);
return $row[0];
}
function count($q){
$result = mysql_query($q, $this->link);
$count = mysql_fetch_array($result);
return $count[0];
}
function query($q){
return mysql_query($q, $this->link);
}
function escape($str){
return mysql_real_escape_string($str, $this->link);
}
function affected(){
return mysql_affected_rows($this->link);
}
function insert($q){
if(mysql_query($q, $this->link))
return mysql_insert_id($this->link);
return false;
}
function insert_array($table,$array){
$q = "INSERT INTO `$table`";
$q .=" (`".implode("`,`",array_keys($array))."`) ";
$q .=" VALUES ('".implode("','",array_values($array))."') ";
if(mysql_query($q, $this->link))
return mysql_insert_id($this->link);
return false;
}
function error(){
$error = mysql_error($this->link);
$errno = mysql_errno($this->link);
return '['.$errno.'] '.$error;
}
function close(){
$q = mysql_close($this->link);
return $q;
}
}
}
?>

@ -0,0 +1,207 @@
<?php
header('Content-Type:application/json');
include("common.php");
define('SAVE_PATH','files/');//保存路径
define('IMG_NAME',date ("Ymdhis").rand(100,999));//文件名
/**
* 通过curl下载
* @param string $url网上资源图片的url
* @return string
*/
function download_img($url,$referer="") {
$maxsize = pow(1024,2)*5; //文件大小5M
$size = remote_filesize($url); //文件大小
if($size > $maxsize){
exit('{"code": "-1","msg":"抓取的图片超过'.$maxsize/pow(1024,2).'M当前为'.round($size/pow(1024,2),2).'M"}');
}
// if($size == 0){
// exit('{"code": "-1","msg":"抓取图片失败"}');
// }
$img_ext = pathinfo($url, PATHINFO_EXTENSION);
//文件后缀名
$file_type = array("jpg","gif","png","ico");
//允许的后缀名
if (!in_array($img_ext,$file_type)) {
exit('{"code": "-1","msg":"抓取的图片类型不支持"}');
}
$img_name = IMG_NAME.'.'.$img_ext;
//文件名
$dir = ROOT.SAVE_PATH.'download/';
$save_to = $dir.$img_name;
if(!is_dir($dir)) {
mkdir($dir,0755,true);
//创建路径
}
$header = array(
'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36',
'Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding: gzip, deflate',
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_ENCODING,'gzip');
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_MAXREDIRS,5);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
if(!empty($referer)){curl_setopt($ch, CURLOPT_REFERER,$referer);}
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
//超过10秒不处理
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//执行之后信息以文件流的形式返回
$data = curl_exec($ch);
curl_close($ch);
$downloaded_file = fopen($save_to, 'w');
fwrite($downloaded_file, $data);
fclose($downloaded_file);
$url = siteurl().'/'.SAVE_PATH.'download/'.$img_name;
echo('{"code": "200","msg":"抓取图片成功","url":"'.$url.'","size":"'.round($size/1024,2).'KB"}');
return $save_to;
}
// 获取远程文件大小
function remote_filesize($url)
{
ob_start();
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
$ok = curl_exec($ch);
curl_close($ch);
$head = ob_get_contents();
ob_end_clean();
$regex = '/Content-Length:\s([0-9].+?)\s/';
$count = preg_match($regex, $head, $matches);
return isset($matches[1]) ? $matches[1] : "0";
}
/**
* PHP上传图片
* @param file 生成的文件
* @return string
*/
function upload_img($upfile) {
$maxsize = pow(1024,2)*5;
//文件大小5M
$dir = ROOT.SAVE_PATH.'upload/';
if(!is_dir($dir)) {
mkdir($dir,0755,true);
//创建路径
}
$type = $upfile ["type"];
$size = $upfile ["size"];
$tmp_name = $upfile ["tmp_name"];
switch ($type) {
case 'image/jpeg' :
case 'image/jpg' :
$extend = ".jpg";
break;
case 'image/gif' :
$extend = ".gif";
break;
case 'image/png' :
$extend = ".png";
break;
case 'image/x-icon':
$extend = ".ico";
break;
}
if (empty( $extend )) {
exit('{"code": "-1","msg":"上传的图片类型不支持"}');
}
if ($size > $maxsize) {
exit('{"code": "-1","msg":"图片不能超过'.$maxsize/pow(1024,2).'M"}');
}
$img_name = IMG_NAME.$extend;
//文件名
$save_to = $dir.$img_name;
$url = siteurl().'/'.SAVE_PATH.'upload/'.$img_name;
if (move_uploaded_file ( $tmp_name, $dir . $img_name )) {
echo('{"code": "200","msg":"上传成功","url":"'.$url.'"}');
return $dir . $img_name;
}
}
/**
* 图像裁剪
* @param $title string 原图路径
* @param $content string 需要裁剪的宽
* @param $encode string 需要裁剪的高
*/
function imagecropper($source_path, $target_width, $target_height) {
if(filesize($source_path)<10000){return false;}
$source_info = getimagesize($source_path);
$source_width = $source_info[0];
$source_height = $source_info[1];
$source_mime = $source_info['mime'];
$source_ratio = $source_height / $source_width;
$target_ratio = $target_height / $target_width;
// 源图过高
if ($source_ratio > $target_ratio) {
$cropped_width = $source_width;
$cropped_height = $source_width * $target_ratio;
$source_x = 0;
$source_y = ($source_height - $cropped_height) / 2;
}
// 源图过宽
elseif ($source_ratio < $target_ratio) {
$cropped_width = $source_height / $target_ratio;
$cropped_height = $source_height;
$source_x = ($source_width - $cropped_width) / 2;
$source_y = 0;
}
// 源图适中
else {
$cropped_width = $source_width;
$cropped_height = $source_height;
$source_x = 0;
$source_y = 0;
}
switch ($source_mime) {
case 'image/gif':
$source_image = imagecreatefromgif($source_path);
break;
case 'image/jpeg':
$source_image = imagecreatefromjpeg($source_path);
break;
case 'image/png':
$source_image = imagecreatefrompng($source_path);
break;
case 'image/x-icon':
$source_image = imagecreatefrompng($source_path);
break;
default:
return false;
break;
}
imagesavealpha($source_image, true);
// 保留源图片透明度
$target_image = imagecreatetruecolor($target_width, $target_height);
$cropped_image = imagecreatetruecolor($cropped_width, $cropped_height);
imagealphablending($target_image, false);
// 不合并图片颜色
imagealphablending($cropped_image, false);
// 不合并图片颜色
imagesavealpha($target_image, true);
// 保留目标图片透明
imagesavealpha($cropped_image, true);
// 保留目标图片透明
imagecopy($cropped_image, $source_image, 0, 0, $source_x, $source_y, $cropped_width, $cropped_height);
// 裁剪
imagecopyresampled($target_image, $cropped_image, 0, 0, 0, 0, $target_width, $target_height, $cropped_width, $cropped_height);
// 缩放
imagepng($target_image,$source_path);
imagedestroy($target_image);
return true;
}
if(empty($_POST["url"]) &&!empty($_FILES["file"])) {
$filename = upload_img($_FILES["file"]);
//上传图片
} elseif(!empty($_POST["url"])) {
$filename = download_img($_POST["url"],$_POST["referer"]);
//下载图片
} else {
exit('{"code": "0","msg":"error"}');
}
imagecropper($filename,480,480)
?>

@ -0,0 +1,355 @@
<?php
function strexists($string, $find) {
return !(strpos($string, $find) === FALSE);
}
function dstrpos($string, $arr) {
if(empty($string)) return false;
foreach((array)$arr as $v) {
if(strpos($string, $v) !== false) {
return true;
}
}
return false;
}
//判断移动端
function checkmobile() {
$useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
$ualist = array('android', 'midp', 'nokia', 'mobile', 'iphone', 'ipod', 'blackberry', 'windows phone');
if((dstrpos($useragent, $ualist) || strexists($_SERVER['HTTP_ACCEPT'], "VND.WAP") || strexists(isset($_SERVER['HTTP_VIA']),"wap"))) {
return true;
} else {
return false;
}
}
//判断蜘蛛
function is_spider() {
$userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
$spiders = array(
'Googlebot',
'Baiduspider',
'Yahoo! Slurp',
'YodaoBot',
'msnbot',
'360Spider',
'spider',
'Spider'
//这里可以加入更多的蜘蛛标示
);
foreach ($spiders as $spider) {
$spider = strtolower($spider);
if (strpos($userAgent, $spider) !== false) {
return true;
}
}
return false;
}
function daddslashes($string) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = daddslashes($val);
}
} else {
$string = addslashes($string);
}
return $string;
}
function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {
$ckey_length = 4;
$key = md5($key ? $key : ENCRYPT_KEY);
$keya = md5(substr($key, 0, 16));
$keyb = md5(substr($key, 16, 16));
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length) : substr(md5(microtime()) , -$ckey_length)) : '';
$cryptkey = $keya . md5($keya . $keyc);
$key_length = strlen($cryptkey);
$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0) . substr(md5($string . $keyb) , 0, 16) . $string;
$string_length = strlen($string);
$result = '';
$box = range(0, 255);
$rndkey = array();
for ($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
}
for ($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}
for ($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result.= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}
if ($operation == 'DECODE') {
if ((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26) . $keyb) , 0, 16)) {
return substr($result, 26);
} else {
return '';
}
} else {
return $keyc . str_replace('=', '', base64_encode($result));
}
}
//CDN
function cdnpublic($cdnpublic) {
if(empty($cdnpublic)) {
return '.';
} else {
return $cdnpublic.$conf['version'];
}
}
//获取协议和域名
function siteurl() {
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$domainName = $_SERVER['HTTP_HOST'];
return $protocol . $domainName;
}
$background = $conf["background"];
//网站背景
function background() {
return $GLOBALS['background_img'];
}
//程序更新
function update() {
$update_host = 'https://cdn.lylme.com/api/update'; //程序更新服务器,请勿删除和修改,否则将导致无法接收版本更新和程序报错
@$update = json_decode(get_curl($update_host.'?ver='.VERSION.'&domain='.$_SERVER['HTTP_HOST']),true);
return $update;
}
function getver($ver) {
$vn = explode('.', str_replace('v', '', $ver));
return $vn[0] . sprintf("%02d", $vn[1]) . sprintf("%02d", $vn[2]);
}
//更新设置
function saveSetting($k, $v) {
global $DB;
$v = daddslashes($v);
return $DB->query("UPDATE `lylme_config` SET `v` = '$v' WHERE `lylme_config`.`k` = '$k';");
}
//获取相对路径
function get_urlpath($srcurl,$baseurl) {
if(substr($srcurl,0,2)=="//"){
return parse_url($baseurl)['scheme'].':'.$srcurl;
}
if(empty($srcurl))return '';
$srcinfo = parse_url($srcurl);
if(isset($srcinfo['scheme'])) {
return $srcurl;
}
$baseinfo = parse_url($baseurl);
$url = $baseinfo['scheme'].'://'.$baseinfo['host'];
if(substr($srcinfo['path'], 0, 1) == '/') {
$path = $srcinfo['path'];
} else {
$path = dirname($baseinfo['path']).'/'.$srcinfo['path'];
}
$rst = array();
$path_array = explode('/', $path);
if(!$path_array[0]) {
$rst[] = '';
}
foreach ($path_array AS $key => $dir) {
if ($dir == '..') {
if (end($rst) == '..') {
$rst[] = '..';
} elseif(!array_pop($rst)) {
$rst[] = '..';
}
} elseif($dir && $dir != '.') {
$rst[] = $dir;
}
}
if(!end($path_array)) {
$rst[] = '';
}
$url .= implode('/', $rst);
if( !empty($srcinfo['query']) ) $url .= '?'.$srcinfo['query'];
return str_replace('\\', '/', $url);
}
//获取客户端IP
function get_real_ip() {
$ip=FALSE;
//客户端IP 或 NONE
if(!empty($_SERVER["HTTP_CLIENT_IP"])) {
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
//多重代理服务器下的客户端真实IP地址可能伪造,如果没有使用代理,此字段为空
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip) {
array_unshift($ips, $ip);
$ip = FALSE;
}
for ($i = 0; $i < count($ips); $i++) {
if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
$ip = $ips[$i];
break;
}
}
}
//客户端IP 或 (最后一个)代理服务器 IP
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
function yan() {
$filename = ROOT.'/assets/data/data.dat';
//随机一言文件路径
if (file_exists($filename)) {
$data = explode(PHP_EOL, file_get_contents($filename));
$result = str_replace(array(
"\r",
"\n",
"\r\n"
) , '', $data[array_rand($data) ]);
return $result;
}
}
function rearr($data,$arr) {
$arr = str_replace('{group_id}', $data['group_id'],$arr);
$arr = str_replace('{group_name}', $data['group_name'],$arr);
$arr = str_replace('{group_icon}', $data['group_icon'],$arr);
$arr = str_replace('{link_id}', $data['id'],$arr);
$arr = str_replace('{link_name}', $data['name'],$arr);
$arr = str_replace('{link_url}', $data['url'],$arr);
if (empty($data["icon"])) {
$icon = '<img src="/assets/img/default-icon.png" alt="' . $data["name"] . '" />';
} else if (!preg_match("/^<svg*/", $data["icon"])) {
$icon = '<img src="' . $data["icon"] . '" alt="' . $data["name"] . '" />';
} else {
$icon = $data["icon"];
}
$arr = str_replace('{link_icon}', $icon,$arr);
return $arr;
}
//获取head
function get_head($url) {
header("Content-type:text/html;charset=utf-8");
$data = get_curl($url);
//获取网站title
preg_match('/<title.*?>(?<title>.*?)<\/title>/sim', $data, $title);
$encode = mb_detect_encoding($title['title'], array('GB2312','GBK','UTF-8', 'CP936'));
//得到字符串编码
$file_charset = iconv_get_encoding()['internal_encoding'];
//当前文件编码
if ( $encode != 'CP936' && $encode != $file_charset) {
$title = iconv($encode, $file_charset, $title['title']);
$data = iconv($encode, $file_charset, $data);
} else {
$title = $title['title'];
}
// 获取网站icon
preg_match('/<link rel=".*?icon" * href="(.*?)".*?>/is', $data,$icon);
preg_match('/<meta +name *=["\']?description["\']? *content=["\']?([^<>"]+)["\']?/i', $data, $description);
preg_match('/<meta +name *=["\']?keywords["\']? *content=["\']?([^<>"]+)["\']?/i', $data, $keywords);
$icon = $icon[1];
if(!empty($icon)){
$icon = get_urlpath($icon,$url);
}else{
$parse = parse_url($url);
$port = $parse['port']==80||$parse['port']=="" ? '': ":".$parse['port'];
$iconurl = $parse['scheme'].'://'.$parse['host'].$port.'/favicon.ico';
if(get_curl($iconurl)!=404) {
$icon = $iconurl;
}
}
$get_heads=array("title" =>$title,"charset"=> $encode,"icon" => $icon,"description"=>$description[1],"keywords"=>$keywords[1],"url"=>$url);
return $get_heads;
}
//模拟GET请求
function get_curl($url) {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36 Edg/101.0.1210.39 Lylme/11.24'
),
));
$contents = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if($httpCode==404) {
return $httpCode;
}
return $contents;
}
//长度判断
function strlens($str) {
if(strlen($str) > 255) {
return true;
} else {
return false;
}
}
//apply($name, $url, $icon, $group_id);
function apply($name, $url, $icon, $group_id, $status) {
$name=strip_tags(daddslashes($name));
$url=strip_tags(daddslashes($url));
$icon=strip_tags(daddslashes($icon));
$group_id=strip_tags(daddslashes($group_id));
$userip = get_real_ip();
$date = date("Y-m-d H:i:s");
if(empty($name) || empty($url) || empty($group_id)) {
//|| empty($icon)
return('{"code": "-1", "msg": "必填项不能为空"}');
} else if(!preg_match('/^http*/i', $url)) {
return('{"code": "-2", "msg": "链接不符合要求"}');
} else if(strlens($name)||strlens($url)||strlens($icon)||strlens($group_id)||strlens($userip)) {
return('{"code": "500", "msg": "非法参数"}');
} else {
global $DB;
if($DB->num_rows($DB->query("SELECT * FROM `lylme_apply` WHERE `apply_url` LIKE '".$url."';"))>0) {
return('{"code": "-3", "msg": "链接已存在,请勿重复提交"}');
}
$sql = "INSERT INTO `lylme_apply` (`apply_id`, `apply_name`, `apply_url`, `apply_group`, `apply_icon`, `apply_mail`, `apply_time`, `apply_status`) VALUES (NULL, '".$name."', '".$url."', '".$group_id."', '".$icon."', '".$userip."', '".$date."', '".$status."');";
if($DB->query($sql)) {
switch ($status) {
case 0:
return('{"code": "200", "msg": "请等待管理员审核"}');
break;
case 1:
if(ins_link($name, $url, $icon, $group_id, $status,$userip)) {
return('{"code": "200", "msg": "网站已收录"}');
} else {
return('{"code": "-5", "msg": "请联系网站管理员"}');
}
break;
}
} else {
return('{"code": "-4", "msg": "未知错误,请联系网站管理员"}');
}
}
}
function ins_link($name, $url, $icon, $group_id, $status) {
global $DB;
$name=strip_tags(daddslashes($name));
$url=strip_tags(daddslashes($url));
$icon=strip_tags(daddslashes($icon));
$group_id=strip_tags(daddslashes($group_id));
$userip = get_real_ip();
$date = date("Y-m-d H:i:s");
$link_order = $DB->count('select MAX(id) from `lylme_links`')+1;
$sql1 = "INSERT INTO `lylme_links` (`id`, `name`, `group_id`, `url`, `icon`, `PS`,`link_order`) VALUES (NULL, '" . $name . "', '" . $group_id . "', '" . $url . "', '" . $icon . "', '" . $userip . "的提交 ', '" . $link_order . "');";
if($DB->query($sql1)) {
return true;
} else {
return false;
}
}
function theme_file($file) {
global $conf;
$theme = ROOT.'template/'.$conf['template'].'/'.$file;
if(file_exists($theme)) {
return $theme;
} else {
return 'template/'.$file;
}
}
?>

@ -0,0 +1,53 @@
<?php
if(!empty($_GET['url'])){
$url = $_GET['url'];
header("Location:$url");
exit();
}
include("common.php");
session_start(); //设置session
if($_POST['exit']=='exit'){
//注销登录
$_SESSION['pass'] = 0;
$_SESSION['list'] = array();
header("Location: ".$_SERVER['HTTP_REFERER']);
exit();
}
if($_SESSION['pass'] != 1){
//未登录
$pass = daddslashes($_POST['pass']);
if(!empty($pass)){
//用户提交登录
$show = array();
$pwds = $DB->query("SELECT `pwd_id`, `pwd_key` FROM `lylme_pwd` WHERE `pwd_key` LIKE '".$pass."';");
while ($pwd = $DB->fetch($pwds)) {
array_push($show,$pwd[pwd_id]);
}
if(empty($show)){
//无数据
exit('<script>alert("密码错误!");window.location.href="'.$_SERVER['HTTP_REFERER'].'";</script>');
}
else{
//有数据
$_SESSION['list'] = $show;
$_SESSION['pass'] = 1;
}
}
}
else {
//已登录
if(!empty($pass)){
$show = array();
$pwds = $DB->query("SELECT `pwd_id`, `pwd_key` FROM `lylme_pwd` WHERE `pwd_key` LIKE '".$pass."';");
while ($pwd = $DB->fetch($pwds)) {
array_push($show,$pwd['pwd_id']);
}
if(empty($show)){
$_SESSION['pass'] = 0;
$_SESSION['list'] = array();
}
}
}
if(basename($_SERVER['PHP_SELF']) != basename(__FILE__)) return;
header("Location: ../");
?>

@ -0,0 +1,69 @@
<?php
// +----------------------------------------------------------+
// | LyLme Spage |
// +----------------------------------------------------------+
// | Copyright (c) 2022 LyLme |
// +----------------------------------------------------------+
// | File: lists.php |
// +----------------------------------------------------------+
// | Authors: LyLme <admin@lylme.com> |
// | date: 2022-06-10 |
// +----------------------------------------------------------+
function lists($htmls) {
global $DB;
$groups = $DB->query("SELECT * FROM `lylme_groups` ORDER BY `group_order` ASC");
// 获取分类
$i = 0;
//初始化循环次数
while ($group = $DB->fetch($groups)) {
//循环所有分组
$html = rearr($group,$htmls);
if($group["group_status"]=='0') {
continue;
}
if(!in_array($group['group_pwd'],$_SESSION['list'])&&!empty($group['group_pwd'])) {
//如果 分组加密未在认证列表 并且分组设置了密码(不显示分组)
continue;
}
$sql = "SELECT * FROM `lylme_links` WHERE `group_id` = " . $group['group_id']." ORDER BY `link_order` ASC;";
$group_links = $DB->query($sql);
$link_num = $DB->num_rows($group_links);
// 获取返回字段条目数量
echo $html['g1'].$html['g2'];
//输出分组图标和标题
if ($link_num == 0) {
echo $html['g3'] . "\n\n";
$i = 0;
continue;
}
while ($link = $DB->fetch($group_links)) {
// 循环每个链接
$html = rearr($link,$htmls);
// 返回指定分组下的所有字段
$lpwd = true;
if ($link_num > $i) {
$i = $i + 1;
if(!empty($group['group_pwd'])&&!empty($link['link_pwd'])) {
//分组和链接同时加密
//忽略链接加密正常显示分组
} else if(!in_array($link['link_pwd'],$_SESSION['list'])&&!empty($link['link_pwd'])) {
//当前链接加密
$lpwd = false;
}
if($link['link_status'] && $lpwd ) {
echo "\n" .$html['l1'].$html['l2'].$html['l3'];
}
//输出图标和链接
}
if ($link_num == $i) {
//判断当前分组链接循环完毕
echo $html['g3'] . "\n\n";
//输出分类结束标签
$i = 0;
break;
//重置$i为0跳出当前循环
}
}
}
}
?>

@ -0,0 +1,11 @@
<?php
if(isset($_COOKIE["admin_token"]))
{
$token=authcode(daddslashes($_COOKIE['admin_token']), 'DECODE', SYS_KEY);
list($user, $sid) = explode("\t", $token);
$session=md5($conf['admin_user'].$conf['admin_pwd']);
if($session==$sid) {
$islogin=1;
}
}
?>

@ -0,0 +1,52 @@
<?php
$file = SYSTEM_ROOT."/log.txt";
if(!file_exists($file)){
touch($file);
}
else{
$fp=fopen($file,'r+');
$content='';
if (flock($fp,LOCK_EX)){
while (($buffer=fgets($fp,1024))!=false){
$content=$content.$buffer;
}
$tjdate=unserialize($content);
//设置记录键值
$tjtotal = 'total';
$tjmonth = date('Ym');
$tjtoday = date('Ymd');
$tjyesterday = date('Ymd',strtotime("-1 day"));
$tongji = array();
if(strpos($_SERVER['REQUEST_URI'],'admin')==false){
$tongji[$tjtotal] = $tjdate[$tjtotal] + 1;
// 本月访问量增加
$tongji[$tjmonth] = $tjdate[$tjmonth] + 1;
// 今日访问增加
$tongji[$tjtoday] = $tjdate[$tjtoday] + 1;
//保持昨天访问
$tongji[$tjyesterday] = $tjdate[$tjyesterday];
ftruncate($fp,0); // 将文件截断到给定的长度
rewind($fp); // 倒回文件指针的位置
fwrite($fp, serialize($tongji));
}
else{
$tongji[$tjtotal] = $tjdate[$tjtotal] ;
// 本月访问量增加
$tongji[$tjmonth] = $tjdate[$tjmonth];
// 今日访问增加
$tongji[$tjtoday] = $tjdate[$tjtoday];
//保持昨天访问
$tongji[$tjyesterday] = $tjdate[$tjyesterday];
}
flock($fp,LOCK_UN);
fclose($fp);
//输出数据
$tjtotal = $tongji[$tjtotal];
$tjmonth = $tongji[$tjmonth];
$tjtoday = $tongji[$tjtoday];
$tjyesterday = $tongji[$tjyesterday]?$tongji[$tjyesterday]:0;
//访总问 {$tjtotal} 本月 {$tjmonth} 昨日 {$tjyesterday} 今日 {$tjtoday}
}
}
?>

@ -0,0 +1,67 @@
<?php
if(empty(constant("VERSION")))return 0;
function get_vernum($version){
$vn = explode('.',str_replace('v','',$version));
$vernum = $vn[0].sprintf("%02d",$vn[1]).sprintf("%02d",$vn[2]);
return $vernum;
}
$sqlvn = get_vernum($conf['version']); //数据库版本
$filevn = get_vernum(constant("VERSION")); // 文件版本
if($sqlvn < $filevn){
//文件版本大于数据库版本执行更新
$sql= '';
if($sqlvn < 10101) {
$version = 'v1.1.1';
$sql = $sql.file_get_contents(ROOT.'install/update.sql');
}
if($sqlvn < 10103) {
$version = 'v1.1.3';
@unlink(ROOT.'include/head.php');
@unlink(ROOT.'include/home.php');
@unlink(ROOT.'include/apply.php');
@unlink(ROOT.'include/footer.php');
$sql = $sql.file_get_contents(ROOT.'install/update1.sql');
}
if($sqlvn < 10104) {
$version = 'v1.1.4';
}
if($sqlvn < 10105) {
$version = 'v1.1.5';
$sql = $sql.file_get_contents(ROOT.'install/update2.sql');
}
if($sqlvn < 10106) {
$version = 'v1.1.6';
$sql = $sql.file_get_contents(ROOT.'install/update3.sql');
}
if($sqlvn < 10109) {
$version = 'v1.1.9';
$sql = $sql.file_get_contents(ROOT.'install/update4.sql');
}
if($sqlvn < 10200) {
$version = 'v1.2.0';
$sql = $sql.file_get_contents(ROOT.'install/update5.sql');
}
if($sqlvn < 10205) {
$version = 'v1.2.5';
}
if($sqlvn < 10300) {
$version = 'v1.3.0';
}
if($sqlvn < 10304) {
$version = 'v1.3.4';
}
if($sqlvn < 10500) {
$version = 'v1.5.0';
}
if($sqlvn < 10501) {
$version = 'v1.5.1';
$sql = $sql.file_get_contents(ROOT.'install/update6.sql');
}
$sql=explode(';',$sql);
for ($i=0;$i<count($sql);$i++) {
if (trim($sql[$i])=='')continue;
if($DB->query($sql[$i])) {
}
}
saveSetting('version',$version);
}

@ -0,0 +1,51 @@
<?php
session_start();
$image = imagecreatetruecolor(100, 38); //1>设置验证码图片大小的函数
//5>设置验证码颜色 imagecolorallocate(int im, int red, int green, int blue);
$bgcolor = imagecolorallocate($image,255,255,255); //#ffffff
//6>区域填充 int imagefill(int im, int x, int y, int col) (x,y) 所在的区域着色,col 表示欲涂上的颜色
imagefill($image, 0, 0, $bgcolor);
//10>设置变量
$captcha_code = "";
//7>生成随机数字
for($i=0;$i<4;$i++){
//设置字体大小
$fontsize = 8;
//设置字体颜色,随机颜色
$fontcolor = imagecolorallocate($image, rand(0,120),rand(0,120), rand(0,120)); //0-120深颜色
//设置数字
$fontcontent = rand(0,9);
//10>.=连续定义变量
$captcha_code .= $fontcontent;
//设置坐标
$x = ($i*100/4)+rand(5,10);
$y = rand(5,10);
imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
}
//10>存到session
$_SESSION['authcode'] = $captcha_code;
//8>增加干扰元素,设置雪花点
for($i=0;$i<30;$i++){
//设置点的颜色50-200颜色比数字浅不干扰阅读
$pointcolor = imagecolorallocate($image,rand(50,200), rand(50,200), rand(50,200));
//imagesetpixel — 画一个单一像素
imagesetpixel($image, rand(1,99), rand(1,29), $pointcolor);
}
//9>增加干扰元素,设置横线
for($i=0;$i<3;$i++){
//设置线的颜色
$linecolor = imagecolorallocate($image,rand(80,220), rand(80,220),rand(80,220));
//设置线,两点一线
imageline($image,rand(1,99), rand(1,29),rand(1,99), rand(1,29),$linecolor);
}
//2>设置头部image/png
header('Content-Type: image/png');
//3>imagepng() 建立png图形函数
imagepng($image);
//4>imagedestroy() 结束图形函数 销毁$image
imagedestroy($image);

@ -0,0 +1,3 @@
<?php
define('VERSION', '1.5.1');
?>

@ -0,0 +1,9 @@
<?php
@header('Content-Type: text/html; charset=UTF-8');
if (!file_exists('install/install.lock'))
exit('<title>安装程序</title>您还未安装,点击<a href="install"><font color="blue">这里</font></a>开始安装!');
include "./include/common.php";
session_start(); //设置session
$_SESSION['list'] = isset($_SESSION['list'])?$_SESSION['list']:array();
include $template;
?>

@ -0,0 +1,341 @@
<?php
error_reporting(0);
session_start();
@header('Content-Type: text/html; charset=UTF-8');
include '../include/version.php';
$do=isset($_GET['do'])?$_GET['do']:'0';
if(file_exists('install.lock')){
exit('您已经安装过,如需重新安装请删除<font color=red> install/install.lock </font>文件后再安装!');
}
function checkfunc($f,$m = false) {
if (function_exists($f)) {
return '<font color="green">可用</font>';
} else {
if ($m == false) {
return '<font color="black">不支持</font>';
} else {
return '<font color="red">不支持</font>';
}
}
}
function checkclass($f,$m = false) {
if (class_exists($f)) {
return '<font color="green">可用</font>';
} else {
if ($m == false) {
return '<font color="black">不支持</font>';
} else {
return '<font color="red">不支持</font>';
}
}
}
function checkconnect($connect){
if(function_exists($connect)){
echo '<font color="green">可用</font>';}
else {
echo '<font color="red">不支持</font>';
}
}
$ver = constant("VERSION");
?>
<html lang="zh-cn">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0,user-scalable=no,minimal-ui">
<title>六零导航页 - 安装程序</title>
<link href="//lib.baomitu.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet"/>
</head>
<body>
<nav class="navbar navbar-fixed-top navbar-default">
<div class="container">
<div class="navbar-header">
<span class="navbar-brand">安装向导</span>
</div>
</div>
</nav>
<div class="container" style="padding-top:60px;">
<div class="col-xs-12 col-sm-8 col-lg-6 center-block" style="float: none;">
<?php if($do=='0'){
$_SESSION['checksession']=1;
?>
<div class="panel panel-primary">
<div class="panel-heading" style="background: #15A638;">
<h3 class="panel-title" align="center">用户使用协议阅读</h3>
</div>
<div class="panel-body">
<p><iframe src="readme.html" style="width:100%;height:465px;"></iframe></p>
<p align="center"><a id="agreebtn" class="btn btn-primary" href="index.php?do=1">同意协议并开始安装</a></p>
</div>
</div>
<?php }elseif($do=='1'){?>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title" align="center">环境检查</h3>
</div>
<div class="progress progress-striped">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 10%">
<span class="sr-only">10%</span>
</div>
</div>
<table class="table table-striped">
<thead>
<tr>
<th style="width:20%">函数检测</th>
<th style="width:15%">需求</th>
<th style="width:15%">当前</th>
<th style="width:50%">用途</th>
</tr>
</thead>
<tbody>
<tr>
<td>PHP 5.4及以上</td>
<td>必须</td>
<td><?php echo version_compare(PHP_VERSION, '5.4.0', '>')?'<font color="green">'.PHP_VERSION.'</font>':'<font color="red">'.PHP_VERSION.'</font>'; ?></td>
<td>PHP版本支持</td>
</tr>
<tr>
<td>PDO</td>
<td>必须</td>
<td><?php echo checkclass('PDO',true); ?></td>
<td>数据库连接</td>
</tr>
<tr>
<td>file_get_contents()</td>
<td>必须</td>
<td><?php echo checkfunc('file_get_contents',true); ?></td>
<td>读取文件</td>
</tr>
<tr>
<td>session</td>
<td>必须</td>
<td><?php echo $_SESSION['checksession']==1?'<font color="green">可用</font>':'<font color="red">不支持</font>'; ?></td>
<td>PHP必备功能</td>
</tr>
</tbody>
</table>
<p><span><a class="btn btn-primary" href="index.php?do=0"><<上一步</a></span>
<span style="float:right"><a class="btn btn-primary" href="index.php?do=2" align="right">下一步>></a></span></p>
</div>
<?php }elseif($do=='2'){?>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title" align="center">数据库配置</h3>
</div>
<div class="progress progress-striped">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 30%">
<span class="sr-only">30%</span>
</div>
</div>
<div class="panel-body">
<?php
if(!defined("SAE_ACCESSKEY"))
echo <<<HTML
<form action="?do=3" class="form-sign" method="post">
<label for="name">数据库地址:</label>
<input type="text" class="form-control" name="db_host" value="localhost">
<label for="name">数据库端口:</label>
<input type="text" class="form-control" name="db_port" value="3306">
<label for="name">数据库用户名:</label>
<input type="text" class="form-control" name="db_user">
<label for="name">数据库密码:</label>
<input type="text" class="form-control" name="db_pwd">
<label for="name">数据库名:</label>
<input type="text" class="form-control" name="db_name">
<br><input type="submit" class="btn btn-primary btn-block" name="submit" value="保存配置">
</form><br/>
如果已事先填写好config.php相关数据库配置<a href="?do=3&jump=1">点击此处</a> 跳过这一步!)
HTML;
?>
</div>
</div>
<?php }elseif($do=='3'){
?>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title" align="center">保存数据库</h3>
</div>
<div class="progress progress-striped">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 50%">
<span class="sr-only">50%</span>
</div>
</div>
<div class="panel-body">
<?php
if(defined("SAE_ACCESSKEY") || $_GET['jump']==1){
include_once '../config.php';
if(!$dbconfig['user']||!$dbconfig['pwd']||!$dbconfig['dbname']) {
echo '<div class="alert alert-danger">请先填写好数据库并保存后再安装!<hr/><a href="javascript:history.back(-1)"><< 返回上一页</a></div>';
} else {
if(!$con=mysqli_connect($dbconfig['host'],$dbconfig['user'],$dbconfig['pwd'],$dbconfig['dbname'],$dbconfig['port'])){
if(mysqli_connect_errno()==2002)
echo '<div class="alert alert-warning">连接数据库失败,数据库地址填写错误!</div>';
elseif(mysqli_connect_errno()==1045)
echo '<div class="alert alert-warning">连接数据库失败,数据库用户名或密码填写错误!</div>';
elseif(mysqli_connect_errno()==1049)
echo '<div class="alert alert-warning">连接数据库失败,数据库名不存在!</div>';
else
echo '<div class="alert alert-warning">连接数据库失败,['.mysqli_connect_errno().']'.mysqli_connect_error().'</div>';
}elseif(version_compare(mysqli_get_server_info($con), '5.5.3', '<')){
echo '<div class="alert alert-warning">MySQL数据库版本太低需要MySQL 5.6或以上版本!</div>';
}else{
echo '<div class="alert alert-success">数据库配置文件保存成功!</div>';
if(mysqli_query($con, "select * from lylme_config where 1")==FALSE)
echo '<p align="right"><a class="btn btn-primary btn-block" href="?do=4">创建数据表>></a></p>';
else
echo '<div class="list-group-item list-group-item-info">系统检测到你已安装过六零导航页</div>
<div class="list-group-item">
<a href="?do=6" class="btn btn-block btn-info">跳过安装</a>
</div>
<div class="list-group-item">
<a href="?do=4" onclick="if(!confirm(\'全新安装将会清空所有数据,是否继续?\')){return false;}" class="btn btn-block btn-warning">强制全新安装</a>
</div>';
}
}
}else{
$db_host=isset($_POST['db_host'])?$_POST['db_host']:NULL;
$db_port=isset($_POST['db_port'])?$_POST['db_port']:NULL;
$db_user=isset($_POST['db_user'])?$_POST['db_user']:NULL;
$db_pwd=isset($_POST['db_pwd'])?$_POST['db_pwd']:NULL;
$db_name=isset($_POST['db_name'])?$_POST['db_name']:NULL;
if($db_host==null || $db_port==null || $db_user==null || $db_pwd==null || $db_name==null){
echo '<div class="alert alert-danger">保存错误,请确保每项都不为空<hr/><a href="javascript:history.back(-1)"><< 返回上一页</a></div>';
} else {
$config='<?php
/*数据库配置*/
$dbconfig=array(
"host" => "'.$db_host.'", //数据库服务器
"port" => '.$db_port.', //数据库端口
"user" => "'.$db_user.'", //数据库用户名
"pwd" => "'.$db_pwd.'", //数据库密码
"dbname" => "'.$db_name.'", //数据库名
);
?>';
if(!$con=mysqli_connect($db_host,$db_user,$db_pwd,$db_name,$db_port)){
if(mysqli_connect_errno()==2002)
echo '<div class="alert alert-warning">连接数据库失败,数据库地址填写错误!</div>';
elseif(mysqli_connect_errno()==1045)
echo '<div class="alert alert-warning">连接数据库失败,数据库用户名或密码填写错误!</div>';
elseif(mysqli_connect_errno()==1044)
echo '<div class="alert alert-warning">连接数据库失败,数据库名填写错误!</div>';
elseif(mysqli_connect_errno()==1049)
echo '<div class="alert alert-warning">连接数据库失败,数据库名不存在!</div>';
else
echo '<div class="alert alert-warning">连接数据库失败,['.mysqli_connect_errno().']'.mysqli_connect_error().'</div>';
}elseif(version_compare(mysqli_get_server_info($con), '5.5.3', '<')){
echo '<div class="alert alert-warning">MySQL数据库版本太低需要MySQL 5.6或以上版本!</div>';
}elseif(file_put_contents('../config.php',$config)){
if(function_exists("opcache_reset"))@opcache_reset();
echo '<div class="alert alert-success">数据库配置文件保存成功!</div>';
if(mysqli_query($con, "select * from lylme_config where 1")==FALSE)
echo '<p align="right"><a class="btn btn-primary btn-block" href="?do=4">创建数据表>></a></p>';
else
echo '<div class="list-group-item list-group-item-info">系统检测到你已安装过六零导航页</div>
<div class="list-group-item">
<a href="?do=6" class="btn btn-block btn-info">跳过安装</a>
</div>
<div class="list-group-item">
<a href="?do=4" onclick="if(!confirm(\'全新安装将会清空所有数据,是否继续?\')){return false;}" class="btn btn-block btn-warning">强制全新安装</a>
</div>';
}else
echo '<div class="alert alert-danger">保存失败,请确保网站根目录有写入权限<hr/><a href="javascript:history.back(-1)"><< 返回上一页</a></div>';
}
}
?>
</div>
</div>
<?php }elseif($do=='4'){?>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title" align="center">创建数据表</h3>
</div>
<div class="progress progress-striped">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 70%">
<span class="sr-only">70%</span>
</div>
</div>
<div class="panel-body">
<?php
include_once '../config.php';
if(!$dbconfig['user']||!$dbconfig['pwd']||!$dbconfig['dbname']) {
echo '<div class="alert alert-danger">请先填写好数据库并保存后再安装!<hr/><a href="javascript:history.back(-1)"><< 返回上一页</a></div>';
} else {
date_default_timezone_set("PRC");
$date = date("Y-m-d");
$sql=file_get_contents("install.sql");
$sql=explode(';',$sql);
$sql[] = "INSERT INTO `lylme_config` VALUES ('build', '".$date."', '建站日期')";
$cn = mysqli_connect($dbconfig['host'],$dbconfig['user'],$dbconfig['pwd'],$dbconfig['dbname'],$dbconfig['port']);
if (!$cn) die('链接数据库失败:['.mysqli_connect_errno().']'.mysqli_connect_error());
mysqli_query($cn, "set sql_mode = ''");
mysqli_query($cn, "set names utf8");
$t=0; $e=0; $error='';
for($i=0;$i<count($sql);$i++) {
if (trim($sql[$i])=='')continue;
if(mysqli_query($cn, $sql[$i])) {
++$t;
} else {
++$e;
$error.=mysqli_error($cn).'<br/>';
}
}
}
if($e==0) {
echo '<div class="alert alert-success">安装成功!<br/>SQL成功'.$t.'句/失败'.$e.'句</div><p align="right"><a class="btn btn-block btn-primary" href="index.php?do=5">下一步>></a></p>';
} else {
echo '<div class="alert alert-danger">安装失败<br/>SQL成功'.$t.'句/失败'.$e.'句<br/>错误信息:'.$error.'</div><p align="right"><a class="btn btn-block btn-primary" href="index.php?do=4">点此进行重试</a></p>';
}
?>
</div>
</div>
<?php }elseif($do=='5'){ ?>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title" align="center">安装完成</h3>
</div>
<div class="progress progress-striped">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 100%">
<span class="sr-only">100%</span>
</div>
</div>
<div class="panel-body">
<?php
$domian=array('lylme','https',$ver);
@file_get_contents($domian[1].'://dev.hao.'.$domian[0].'.com/installs?v='.$domian[2].'&date='.date('Y-m-d H:i').'&url='.$_SERVER['HTTP_HOST'], false, stream_context_create(array('http'=>array('method'=>"GET",'timeout'=>10))));
@file_put_contents("install.lock",'安装锁');
echo '<div class="alert alert-info"><font color="green">安装完成!管理账号和密码是:admin/123456</font><br/><br/><a href="../" target="_blank">>>网站首页</a><a href="../admin/" target="_blank">>>后台管理</a><hr/>更多设置选项请登录后台管理进行修改。<br/><br/><font color="#FF0033">如果你的空间不支持本地文件读写请自行在install/ 目录建立 install.lock 文件!</font></div></div>';
?>
</div>
</div>
<?php }elseif($do=='6'){ ?>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title" align="center">安装完成</h3>
</div>
<div class="progress progress-striped">
<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 100%">
<span class="sr-only">100%</span>
</div>
</div>
<div class="panel-body">
<?php
@file_put_contents("install.lock",'安装锁');
echo '<div class="alert alert-info"><font color="green">安装完成!管理账号和密码是:admin/123456</font><br/><br/><a href="../" target="_blank">>>网站首页</a><a href="../admin/" target="_blank">>>后台管理</a><hr/>更多设置选项请登录后台管理进行修改。<br/><br/><font color="#FF0033">如果你的空间不支持本地文件读写请自行在install/ 目录建立 install.lock 文件!</font></div>';
?>
</div>
</div>
<?php }?>
</div>
</body>
</html>

@ -0,0 +1,244 @@
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!50503 SET NAMES utf8mb4 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
DROP TABLE IF EXISTS `lylme_apply`;
CREATE TABLE IF NOT EXISTS `lylme_apply` (
`apply_id` int(4) NOT NULL AUTO_INCREMENT,
`apply_name` varchar(20) NOT NULL,
`apply_url` varchar(255) NOT NULL,
`apply_group` int(2) NOT NULL,
`apply_icon` text NOT NULL,
`apply_mail` varchar(30) NOT NULL,
`apply_time` datetime NOT NULL,
`apply_status` int(11) NOT NULL,
PRIMARY KEY (`apply_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='收录申请';
DELETE FROM `lylme_apply`;
/*!40000 ALTER TABLE `lylme_apply` DISABLE KEYS */;
/*!40000 ALTER TABLE `lylme_apply` ENABLE KEYS */;
DROP TABLE IF EXISTS `lylme_config`;
CREATE TABLE IF NOT EXISTS `lylme_config` (
`k` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '',
`v` text COLLATE utf8mb4_unicode_ci COMMENT '',
`description` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '描述',
PRIMARY KEY (`k`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPACT COMMENT='导航配置';
DELETE FROM `lylme_config`;
/*!40000 ALTER TABLE `lylme_config` DISABLE KEYS */;
INSERT INTO `lylme_config` (`k`, `v`, `description`) VALUES
('admin_user', 'admin', '管理员账号'),
('admin_pwd', '123456', '管理员密码'),
('apply', '0', '收录申请'),
('apply_gg', '<b>收录说明:</b><br>1. 禁止提交违规违法站点<br>2. 页面整洁,无多个弹窗广告和恶意跳转<br>3. 非盈利性网站,网站正常访问<br>4. 添加本站友链或网站已ICP备案优先收录<br>', '收录公告'),
('background', './assets/img/background.jpg', '背景图片'),
('cdnpublic', NULL, 'CDN地址'),
('copyright', 'Copyright ©2022 <a href="/">LyLme Spage</a>. All Rights Reserved.', '版权代码'),
('description', '六零导航页(LyLme Spage)致力于简洁高效无广告的上网导航和搜索入口,沉淀最具价值链接,全站无商业推广,简约而不简单。', '网站描述'),
('home-title', '<h2 class="title">上网,从这里开始!</h2>', '首页标题'),
('icp', '', '备案号'),
('keywords', '六零导航页,百度搜索,哔哩哔哩搜索,知乎搜索,六零导航,LyLme Spage,六零,LyLme,网站导航,上网导航', '关键字'),
('logo', './assets/img/logo.png', '网站图标'),
('template', 'default', '网站模板'),
('title', '上网导航 - LyLme Spage', '网站名称'),
('tq', 'true', '天气显示开关'),
('version', 'v1.3.0', '程序版本'),
('wap_background', NULL, '手机端背景'),
('wztj', '', '网站统计代码'),
('yan', 'true', '随机一言开关');
/*!40000 ALTER TABLE `lylme_config` ENABLE KEYS */;
DROP TABLE IF EXISTS `lylme_groups`;
CREATE TABLE IF NOT EXISTS `lylme_groups` (
`group_id` int(2) NOT NULL AUTO_INCREMENT COMMENT '分组ID',
`group_name` varchar(10) NOT NULL COMMENT '分组名称',
`group_icon` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '分组图标',
`group_order` int(4) NOT NULL DEFAULT '5' COMMENT '分组排序',
`group_status` int(1) NOT NULL DEFAULT '1' COMMENT '分组状态',
`group_pwd` int(2) NOT NULL DEFAULT '0' COMMENT '加密组ID',
PRIMARY KEY (`group_id`) USING BTREE,
UNIQUE KEY `group_name` (`group_name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT;
DELETE FROM `lylme_groups`;
/*!40000 ALTER TABLE `lylme_groups` DISABLE KEYS */;
INSERT INTO `lylme_groups` (`group_id`, `group_name`, `group_icon`, `group_order`, `group_status`, `group_pwd`) VALUES
(1, '常用导航', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-remen"></use></svg>', 1, 1, 0),
(2, '设计视觉', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-sheji"></use></svg>', 2, 1, 0),
(3, '社交&存储', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-msg"></use></svg>', 3, 1, 0),
(4, '工具', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-ai-tool"></use></svg>', 4, 1, 0),
(5, '开发', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-kongzhitai"></use></svg>', 5, 1, 0),
(6, '游戏娱乐', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-game00"></use></svg>', 6, 1, 0),
(7, '网站公告', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-gg00"></use></svg>', 7, 1, 0);
/*!40000 ALTER TABLE `lylme_groups` ENABLE KEYS */;
DROP TABLE IF EXISTS `lylme_links`;
CREATE TABLE IF NOT EXISTS `lylme_links` (
`id` int(4) NOT NULL AUTO_INCREMENT COMMENT '网站ID',
`name` varchar(20) NOT NULL COMMENT '链接标题',
`group_id` int(2) NOT NULL DEFAULT '1' COMMENT '分组名称',
`url` varchar(255) NOT NULL COMMENT '链接地址',
`icon` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '链接图标',
`PS` varchar(255) DEFAULT NULL COMMENT '备注',
`link_order` int(4) DEFAULT '10' COMMENT '链接排序',
`link_status` int(1) NOT NULL DEFAULT '1' COMMENT '链接状态',
`link_pwd` int(2) DEFAULT '0' COMMENT '加密组ID',
PRIMARY KEY (`id`) USING BTREE,
KEY `` (`group_id`) USING BTREE,
CONSTRAINT `` FOREIGN KEY (`group_id`) REFERENCES `lylme_groups` (`group_id`)
) ENGINE=InnoDB AUTO_INCREMENT=81 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT;
DELETE FROM `lylme_links`;
/*!40000 ALTER TABLE `lylme_links` DISABLE KEYS */;
INSERT INTO `lylme_links` (`id`, `name`, `group_id`, `url`, `icon`, `PS`, `link_order`, `link_status`, `link_pwd`) VALUES
(1, '百度', 1, 'https://www.baidu.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-icon_baidulogo"></use></svg>', NULL, 10, 1, 0),
(2, '腾讯视频', 1, 'https://v.qq.com', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-tengxunshipin"></use></svg>', NULL, 10, 1, 0),
(3, '优酷', 1, 'https://www.youku.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-youku"></use></svg>', NULL, 10, 1, 0),
(4, '爱奇艺', 1, 'https://www.iqiyi.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-aiqiyi"></use></svg>', NULL, 10, 1, 0),
(5, '淘宝', 1, 'https://www.taobao.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-taobao"></use></svg>', NULL, 10, 1, 0),
(6, '哔哩哔哩', 1, 'https://www.bilibili.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-bili"></use></svg>', NULL, 10, 1, 0),
(7, '微博', 1, 'https://www.weibo.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-weibo"></use></svg>', NULL, 10, 1, 0),
(8, 'QQ邮箱', 1, 'https://mail.qq.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-qqmail00"></use></svg>', NULL, 10, 1, 0),
(9, '百度贴吧', 1, 'https://tieba.baidu.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-tieba00"></use></svg>', NULL, 10, 1, 0),
(10, 'CCTV直播', 1, 'https://tv.cctv.com/live/index.shtml', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-cctv"></use></svg>', NULL, 10, 1, 0),
(11, '抖音网页版', 1, 'https://www.douyin.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-douyin00"></use></svg>', NULL, 10, 1, 0),
(12, '快手网页版', 1, 'https://www.kuaishou.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-kuaishou00"></use></svg>', NULL, 10, 1, 0),
(13, '网易云音乐', 1, 'https://music.163.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-wyyyy00"></use></svg>', NULL, 10, 1, 0),
(14, 'QQ音乐', 1, 'https://y.qq.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-qqmusic00"></use></svg>', NULL, 10, 1, 0),
(15, '酷狗音乐', 1, 'https://www.kugou.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-kugou00"></use></svg>', NULL, 10, 1, 0),
(16, '虎牙直播', 1, 'https://www.huya.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-huya00"></use></svg>', NULL, 10, 1, 0),
(17, '斗鱼直播', 1, 'https://www.douyu.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-douyu00"></use></svg>', NULL, 10, 1, 0),
(18, '企鹅电竞', 1, 'https://egame.qq.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-qie00"></use></svg>', NULL, 10, 1, 0),
(19, '微信文件传输助手', 1, 'https://filehelper.weixin.qq.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-wechat00"></use></svg>', NULL, 10, 1, 0),
(20, '六零', 1, 'https://www.lylme.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-home00"></use></svg>', NULL, 10, 1, 0),
(21, 'Office模板', 2, 'https://www.officeplus.cn/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-office00"></use></svg>', NULL, 10, 1, 0),
(22, '搞定设计', 2, 'https://www.gaoding.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-gaoding00"></use></svg>', NULL, 10, 1, 0),
(23, '素材天下', 2, 'http://www.sucaitianxia.net/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-video"></use></svg>', NULL, 10, 1, 0),
(24, '千库网', 2, 'https://588ku.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-qianku00"></use></svg>', NULL, 10, 1, 0),
(25, '图怪兽', 2, 'https://818ps.com', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-tu00"></use></svg>', NULL, 10, 1, 0),
(26, '站酷', 2, 'https://www.zcool.com.cn/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-zhanku"></use></svg>', NULL, 10, 1, 0),
(27, '阿里图标', 2, 'https://www.iconfont.cn/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-iconfont"></use></svg>', NULL, 10, 1, 0),
(28, 'IconFinder', 2, 'https://www.iconfinder.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-eye"></use></svg>', NULL, 10, 1, 0),
(29, '优设教程', 2, 'https://uiiiuiii.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-jiaocheng"></use></svg>', NULL, 10, 1, 0),
(30, '知乎', 3, 'https://www.zhihu.com/explore', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-zhihu"></use></svg>', NULL, 10, 1, 0),
(31, '豆瓣', 3, 'https://www.douban.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-douban"></use></svg>', NULL, 10, 1, 0),
(32, '简书', 3, 'https://www.jianshu.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-jianshu"></use></svg>', NULL, 10, 1, 0),
(33, '阿里云盘', 3, 'https://www.aliyundrive.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-alipan00"></use></svg>', NULL, 10, 1, 0),
(34, '百度网盘', 3, 'https://pan.baidu.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-baidupan00"></use></svg>', NULL, 10, 1, 0),
(35, '蓝奏云', 3, 'https://www.lanzou.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-lanzou00"></use></svg>', NULL, 10, 1, 0),
(36, '迅雷云盘', 3, 'https://pan.xunlei.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-xunleipan00"></use></svg>', NULL, 10, 1, 0),
(37, 'OneDrive', 3, 'https://onedrive.live.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-OneDrive00"></use></svg>', NULL, 10, 1, 0),
(38, '天翼云盘', 3, 'https://cloud.189.cn/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-tianyipan00"></use></svg>', NULL, 10, 1, 0),
(39, 'UC网盘', 3, 'https://www.yun.cn/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-yunpan"></use></svg>', NULL, 10, 1, 0),
(40, 'QQ邮箱', 3, 'https://mail.qq.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-qqmail00"></use></svg>', NULL, 10, 1, 0),
(41, 'Gmail', 3, 'https://mail.google.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-gmail"></use></svg>', NULL, 10, 1, 0),
(42, 'Hotmail', 3, 'https://outlook.live.com/mail/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-windows"></use></svg>', NULL, 10, 1, 0),
(43, '网易邮箱', 3, 'https://mail.163.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-wangyi"></use></svg>', NULL, 10, 1, 0),
(44, '新浪邮箱', 3, 'https://mail.sina.com.cn/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-xinlangwang"></use></svg>', NULL, 10, 1, 0),
(45, '阿里邮箱', 3, 'https://mail.aliyun.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-yunyouxiang"></use></svg>', NULL, 10, 1, 0),
(46, '在线工具', 4, 'https://tool.lu/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-ai-tool"></use></svg>', NULL, 10, 1, 0),
(47, 'IP查询', 4, 'https://ip.cn/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-wangluo"></use></svg>', NULL, 10, 1, 0),
(48, '文档在线转换', 4, 'https://xpdf.net/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-docto"></use></svg>', NULL, 10, 1, 0),
(49, '谷歌翻译', 4, 'https://translate.google.cn/?hl=zh-CN', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-fanyi"></use></svg>', NULL, 10, 1, 0),
(50, '有道翻译', 4, 'https://fanyi.youdao.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-youdao00"></use></svg>', NULL, 10, 1, 0),
(51, 'HTML在线运行', 4, 'https://c.runoob.com/front-end/61/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-html00"></use></svg>', NULL, 10, 1, 0),
(52, 'MD编辑器', 4, 'https://www.lylme.com/html/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-md"></use></svg>', NULL, 10, 1, 0),
(53, '微PE工具', 4, 'http://www.wepe.com.cn/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-wepe00"></use></svg>', NULL, 10, 1, 0),
(54, '在线代码格式化', 4, 'https://tool.oschina.net/codeformat/html/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-base64"></use></svg>', NULL, 10, 1, 0),
(55, 'JS混淆器', 4, 'http://tool.chinaz.com/tools/jscodeconfusion.aspx', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-jshunxiao"></use></svg>', NULL, 10, 1, 0),
(56, '站长工具', 4, 'http://tool.chinaz.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-zhanzhang00"></use></svg>', NULL, 10, 1, 0),
(57, '在线Ping', 4, 'https://ping.chinaz.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-wangluo1"></use></svg>', NULL, 10, 1, 0),
(58, 'ICP备案查询', 4, 'https://icp.chinaz.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-icp00"></use></svg>', NULL, 10, 1, 0),
(59, '在线PS', 4, 'https://www.photopea.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-ps00"></use></svg>', NULL, 10, 1, 0),
(60, 'W3school', 5, 'http://www.w3school.com.cn/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-h5"></use></svg>', NULL, 10, 1, 0),
(61, 'Github', 5, 'https://github.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-github"></use></svg>', NULL, 10, 1, 0),
(62, '码云Gitee', 5, 'https://gitee.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-gitee00"></use></svg>', NULL, 10, 1, 0),
(63, 'Linux命令查询', 5, 'https://linux.lylme.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-linux"></use></svg>', NULL, 10, 1, 0),
(64, 'CSDN', 5, 'https://www.csdn.net/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-csdn"></use></svg>', NULL, 10, 1, 0),
(65, 'CdnJs', 5, 'https://cdnjs.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-cdnjs"></use></svg>', NULL, 10, 1, 0),
(66, '字节跳动CDN', 5, 'https://cdn.bytedance.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-zjtd00"></use></svg>', NULL, 10, 1, 0),
(67, 'Font Awesome', 5, 'https://fontawesome.com/icons?https://fontawesome.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-font-awesome"></use></svg>', NULL, 10, 1, 0),
(68, 'MSDN我告诉你', 5, 'https://msdn.itellyou.cn/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-msdn00"></use></svg>', NULL, 10, 1, 0),
(69, '腾讯云', 5, 'https://cloud.tencent.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-qcloud00"></use></svg>', NULL, 10, 1, 0),
(70, '阿里云', 5, 'https://www.aliyun.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-alicloud00"></use></svg>', NULL, 10, 1, 0),
(71, '4399小游戏', 6, 'http://www.4399.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-439900"></use></svg>', NULL, 10, 1, 0),
(72, '7k7k小游戏', 6, 'http://www.7k7k.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-7k7k00"></use></svg>', NULL, 10, 1, 0),
(73, '英雄联盟', 6, 'https://lol.qq.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-lol00"></use></svg>', NULL, 10, 1, 0),
(74, '永劫无间', 6, 'https://www.yjwujian.cn/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-yjwj00"></use></svg>', NULL, 10, 1, 0),
(75, 'STEAM', 6, 'https://store.steampowered.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-steam00"></use></svg>', NULL, 10, 1, 0),
(76, '王者荣耀', 6, 'https://pvp.qq.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-wzry00"></use></svg>', NULL, 10, 1, 0),
(77, '3DM GAME', 6, 'https://www.3dmgame.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-games00"></use></svg>', NULL, 10, 1, 0),
(78, '官方主页', 7, 'https://www.lylme.com/', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-home00"></use></svg>', NULL, 10, 1, 0),
(79, '申请收录', 7, '/apply', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-sq00"></use></svg>', NULL, 10, 1, 0),
(80, '建议&反馈', 7, 'https://support.qq.com/products/356339', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-fk00"></use></svg>', NULL, 10, 1, 0);
/*!40000 ALTER TABLE `lylme_links` ENABLE KEYS */;
DROP TABLE IF EXISTS `lylme_pwd`;
CREATE TABLE IF NOT EXISTS `lylme_pwd` (
`pwd_id` int(2) NOT NULL AUTO_INCREMENT COMMENT '加密组ID',
`pwd_name` varchar(20) NOT NULL COMMENT '加密组名称',
`pwd_key` varchar(20) NOT NULL COMMENT '加密组密码',
`pwd_ps` varchar(30) DEFAULT NULL COMMENT '加密组备注',
PRIMARY KEY (`pwd_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DELETE FROM `lylme_pwd`;
/*!40000 ALTER TABLE `lylme_pwd` DISABLE KEYS */;
/*!40000 ALTER TABLE `lylme_pwd` ENABLE KEYS */;
DROP TABLE IF EXISTS `lylme_sou`;
CREATE TABLE IF NOT EXISTS `lylme_sou` (
`sou_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '搜索引擎ID',
`sou_alias` varchar(20) NOT NULL COMMENT '搜索引擎别名',
`sou_name` varchar(20) NOT NULL COMMENT '搜索引擎名称',
`sou_hint` varchar(30) NOT NULL DEFAULT '请输入搜索关键词' COMMENT '搜索引擎提示文字',
`sou_color` varchar(20) NOT NULL DEFAULT '#696a6d' COMMENT '搜索引擎字体颜色',
`sou_link` varchar(255) NOT NULL COMMENT '搜索引擎地址',
`sou_waplink` varchar(255) DEFAULT NULL COMMENT '搜索引擎移动端地址',
`sou_icon` text NOT NULL COMMENT '搜索引擎图标',
`sou_st` int(1) NOT NULL DEFAULT '1' COMMENT '搜索引擎开关',
`sou_order` int(2) NOT NULL COMMENT '搜索引擎排序',
PRIMARY KEY (`sou_id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='搜索引擎';
DELETE FROM `lylme_sou`;
/*!40000 ALTER TABLE `lylme_sou` DISABLE KEYS */;
INSERT INTO `lylme_sou` (`sou_id`, `sou_alias`, `sou_name`, `sou_hint`, `sou_color`, `sou_link`, `sou_waplink`, `sou_icon`, `sou_st`, `sou_order`) VALUES
(1, 'baidu', '百度一下', '百度一下,你就知道', '#0c498c', 'https://www.baidu.com/s?word=', 'https://m.baidu.com/s?word=', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-icon_baidulogo"></use></svg>', 1, 1),
(2, 'sogou', '搜狗搜索', '上网从搜狗开始', '#696a6d', 'https://www.sogou.com/web?query=', NULL, '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-sougou"></use></svg>', 1, 2),
(3, 'bing', 'Bing必应', '微软必应搜索', '#696a6d', 'https://cn.bing.com/search?q=', NULL, '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-bing"></use></svg>', 1, 3),
(4, 'zhihu', '知乎搜索', '有问题,上知乎', '#0084fe', 'https://www.zhihu.com/search?q=', NULL, '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-zhihu"></use></svg>', 1, 4),
(5, 'bilibili', '哔哩哔哩', '(゜-゜)つロ 干杯~', '#00aeec', 'https://search.bilibili.com/all?keyword=', NULL, '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-bili"></use></svg>', 1, 5),
(6, 'weibo', '微博搜索', '随时随地发现新鲜事', '#ff5722', 'https://s.weibo.com/weibo/', '', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-weibo"></use></svg>', 1, 6),
(7, 'google', '谷歌搜索', '值得信任的搜索引擎', '#3B83FA', 'https://www.google.com.hk/search?hl=zh-CN&q=', '', '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-google00"></use></svg>', 1, 7),
(8, 'fanyi', '在线翻译', '输入翻译内容(自动检测语言)', '#0084fe', 'https://translate.google.cn/?hl=zh-CN&sl=auto&tl=zh-CN&text=', NULL, '<svg class="icon" aria-hidden="true"><use xlink:href="#icon-fanyi"></use></svg>', 1, 8);
/*!40000 ALTER TABLE `lylme_sou` ENABLE KEYS */;
DROP TABLE IF EXISTS `lylme_tags`;
CREATE TABLE IF NOT EXISTS `lylme_tags` (
`tag_id` int(11) NOT NULL AUTO_INCREMENT,
`tag_name` varchar(30) NOT NULL,
`tag_link` varchar(60) NOT NULL,
`tag_target` int(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`tag_id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
DELETE FROM `lylme_tags`;
/*!40000 ALTER TABLE `lylme_tags` DISABLE KEYS */;
INSERT INTO `lylme_tags` (`tag_id`, `tag_name`, `tag_link`, `tag_target`) VALUES
(1, '主页', 'https://www.lylme.com/', 0),
(2, '博客', 'https://blog.lylme.com/', 1),
(3, 'Github', 'https://github.com/lylme', 1),
(4, '关于本站', '/about', 1),
(5, '申请收录', '/apply', 1),
(6, '查看', '/pwd', 0);
/*!40000 ALTER TABLE `lylme_tags` ENABLE KEYS */;
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

@ -0,0 +1,81 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" />
<title>六零导航页 - 用户协议</title>
</head>
<body>
<div>
<p align="center" style="text-align:center;text-indent:30.1pt;">
<b>六零导航页 - 用户使用协议</b>
</p>
<h3 style="margin-top: 25px;">1. 说明</h3>
1.1 用户即指六零导航页(以下简称“本程序”)后下载、安装、使用本程序的用户。
</p>
<p style="margin-top: 25px;">
<b>2.用户使用基本规则</b>
<p>
2.1 用户在使用本程序时,必须遵循以下原则:
</p>
<p style="text-indent:14.0pt;">
2.1.1 遵守中国及所在国有关的法律和法规;
</p>
<p style="text-indent:14.0pt;">
2.1.2 用户不得侵任何人的知识产权,包括但不限于不得将侵犯任何人的专利、商标、著作权、商业秘密或其他专属权利;
</p>
<p style="text-indent:14.0pt;">
2.1.3 用户不得侵犯涉密信息,包括但不限于不得将无权传送的内容(例如商业秘密、内部资料、机密资料、个人信息等)进行上载、张贴、发送电子邮件或以其他方式发布、传送、传播、储存、或提供;
</p>
<p style="text-indent:14.0pt;">
2.1.4 用户不得为任何非法目的而使用本程序,包括但不限于应当遵守法律法规,以及所有与网络服务有关的网络协议、规定和程序,不得利用本程序进行任何可能对互联网的正常运转造成不利影响的行为,或其他任何非法行为;
</p>
<p style="text-indent:14.0pt;">
2.1.5 用户无权实施包括但不限于下列行为:删除本程序及其他副本上所有关于版权的信息、内容,对本程序进行反向工程、反向汇编、反向编译等;
</p>
<p style="text-indent:14.0pt;">
2.1.6 用户不得利用本服务实施侵权行为,包括但不限于不得使用虚假、冒充他人或其他方的信息安装、使用本程序,不得冒充任何人或机构,或以虚伪不实的方式谎称或使人误认为其言论或身份与任何人或任何机构有关;不得伪造标题或以其他方式操控识别资料,使人误认为该内容为程序作者所传送;不得利用本程序网络服务系统传播任何骚扰性的、中伤他人的、辱骂性的、庸俗淫秽的或其他任何非法的信息资料;
</p>
<p style="text-indent:14.0pt;">
2.1.7 用户不得破坏本服务的提供,或侵犯本服务相关的任何权利,包括但不限于不得将有关干扰、破坏或限制任何计算机软件、硬件或通讯设备功能的软件病毒或其他计算机代码、档案和程序之资料,加以上载、张贴或其他方式的传播;
</p>
2.2 用户禁止利用本程序及相关服务进行以下活动:
</p>
<p style="text-indent:14.0pt;">
2.2.1 反对宪法所确定的基本原则的;
</p>
<p style="text-indent:14.0pt;">
2.2.2 危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;
</p>
<p style="text-indent:14.0pt;">
2.2.3 损害国家荣誉和利益的;
</p>
<p style="text-indent:14.0pt;">
2.2.4 煽动民族仇恨、民族歧视,破坏民族团结的;
</p>
<p style="text-indent:14.0pt;">
2.2.5 破坏国家宗教政策,宣扬邪教和封建迷信的;
</p>
<p style="text-indent:14.0pt;">
2.2.6 散布谣言,扰乱社会秩序,破坏社会稳定的;
</p>
<p style="text-indent:14.0pt;">
2.2.7 散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;
</p>
<p style="text-indent:14.0pt;">
2.2.8 侵害他人合法权益的;
</p>
<p style="text-indent:14.0pt;">
2.2.9 含有法律法规禁止的其他内容的。
</p>
<p>
2.3 <b><u>如用户违反以上约定,产生的一切法律后果,用户将以自己的名义独立承担所有的法律责任,造成的一切损失,由用户承担。</u></b>
</p>
</div>
</body>
</html>

@ -0,0 +1,47 @@
-- 表 `lylme_sou`
CREATE TABLE `lylme_sou` (
`sou_id` int(11) NOT NULL COMMENT '搜索引擎ID',
`sou_alias` varchar(20) NOT NULL COMMENT '搜索引擎别名',
`sou_name` varchar(20) NOT NULL COMMENT '搜索引擎名称',
`sou_hint` varchar(30) NOT NULL DEFAULT '请输入搜索关键词' COMMENT '搜索引擎提示文字',
`sou_color` varchar(20) NOT NULL DEFAULT '#696a6d' COMMENT '搜索引擎字体颜色',
`sou_link` varchar(255) NOT NULL COMMENT '搜索引擎地址',
`sou_waplink` varchar(255) DEFAULT NULL COMMENT '搜索引擎移动端地址',
`sou_icon` text NOT NULL COMMENT '搜索引擎图标',
`sou_st` int(1) NOT NULL DEFAULT '1' COMMENT '搜索引擎开关',
`sou_order` int(2) NOT NULL COMMENT '搜索引擎排序'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='搜索引擎';
INSERT INTO `lylme_sou` (`sou_id`, `sou_alias`, `sou_name`, `sou_hint`, `sou_color`, `sou_link`, `sou_waplink`, `sou_icon`, `sou_st`, `sou_order`) VALUES
(1, 'baidu', '百度一下', '百度一下,你就知道', '#0c498c', 'https://www.baidu.com/s?word=', 'https://m.baidu.com/s?word=', '<svg class=\"icon\" aria-hidden=\"true\"><use xlink:href=\"#icon-icon_baidulogo\"></use></svg>', 1, 1),
(2, 'sogou', '搜狗搜索', '上网从搜狗开始', '#696a6d', 'https://www.sogou.com/web?query=', NULL, '<svg class=\"icon\" aria-hidden=\"true\"><use xlink:href=\"#icon-sougou\"></use></svg>', 1, 2),
(3, 'bing', 'Bing必应', '微软必应搜索', '#696a6d', 'https://cn.bing.com/search?q=', NULL, '<svg class=\"icon\" aria-hidden=\"true\"><use xlink:href=\"#icon-bing\"></use></svg>', 1, 3),
(4, 'zhihu', '知乎搜索', '有问题,上知乎', '#0084fe', 'https://www.zhihu.com/search?q=', NULL, '<svg class=\"icon\" aria-hidden=\"true\"><use xlink:href=\"#icon-zhihu\"></use></svg>', 1, 4),
(5, 'bilibili', '哔哩哔哩', '(゜-゜)つロ 干杯~', '#00aeec', 'https://search.bilibili.com/all?keyword=', NULL, '<svg class=\"icon\" aria-hidden=\"true\"><use xlink:href=\"#icon-bili\"></use></svg>', 1, 5),
(6, 'weibo', '微博搜索', '随时随地发现新鲜事', '#ff5722', 'https://s.weibo.com/weibo/', NULL, '<svg class=\"icon\" aria-hidden=\"true\"><use xlink:href=\"#icon-weibo\"></use></svg>', 1, 6),
(7, 'google', '谷歌搜索', '值得信任的搜索引擎', '#3B83FA', 'https://www.google.com.hk/search?hl=zh-CN&q=', NULL, '<svg class=\"icon\" aria-hidden=\"true\"><use xlink:href=\"#icon-google00\"></use></svg>', 1, 7),
(8, 'fanyi', '在线翻译', '输入翻译内容(自动检测语言)', '#0084fe', 'https://translate.google.cn/?hl=zh-CN&sl=auto&tl=zh-CN&text=', NULL, '<svg class=\"icon\" aria-hidden=\"true\"><use xlink:href=\"#icon-fanyi\"></use></svg>', 1, 8);
ALTER TABLE `lylme_sou`
ADD PRIMARY KEY (`sou_id`);
ALTER TABLE `lylme_sou`
MODIFY `sou_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '搜索引擎ID', AUTO_INCREMENT=9;
COMMIT;
-- 表`lylme_tags`
CREATE TABLE `lylme_tags` (
`tag_id` int(11) NOT NULL,
`tag_name` varchar(30) NOT NULL,
`tag_link` varchar(60) NOT NULL,
`tag_target` int(1) NOT NULL DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `lylme_tags` (`tag_id`, `tag_name`, `tag_link`, `tag_target`) VALUES
(1, '主页', 'https://www.lylme.com/', 0),
(2, '博客', 'https://blog.lylme.com/', 1),
(3, 'Github', 'https://github.com/lylme', 1),
(4, '关于本站', '/about', 1);
ALTER TABLE `lylme_tags`
ADD PRIMARY KEY (`tag_id`);
ALTER TABLE `lylme_tags`
MODIFY `tag_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
COMMIT;
UPDATE `lylme_config` SET `v` = 'v1.1.2' WHERE `lylme_config`.`k` = 'version';

@ -0,0 +1,17 @@
INSERT INTO `lylme_config` VALUES ('template', 'default','网站模板');
INSERT INTO `lylme_config` VALUES ('cdnpublic', NULL,'CDN地址');
INSERT INTO `lylme_config` VALUES ('apply', 0,'收录申请');
CREATE TABLE `lylme_apply` (
`apply_id` int(4) NOT NULL,
`apply_name` varchar(20) NOT NULL,
`apply_url` varchar(255) NOT NULL,
`apply_group` int(2) NOT NULL,
`apply_icon` text NOT NULL,
`apply_mail` varchar(30) NOT NULL,
`apply_time` datetime NOT NULL,
`apply_status` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='收录申请';
ALTER TABLE `lylme_apply` ADD PRIMARY KEY (`apply_id`);
ALTER TABLE `lylme_apply` MODIFY `apply_id` int(4) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=0;
COMMIT;
UPDATE `lylme_config` SET `v` = 'v1.1.3' WHERE `lylme_config`.`k` = 'version';

@ -0,0 +1,3 @@
INSERT INTO `lylme_config` (`k`, `v`, `description`) VALUES
('apply_gg', '<b>收录说明:</b><br>1. 禁止提交违规违法站点<br>2. 页面整洁,无多个弹窗广告和恶意跳转<br>3. 非盈利性网站,网站正常访问<br>4. 添加本站友链或网站已ICP备案优先收录<br>', '收录公告'),
('wap_background', '/assets/img/wapbackground.jpg', '手机端背景');

@ -0,0 +1,3 @@
-- v1.1.6
ALTER TABLE `lylme_links` ADD `link_status` INT(1) NOT NULL DEFAULT '1' COMMENT '链接状态' AFTER `link_order`;
ALTER TABLE `lylme_groups` ADD `group_status` INT(1) NOT NULL DEFAULT '1' COMMENT '分组状态' AFTER `group_order`;

@ -0,0 +1,14 @@
-- v1.1.9
ALTER TABLE `lylme_links` ADD `link_pwd` INT(2) NULL DEFAULT '0' COMMENT '加密组ID' AFTER `link_status`;
ALTER TABLE `lylme_groups` ADD `group_pwd` INT(2) NOT NULL DEFAULT '0' COMMENT '加密组ID' AFTER `group_status`;
CREATE TABLE `lylme_pwd` (
`pwd_id` int(2) NOT NULL COMMENT '加密组ID',
`pwd_name` varchar(20) NOT NULL COMMENT '加密组名称',
`pwd_key` varchar(20) NOT NULL COMMENT '加密组密码',
`pwd_ps` varchar(30) DEFAULT NULL COMMENT '加密组备注'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `lylme_pwd`
ADD PRIMARY KEY (`pwd_id`);
ALTER TABLE `lylme_pwd`
MODIFY `pwd_id` int(2) NOT NULL AUTO_INCREMENT COMMENT '加密组ID', AUTO_INCREMENT=1;
INSERT INTO `lylme_tags` (`tag_id`, `tag_name`, `tag_link`, `tag_target`) VALUES (NULL, '查看', '/pwd', '0');

@ -0,0 +1,2 @@
-- v1.2.0
INSERT INTO `lylme_tags` (`tag_id`, `tag_name`, `tag_link`, `tag_target`) VALUES (NULL, '关于本站', '/about', '1');

@ -0,0 +1,2 @@
-- v1.5.1
ALTER TABLE `lylme_links` CHANGE `name` `name` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '链接标题';

@ -0,0 +1,88 @@
<?php
include("../include/common.php");
?>
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>访问管理</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{text-align:center;color:#7b8993}
.form-wrapper{padding-top:50px;border-radius:15px;margin:50px auto;position:relative;width:375px;background: #fff;}
form{padding:30px 20px 0}
.form-item{margin-bottom:10px;width:100%}
.form-item input{border-radius:15px;border:1px solid #ccc;border-radius:15px;color:#000;font-size:1em;height:50px;padding:0 16px;transition:background 0.3s ease-in-out;width:100%}
.form-item input:focus{outline:none;border-color:#9ecaed;box-shadow:0 0 10px #9ecaed}
.button-panel{margin:20px 0 0;width:100%}
.button-panel .button{-webkit-appearance:none;background:#009dff;border:none;border-radius:15px;color:#fff;cursor:pointer;height:50px;font-family:'Open Sans',sans-serif;font-size:1.2em;letter-spacing:0.05em;text-align:center;text-transform:uppercase;transition:background 0.3s ease-in-out;width:100%}
.button:hover{background:#00c8ff}
@media only screen
and (max-width:320px){.form-wrapper{padding-top:10%;border-radius:2px;margin:50px auto;position:relative;width:320px}
}.top{background:#009dff;position:fixed;z-index:1031;top:0;left:0;height:4px;transition:all 1s;width:0;overflow:hidden}
.colors{width:100%;height:4px}
.top-banner{background-color:#333}
.nav{margin-bottom:30px}
.nav li.current a{background-color:#009DFF;color:#fff;padding:10px}
.nav a{margin:5px;color:#333;text-decoration:none}
.home{text-decoration: none;color: #bbb;line-height: 4;}
.body{background-size: cover;display: flex;height: 100vh;align-items: center;justify-content: center;
}
</style>
</head>
<body>
<?php
if(!empty($background = background())){
$background = str_replace('./','../',$background);
echo '<div class="body" style="background-image: url('.$background.');">';}
?>
<div class="form-wrapper">
<div class="nav">
<?php
if($DB->num_rows($DB->query("SELECT * FROM `lylme_pwd`"))!=0){echo '<h1>访问管理</h1>';?>
</div>
<?php
session_start(); //设置session
if($_SESSION['pass'] != 1){?>
<p>请输入密码登录</p>
<form name="form" action="../include/go.php" method="POST">
<div class="form">
<div class="form-item">
<input type="password" autocomplete="new-password" name="pass" required="required" value="" placeholder="密码" autocomplete="off">
</div>
<div class="button-panel">
<input type="submit" class="button" title="登录" value="登录">
</div>
</div>
</form><?php }else{ ?>
<form name="form" action="../include/go.php" method="POST">
<div class="form">
<div class="button-panel">
<p> 欢迎回来,您已登录!<br><br>用户组:
<?php foreach($_SESSION['list'] as $list){
echo(' ['.$list.'] ');
}
?></p>
<div class="form-item">
<input type="hidden" autocomplete="new-password" name="exit" required="required" value="exit" >
</div>
<input type="submit" class="button" title="注销登录" value="注销登录">
</div>
</div>
</form>
<?php
}
}else{echo '<h2>当前站点未启用链接加密</h2>';}
?>
<a href="../" class="home">返回首页</a>
</div>
</div>
</body>
</html>

@ -0,0 +1,48 @@
<?php
/* ## 百度主动推动
** 说明:
** 用于百度自动推送建议添加GET方式的CRON执行
** 仅适用于六零导航页1.3.5及以上版本并且已配置伪静态子链格式如http://域名/site-66.html
--------------------------------------
** 使用方法:
** 获取推送接口https://ziyuan.baidu.com/linksubmit/index
** 修改$api为自己的推送接口地址
*/
$api = 'http://data.zz.baidu.com/urls?site=https://hao.lylme.com&token=xxxxxxxx';
//以下内容无需修改
include_once("../include/common.php");
$urls = array();
array_push($urls,siteurl(),siteurl().'/apply',siteurl().'/about');
$sites = $DB->query("SELECT `id` FROM `lylme_links` WHERE `link_pwd` = 0");
while ( $site = $DB->fetch($sites)) {
$url = siteurl().'/site-'.$site['id'].'.html';
array_push($urls,$url);
}
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/html'),
);
curl_setopt_array($ch, $options);
$results = curl_exec($ch);
$httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
echo $results;
if($httpCode == 200){
$result = json_decode($results,true);
echo('<p>>>>>>>Successful</p>
本次推送:'.count($urls).'条<br>
成功推送:'.$result['success'].'条<br>
--------------------------------------<br>'.
implode("<br>", $urls));
}
else {
echo('<p>推送失败<br><a href="https://ziyuan.baidu.com/college/courseinfo?id=267&page=3#h2_article_title12">帮助</a></p>');
}
?>

@ -0,0 +1,42 @@
<?php
include("../include/common.php");
$id = daddslashes($_GET['id']);
$sites = $DB->query("select * from lylme_links where id='$id' limit 1");
$site = $DB->fetch($sites);
$info = get_head($site["url"]);
if (empty($site["icon"])) {
$site["icon"] = '<img src="/assets/img/default-icon.png" alt="' . $site["name"] . '" />';
} else if (!preg_match("/^<svg*/", $site["icon"])) {
$site["icon"] = '<img src="' . $site["icon"] . '" alt="' . $site["name"] . '" />';
} else {
$site["icon"] = $site["icon"];
}
if(empty($DB->num_rows($sites)) || $site['link_pwd']!=0){
include(theme_file('404.php')); //页面不存在
exit();
}
else {
$groups = $DB->query("select `group_name`,`group_icon` from lylme_groups where group_id=".$site['group_id']." limit 1");
$group = $DB->fetch($groups);
include(theme_file('site.php'));
// $pv =$site['link_pv']+1;
// $DB->query("UPDATE `lylme_links` SET `link_pv` = '".$pv."' WHERE `lylme_links`.`id` = $id;");
exit();
}
/**
* 变量说明
* $groups['group_name'] 所在分组名称
* $groups['group_icon'] 所在分组图标
* $site['id'] 链接ID
* $site['name'] 链接名称
* $site['url'] 链接地址
* $site['PS'] 链接描述
* $info['title'] 网站标题
* $info['description'] 网站描述
* $info['keywords'] 网站关键词
**/
?>

@ -0,0 +1,35 @@
<?php
include_once("../include/common.php");
header("Content-type: text/xml");
header('HTTP/1.1 200 OK');
echo '<?xml version="1.0" encoding="utf-8"?>'."\n".'<urlset>'."\n";
?>
<url>
<loc><?php echo siteurl()?></loc>
<lastmod><?php echo date('Y-m-d');?></lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc><?php echo siteurl().'/apply'?></loc>
<lastmod><?php echo date('Y-m');?>-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc><?php echo siteurl().'/about'?></loc>
<lastmod><?php echo date('Y-m');?>-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<?php
$sites = $DB->query("SELECT `id` FROM `lylme_links` WHERE `link_pwd` = 0");
while ( $site = $DB->fetch($sites)) { ?>
<url>
<loc><?php echo(siteurl().'/site-'.$site['id'].'.html');?></loc>
<lastmod><?php echo date('Y-m');?>-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<?php } ?>
</urlset>

@ -0,0 +1,31 @@
<?php
header("status: 404 Not Found");
?>
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<title>404 - 页面不存在</title>
<link href="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/bootstrap/5.1.3/css/bootstrap.min.css" type="text/css" rel="stylesheet" />
<style>
body{background-color:#fff}
.error-page{height:100%;position:fixed;width:100%}
.error-body{padding-top:5%}
.error-body h1{font-size:210px;font-weight:700;text-shadow:4px 4px 0 #f5f6fa,6px 6px 0 #33cabb;line-height:210px;color:#33cabb}
.error-body h4{margin:30px 0px}
</style>
</head>
<body>
<section class="error-page">
<div class="error-box">
<div class="error-body text-center">
<h1>404</h1>
<h4>抱歉,页面不存在!</h4>
<a href="/" class="btn btn-primary ">返回首页</a>
</div>
</div>
</section>
</body>
</html>

@ -0,0 +1,47 @@
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title><?php echo $site['name'] . " - " .explode("-", $conf['title'])[0];?></title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="keywords" content="<?php echo $site['name'].','.$conf['keywords']?>" />
<meta name="description" content="<?php echo explode("-", $conf['title'])[0];?>已收录站点:<?php echo $site['name'].'。'.$conf['description']?>" />
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<link href="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/docsify/4.12.2/themes/vue.min.css" type="text/css" rel="stylesheet">
<style>
body{background:#fff!important}
body:not(.ready){overflow:auto!important}
#main{max-width:90%}
p.footer{margin-top:60px}
a{text-decoration:none}
svg.icon{width:40px;height:40px}
p.footer{width:100%;position:fixed;bottom:0;text-align:center}
span.site_name{font-size:22px;margin:0;font-weight:700;margin-left:5px}
.service-wrap-w a{color:#fff!important}
#SOHUCS #SOHU_MAIN .module-mobile-cmt-header{background-color:#fff!important}
</style>
<link href="https://cdn.lylme.com/admin/lyear/css/style.min.css" rel="stylesheet">
</head>
<body>
<div class="markdown-section" id="main">
<?php
echo $site["icon"].'<span class="site_name">'. $site["name"].'</span>';
if(!empty($info['title'])){
echo '<p><b>网站标题:</b>'.$info['title'].'</p>';
}
if(!empty($info['description'])){
echo '<p><b>网站描述:</b>'.$info['description'].'</p>';
}
if(!empty($info['keywords'])){
echo '<p><b>网站关键词:</b>'.$info['keywords'].'</p>';
}
echo '<p><b>所在分组:</b>'.$group['group_name'].'</p>
';
echo "<p><a class='btn btn-pink' href='/'>返回</a> <a rel='nofollow' class='btn btn-success' href='". $site["url"]."'>访问</a></p>";
?>
<script src="/assets/js/svg.js"></script>
</div>
</body>
</html>

@ -0,0 +1,4 @@
RewriteEngine On
#RewriteBase /
RewriteRule ^site-(\d+)\.html$ /site/index.php?id=$1
RewriteRule ^/sitemap.xml$ /site/sitemap.php

@ -0,0 +1,2 @@
rewrite ^/site-(\d+)\.html$ /site/index.php?id=$1;
rewrite ^/sitemap.xml$ /site/sitemap.php;

@ -0,0 +1,60 @@
# 5IUX搜索
用惯了各种导航首页,满屏幕尽是各种不厌其烦的广告和资讯;尝试自己写个自己的主页。不是镜像不是代理,就当做浏览器主页使用,支持自适应屏幕。
### GIF示例效果
![简单搜索](https://i.loli.net/2021/01/19/JsV34pBOcTbZk79.gif)
> (图片效果,以实际页面为准)
## 下载地址:
[Releases](https://github.com/5iux/sou/releases)
## Gitee同步更新
[https://gitee.com/cn5iux/sou](https://gitee.com/cn5iux/sou)
## 示例页面:
+ php版本[https://5iux.cn/](https://5iux.cn/)
+ html+js+css版本(写了个新的,有空去围观)[https://github.com/5iux/5iux.github.io](https://github.com/5iux/5iux.github.io)
## 组件:
### 图标:
图标调用了阿里的图标`https://www.iconfont.cn/`,提供下本地包[点击下载](https://cdn.jsdelivr.net/gh/5iux/sou/icon.zip)
嫌麻烦的可以使用js版本示例里面的`font-awesome`
### 天气组件
[天气API地址](https://dev.qweather.com/widget/)
### 背景图
已默认添加随机加载bing背景不需要刻意在index.php中删除
如使用自定义背景可以删除bing背景后在页面内添加以下代码
```html
<style>
body{background:url("https://cn.bing.com//th?id=OHR.HuntsMesa_JA-JP3140979616_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp") no-repeat center/cover;}
</style>
```
## 其他
我这个只是个示例有需求还是自己改不喜欢php想换成js也可以

@ -0,0 +1,81 @@
@charset "utf-8";
/*
:D.Young
https://yyv.me/
githubhttps://github.com/5iux/sou
2019-07-11
*/
*{padding:0;margin:0;outline:none;-webkit-tap-highlight-color:transparent}
html,body{width:100%;height:100%;position:relative;overflow:hidden;background:#fff}
html{font-family:'Noto Sans SC Sliced',PingFangSC-Light,Microsoft YaHei UI,Microsoft YaHei,helvetica,sans-serif;font-weight:500;color:#000}
form,input,button{padding:0;margin:0;border:none;outline:none;background:none}
input::-webkit-input-placeholder{color:#ccc;letter-spacing:2px;font-size:16px}
ul,li{display:block;list-style:none}
a{text-decoration:none;color:#000}
#content{width:100%;height:100%}
li img{width:14px;height:14px;margin:0 5px 0 8px;vertical-align:-0.15em;fill:currentColor;overflow:hidden}
.con{width:100%;transition:1s all;margin:auto;min-width:320px;height:380px;position:absolute;left:0;top:-100px;right:0;bottom:0}
.con .shlogo{position:relative;width:auto;height:auto;margin:20px auto}
h2.title{text-align:center;color:#fff;font-size:36px;font-weight:600;text-shadow:1px 1px 8px #504b4b}
.con .shlogo a{width:100%;display:block;width:100%;height:100%}
.con .sou{max-width:680px;position:relative;width:calc(100% - 60px);min-width:320px;margin:0 auto}
.content{margin:10px}
.con .sou form{width:100%;height:50px;display:block;margin:50px auto 30px;position:relative}
.con .sou form .wd{background:#ffffff2e;padding-left:1em;width:100%;height:100%;display:block;border:1px solid #ddd;border-radius:25px;line-height:100%;font-size:17px;text-indent:50px;transition:0.3s all;color:#fff}
.lg{z-index:1000}
.con .sou form .lg svg{display:block;width:25px;height:25px;position:absolute;left:15px;top:12px;overflow:hidden;cursor:pointer}
.con .sou form .lg img{display:block;width:25px;height:25px;position:absolute;left:25px;top:12px;overflow:hidden;cursor:pointer}
.con .sou form .wd:focus{color:#000;background:#fff;box-shadow:0 0px 15px 0 rgba(32,33,36,0.2);border-color:#fff}
.con .sou form button{width:40px;height:40px;display:block;position:absolute;z-index:10;right:6px;top:6px;cursor:pointer;font-size:22px;line-height:40px;border-radius:50%;color:#777}
.con .sou #word{backdrop-filter: blur(10px);width:calc(100% - 70px);padding: 15px;border-radius:10px;left:20px;position:absolute;z-index:500;top:65px;background:#ffffffb0;;line-height:30px;font-size:16px;overflow:hidden;display:none}
.con .sou #word li{cursor:pointer;color:#555;margin: 5px;}
#word li:hover{background-color:#ddd}
.foot{text-shadow: 0px 0px 5px black;position:absolute;bottom:10px;text-align:center;width:100%;color:#fff;line-height:20px;font-size:12px;height:auto}
.foot a{color:#fff}
.home{width:50px;height:50px;position:absolute;right:70px;top:10px;z-index:200;cursor:pointer}
.home a{font-size:20px;color:#999;line-height:50px;display:block;text-align:center}
#menu{width:50px;height:50px;background: #29f;border-radius: 50%;transform:scale(0.8);position:absolute;right:10px;top:5px;z-index:2000000;cursor:pointer;transition:0.5s}
#menu i{position:absolute;left:0;right:0;margin:24px auto;width:30px;height:2px;background:#fff}
#menu i:before{content:'';width:20px;height:2px;top:-8px;background:#fff;position:absolute;right:0}
#menu i:after{content:'';width:20px;height:2px;bottom:-8px;background:#fff;position:absolute;left:0}
#menu.on{right:380px;background:#29f;border-radius:25px}
#menu.on i{width:20px;background:#fff}
#menu.on i:before{top:-5px;transform:rotate(45deg);width:14px;right:-1px;left:auto;background:#fff}
#menu.on i:after{bottom:-5px;transform:rotate(-45deg);width:14px;right:-1px;left:auto;background:#fff}
.list{width:337px;padding:0 20px;height:100%;overflow:hidden;overflow-y:auto;position:absolute;right:0px;z-index:2000;background:#222d46;transition:0.3s all linear}
.list.closed{right:-380px}
.list ul{width:330px;float:left;padding:0 0 20px;margin-bottom:20px}
.list ul li{word-break:break-all;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;float:left;margin:5px;width:100px;height:30px;text-align:left;line-height:30px}
.list ul li a{width:100%;border-radius:5px;transition:0.2s all linear;height:100%;display:block;color:#fff;font-weight:500;background:#293550;text-align:left;font-size:12px}
.list ul li:hover a{color:#fff;background-color:#29f;background-image:linear-gradient(135deg,rgba(35,153,255) 0%,rgba(84,175,253) 100%);box-shadow:0 3px 3px rgba(0,40,70,.3)}
.list ul li.title{width:100%;height:40px;line-height:40px;margin:30px 0 0;text-align:left;text-indent:10px;color:#fff;font-size:18px;font-weight:bold}
svg.icon{width:14px;height:14px;margin:0 5px 0 8px;vertical-align:-0.15em;fill:currentColor;overflow:hidden}
.list ul li.title svg.icon{width:20px;height:20px}
@media (max-width:640px){.con{top:0px}
.con .shlogo{width:auto;height:auto}
.con .sou form .wd:focus{background:#f1f1f1;box-shadow:none;border-color:#ccc}
.con .sou form button{border-radius:25px}
.con .sou #word{max-height:150px}
#menu.on{right:270px}
.list{width:227px}
.list ul{width:220px}
.con .sou ul li{width:100px;font-size:12px;text-indent:30px}
.home,#menu{top:5px}
.mywth{color:#777;left:10px}
.mywth.hidden{display:none}
}@media (max-height:420px){.con{margin:0;top:0px}
.con .shlogo{display:none}
.home,#menu,.mywth,.foot{display:none}
}@media (prefers-color-scheme:dark){body{background-color:#162035}
.mywth{color:#bbb}
.con .sou form .wd:focus{background:#293550;border:1px solid #162035}
.con .sou form .wd{border:1px solid #293550;color:#bbb}
.con .sou #word{border:15px solid #293550;background:#293550}
.con .sou #word .click_work{color:#89b}
}::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:#222d46;border-radius:0px}
::-webkit-scrollbar-thumb{background:#293550;border-radius:0px}
::-webkit-scrollbar-thumb:hover{background:#293550}
::-webkit-scrollbar-corner{background:#222d46}

@ -0,0 +1,40 @@
@charset "utf-8";
/*
:D.Young
https://yyv.me/
githubhttps://github.com/5iux/sou
2019-07-11
*/
.mywth{position:absolute;left:20px;top:15px;height:20px;line-height:20px;cursor:pointer;z-index:100000;color:#fff !important;font-size:14px;text-shadow:0px 1px 0px #000}
.mywth .wea{display:inline-block;height:18px;vertical-align:middle;padding-bottom:3px}
@keyframes bgmove{0%{background-position:left}
50%{background-position:right}
100%{background-position:left}
}.mywth .wea_hover{width:400px;padding:25px 10px;position:absolute;z-index:100000;font-size:12px;line-height:20px;left:0;top:30px;box-shadow:5px 5px 5px 0 rgba(33,150,243,0.3);border-radius:15px;background-size:cover;background-repeat:no-repeat;background-position:left;color:#fff;visibility:hidden;opacity:0;transition:0.3s all;animation:bgmove 16s linear infinite}
.mywth:hover .wea_hover{visibility:visible;opacity:1}
.wea_in{position:relative;float:left;width:calc(100% - 20px);margin-left:10px}
.wea_top span{display:block;float:left;line-height:20px}
.wea_top span.city{width:100%;line-height:26px}
.wea_top span.city b{display:inline-block;float:left;background:#fd0;font-size:14px;padding:0 10px;border-radius:13px;color:#06b;margin-right:5px}
.wea_top span.img{width:50px;height:120px}
.wea_top span.tem{width:120px;height:120px;text-align:center}
.wea_top span.tem b{display:block;width:100%;height:40px;font-weight:lighter;font-size:32px;line-height:40px;margin-top:30px}
.wea_top span.air{height:40px;width:120px;margin-top:30px}
.wea_top span.air_tips{text-indent:15px}
.wea_con{margin:20px 10px;position:relative;float:left}
.wea_con ul{width:100%;margin-left:1px}
.wea_con ul li{float:left;width:calc(25% - 12px);font-size:12px;overflow:hidden;border:1px solid #eee;padding:0 5px;font-size:12px;line-height:25px;font-weight:bold;text-align:center;position:relative;margin:0 -1px -1px 0}
.wea_con ul li b{color:#fd0;font-size:14px}
.wea_con ul li:hover{background:rgba(255,255,255,0.3);color:#000}
.wea_con ul li i{display:none;font-size:12px;font-weight:normal;font-style:normal;line-height:16px;margin:5px 0}
.wea_foot ul{position:relative;float:left;width:100%}
.wea_foot ul li{float:left;width:33.3%;overflow:hidden;text-align:center;font-weight:bold}
.wea_foot ul li img{display:inline-block;vertical-align:center;height:30px;margin:5px}
.wea_foot ul li b{color:#0f0;font-weight:normal}
.wea_foot ul li i{font-weight:normal;font-style:normal}
@media (max-width:640px){.mywth{color:#777;left:10px;top:20px}
.mywth .wea_hover{display:none}
.mywth.hidden{display:none}
}@media (max-height:420px){.mywth{display:none}
}

@ -0,0 +1,159 @@
<?php
$t=strtolower(urlencode($_GET["t"])); //搜索引擎
$q=urlencode($_POST["q"]); //搜索词
if (!empty($q)) {
if($soulist = $DB->fetch($DB->query("SELECT * FROM `lylme_sou` WHERE `sou_alias` LIKE '".$t."'"))) {
if (checkmobile()&& !empty($soulist["sou_waplink"])) {
echo'<script>window.location.href="'.$soulist["sou_waplink"].$q.'";</script>';
} else {
echo'<script>window.location.href="'.$soulist["sou_link"].$q.'";</script>';
}
} else {
echo'<script>window.location.href="https://www.baidu.com/s?word='.$q.'";</script>';
}
}
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title><?php echo $conf['title']?></title>
<meta name="keywords" content="<?php echo $conf['keywords']?>">
<meta name="description" content="<?php echo $conf['description']?>">
<link rel="icon" href="<?php echo $conf['logo']?>" type="image/x-icon">
<meta http-equiv="Cache-Control" content="no-siteapp">
<meta name="referrer" content="no-referrer" />
<meta name="theme-color" content="#ffffff">
<meta name="author" content="D.Young">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-touch-fullscreen" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="full-screen" content="yes"><!--UC强制全屏-->
<meta name="browsermode" content="application"><!--UC应用模式-->
<meta name="x5-fullscreen" content="true"><!--QQ强制全屏-->
<meta name="x5-page-mode" content="app"><!--QQ应用模式-->
<meta name="lsvn" content="<?php echo base64_encode($conf['version'])?>">
<link href="<?php echo $templatepath;?>/css/style.css?v=20220611" rel="stylesheet">
<link href="<?php echo $templatepath;?>/css/wea.css" rel="stylesheet">
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-2-M/jquery/3.5.1/jquery.min.js"></script>
</head>
<?php if(!empty(background())){
echo '<body style="background: url('.background().') no-repeat center/cover;">';}
else{ echo '<body>';}?>
<div id="menu"><i></i></div>
<div class="list closed">
<?php
$html= array(
'g1' => '<ul class="mylist row">', //分组开始标签
'g2' => '<li class="title">{group_icon}<sapn>{group_name}</sapn></li>', //分组内容
'g3' => '</ul>', //分组结束标签
'l1' => '<li class="col-3 col-sm-3 col-md-3 col-lg-1">', //链接开始标签
'l2' => '<a rel="nofollow" href="{link_url}" target="_blank">{link_icon}<span>{link_name}</span></a>', //链接内容
'l3' => '</li>', //链接结束标签
);
lists($html);
echo '</div>';
if ($conf['tq']) {
echo '<!--天气-->
<div class="mywth">
<div class="wea_hover">
<div class="wea_in wea_top"></div>
<div class="wea_in wea_con">
<ul></ul>
</div>
<div class="wea_in wea_foot">
<ul></ul>
</div>
</div>
<!--天气插件,基于和风天气接口制作-->
<script src="'.$cdnpublic.'/template/5iux/js/wea.js"></script>
';
}
?>
</div>
<div id="content">
<div class="con">
<div class="shlogo"><?php echo $conf['home-title'] ?></div>
<div class="sou">
<form action="" method="post" target="_blank">
<?php
$soulists = $DB->query("SELECT * FROM `lylme_sou` ORDER BY `lylme_sou`.`sou_order` DESC");
$i = 0;
while ($soulist = $DB->fetch($soulists)) {
if ($soulist["sou_st"] == 1 && $soulist["sou_alias"] == $t) {
if(empty($soun)) {
$alias = $DB->fetch($DB->query("SELECT * FROM `lylme_sou` WHERE `sou_alias` NOT LIKE '".$soulist["sou_alias"]."' ORDER BY `sou_order` ASC LIMIT 1"));
$soun = $alias["sou_alias"];
}
echo '<div class="lg" onclick="window.location.href=\'?t='.$soun.'\';">' . $soulist["sou_icon"] . '</div>
<input class="wd" type="text" placeholder="' . $soulist["sou_hint"] . '" name="q" x-webkit-speech lang="zh-CN" autocomplete="off">';
$sousw = 1;
}
if ($soulist["sou_st"] == 1) {
$soun = $soulist["sou_alias"];
}
if(empty($soun))break;
}
if(empty($sousw)||empty($soun)) {
$alias = $DB->fetch($DB->query("SELECT * FROM `lylme_sou` WHERE `sou_alias` NOT LIKE 'baidu' ORDER BY `sou_id` DESC LIMIT 1"));
echo '<div class="lg" onclick="window.location.href=\'?t='.$alias["sou_alias"].'\';"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-icon_baidulogo"></use></svg></div>
<input class="wd" type="text" placeholder="百度一下,你就知道" name="q" x-webkit-speech lang="zh-CN" autocomplete="off">
';
}
?>
<button><svg class="icon" style=" width: 21px; height: 21px; opacity: 0.5;" aria-hidden="true"><use xlink:href="#icon-sousuo"></use></svg></button>
</form>
<div id="word"></div>
</div>
</div>
<div class="foot">
<?php
if ($conf['yan'] == 'true') {
echo '<p class="content">' . yan().'</p>';
}
$i= 0;
$tagslists = $DB->query("SELECT * FROM `lylme_tags`");
while($taglists = $DB->fetch($tagslists)) {
echo '<a class="nav-link" href="' . $taglists["tag_link"] . '"';
if ($taglists["tag_target"] == 1) echo ' target="_blant"';
echo '>' . $taglists["tag_name"] . '</a>';
if($i<$DB->num_rows($tagslists)-1) {
$i++;
echo ' | ';
}
}
?>
<!--网站统计-->
<?php if(!empty($conf['wztj'])) {
echo '<p>'.$conf["wztj"].'</p>';
}
?>
<!--备案信息-->
<?php if(!empty($conf['icp'])) {
echo '<p><img src="./assets/img/icp.png" width="16px" height="16px" /><a href="http://beian.miit.gov.cn/" class="icp nav-link" target="_blank" _mstmutation="1" _istranslated="1">'.$conf['icp'].'</a></p>';
}
?>
<!--版权信息-->
<p> Theme by <a href="https://github.com/5iux/sou/" target="_blank">5iux</a> .<?php echo $conf['copyright'];
?></p>
</div>
<script src="<?php echo $cdnpublic ?>/assets/js/svg.js"></script>
<script src="<?php echo $templatepath;?>/js/sou.js"></script>
<?php
if(empty($t)) {echo '<script>var sou = "?t="+localStorage.getItem("sou");window.location.href=sou;</script>';}
echo '<script>localStorage.setItem("sou", "'.$t.'");</script>';
?>
<!--
作者:D.Young
主页https://blog.5iux.cn/
githubhttps://github.com/5iux/sou
日期2020-11-23
版权所有,请勿删除
-->
</body>
</html>

@ -0,0 +1,78 @@
/*
作者:D.Young
主页https://yyv.me/
githubhttps://github.com/5iux/sou
日期2020/11/18
版权所有请勿删除
*/
$(document).ready(function() {
//判断窗口大小,添加输入框自动完成
var wid = $("body").width();
if (wid < 640) {
//$(".wd").attr('autocomplete', 'off');
} else {
$(".wd").focus();
}
//菜单点击
$("#menu").click(function(event) {
$(this).toggleClass('on');
$(".list").toggleClass('closed');
$(".mywth").toggleClass('hidden');
});
$("#content").click(function(event) {
$(".on").removeClass('on');
$(".list").addClass('closed');
$(".mywth").removeClass('hidden');
$('#word').hide();
});
$(".mywth").click(function(event) {
var wt = $("body").width();
if (wt < 750 || wt == 750) {
//window.location.href = "https://tianqi.qq.com/";
window.location.href = "/weather/";
}
});
});
//关键词sug
$(function() {
//当键盘键被松开时发送Ajax获取数据
$('.wd').keyup(function() {
var keywords = $(this).val();
if (keywords == '') { $('#word').hide(); return };
$.ajax({
url: 'https://suggestion.baidu.com/su?wd=' + keywords,
dataType: 'jsonp',
jsonp: 'cb', //回调函数的参数名(键值)key
// jsonpCallback: 'fun', //回调函数名(值) value
beforeSend: function() {
// $('#word').append('<li>正在加载。。。</li>');
},
success: function(data) {
$('#word').empty().show();
if (data.s == '') {
//$('#word').append('<div class="error">Not find "' + keywords + '"</div>');
$('#word').hide();
}
$.each(data.s, function() {
$('#word').append('<li><svg class="icon" style=" width: 15px; height: 15px; opacity: 0.5;" aria-hidden="true"><use xlink:href="#icon-sousuo"></use></svg> ' + this + '</li>');
})
},
error: function() {
$('#word').empty().show();
//$('#word').append('<div class="click_work">Fail "' + keywords + '"</div>');
$('#word').hide();
}
})
})
//点击搜索数据复制给搜索框
$(document).on('click', '#word li', function() {
var word = $(this).text();
$('.wd').val(word);
$('#word').hide();
$("form").submit();
// $('#texe').trigger('click');触发搜索事件
})
})

@ -0,0 +1,55 @@
/*
天气插件api请在wea目录中index.php修改
申请地址和风天气-https://dev.heweather.com/
*/
//菜单点击
$("#menu").click(function(event) {
$(".mywth").toggleClass('hidden');
});
$("#content").click(function(event) {
$(".mywth").removeClass('hidden');
});
$.ajax({
url: './template/5iux/wea/',
dataType: 'json',
error: function() {
console.log('天气插件网络错误!');
},
success: function(res) {
//判断夜晚
var now = new Date(),
hour = now.getHours();
if (hour < 18) { myday = "d"; } else { myday = "n"; }
//天气
$('.mywth').append(res.HeWeather6[0].basic.location + ' <img class="wea" src="https://cdn.heweather.com/img/plugin/190516/icon/c/' + res.HeWeather6[0].now.cond_code + myday + '.png"> ' + res.HeWeather6[0].now.cond_txt + ' ' + res.HeWeather6[0].now.tmp + '℃ ' + res.HeWeather6[0].now.wind_dir);
$('.wea_hover').css('background-image', 'url(https://cdn.heweather.com/img/plugin/190516/bg/view/' + res.HeWeather6[0].now.cond_code + myday + '.png)');
//今日天气
$('.wea_top').append('<span class="city"><b>' + res.HeWeather6[0].basic.location + '</b> ' + res.HeWeather6[0].update.loc + ' 更新</span><span class="img" style="background:url(https://cdn.heweather.com/img/plugin/190516/icon/c/' + res.HeWeather6[0].now.cond_code + myday + '.png) no-repeat center/contain;"></span> <span class="tem"><b>' + res.HeWeather6[0].now.tmp + '℃</b>' + res.HeWeather6[0].now.cond_txt + '</span><span class="air">紫外线指数:' + res.HeWeather6[0].lifestyle[5].brf + '<br>相对湿度:' + res.HeWeather6[0].now.hum + '%<br>' + res.HeWeather6[0].now.wind_dir + '' + res.HeWeather6[0].now.wind_sc + '级</span><span class="air_tips">' + res.HeWeather6[0].lifestyle[3].txt + '</span>');
//今日指数
var wea_con;
for (var x = 0; x < 8; x++) {
wea_con = '<li class="wea_' + res.HeWeather6[0].lifestyle[x].type + '"><span></span>指数<br><b>' + res.HeWeather6[0].lifestyle[x].brf + '</b></li>';
$(".wea_con ul").append(wea_con);
}
$('.wea_comf span').text('舒适度');
$('.wea_drsg span').text('穿衣');
$('.wea_flu span').text('感冒');
$('.wea_sport span').text('运动');
$('.wea_trav span').text('旅游');
$('.wea_uv span').text('紫外线');
$('.wea_cw span').text('洗车');
$('.wea_air span').text('空气');
//未来3天天气
var wea_foot;
for (var i = 0; i < 3; i++) {
wea_foot = '<li>' + res.HeWeather6[0].daily_forecast[i].date + '<br><img src="https://cdn.heweather.com/img/plugin/190516/icon/c/' + res.HeWeather6[0].daily_forecast[i].cond_code_d + myday + '.png"><br><b>' + res.HeWeather6[0].daily_forecast[i].cond_txt_d + '</b><br><i>' + res.HeWeather6[0].daily_forecast[i].tmp_min + '°/' + res.HeWeather6[0].daily_forecast[i].tmp_max + '°' + '</i></li>';
$(".wea_foot ul").append(wea_foot);
}
}
});
/*天气插件结束*/

@ -0,0 +1,8 @@
{
"author_name": "5iux",
"author_link": "https://github.com/5iux/sou",
"theme_name": "5iux",
"theme_version": "2.0",
"theme_explain": "5IUX搜索",
"theme_demo": "https://spage.lylme.com/theme/5iux"
}

@ -0,0 +1,18 @@
<?php
/*
作者:D.Young
主页https://blog.5iux.cn/
githubhttps://github.com/5iux/sou
日期2020-05-19
版权所有,请勿删除
本天气插件为申请地址:和风天气-https://dev.heweather.com/
*/
header('Content-Type:application/json; charset=utf-8');
header('Access-Control-Allow-Methods:POST');
header('Access-Control-Allow-Headers:x-requested-with,content-type');
$address=$_SERVER["REMOTE_ADDR"];
$key="9d714f8dd6b94c7696f9cea8dc3ed1c5";
$jsonlist = file_get_contents("https://free-api.heweather.net/s6/weather/?location=".$address."&key=".$key);
echo $_GET["callback"].$jsonlist;
?>

@ -0,0 +1,3 @@
#### 六零导航页主题目录
[六零导航页主题开发文档](http://doc.lylme.com/dev/theme)

@ -0,0 +1,35 @@
# 六零导航页baisu主题
六零导航页(LyLme Spage)`baisu`主题,基于[baisuTwo](https://gitee.com/LyLme/baisu-two)开发
## 注意
**该项目为主题模板文件,不支持直接使用,请前往[LyLme_Spage](https://gitee.com/LyLme/lylme_spage)载安装完整项目源码搭建**
## 截图
**baisu主题PC端截图**
![六零导航页baisuTwo主题PC端截图](https://cdn.lylme.com/img/lylme_spage/image-20220501192454699.png)
![六零导航页baisuTwo主题PC端截图2](https://cdn.lylme.com/img/lylme_spage/image-20220501225604644.png)
**baisu主题手机端截图**
![六零导航页baisuTwo主题手机端截图](https://cdn.lylme.com/img/lylme_spage/image-20220501192631560.png)
![六零导航页baisuTwo主题手机端截图2](https://cdn.lylme.com/img/lylme_spage/image-20220501225251579.png)
## 天气插件
天气插件采用的是【和风天气】的标准版天气插件,可无限制免费试用,需要先注册和风天气账号,
[和风天气账号注册](https://id.qweather.com/#/register)
[和风天气创建插件页面](https://widget.qweather.com/create-standard)
插件 选择【横版】、【款240px】、【高:180px】;否则会出现样式偏移的问题。其他条件任选。
生成代码后 除第一行`<div id="he-plugin-standard"></div>`外,其他代码复制到主题文件夹下`index.php`底部对应位置即可。
## 相关链接
* [OneNav官网](https://nav.rss.ink/)
* [onenav作者](https://www.xiaoz.me/)
* [baisuTwo](https://gitee.com/LyLme/baisu-two)
* [LyLme_Spage](https://gitee.com/LyLme/lylme_spage)

@ -0,0 +1,32 @@
# OneNav主题
onenav导航的主题
![输入图片说明](https://images.gitee.com/uploads/images/2022/0226/233837_3fa5c693_1718725.png "屏幕截图.png")
![输入图片说明](https://images.gitee.com/uploads/images/2022/0226/233859_ed83bce1_1718725.png "屏幕截图.png")
## 天气插件
天气插件采用的是【和风天气】的标准版天气插件,可无限制免费试用,需要先注册和风天气账号,
[和风天气账号注册](https://id.qweather.com/#/register)
[和风天气创建插件页面](https://widget.qweather.com/create-standard)
插件 选择【横版】、【款240px】、【高:180px】;否则会出现样式偏移的问题。其他条件任选。
生成代码后 除第一行`<div id="he-plugin-standard"></div>`外,其他代码复制到主题文件夹下`index.php`底部对应位置即可。
## 一键添加
![输入图片说明](https://images.gitee.com/uploads/images/2021/0410/112213_3a134ad6_1718725.gif "a.gif")
在浏览器标签栏添加新标签
标签名称栏随意填写
标签地址栏,填写一下地址代码
```
javascript: var url = location.href;
var title = document.title;
void(open('http://www.你的域名.com/index.php?c=admin&page=add_quick_tpl&url=' + encodeURIComponent(url) + '&title=' + encodeURIComponent(title), "_blank", "toolbar=yes, location=yes, directories=no, status=no, menubar=yes, scrollbars=yes, resizable=no, copyhistory=yes, left=200,top=200,width=400, height=460"));
```
注意域名要替换成你的域名,然后保存即可。
## 相关链接
* [OneNav官网](https://nav.rss.ink/)
* [onenav作者](https://www.xiaoz.me/)

@ -0,0 +1,181 @@
/*百素(1099116749@qq.com)*/
/*
.footer
.search-main .search-input input.kw
.search-main button.search-btn
.search-main .search-input input.kw
.search-main .search-btnlist .search-lists .list img
.search-main button.search-btn img
.search-main .search-input
.search-main-w .date-main
.index-nav .type-list .list
.index-nav .type-list .list a
.index-nav .logo a
.search-main-w
.search-main
.tool-list .list
.site-main .site-list .list
.m-header .logo (max-width:1200px)
.m-header .navbar(max-width:1200px)
.search-main-w(max-width:1200px)
#he-plugin-standard(max-width:1200px)
.search-main .search-btnlist .search-lists(max-width:1200px)
.m-header .logo a(max-width:1200px)
.wv-n-h-now-rain
p.content
#word
#word li
(admin@lylme.com)
*/
#word{width:60%;justify-content:space-between;align-items:center;flex-wrap:wrap;position:absolute;top:290px;background-color:#FFFFFF;padding:12px;border-radius:6px;z-index:100;box-shadow:0px 0px 1px #999}
#word li{margin:10px;padding:5px;width:100%;cursor:pointer}
p.content{text-align:center;color:#999;font-family:cursive;font-size:15px;margin:15px}
.urllist img,.urllist svg,.site-name svg{width:24px;height:20px;margin:auto 15px auto 0px}
.list svg.icon,.list img{width:22px;height:22px;margin-right:10px}
*{padding:0;margin:0;box-sizing:border-box;font-size:14px}
input:focus{outline:none}
textarea:focus{outline:none}
input{}
body{background-color:#f5f6fa}
img{border:none}
li{list-style:none}
h1,h2,h3,h4,h5,h6{font-weight:normal}
a{color:inherit;text-decoration:none}
.cl{clear:both}
.kongs,.kongs:hover{height:0 !important;margin:0 !important;padding:0 !important;border:none !important;background-color:transparent !important;box-shadow:none !important}
.index-nav{width:240px;height:100vh;background-color:#FFFFFF;padding:20px 5px 100px 0px;box-shadow:1px 0px 5px 0 #eeeeee;position:fixed;top:0;bottom:0;left:0;z-index:9}
.index-nav .logo{width:100%;margin-bottom:30px}
.index-nav .logo a{display:block;font-weight:bold;font-size:24px;height:30px;margin:25px}
.m-header .logo a{font-size:18px;font-weight:bold;line-height:2}
.index-nav .logo img{display:block;height:100%;margin:auto}
.index-nav .type-list{height:calc(100% - 60px);padding:0 25px 100px;overflow:auto}
.index-nav .type-list::-webkit-scrollbar{width:6px;background-color:transparent}
.index-nav .type-list::-webkit-scrollbar-button{height:0px;width:0px}
.index-nav .type-list::-webkit-scrollbar-thumb{background-color:#64a15e;border-radius:50px}
.index-nav .type-list::-webkit-scrollbar-track{background-color:transparent}
.index-nav .type-list::-webkit-scrollbar-track-piece{background-color:transparent}
.index-nav .type-list .list{display:flex;justify-content:flex-start;align-items:center;margin-bottom:3px;line-height:42px;transition:0.3s all;overflow:hidden}
.index-nav .type-list .list a{width:100%;display:flex;justify-content:flex-start;align-items:center;font-size:14px;font-weight:bold;padding:0 10px;border-radius:5px;color:#3a3a3a;transition:0.3s all}
.index-nav .type-list .list a i{display:block;margin-right:6px;font-size:22px}
.index-nav .type-list .list span{display:block;width:0;overflow:hidden;text-align:center;background-color:#477975;cursor:pointer;border-radius:0px 5px 5px 0px;color:#FFFFFF;transition:0.3s all}
.index-nav .type-list .list span i{display:block;font-size:18px;transition:0.3s all}
.index-nav .type-list .list:hover a{background-color:#00a2fda6;color:#FFFFFF;transition:0.3s all}
.index-nav .type-list .list:hover span{width:20%;transition:0.3s all}
.index-nav .user-info{width:100%;background-color:#ffffff;padding:25px;display:flex;justify-content:flex-start;align-items:center;position:absolute;bottom:0;left:0}
.index-nav .user-info .pic{display:block;width:45px;height:45px;border-radius:100%;overflow:hidden}
.index-nav .user-info .pic img{display:block;width:100%;height:100%}
.index-nav .user-info .text{padding-left:10px}
.index-nav .user-info .text p.t1{font-weight:bold;color:#555555;margin-bottom:5px}
.index-nav .user-info .text p.t2{color:#c2c2c2}
.index-main{width:100%;padding-left:260px;padding-top:20px;padding-right:20px}
.search{width:100%;display:none;justify-content:space-between;align-items:center}
.search .list{width:370px;position:relative}
.search .list input.kw{display:block;width:100%;height:40px;padding:0 55px 0 25px;border-radius:40px;border:none}
.search .list button{display:block;height:40px;width:50px;background-color:transparent;border:none;position:absolute;top:0;bottom:0;right:0}
.search .list button i{display:block;font-weight:bold;font-size:16px;color:#64a15e}
.search .addsite{width:40px;height:40px;text-align:center;line-height:40px;background-color:#64a15e;border-radius:6px;cursor:pointer}
.search .addsite i{display:block;font-size:26px;color:#FFFFFF}
.search-main-w{width:100%;display:flex;justify-content:space-between;align-items:center}
.search-main{display:flex;padding-top:25px;align-items:center;border-radius:6px;background:none}
.search-main .search-input{width:80%;position:relative}
.search-main .search-input input.kw{font-size:15px;display:block;width:100%;height:50px;padding:0 65px 0 25px;border-radius:10px 0px 0px 10px;border:1px solid #F2F2F2}
.search-main .search-input button.search-bendi{display:block;height:50px;width:60px;background-color:transparent;border:none;position:absolute;top:0;bottom:0;right:0}
.search-main .search-input button.search-bendi i{display:block;font-weight:bold;font-size:20px;color:#64a15e}
.search-main .search-btnlist{display:flex;justify-content:center;align-items:center;position:relative}
.search-main button.search-btn{width:auto;min-width:120px;height:50px;border:none;background-color:#ffffff;color:#3a3a3a;font-weight:bold;font-size:15px;display:flex;justify-content:center;align-items:center;cursor:pointer;border-left:2px solid #9c9fa712}
.search-main button.search-btn img,.search-main button.search-btn svg{display:block;width:25px;height:25px;border-radius:6px;margin-right:6px}
.search-main button.search-btn i{display:block;margin-right:4px;font-size:20px;line-height:50px}
.search-main button.search-change{width:30px;height:50px;text-align:center;border:none;border-radius:0px 10px 10px 0px;background-color:#2C73D2;color:#ffffff;font-size:16px;display:flex;justify-content:center;align-items:center;cursor:pointer}
.search-main button.search-change i{display:block;font-size:16px;line-height:50px}
.search-main .search-btnlist .search-lists{width:390px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:absolute;top:60px;right:0;background-color:#FFFFFF;padding:12px;border-radius:6px;z-index:100;box-shadow:0px 0px 6px #000000}
.search-main .search-btnlist .search-lists.hide{display:none}
.search-main .search-btnlist .search-lists .list{width:33%;line-height:40px;padding:0 10px;display:flex;justify-content:flex-start;align-items:center;font-size:15px;border-radius:6px;cursor:pointer;transition:0.3s all}
.search-main .search-btnlist .search-lists .list img,.search-main .search-btnlist .search-lists .list svg{display:block;width:20px;height:20px;margin-right:8px;border-radius:6px}
.search-main .search-btnlist .search-lists .list:hover{background-color:#64a15e;color:#FFFFFF;transition:0.3s all}
.search-main-w .date-main{text-shadow:1px 1px 8px #504b4b;width:49%;height:180px;background-color:#477975;background-repeat:no-repeat;background-position:initial;background-size:cover;border-radius:6px;display:flex;justify-content:center;flex-direction:column;transition:0.3s all;position:relative}
div#he-plugin-standard{width:49% !important;height:180px !important;background-repeat:round !important}
.wv-n-h-now-rain{bottom:10px !important}
.search-main-w .date-main .times{width:100%;display:block;text-align:center;color:#FFFFFF;font-size:240%;font-weight:bolder;letter-spacing:2px;margin-bottom:15px;line-height:1}
.search-main-w .date-main .list{width:100%;align-items:center;text-align:center}
.search-main-w .date-main span{width:49%;color:#FFFFFF;font-size:16px}
.search-main-w .date-main span.dates{width:100%;display:block;text-align:center;margin-bottom:12px;font-weight:bold}
.search-main-w .date-main span.weeks{margin-left:15px}
.search-main-w .weather-main{width:240px;height:100%;background-color:#01AAED;border-radius:6px;transition:0.3s all}
.site-main{width:100%;margin-top:30px}
.site-main .site-name{display:flex;justify-content:flex-start;align-items:center;align-self:center;font-size:18px;line-height:30px;font-weight:bold;margin-bottom:15px}
.site-main .site-name i{display:block;font-size:20px;margin-right:8px}
.site-main .site-name span{display:block;height:25px;width:25px;line-height:25px;text-align:center;background-color:#64a15e;border-radius:5px;margin-left:8px}
.site-main .site-name span i{color:#ffffff;text-align:center;font-size:14px;margin-right:0}
.site-main .site-name.hidden{display:none}
.site-main .site-list{display:flex;justify-content:space-between;flex-wrap:wrap}
.site-main .site-list .list{width:24%;background-color:#ffffff;border-radius:4px;transition:0.3s all;margin-bottom:15px;position:relative;display:flex;justify-content:flex-start;align-items:flex-start}
.site-main .site-list .list span{display:block;width:25px;height:25px;margin:auto;text-align:center;line-height:25px;position:absolute;top:0;bottom:0;right:0}
.site-main .site-list .list span i{display:block;color:#64a15e;font-size:18px}
.site-main .site-list .list a{display:flex;flex-wrap:wrap;justify-content:flex-start;width:100%;padding:0 5%}
.site-main .site-list .list p.name{color:#666666;font-weight:bold;width:60%;overflow:hidden;text-overflow:ellipsis;position:relative;padding-left:5px;font-size:15px;line-height:44px;white-space:nowrap}
.site-main .site-list .list p.name em{width:18px;height:18px;display:block;margin-right:10px;border-radius:100%;line-height:44px}
.site-main .site-list .list p.name img{width:18px;height:18px;margin:auto;position:absolute;left:0;top:0;bottom:0}
.site-main .site-list .list .desc{display:none;width:100%;font-size:13px;padding-bottom:10px;color:#666;line-height:1.5}
.site-main .site-list .list:hover{background-color:#00a2fda6;transition:0.3s all}
.site-main .site-list .list:hover p.name,.site-main .site-list .list:hover p.desc{color:#ffffff}
.site-main .site-list .list.hidden{display:none}
.site-main .site-list .list.visible{display:flex}
footer{width:100%;padding-left:240px;font-size:14px;color:#666;position:fixed;bottom:10px;left:0;margin:auto;text-align:center;height:auto;line-height:23px;margin-top:30px}
footer a{color:#666}
footer.show{position:static}
footer a:hover{color:#64a15e !important}
.tool-list{position:fixed;bottom:30px;right:15px;z-index:99;width:45px}
.tool-list .list{width:45px;height:45px;display:none;background-color:#00a2fda6;color:white;text-align:center;line-height:45px;border-radius:6px;cursor:pointer;margin-top:12px}
.tool-list .list i{font-size:20px}
.tool-list .addsite i{font-size:24px}
.addsiteBox{border-radius:6px !important;overflow:hidden}
.addsite-main{display:none;padding-bottom:15px;width:460px;margin:auto;background-color:#FFFFFF;box-shadow:0px 0px 6px #ccc;overflow:hidden}
.addsite-main .title{background-color:#64a15e;text-align:center;line-height:80px;color:#FFFFFF;font-weight:bold;font-size:22px;margin-bottom:20px;letter-spacing:2px}
.addsite-main .list-w{width:100%;padding:0 20px;display:flex;justify-content:space-between;flex-wrap:wrap}
.addsite-main .list{width:100%;margin-bottom:15px;position:relative}
.addsite-main .list span.icon{display:flex;justify-content:center;flex-direction:column;width:35px;text-align:center;height:100%;margin:auto;position:absolute;left:0;top:0;bottom:0}
.addsite-main .list span.icon i{color:#64a15e;display:block;font-size:18px}
.addsite-main .list input.text{display:block;width:100%;height:44px;padding:0 8px 0 35px;border-radius:6px;background-color:#f5f6fa;border:none;color:#555}
.addsite-main .list.type{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center;margin-bottom:7px}
.addsite-main .list.type span{display:flex;justify-content:center;align-items:center;width:19%;text-align:center;padding:7px 0px;font-size:13px;border:1px solid #64a15e;cursor:pointer;border-radius:6px;margin-bottom:8px;transition:0.3s all}
.addsite-main .list.type span:hover,.addsite-main .list.type span.hover{background-color:#64a15e;color:#FFFFFF;transition:0.3s all}
.addsite-main .list-2{width:100%;display:flex;justify-content:space-between;align-items:center}
.addsite-main .list-2 .li{width:48%;display:flex;justify-content:space-between;align-items:center;line-height:40px;background-color:#f5f6fa;padding:0 10px;border-radius:6px;overflow:hidden}
.addsite-main .list-2 .li span{display:block;width:40%}
.addsite-main .list-2 .li input.num{display:block;width:60%;height:40px;padding:0 5px;background-color:#f5f6fa;border:none}
.addsite-main .list textarea{display:block;width:100%;height:80px;padding:10px;border-radius:6px;background-color:#f5f6fa;border:none;color:#555;line-height:1.4}
.addsite-main .list button{width:100%;display:block;height:44px;background-color:#64a15e;border:1px solid #64a15e;border-radius:6px;color:#FFFFFF;font-size:16px;cursor:pointer;transition:0.3s all}
.addsite-main .list button:hover{transition:0.3s all;box-shadow:0px 0px 6px #333333}
.addsite-main .layui-unselect,.addsite-main .layui-unselect *{box-sizing:content-box}
.addsite-main .layui-form-switch{margin-top:0}
.m-header{display:none}
@media only screen and (max-width:1200px){#word{top:340px}
.index-nav{left:-100%;transition:0.3s all}
.index-nav.show{left:0;transition:0.3s all}
.index-main{padding:15px !important}
.search-main-w{width:100%;margin-top:60px}
.search-main-w .date-main{}
#he-plugin-standard{padding:0px !important}
.search-main{width:100%;padding-top:25px;background-position:center}
.search-main .search-input{width:80%}
.search-main .search-btnlist{}
.search-main .search-btnlist .search-lists{font-size:13px}
.site-main .site-name{margin-bottom:10px}
.site-main .site-list .list{width:48%;margin-bottom:10px}
.site-main .site-list{margin-bottom:25px}
.site-main .site-list .list span{position:absolute;right:0px;top:0;bottom:0;margin:auto}
.site-main .site-list .list a{padding:0 10% 0 5%}
footer{padding-left:0}
.m-header{width:100%;padding:10px 15px;display:flex;justify-content:space-between;align-items:center;position:fixed;top:0;background-color:#FFFFFF;z-index:9999;box-shadow:0px 0px 1px #C0C4CC}
.m-header .logo{}
.m-header .logo img{display:block;height:100%}
.m-header .navbar{display:flex;justify-content:center;flex-direction:column;width:40px;height:40px;font-size:28px;text-align:center;border:1px solid #000;color:#000;border-radius:6px}
.m-navlist-w{width:100%;position:absolute;top:100%;left:0;right:0;background-color:#FFFFFF;padding:15px;display:none;border-top:1px solid #C0C4CC}
.m-navlist{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center}
.m-navlist a.list{width:33%;padding:0 10px;line-height:40px;display:flex;justify-content:flex-start;align-items:center}
.m-navlist a.list i{display:block;margin-right:4px}
.addsite-main{width:100%}
.addsite-main .list.type span{width:32%}
}

@ -0,0 +1,218 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<meta http-equiv="Cache-Control" content="no-transform">
<meta name="applicable-device" content="pc,mobile">
<meta name="MobileOptimized" content="width">
<meta name="HandheldFriendly" content="true">
<meta name="author" content="BaiSu" />
<title><?php echo $conf['title']?></title>
<meta name="keywords" content="<?php echo $conf['keywords']?>" />
<meta name="description" content="<?php echo $conf['description']?>" />
<link rel="icon" href="<?php echo $conf['logo']?>" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="<?php echo $templatepath;?>/css/style.css?v=20220512" />
<link rel="stylesheet" href="<?php echo $cdnpublic ?>/assets/css/fontawesome-free5.13.0.css">
<meta name="lsvn" content="<?php echo base64_encode($conf['version'])?>">
</head>
<body>
<!--手机顶部 S-->
<div class="m-header">
<div class="logo">
<a href="/"><?php echo explode("-", $conf['title'])[0];
?></a>
</div>
<div class="navbar">
<i class="iconfont icon-caidan"></i>
</div>
<div class="m-navlist-w">
<div class="m-navlist">
<?php
//输出导航菜单
$tagslists = $DB->query("SELECT * FROM `lylme_tags`");
while ($taglists = $DB->fetch($tagslists)) {
echo '<a href="' . $taglists["tag_link"] . '" class="list catlist"';
if ($taglists["tag_target"] == 1) echo ' target="_blant"';
echo '><b>' . $taglists["tag_name"] . '</b></a>';
}
?>
</div>
</div>
</div>
<!--手机顶部 E-->
<!--左侧分类栏 S-->
<div class="index-nav">
<div class="logo">
<a href="/"><?php echo explode("-", $conf['title'])[0];
?></a>
</div>
<div class="type-list">
<?php
$tagslists = $DB->query("SELECT * FROM `lylme_tags`");
while ($taglists = $DB->fetch($tagslists)) {
echo '
<div class="list">
<a href="' . $taglists["tag_link"] . '" class="list catlist"';
if ($taglists["tag_target"] == 1) echo ' target="_blant"';
echo '>' . $taglists["tag_name"] . '</a> </div> ';
}
?>
<hr><p style="margin: 10px;color: #000;font-weight: bold;font-size:18px">分组</p>
<?php
$groups = $DB->query("SELECT * FROM `lylme_groups` ORDER BY `group_order` ASC");
while ($group = $DB->fetch($groups)) {
echo '<div class="list">
<a href="#category-' . $group["group_id"] . '" class="list catlist">
' . $group["group_icon"] . $group["group_name"] . '</a>
</div>';
}
?>
</div>
</div>
<!--左侧分类栏 E-->
<!--中间主体 S-->
<div class="index-main">
<!--搜索 S-->
<div class="search-main-w">
<div class="date-main"
<?php if(background()){
echo 'style="background-image: url('.background().')"';
}?>>
<time class="times" id="nowTime">00:00:00</time>
<span class="dates" id="nowYmd">2022年01月01日</span>
<div class="list">
<span class="lunars" id="nowLunar">辛丑年十一月廿九
</span>
<span class="weeks" id="nowWeek">星期六</span>
</div>
</div>
<div class="weather-main" id="he-plugin-standard"></div>
</div>
<div class="search-main">
<div class="search-input">
<input type="text" class="kw" name="search" id="search" value="" class="kw" placeholder="请输入搜索内容" autocomplete="off" />
<!--<button class="search-bendi"><i class="iconfont icon-sousuo"></i></button>-->
</div>
<div class="search-btnlist">
<?php
$soulists = $DB->query("SELECT * FROM `lylme_sou` ORDER BY `lylme_sou`.`sou_order` ASC");
while ($soulist = $DB->fetch($soulists)) {
if ($soulist["sou_st"] == 1) {
if(!$fso) {
echo '<button class="search-btn" data-url="';
if (checkmobile()&& $soulist["sou_waplink"] != NULL) {
echo $soulist["sou_waplink"];
} else {
echo $soulist["sou_link"];
}
echo '">'. $soulist["sou_icon"] . $soulist["sou_name"] . '</button>
<button class="search-change"><i class="iconfont icon-xiangxia"></i></button>
<div class="search-lists hide"> ';
$fso = true;
}
echo ' <div class="list" data-url="';
if (checkmobile()&& $soulist["sou_waplink"] != NULL) {
echo $soulist["sou_waplink"];
} else {
echo $soulist["sou_link"];
}
echo '">'. $soulist["sou_icon"] . $soulist["sou_name"] . '
</div>';
}
}
?>
<div class="list kongs"></div>
</div>
</div>
<ul id="word" style="display:none">
</ul>
</div>
<div class="search">
<div class="list">
<input type="text" name="search" id="search" value="" class="kw" placeholder="输入关键词进行搜索,回车键百度搜索" autocomplete="off" />
<button><i class="iconfont icon-sousuo"></i></button>
</div>
</div>
<!--搜索 E-->
<div class="site-main">
<?php
if ($conf['yan'] == 'true') {
echo '<p class="content">' . yan().'</p>';
}
include'list.php';?>
</div>
</div>
</div>
<!--中间主体 E-->
<!--底部版权 S-->
<footer>
<!--网站统计-->
<?php if(!empty($conf['wztj'])) {
echo '<p>'.$conf["wztj"].'</p>';
}
?>
<!--备案信息-->
<?php if(!empty($conf['icp'])) {
echo '<p><img src="./assets/img/icp.png" width="16px" height="16px" /><a href="http://beian.miit.gov.cn/" rel="nofollow" class="icp nav-link" target="_blank" _mstmutation="1" _istranslated="1">'.$conf['icp'].'</a></p>';
}
?>
<p>Theme By <a href="https://gitee.com/baisucode/baisu-two" target="_blank">BaiSu</a>. <?php echo $conf['copyright']?></p>
</footer>
<!--底部版权 E-->
<!--返回顶部 S-->
<div class="tool-list">
<div class="scroll_top list">
<i class="iconfont icon-top"></i>
</div>
</div>
<!--返回顶部 E-->
<?php if ($conf['tq']=='true'){?>
<!--天气代码替换处 S-->
<script type="text/javascript">
WIDGET = {
"CONFIG": {
"layout": "1",
"width": "240",
"height": "180",
"background": "1",
"dataColor": "FFFFFF",
"borderRadius": "6",
"modules": "10",
"key": "7423b182d5cb48239f19df9e25cdf320"
//和风天气秘钥申请地址https://widget.qweather.com/create-standard/
}
}
</script>
<script src="https://widget.qweather.net/standard/static/js/he-standard-common.js?v=2.0"></script>
<!--天气代码替换处 E-->
<?php }else{echo '<style>.search-main-w {display: none;} @media only screen and (max-width: 1200px){.search-main {padding-top:70px !important;}}</style>';}?>
<!--iconfont-->
<link rel="stylesheet" type="text/css" href="//at.alicdn.com/t/font_3000268_oov6h4vru0h.css" />
<script src="//at.alicdn.com/t/font_3000268_oov6h4vru0h.js" type="text/javascript" charset="utf-8"></script>
<!--JS-->
<script src="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-2-M/jquery/3.5.1/jquery.min.js" charset="utf-8"></script>
<script src="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/layer/3.5.1/layer.js" type="application/javascript"></script>
<script src="<?php echo $templatepath;?>/js/holmes.js" type="text/javascript" charset="utf-8"></script>
<script src="<?php echo $templatepath;?>/js/lunar.js" type="text/javascript" charset="utf-8"></script>
<script src="<?php echo $templatepath;?>/js/common.js" type="text/javascript" charset="utf-8"></script>
<script src="<?php echo $cdnpublic ?>/assets/js/svg.js"></script>
</body>
</html>
<!--二开说明:-->
<!--1. 当前主题使用基于baisuTwo主题开发作者baisu-->
<!--2. 原项目地址https://gitee.com/baisucode/baisu-two-->
<!--3. 二开作者:六零
<!--4. 修改了适配LyLme Spage修改了部分CSS删除不适用与本项目的代码-->

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save