Files
YwxAppThink/templates/myblog/view/blog/frontend/layout.html
T

180 lines
7.7 KiB
HTML

<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{block name="title"}{$siteConf.site_name|default='博客'}{/block}</title>
<meta name="description" content="{$siteConf.site_description|default=''}" />
<link rel="stylesheet" href="/assets/layui/css/layui.css">
<link rel="stylesheet" href="/static/blog/css/theme.css">
<link rel="stylesheet" href="/static/templates/myblog/theme.css">
<style>
/* 主题色由后台「基本设置」配置,注入 CSS 变量驱动整站配色;皮肤可覆盖默认值 */
:root { --theme: {$theme_color|default='#e0533d'}; }
</style>
{block name="style"}{/block}
</head>
<body class="has-tab myblog-skin">
<!-- 顶部导航 -->
<div class="fb-nav">
<div class="inner">
<a href="{:url('blog/index/index')}" class="logo">{$siteConf.site_name|default='博客'}</a>
<nav class="menu">
<a href="{:url('blog/index/index')}" {if $nav_active=='index'}class="active"{/if}>首页</a>
<a href="{:url('category/index')}" {if $nav_active=='category'}class="active"{/if}>分类</a>
<a href="{:url('blog/tag/index')}" {if $nav_active=='tag'}class="active"{/if}>标签</a>
<a href="{:url('blog/index/about')}" {if $nav_active=='about'}class="active"{/if}>关于</a>
</nav>
<form class="search" action="{:url('blog/search/index')}" method="get">
<input type="text" name="keyword" placeholder="搜索文章..." autocomplete="off">
<button type="submit"><i class="layui-icon layui-icon-search"></i></button>
</form>
<div class="user">
{if $is_login}
<a href="{:url('blog/article/author', ['id' => $current_uid])}">我的博客</a>
<a href="{:url('/user/index/index')}">中心</a>
{else}
<a href="{:url('auth/login')}">登录</a>
{/if}
</div>
<button class="hamburger" id="fbMenuBtn"><i class="layui-icon layui-icon-more-vertical"></i></button>
</div>
<div class="drawer" id="fbDrawer">
<a href="{:url('index/index')}">首页</a>
<a href="{:url('category')}">分类</a>
<a href="{:url('/tag')}">标签</a>
<a href="{:url('/index/about')}">关于</a>
<div class="user">
{if $is_login}
<a href="{:url('/article/author', ['id' => $current_uid])}">我的博客</a>
<a href="{:url('user/index')}">个人中心</a>
{else}
<a href="{:url('auth/login')}">登录</a>
{/if}
</div>
</div>
</div>
<!-- 主体内容 -->
<div class="fb-main">
<div class="fb-wrap">
{block name="body"}{/block}
</div>
</div>
<!-- 移动端底部 Tab 导航 -->
<div class="fb-tabbar">
<a href="{:url('/blog/index/index')}" {if $nav_active=='index'}class="active"{/if}><i class="layui-icon layui-icon-home"></i>首页</a>
{if $is_login}
<a href="{:url('/blog/article/author', ['id' => $current_uid])}"><i class="layui-icon layui-icon-username"></i>我的</a>
{else}
<a href="{:url('auth/login')}"><i class="layui-icon layui-icon-username"></i>我的</a>
{/if}
</div>
<!-- 页脚 -->
<footer class="fb-footer">
<p>© {:date('Y')} {$siteConf.site_name|default='博客'}. All Rights Reserved.</p>
</footer>
<script src="/assets/layui/layui.js"></script>
<script>
layui.use(['element', 'layer', 'form'], function(){
var element = layui.element, layer = layui.layer, form = layui.form;
window.layer = layer; window.layui = layui;
var drawer = document.getElementById('fbDrawer');
document.getElementById('fbMenuBtn').addEventListener('click', function(e){
e.stopPropagation();
drawer.classList.toggle('open');
});
document.addEventListener('click', function(e){
if (!drawer.contains(e.target) && e.target.id !== 'fbMenuBtn' && !document.getElementById('fbMenuBtn').contains(e.target)) {
drawer.classList.remove('open');
}
});
});
</script>
<!-- 全局登录弹窗(前台通用) -->
<div id="globalLoginBox" style="display:none; padding: 20px 24px;">
<form class="layui-form" id="globalLoginForm" lay-filter="globalLoginForm">
<div class="layui-form-item">
<label class="layui-form-label">用户名</label>
<div class="layui-input-block">
<input type="text" name="username" lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">密码</label>
<div class="layui-input-block">
<input type="password" name="password" lay-verify="required" placeholder="请输入密码" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">验证码</label>
<div class="layui-input-block">
<div class="layui-row layui-col-space10">
<div class="layui-col-xs7">
<input type="text" name="captcha" lay-verify="required" placeholder="图形验证码" autocomplete="off" class="layui-input">
</div>
<div class="layui-col-xs5">
<img id="globalLoginCaptcha" src="{:url('user/ajax/verify')}" alt="点击刷新验证码" title="点击刷新验证码" style="height:38px;cursor:pointer;border-radius:2px;">
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="globalLoginSubmit">登 录</button>
<button type="reset" class="layui-btn layui-btn-primary">重 置</button>
</div>
</div>
</form>
</div>
<script>
layui.use(['layer', 'form', 'jquery'], function(){
var layer = layui.layer, form = layui.form, $ = layui.$;
var globalLoginIndex = null;
function refreshGlobalCaptcha(){
$('#globalLoginCaptcha').attr('src', '{:url(\'member/ajax/verify\')}?t=' + Date.now());
}
$('#globalLoginCaptcha').on('click', refreshGlobalCaptcha);
window.openLogin = function(cb){
globalLoginIndex = layer.open({
type: 1, title: '用户登录', area: ['480px', 'auto'],
content: $('#globalLoginBox'),
success: function(){
refreshGlobalCaptcha();
$('#globalLoginForm')[0].reset();
if (typeof cb === 'function') { window.__loginCb = cb; }
}
});
};
form.on('submit(globalLoginSubmit)', function(data){
$.post('{:url(\'member/login/save\')}', data.field, function(res){
if (res.code === 0) {
layer.msg(res.message || '登录成功', {icon: 1});
setTimeout(function(){
if (globalLoginIndex) { layer.close(globalLoginIndex); }
if (typeof window.__loginCb === 'function') {
var cb = window.__loginCb; window.__loginCb = null; cb();
} else { location.reload(); }
}, 600);
} else {
layer.msg(res.message || '登录失败', {icon: 2});
refreshGlobalCaptcha();
}
}, 'json');
return false;
});
$(document).on('click', 'a[href*="auth/login"], a[href*="member/login"]', function(e){
if ($(this).attr('target') === '_blank') { return; }
e.preventDefault();
window.openLogin();
});
});
</script>
</body>
</html>