You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

493 lines
27 KiB
HTML

<!DOCTYPE html>
<!--[if IE 9]> <html class="ie9 no-focus" lang="zh"> <![endif]-->
<!--[if gt IE 9]><!--> <html class="no-focus" lang="zh"> <!--<![endif]-->
<head>
<meta charset="utf-8">
{block name="page-title"}<title>{$page_title|default='后台'} | {:config('web_site_title')} - DolphinPHP</title>{/block}
<meta name="description" content="{:config('web_site_description')}">
<meta name="author" content="caiweiming">
<meta name="robots" content="noindex, nofollow">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1.0,user-scalable=0">
<!-- Icons -->
<!-- The following icons can be replaced with your own, they are used by desktop and mobile browsers -->
<link rel="shortcut icon" href="__ADMIN_IMG__/favicons/favicon.ico">
<link rel="icon" type="image/png" href="__ADMIN_IMG__/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="__ADMIN_IMG__/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="__ADMIN_IMG__/favicons/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="__ADMIN_IMG__/favicons/favicon-160x160.png" sizes="160x160">
<link rel="icon" type="image/png" href="__ADMIN_IMG__/favicons/favicon-192x192.png" sizes="192x192">
<link rel="apple-touch-icon" sizes="57x57" href="__ADMIN_IMG__/favicons/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="__ADMIN_IMG__/favicons/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="__ADMIN_IMG__/favicons/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="__ADMIN_IMG__/favicons/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="__ADMIN_IMG__/favicons/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="__ADMIN_IMG__/favicons/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="__ADMIN_IMG__/favicons/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="__ADMIN_IMG__/favicons/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="__ADMIN_IMG__/favicons/apple-touch-icon-180x180.png">
<!-- END Icons -->
<!-- Stylesheets -->
<!-- Page JS Plugins CSS -->
{notempty name="_css_files"}
{eq name="Think.config.minify_status" value="1"}
<link rel="stylesheet" href="{:minify('group', $_css_files)}">
{else/}
{volist name="_css_files" id="css"}
{:load_assets($css)}
{/volist}
{/eq}
{/notempty}
{notempty name="_icons"}
{volist name="_icons" id="icon"}
<link rel="stylesheet" href="{$icon.url}">
{/volist}
{/notempty}
{block name="plugins-css"}{/block}
<!-- Bootstrap and OneUI CSS framework -->
{eq name="Think.config.minify_status" value="1"}
<link rel="stylesheet" id="css-main" href="{:minify('group', 'libs_css,core_css')}">
{else/}
<link rel="stylesheet" href="__LIBS__/sweetalert/sweetalert.min.css?v={:config('asset_version')}">
<link rel="stylesheet" href="__LIBS__/magnific-popup/magnific-popup.min.css?v={:config('asset_version')}">
<link rel="stylesheet" href="__ADMIN_CSS__/bootstrap.min.css?v={:config('asset_version')}">
<link rel="stylesheet" href="__ADMIN_CSS__/oneui.css?v={:config('asset_version')}">
<link rel="stylesheet" href="__ADMIN_CSS__/dolphin.css?v={:config('asset_version')}" id="css-main">
<link rel="stylesheet" href="__LIBS__/viewer/viewer.min.css?v={:config('asset_version')}">
{/eq}
<link rel="stylesheet" id="css-theme" href="__ADMIN_CSS__/themes/{:config('system_color')}.min.css?v={:config('asset_version')}">
<!--页面css-->
{block name="style"}{/block}
{notempty name="_pop"}
<style>
#page-container.sidebar-l.sidebar-o {
padding-left: 0;
}
.header-navbar-fixed #main-container {
padding-top: 0;
}
</style>
{/notempty}
<!-- END Stylesheets -->
<!--插件css钩子-->
{:hook('page_plugin_css')}
<!--自定义css-->
<link rel="stylesheet" href="__ADMIN_CSS__/custom.css?v={:config('asset_version')}">
<script>
// url
var dolphin = {
'top_menu_url': '{:url("admin/ajax/getSidebarMenu")}',
'theme_url': '{:url("admin/ajax/setTheme")}',
'jcrop_upload_url': '{$jcrop_upload_url ? $jcrop_upload_url : url("admin/attachment/upload", ["dir" => "images", "from" => "jcrop", "module" => request()->module()])}',
'editormd_upload_url': '{$editormd_upload_url ? $editormd_upload_url : url("admin/attachment/upload", ["dir" => "images", "from" => "editormd", "module" => request()->module()])}',
'editormd_mudule_path': '__LIBS__/editormd/lib/',
'ueditor_upload_url': '{$ueditor_upload_url ? $ueditor_upload_url : url("admin/attachment/upload", ["dir" => "images", "from" => "ueditor", "module" => request()->module()])}',
'wangeditor_upload_url': '{$wangeditor_upload_url ? $wangeditor_upload_url : url("admin/attachment/upload", ["dir" => "images", "from" => "wangeditor", "module" => request()->module()])}',
'wangeditor_emotions': "__LIBS__/wang-editor/emotions.data",
'ckeditor_img_upload_url': '{$ckeditor_img_upload_url ? $ckeditor_img_upload_url : url("admin/attachment/upload", ["dir" => "images", "from" => "ckeditor", "module" => request()->module()])}',
'WebUploader_swf': '__LIBS__/webuploader/Uploader.swf',
'file_upload_url': '{$file_upload_url ? $file_upload_url : url("admin/attachment/upload", ["dir" => "files", "module" => request()->module()])}',
'image_upload_url': '{$image_upload_url ? $image_upload_url : url("admin/attachment/upload", ["dir" => "images", "module" => request()->module()])}',
'upload_check_url': '{$upload_check_url ? $upload_check_url : url("admin/ajax/check")}',
'get_level_data': '{:url("admin/ajax/getLevelData")}',
'quick_edit_url': '{$quick_edit_url ? $quick_edit_url : url("quickEdit")}',
'aside_edit_url': '{$aside_edit_url ? $aside_edit_url : url("admin/system/quickEdit")}',
'triggers': {:json_encode(isset($field_triggers) ? $field_triggers : [])}, // 触发器集合
'field_hide': '{$field_hide|default=""}', // 需要隐藏的字段
'field_values': '{$field_values|default=""}',
'validate': '{$validate|default=""}', // 验证器
'validate_fields': '{$validate_fields|default=""}', // 验证字段
'search_field': '{:input("param.search_field", "")}', // 搜索字段
// 字段过滤
'_filter': '{$Request.param._filter ? $Request.param._filter : (isset($_filter) ? $_filter : "")}',
'_filter_content': '{$Request.param._filter_content == '' ? (isset($_filter_content) ? $_filter_content : "") : $Request.param._filter_content}',
'_field_display': '{$Request.param._field_display ? $Request.param._field_display : (isset($_field_display) ? $_field_display : "")}',
'_field_clear': {:json_encode(isset($field_clear) ? $field_clear : [])},
'get_filter_list': '{:url("admin/ajax/getFilterList")}',
'curr_url': '{:url("", $Request.route)}',
'curr_params': {:json_encode($Request.param)},
'layer': {:json_encode(config("zbuilder.pop"))}
};
</script>
</head>
<body>
<!-- Page Container -->
<div id="page-container" class="sidebar-l sidebar-o side-scroll header-navbar-fixed {empty name="_pop"}{$_COOKIE['sidebarMini'] ?= 'sidebar-mini'}{/empty}">
<!-- Side Overlay-->
{empty name="_pop"}
{block name="aside"}
<aside id="side-overlay">
<!-- Side Overlay Scroll Container -->
<div id="side-overlay-scroll">
<!-- Side Header -->
<div class="side-header side-content">
<!-- Layout API, functionality initialized in App() -> uiLayoutApi() -->
<button class="btn btn-default pull-right" type="button" data-toggle="layout" data-action="side_overlay_close">
<i class="fa fa-times"></i>
</button>
<span>
<img class="img-avatar img-avatar32" src="{$Think.session.user_auth.uid|get_avatar}" alt="">
<span class="font-w600 push-10-l">{:session('user_auth.username')}</span>
</span>
</div>
<!-- END Side Header -->
<!--侧栏-->
{include file="../application/common/builder/aside/layout.html" /}
</div>
<!-- END Side Overlay Scroll Container -->
</aside>
{/block}
{/empty}
<!-- END Side Overlay -->
<!-- Sidebar -->
{empty name="_pop"}
{block name="sidebar"}
<nav id="sidebar">
<!-- Sidebar Scroll Container -->
<div id="sidebar-scroll">
<!-- Sidebar Content -->
<!-- Adding .sidebar-mini-hide to an element will hide it when the sidebar is in mini mode -->
<div class="sidebar-content">
<!-- Side Header -->
<div class="side-header side-content bg-white-op dolphin-header">
<!-- Layout API, functionality initialized in App() -> uiLayoutApi() -->
<button class="btn btn-link text-gray pull-right hidden-md hidden-lg" type="button" data-toggle="layout" data-action="sidebar_close">
<i class="fa fa-times"></i>
</button>
<!-- Themes functionality initialized in App() -> uiHandleTheme() -->
<div class="btn-group pull-right">
<button class="btn btn-link text-gray dropdown-toggle" data-toggle="dropdown" type="button">
<i class="si si-drop"></i>
</button>
<ul class="dropdown-menu dropdown-menu-right font-s13 sidebar-mini-hide">
<li {$system_color == 'modern' ?= 'class="active"'}>
<a data-toggle="theme" data-theme="modern" data-css="__ADMIN_CSS__/themes/modern.min.css" tabindex="-1" href="javascript:void(0)">
<i class="fa fa-circle text-modern pull-right"></i> <span class="font-w600">Modern</span>
</a>
</li>
<li {$system_color == 'amethyst' ?= 'class="active"'}>
<a data-toggle="theme" data-theme="amethyst" data-css="__ADMIN_CSS__/themes/amethyst.min.css" tabindex="-1" href="javascript:void(0)">
<i class="fa fa-circle text-amethyst pull-right"></i> <span class="font-w600">Amethyst</span>
</a>
</li>
<li {$system_color == 'city' ?= 'class="active"'}>
<a data-toggle="theme" data-theme="city" data-css="__ADMIN_CSS__/themes/city.min.css" tabindex="-1" href="javascript:void(0)">
<i class="fa fa-circle text-city pull-right"></i> <span class="font-w600">City</span>
</a>
</li>
<li {$system_color == 'flat' ?= 'class="active"'}>
<a data-toggle="theme" data-theme="flat" data-css="__ADMIN_CSS__/themes/flat.min.css" tabindex="-1" href="javascript:void(0)">
<i class="fa fa-circle text-flat pull-right"></i> <span class="font-w600">Flat</span>
</a>
</li>
<li {$system_color == 'smooth' ?= 'class="active"'}>
<a data-toggle="theme" data-theme="smooth" data-css="__ADMIN_CSS__/themes/smooth.min.css" tabindex="-1" href="javascript:void(0)">
<i class="fa fa-circle text-smooth pull-right"></i> <span class="font-w600">Smooth</span>
</a>
</li>
<li {$system_color == 'default' ?= 'class="active"'}>
<a data-toggle="theme" data-theme="default" tabindex="-1" href="javascript:void(0)">
<i class="fa fa-circle text-default pull-right"></i> <span class="font-w600">Default</span>
</a>
</li>
</ul>
</div>
<a class="h5 text-white" href="{:url('admin/index/index')}">
{notempty name="Think.config.web_site_logo"}
<img src="{$Think.config.web_site_logo|get_file_path}" class="logo" alt="{$Think.config.web_site_title|default='Dolphin PHP'}">
{else/}
<img src="{$Think.config.public_static_path}admin/img/logo.png" class="logo" alt="Dolphin PHP">
{/notempty}
{notempty name="Think.config.web_site_logo_text"}
<img src="{$Think.config.web_site_logo_text|get_file_path}" class="logo-text sidebar-mini-hide" alt="{$Think.config.web_site_title|default='Dolphin PHP'}">
{else/}
<img src="{$Think.config.public_static_path}admin/img/logo-text.png" class="logo-text sidebar-mini-hide" alt="Dolphin PHP">
{/notempty}
</a>
</div>
<!-- END Side Header -->
<!-- Side Content -->
<div class="side-content" id="sidebar-menu">
{notempty name="_sidebar_menus"}
<ul class="nav-main" id="nav-{$_location[0]['id']}">
{volist name="_sidebar_menus" id="menu"}
<li {$menu['id'] == $_location[1]["id"]?='class="open"'}>
{notempty name="menu.url_value"}
<a {if($menu['id'] == $_location[1]["id"])}class="active"{/if} href="{$menu.url_value}" target="{$menu.url_target}"><i class="{$menu.icon}"></i><span class="sidebar-mini-hide">{$menu.title}</span></a>
{else/}
<a class="nav-submenu" data-toggle="nav-submenu" href="javascript:void(0);"><i class="{$menu.icon}"></i><span class="sidebar-mini-hide">{$menu.title}</span></a>
{notempty name="menu['child']"}
<ul>
{volist name="menu['child']" id="submenu"}
<li>
<a {if(isset($_location[2]) && $submenu['id'] == $_location[2]["id"])}class="active"{/if} href="{$submenu.url_value}" target="{$submenu.url_target}"><i class="{$submenu.icon}"></i>{$submenu.title}</a>
</li>
{/volist}
</ul>
{/notempty}
{/notempty}
</li>
{/volist}
</ul>
{/notempty}
</div>
<!-- END Side Content -->
</div>
<!-- Sidebar Content -->
</div>
<!-- END Sidebar Scroll Container -->
</nav>
{/block}
{/empty}
<!-- END Sidebar -->
<!-- Header -->
{empty name="_pop"}
{block name="header"}
<header id="header-navbar" class="content-mini content-mini-full">
<!-- Header Navigation Right -->
<ul class="nav-header pull-right">
<li>
<div class="btn-group">
<button class="btn btn-default btn-image dropdown-toggle" data-toggle="dropdown" type="button">
<img src="{$Think.session.user_auth.uid|get_avatar}" alt="{:session('user_auth.username')}">
<span class="caret"></span>
{notempty name="_message"}
{gt name="_message" value="0"}
<i class="fa fa-circle text-danger notice-circle"></i>
{/gt}
{/notempty}
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li class="dropdown-header">{:session('user_auth.username')} ({:session('user_auth.role_name')})</li>
<li>
<a tabindex="-1" href="{:url('admin/index/profile')}">
<i class="si si-settings pull-right"></i>个人设置
</a>
</li>
<li>
<a tabindex="-1" href="{:url('admin/message/index')}">
<i class="si si-envelope-open pull-right"></i><span class="badge badge-primary pull-right">{$_message|default=0}</span>消息中心
</a>
</li>
<li class="divider"></li>
<li>
<a tabindex="-1" href="{:url('user/publics/signout')}">
<i class="si si-logout pull-right"></i>退出帐号
</a>
</li>
</ul>
</div>
</li>
<li>
<a class="btn btn-default ajax-get" href="{:url('admin/index/wipeCache')}" data-toggle="tooltip" data-placement="bottom" data-original-title="清空缓存">
<i class="fa fa-trash"></i>
</a>
</li>
<li>
<a class="btn btn-default" href="{:rtrim(home_url('/'), '/')}" target="_blank" data-toggle="tooltip" data-placement="bottom" data-original-title="打开前台">
<i class="fa fa-external-link-square"></i>
</a>
</li>
<li>
<!-- Layout API, functionality initialized in App() -> uiLayoutApi() -->
<button class="btn btn-default" data-toggle="layout" data-action="side_overlay_toggle" title="侧边栏" type="button">
<i class="fa fa-tasks"></i>
</button>
</li>
</ul>
<!-- END Header Navigation Right -->
<!-- Header Navigation Left -->
<ul class="nav nav-pills pull-left">
<li class="hidden-md hidden-lg">
<!-- Layout API, functionality initialized in App() -> uiLayoutApi() -->
<a href="javascript:void(0)" data-toggle="layout" data-action="sidebar_toggle"><i class="fa fa-navicon"></i></a>
</li>
<li class="hidden-xs hidden-sm">
<!-- Layout API, functionality initialized in App() -> uiLayoutApi() -->
<a href="javascript:void(0)" title="打开/关闭左侧导航" data-toggle="layout" data-action="sidebar_mini_toggle"><i class="fa fa-bars"></i></a>
</li>
{notempty name="_top_menus"}
{volist name="_top_menus" id="menu"}
<li class="hidden-xs hidden-sm {$menu['id'] == $_location[0]['id'] ?= 'active'}">
{in name="menu.url_type" value="module_admin,module_home"}
<a href="javascript:void(0);" data-module-id="{$menu['id']}" data-module="{$menu['module']}" data-controller="{$menu['controller']}" target="{$menu['url_target']}" class="top-menu"><i class="{$menu.icon}"></i> {$menu.title}</a>
{else/}
<a href="{$menu['url_value']}" target="{$menu['url_target']}"><i class="{$menu.icon}"></i> {$menu.title}</a>
{/in}
</li>
{/volist}
{/notempty}
<li>
<!-- Opens the Apps modal found at the bottom of the page, before including JS code -->
<a href="#" data-toggle="modal" data-target="#apps-modal"><i class="si si-grid"></i></a>
</li>
</ul>
<!-- END Header Navigation Left -->
</header>
{/block}
{/empty}
<!-- END Header -->
<!-- Main Container -->
<main id="main-container">
<!-- Page Header -->
{block name="page-header"}
{empty name="_pop"}
<div class="bg-gray-lighter">
<ol class="breadcrumb">
<li><i class="fa fa-map-marker"></i></li>
{notempty name="_location"}
{volist name="_location" id="v"}
<li><a class="link-effect" href="{notempty name='$v["url_value"]'}{:url($v.url_value, $v.params)}{else/}javascript:void(0);{/notempty}">{$v.title}</a></li>
{/volist}
{/notempty}
</ol>
</div>
{/empty}
{/block}
<!-- END Page Header -->
<!-- Page Content -->
<div class="content">
{// 页面提示钩子}
{:hook('page_tips')}
{// 主体内容}
{block name="content"}{/block}
</div>
<!-- END Page Content -->
</main>
<!-- END Main Container -->
<!-- Footer -->
{empty name="_pop"}
<footer id="page-footer" class="content-mini content-mini-full font-s12 bg-gray-lighter clearfix">
<div class="pull-right">
Crafted with <i class="fa fa-heart text-city"></i> by <a class="font-w600" href="{:config('dolphin.company_website')}" target="_blank">{:config('dolphin.company_name')}</a>
</div>
<div class="pull-left">
<a class="font-w600" href="{:config('dolphin.product_website')}" target="_blank">{:config('dolphin.product_name')} {:config('dolphin.product_version')}</a> &copy; <span class="js-year-copy"></span>
</div>
</footer>
{/empty}
<!-- END Footer -->
</div>
<!-- END Page Container -->
<!-- Apps Modal -->
<!-- Opens from the button in the header -->
<div class="modal fade" id="apps-modal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-dialog-top">
<div class="modal-content">
<!-- Apps Block -->
<div class="block block-themed block-transparent">
<div class="block-header bg-primary-dark">
<ul class="block-options">
<li>
<button data-dismiss="modal" type="button"><i class="si si-close"></i></button>
</li>
</ul>
<h3 class="block-title">所有模块</h3>
</div>
<div class="block-content">
<div class="row text-center">
{notempty name="_top_menus_all"}
{volist name="_top_menus_all" id="menu"}
<div class="col-xs-6 col-sm-3">
{in name="menu.url_type" value="module_admin,module_home"}
<a class="block block-rounded top-menu" href="javascript:void(0);" data-module-id="{$menu['id']}" data-module="{$menu['module']}" data-controller="{$menu['controller']}" target="{$menu['url_target']}">
<div class="block-content text-white {$menu['id'] == $_location[0]['id'] ? 'bg-primary' : 'bg-primary-dark'}">
<i class="{$menu.icon} fa-2x"></i>
<div class="font-w600 push-15-t push-15">{$menu.title}</div>
</div>
</a>
{else/}
<a class="block block-rounded" href="{$menu['url_value']}" target="{$menu['url_target']}">
<div class="block-content text-white {$menu['id'] == $_location[0]['id'] ? 'bg-primary' : 'bg-primary-dark'}">
<i class="{$menu.icon} fa-2x"></i>
<div class="font-w600 push-15-t push-15">{$menu.title}</div>
</div>
</a>
{/in}
</div>
{/volist}
{/notempty}
</div>
</div>
</div>
<!-- END Apps Block -->
</div>
</div>
</div>
<!-- END Apps Modal -->
<!-- OneUI Core JS: jQuery, Bootstrap, slimScroll, scrollLock, Appear, CountTo, Placeholder, Cookie and App.js -->
{eq name="Think.config.minify_status" value="1"}
<script src="{:minify('group', 'core_js,libs_js')}"></script>
{else/}
<script src="__ADMIN_JS__/core/jquery.min.js?v={:config('asset_version')}"></script>
<script src="__ADMIN_JS__/core/bootstrap.min.js?v={:config('asset_version')}"></script>
<script src="__ADMIN_JS__/core/jquery.slimscroll.min.js?v={:config('asset_version')}"></script>
<script src="__ADMIN_JS__/core/jquery.scrollLock.min.js?v={:config('asset_version')}"></script>
<script src="__ADMIN_JS__/core/jquery.appear.min.js?v={:config('asset_version')}"></script>
<script src="__ADMIN_JS__/core/jquery.countTo.min.js?v={:config('asset_version')}"></script>
<script src="__ADMIN_JS__/core/jquery.placeholder.min.js?v={:config('asset_version')}"></script>
<script src="__ADMIN_JS__/core/js.cookie.min.js?v={:config('asset_version')}"></script>
<script src="__LIBS__/magnific-popup/magnific-popup.min.js?v={:config('asset_version')}"></script>
<script src="__ADMIN_JS__/app.js?v={:config('asset_version')}"></script>
<script src="__ADMIN_JS__/dolphin.js?v={:config('asset_version')}"></script>
<script src="__ADMIN_JS__/builder/form.js?v={:config('asset_version')}"></script>
<script src="__ADMIN_JS__/builder/aside.js?v={:config('asset_version')}"></script>
<script src="__ADMIN_JS__/builder/table.js?v={:config('asset_version')}"></script>
<script src="__LIBS__/bootstrap-notify/bootstrap-notify.min.js?v={:config('asset_version')}"></script>
<script src="__LIBS__/sweetalert/sweetalert.min.js?v={:config('asset_version')}"></script>
<script src="__LIBS__/js-xss/xss.min.js?v={:config('asset_version')}"></script>
<script src="__LIBS__/viewer/viewer.min.js?v={:config('asset_version')}"></script>
{/eq}
<!-- Page JS Plugins -->
<script src="__LIBS__/layer/layer.js?v={:config('asset_version')}"></script>
{notempty name="_js_files"}
{eq name="Think.config.minify_status" value="1"}
<script src="{:minify('group', $_js_files)}"></script>
{else/}
{volist name="_js_files" id="js"}
{:load_assets($js, 'js')}
{/volist}
{/eq}
{/notempty}
<script>
jQuery(function () {
App.initHelpers(['appear', 'slimscroll', 'magnific-popup', 'table-tools']);
{notempty name="_js_init"}
App.initHelpers({$_js_init|raw});
{/notempty}
});
</script>
<!--页面js-->
{block name="script"}{/block}
<!--插件js钩子-->
{:hook('page_plugin_js')}
{// 额外HTML代码 }
{$extra_html|raw|default=''}
</body>
</html>