onenav/templates/admin/setting/theme.php
2024-03-18 15:20:18 +08:00

267 lines
10 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- 主题设置 -->
<?php require_once(dirname(__DIR__).'/header.php'); ?>
<?php include_once(dirname(__DIR__).'/left.php'); ?>
<div class="layui-body">
<!-- 内容主体区域 -->
<div class="layui-row content-body place-holder" id = "layer-photos">
<!-- 说明提示框 -->
<div class="layui-col-lg12">
<div class="setting-msg">
<p>1. 主题更换及设置说明,请参考:<a href="https://dwz.ovh/yoyaf" target = "_blank" title = "主题更换及设置说明">https://dwz.ovh/yoyaf</a></p>
<p>2. 主题本身不收取费用,但为了分摊服务器存储和带宽成本,主题下载和更新需要订阅用户才能使用,敬请谅解!订阅地址:<a href="https://dwz.ovh/69h9q" rel="nofollow" target="_blank" title="购买订阅服务">https://dwz.ovh/69h9q</a></p>
<p>3. 部分主题来自其它开源项目OneNav仅做适配主题版权归原作者所有</p>
<p>4. 主题提交请联系QQ:446199062</p>
</div>
</div>
<!-- 说明提示框END -->
<div class="layui-col-lg12">
<div class="layui-row layui-col-space24">
<!-- 主题列表new -->
<?php foreach ($themes as $key => $theme) {
//var_dump($theme['info']->name);
?>
<div class="layui-col-md3">
<div class="layui-card custom-card">
<div class="layui-card-header" id="<?php echo $key; ?>">
<div class="them-header">
<div class="left">
<span class = "name"><?php echo $key; ?> - <?php echo $theme['info']->version ?></span>
<?php if( $current_them == $key ) { ?>
<!-- <span style = "color:#ff5722;">(使用中)</span> -->
<?php } ?>
</div>
<div class="right">
<span class="renewable" style="color:#FF5722;font-size:14px;"></span>
</div>
</div>
</div>
<div class="layui-card-body">
<!-- 主题图片 -->
<div class = "screenshot">
<p><img layer-src="<?php echo $theme['info']->screenshot; ?>" src="<?php echo $theme['info']->screenshot; ?>" alt=""></p>
<?php if( $current_them == $key ) { ?>
<div class="in-use">使用中</div>
<?php } ?>
</div>
<!-- 主题图片END -->
<hr>
<div class = "thme-btns">
<div class="layui-btn-group">
<button type="button" class="layui-btn layui-btn-sm" onclick = "set_theme('<?php echo $key; ?>')">使用</button>
<button type="button" class="layui-btn layui-btn-sm" onclick = "theme_detail('<?php echo $key; ?>')">详情</button>
<button type="button" class="layui-btn layui-btn-sm" onclick = "theme_config('<?php echo $key; ?>')">参数设置</button>
<button type="button" class="layui-btn layui-btn-sm" onclick = "update_theme('<?php echo $key; ?>','<?php echo $theme['info']->version; ?>')">更新</button>
<a class="layui-btn layui-btn-sm" target = "_blank" href="/index.php?theme=<?php echo $key; ?>">预览</a>
<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" onclick = "delete_theme('<?php echo $key; ?>')">删除</button>
</div>
</div>
</div>
</div>
</div>
<?php } ?>
<!-- 主题列表new END -->
</div>
</div>
<hr>
<!-- 在线主题 -->
<div class="layui-col-lg12">
<h2 style = "padding-bottom:16px;padding-top:8px;">在线主题:</h2>
<div class="layui-row layui-col-space24">
<?php foreach ($theme_list as $key => $theme) {
//var_dump($theme['info']->name);
?>
<!-- 在线主题列表 -->
<div class="layui-col-md3">
<div class="layui-card custom-card">
<div class="layui-card-header">
<?php echo $key; ?> - <?php echo $theme->version ?>
</div>
<div class="layui-card-body">
<!-- 主题图片 -->
<div class = "screenshot">
<p><img layer-src="<?php echo $theme->screenshot; ?>" src="<?php echo $theme->screenshot; ?>" alt=""></p>
</div>
<!-- 主题图片END -->
<hr>
<div class = "thme-btns">
<div class="layui-btn-group">
<button type="button" class="layui-btn layui-btn-sm" onclick = "down_theme('<?php echo $key; ?>','download')">下载</button>
<a class="layui-btn layui-btn-sm" title = "查看<?php echo $key; ?>演示" target = "_blank" href="https://nav.rss.ink/index.php?theme=<?php echo $key; ?>">查看演示</a>
</div>
</div>
</div>
</div>
</div>
<!-- 主题列表END -->
<?php } ?>
</div>
</div>
<!-- 在线主题END -->
</div>
</div>
<?php include_once(dirname(__DIR__).'/footer.php'); ?>
<script>
layui.use('layer', function(){
var layer = layui.layer;
});
function theme_detail(name){
layer.open({
title: name,
type:2,
area: ['60%', '59%'],
content:'/index.php?c=admin&page=setting/theme_detail&name=' + name
});
}
function theme_detail_online(name){
layer.open({
title: name,
type:2,
area: ['60%', '59%'],
content:'/index.php?c=admin&page=setting/theme_detail&name=' + name
});
}
//主题参数设置
function theme_config(name){
layer.open({
title: "设置主题【" + name + "】参数:",
type:2,
area: ['620px', '560px'],
content:'/index.php?c=admin&page=setting/theme_config&name=' + name
});
}
function set_theme(name) {
$.post("/index.php?c=api&method=set_theme",{key:"theme",value:name},function(data,status){
if( data.code == 0 ) {
layer.msg(data.data, {icon: 1});
setTimeout(() => {
location.reload();
}, 2000);
}
else{
layer.msg(data.err_msg, {icon: 5});
}
});
}
function down_theme(name,type) {
//请求订阅接口并获取key、value
var index = layer.load(1);
// $.ajax({
// 'url': '/index.php?c=api&method=check_subscribe',
// 'type': 'GET',
// 'async': false,
// success:function(result) {
// }
// });
$.get("/index.php?c=api&method=check_subscribe",function(result,status){
if( result.code == 200 ) {
var key = result.data.key;
var value = result.data.value;
//继续下载主题
$.get("/index.php?c=api&method=down_theme",{name:name,key:key,value:value,type:type},function(data,status){
//如果下载成功
if( data.code == 200 ) {
layer.closeAll('loading');
layer.msg(data.msg, {icon: 1});
//重载当前页面
setTimeout(() => {
window.location.reload();
}, 2000);
}
else{
layer.closeAll('loading');
layer.msg(data.msg, {icon: 5});
}
});
}
else{
layer.closeAll('loading');
layer.msg(result.msg, {icon: 5});
}
});
}
//更新主题
function update_theme(name,version){
//获取远程主题最新版本号
var index = layer.load(1);
var infourl = "https://onenav.xiaoz.top/themes/" + name + "/info.json";
$.ajax({
type:"HEAD",
async:true,
url:infourl,
statusCode: {
200: function() {
$.get("https://onenav.xiaoz.top/themes/" + name + "/info.json",function(data,status){
let new_version = data.version;
if ( version >= new_version ) {
layer.closeAll('loading');
layer.msg('已经是最新版本,无需更新!', {icon: 5});
}
else{
down_theme(name,'update');
}
});
},
403:function() {
layer.closeAll('loading');
layer.msg('更新失败,权限不足!', {icon: 5});
},
404:function() {
layer.closeAll('loading');
layer.msg('更新失败,远程服务器上不存在此主题!', {icon: 5});
}
}
});
}
//遍历所有主题,检查是否有更新
function check_update(){
console.log('fdsfsdf');
//请求远程主题列表
$.get("https://onenav.xiaoz.top/v1/theme_list.php",function(data,status){
let result = data.data;
console.log(result);
//console.log(result.5iux);
for (const obj in result) {
//获取主题名称
let select = `#${obj} .name`;
let value = $(select).text();
//如果获取到的数据为空
if( value == '' ) {
continue;
}
//获取最新版本
let latest_version = result[obj].version;
//获取当前版本
let current_version = value.split(' - ')[1];
//如果存在最新版本
if( latest_version > current_version ) {
console.log("#" + obj + " .renewable");
$("#" + obj + " .renewable").append(`(可更新至${latest_version})`);
}
}
});
}
check_update();
layer.photos({
photos: '#layer-photos'
,anim: 5 //0-6的选择指定弹出图片动画类型默认随机请注意3.0之前的版本用shift参数
});
</script>