更新功能

This commit is contained in:
2019-06-29 21:14:58 +08:00
parent d3eef9c5fd
commit 6bfc2db94a
23 changed files with 1046 additions and 955 deletions

1
.gitignore vendored
View File

@@ -3,3 +3,4 @@
/vendor /vendor
*.log *.log
.env .env
composer.lock

View File

@@ -1,871 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"/>
<meta charset="utf-8">
<title>SentCMS后台管理系统</title>
<link href="__static__/libs/bootstrap/css/bootstrap.min.css" rel="stylesheet"/>
<link href="__static__/libs/font-awesome/css/font-awesome.min.css" rel="stylesheet"/>
<link rel="stylesheet" href="__static__/libs/nanoscroller/nanoscroller.css" />
<link href="__css__/theme_styles.css" rel="stylesheet"/>
</meta>
</head>
<body>
<div id="theme-wrapper">
<header class="navbar" id="header-navbar">
<div class="container">
<a class="navbar-brand" href="index.html" id="logo">
<img alt="" class="normal-logo logo-white" src="__static__/images/logo.png"/>
<img alt="" class="normal-logo logo-black" src="__static__/images/logo.png"/>
<img alt="" class="small-logo hidden-xs hidden-sm hidden" src="__static__/images/logo.png"/>
</a>
<div class="clearfix">
<button class="navbar-toggle" data-target=".navbar-ex1-collapse" data-toggle="collapse" type="button">
<span class="sr-only">菜单</span>
<span class="fa fa-bars">
</span>
</button>
<div class="nav-no-collapse navbar-left pull-left hidden-sm hidden-xs">
<ul class="nav navbar-nav pull-left">
<li>
<a class="btn" id="make-small-nav">
<i class="fa fa-bars">
</i>
</a>
</li>
<li class="dropdown hidden-xs">
<a class="btn dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-bell">
</i>
<span class="count">
8
</span>
</a>
<ul class="dropdown-menu notifications-list">
<li class="pointer">
<div class="pointer-inner">
<div class="arrow">
</div>
</div>
</li>
<li class="item-header">
You have 6 new notifications
</li>
<li class="item">
<a href="#">
<i class="fa fa-comment">
</i>
<span class="content">
New comment on Awesome P...
</span>
<span class="time">
<i class="fa fa-clock-o">
</i>
13 min.
</span>
</a>
</li>
<li class="item">
<a href="#">
<i class="fa fa-plus">
</i>
<span class="content">
New user registration
</span>
<span class="time">
<i class="fa fa-clock-o">
</i>
13 min.
</span>
</a>
</li>
<li class="item">
<a href="#">
<i class="fa fa-envelope">
</i>
<span class="content">
New Message from George
</span>
<span class="time">
<i class="fa fa-clock-o">
</i>
13 min.
</span>
</a>
</li>
<li class="item">
<a href="#">
<i class="fa fa-shopping-cart">
</i>
<span class="content">
New purchase
</span>
<span class="time">
<i class="fa fa-clock-o">
</i>
13 min.
</span>
</a>
</li>
<li class="item">
<a href="#">
<i class="fa fa-eye">
</i>
<span class="content">
New order
</span>
<span class="time">
<i class="fa fa-clock-o">
</i>
13 min.
</span>
</a>
</li>
<li class="item-footer">
<a href="#">
View all notifications
</a>
</li>
</ul>
</li>
<li class="dropdown hidden-xs">
<a class="btn dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-envelope-o">
</i>
<span class="count">
16
</span>
</a>
<ul class="dropdown-menu notifications-list messages-list">
<li class="pointer">
<div class="pointer-inner">
<div class="arrow">
</div>
</div>
</li>
<li class="item first-item">
<a href="#">
<img alt="" src="__img__/samples/messages-photo-1.png"/>
<span class="content">
<span class="content-headline">
George Clooney
</span>
<span class="content-text">
Look, just because I don't be givin' no man a foot massage don't make it
right for Marsellus to throw...
</span>
</span>
<span class="time">
<i class="fa fa-clock-o">
</i>
13 min.
</span>
</a>
</li>
<li class="item">
<a href="#">
<img alt="" src="__img__/samples/messages-photo-2.png"/>
<span class="content">
<span class="content-headline">
Emma Watson
</span>
<span class="content-text">
Look, just because I don't be givin' no man a foot massage don't make it
right for Marsellus to throw...
</span>
</span>
<span class="time">
<i class="fa fa-clock-o">
</i>
13 min.
</span>
</a>
</li>
<li class="item">
<a href="#">
<img alt="" src="__img__/samples/messages-photo-3.png"/>
<span class="content">
<span class="content-headline">
Robert Downey Jr.
</span>
<span class="content-text">
Look, just because I don't be givin' no man a foot massage don't make it
right for Marsellus to throw...
</span>
</span>
<span class="time">
<i class="fa fa-clock-o">
</i>
13 min.
</span>
</a>
</li>
<li class="item-footer">
<a href="#">
View all messages
</a>
</li>
</ul>
</li>
<li class="dropdown hidden-xs">
<a class="btn dropdown-toggle" data-toggle="dropdown">
New Item
<i class="fa fa-caret-down">
</i>
</a>
<ul class="dropdown-menu">
<li class="item">
<a href="#">
<i class="fa fa-archive">
</i>
New Product
</a>
</li>
<li class="item">
<a href="#">
<i class="fa fa-shopping-cart">
</i>
New Order
</a>
</li>
<li class="item">
<a href="#">
<i class="fa fa-sitemap">
</i>
New Category
</a>
</li>
<li class="item">
<a href="#">
<i class="fa fa-file-text">
</i>
New Page
</a>
</li>
</ul>
</li>
<li class="dropdown hidden-xs">
<a class="btn dropdown-toggle" data-toggle="dropdown">
English
<i class="fa fa-caret-down">
</i>
</a>
<ul class="dropdown-menu">
<li class="item">
<a href="#">
Spanish
</a>
</li>
<li class="item">
<a href="#">
German
</a>
</li>
<li class="item">
<a href="#">
Italian
</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="nav-no-collapse pull-right" id="header-nav">
<ul class="nav navbar-nav pull-right">
<li class="mobile-search">
<a class="btn">
<i class="fa fa-search">
</i>
</a>
<div class="drowdown-search">
<form role="search">
<div class="form-group">
<input class="form-control" placeholder="Search..." type="text">
<i class="fa fa-search nav-search-icon">
</i>
</input>
</div>
</form>
</div>
</li>
<li class="dropdown profile-dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<img alt="" src="__img__/samples/scarlet-159.png"/>
<span class="hidden-xs">
Scarlett Johansson
</span>
<b class="caret">
</b>
</a>
<ul class="dropdown-menu dropdown-menu-right">
<li>
<a href="user-profile.html">
<i class="fa fa-user">
</i>
Profile
</a>
</li>
<li>
<a href="#">
<i class="fa fa-cog">
</i>
Settings
</a>
</li>
<li>
<a href="#">
<i class="fa fa-envelope-o">
</i>
Messages
</a>
</li>
<li>
<a href="#">
<i class="fa fa-power-off">
</i>
Logout
</a>
</li>
</ul>
</li>
<li class="hidden-xxs">
<a class="btn">
<i class="fa fa-power-off">
</i>
</a>
</li>
</ul>
</div>
</div>
</div>
</header>
<div class="container" id="page-wrapper">
<div class="row">
<div id="nav-col">
<section class="col-left-nano" id="col-left">
<div class="col-left-nano-content" id="col-left-inner">
<div class="clearfix hidden-sm hidden-xs dropdown profile2-dropdown" id="user-left-box">
<img alt="" src="__img__/samples/scarlet-159.png"/>
<div class="user-box">
<span class="name">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
Scarlett J.
<i class="fa fa-angle-down">
</i>
</a>
<ul class="dropdown-menu">
<li>
<a href="user-profile.html">
<i class="fa fa-user">
</i>
Profile
</a>
</li>
<li>
<a href="#">
<i class="fa fa-cog">
</i>
Settings
</a>
</li>
<li>
<a href="#">
<i class="fa fa-envelope-o">
</i>
Messages
</a>
</li>
<li>
<a href="#">
<i class="fa fa-power-off">
</i>
Logout
</a>
</li>
</ul>
</span>
<span class="status">
<i class="fa fa-circle">
</i>
Online
</span>
</div>
</div>
<div class="collapse navbar-collapse navbar-ex1-collapse" id="sidebar-nav">
<ul class="nav nav-pills nav-stacked">
<li class="nav-header nav-header-first hidden-sm hidden-xs">
Navigation
</li>
<li class="active">
<a href="index.html">
<i class="fa fa-dashboard">
</i>
<span>
Dashboard
</span>
<span class="label label-primary label-circle pull-right">
28
</span>
</a>
</li>
<li>
<a class="dropdown-toggle" href="#">
<i class="fa fa-table">
</i>
<span>
Tables
</span>
<i class="fa fa-angle-right drop-icon">
</i>
</a>
<ul class="submenu">
<li>
<a href="tables.html">
Simple
</a>
</li>
<li>
<a href="tables-advanced.html">
Advanced
</a>
</li>
<li>
<a href="users.html">
Users
</a>
</li>
<li>
<a href="tables-footables.html">
FooTables
</a>
</li>
</ul>
</li>
<li>
<a class="dropdown-toggle" href="#">
<i class="fa fa-envelope">
</i>
<span>
Email
</span>
<i class="fa fa-angle-right drop-icon">
</i>
</a>
<ul class="submenu">
<li>
<a href="email-inbox.html">
Inbox
</a>
</li>
<li>
<a href="email-detail.html">
Detail
</a>
</li>
<li>
<a href="email-compose.html">
Compose
</a>
</li>
</ul>
</li>
<li>
<a class="dropdown-toggle" href="#">
<i class="fa fa-bar-chart-o">
</i>
<span>
Graphs
</span>
<i class="fa fa-angle-right drop-icon">
</i>
</a>
<ul class="submenu">
<li>
<a href="graphs-morris.html">
Morris & Mixed
</a>
</li>
<li>
<a href="graphs-flot.html">
Flot
</a>
</li>
<li>
<a href="graphs-dygraphs.html">
Dygraphs
</a>
</li>
<li>
<a href="graphs-xcharts.html">
xCharts
</a>
</li>
</ul>
</li>
<li>
<a href="widgets.html">
<i class="fa fa-th-large">
</i>
<span>
Widgets
</span>
<span class="label label-success pull-right">
New
</span>
</a>
</li>
<li>
<a class="dropdown-toggle" href="#">
<i class="fa fa-copy">
</i>
<span>
Pages
</span>
<i class="fa fa-angle-right drop-icon">
</i>
</a>
<ul class="submenu">
<li>
<a href="calendar.html">
Calendar
</a>
</li>
<li>
<a href="gallery.html">
Gallery
</a>
</li>
<li>
<a href="gallery-v2.html">
Gallery v2
</a>
</li>
<li>
<a href="pricing.html">
Pricing
</a>
</li>
<li>
<a href="projects.html">
Projects
</a>
</li>
<li>
<a href="team-members.html">
Team Members
</a>
</li>
<li>
<a href="timeline.html">
Timeline
</a>
</li>
<li>
<a href="timeline-grid.html">
Timeline Grid
</a>
</li>
<li>
<a href="user-profile.html">
User Profile
</a>
</li>
<li>
<a href="search.html">
Search Results
</a>
</li>
<li>
<a href="invoice.html">
Invoice
</a>
</li>
<li>
<a href="intro.html">
Tour Layout
</a>
</li>
</ul>
</li>
<li class="nav-header hidden-sm hidden-xs">
Components
</li>
<li>
<a class="dropdown-toggle" href="#">
<i class="fa fa-edit">
</i>
<span>
Forms
</span>
<i class="fa fa-angle-right drop-icon">
</i>
</a>
<ul class="submenu">
<li>
<a href="form-elements.html">
Elements
</a>
</li>
<li>
<a href="x-editable.html">
X-Editable
</a>
</li>
<li>
<a href="form-wizard.html">
Wizard
</a>
</li>
<li>
<a href="form-wizard-popup.html">
Wizard popup
</a>
</li>
<li>
<a href="form-wysiwyg.html">
WYSIWYG
</a>
</li>
<li>
<a href="form-summernote.html">
WYSIWYG Summernote
</a>
</li>
<li>
<a href="form-ckeditor.html">
WYSIWYG CKEditor
</a>
</li>
<li>
<a href="form-dropzone.html">
Multiple File Upload
</a>
</li>
</ul>
</li>
<li>
<a class="dropdown-toggle" href="#">
<i class="fa fa-desktop">
</i>
<span>
UI Kit
</span>
<i class="fa fa-angle-right drop-icon">
</i>
</a>
<ul class="submenu">
<li>
<a href="ui-elements.html">
Elements
</a>
</li>
<li>
<a href="notifications.html">
Notifications & Alerts
</a>
</li>
<li>
<a href="modals.html">
Modals
</a>
</li>
<li>
<a href="video.html">
Video
</a>
</li>
<li>
<a class="dropdown-toggle" href="#">
Icons
<i class="fa fa-angle-right drop-icon">
</i>
</a>
<ul class="submenu">
<li>
<a href="icons-awesome.html">
Awesome Icons
</a>
</li>
<li>
<a href="icons-halflings.html">
Halflings Icons
</a>
</li>
</ul>
</li>
<li>
<a href="ui-nestable.html">
Nestable List
</a>
</li>
<li>
<a href="typography.html">
Typography
</a>
</li>
<li>
<a class="dropdown-toggle" href="#">
3 Level Menu
<i class="fa fa-angle-right drop-icon">
</i>
</a>
<ul class="submenu">
<li>
<a href="#">
3rd Level
</a>
</li>
<li>
<a href="#">
3rd Level
</a>
</li>
<li>
<a href="#">
3rd Level
</a>
</li>
</ul>
</li>
</ul>
</li>
<li>
<a href="maps.html">
<i class="fa fa-map-marker">
</i>
<span>
Google Maps
</span>
<span class="label label-danger pull-right">
Updated
</span>
</a>
</li>
<li>
<a class="dropdown-toggle" href="#">
<i class="fa fa-file-text-o">
</i>
<span>
Extra pages
</span>
<i class="fa fa-angle-right drop-icon">
</i>
</a>
<ul class="submenu">
<li>
<a href="faq.html">
FAQ
</a>
</li>
<li>
<a href="emails.html">
Email Templates
</a>
</li>
<li>
<a href="login.html">
Login
</a>
</li>
<li>
<a href="login-full.html">
Login Full
</a>
</li>
<li>
<a href="registration.html">
Registration
</a>
</li>
<li>
<a href="registration-full.html">
Registration Full
</a>
</li>
<li>
<a href="forgot-password.html">
Forgot Password
</a>
</li>
<li>
<a href="forgot-password-full.html">
Forgot Password Full
</a>
</li>
<li>
<a href="lock-screen.html">
Lock Screen
</a>
</li>
<li>
<a href="lock-screen-full.html">
Lock Screen Full
</a>
</li>
<li>
<a href="error-404.html">
Error 404
</a>
</li>
<li>
<a href="error-404-v2.html">
Error 404 Nested
</a>
</li>
<li>
<a href="error-500.html">
Error 500
</a>
</li>
<li>
<a href="extra-grid.html">
Grid
</a>
</li>
</ul>
</li>
<li>
<a href="/angularjs">
<i class="fa fa-google">
</i>
<span>
AngularJS Demo
</span>
</a>
</li>
</ul>
</div>
</div>
</section>
<div id="nav-col-submenu">
</div>
</div>
<div id="content-wrapper">
<div class="row">
<div class="col-lg-12">
</div>
</div>
<footer class="row" id="footer-bar">
<p class="col-xs-12" id="footer-copyright">
Powered by Cube Theme.
</p>
</footer>
</div>
</div>
</div>
</div>
{include file="setting"}
<script src="__js__/skin-changer.js"></script>
<script src="__static__/libs/jquery/jquery.min.js"></script>
<script src="__static__/libs/bootstrap/js/bootstrap.min.js"></script>
<script src="__static__/libs/nanoscroller/jquery.nanoscroller.min.js"></script>
<script type="text/javascript" src="__js__/app.js"></script>
<script>
$(document).ready(function() {
})
</script>
</body>
</html>

25
app/controller/Admin.php Normal file
View File

@@ -0,0 +1,25 @@
<?php
// +----------------------------------------------------------------------
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.tensent.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
// +----------------------------------------------------------------------
namespace app\controller;
use app\BaseController;
/**
* @title 后端公共模块
*/
class Admin extends BaseController {
protected $middleware = [
'\app\middleware\AdminAuth' => ['except' => ['login']],
'\app\middleware\Admin'
];
protected $data = ['meta' => [], 'data' => [], 'code' => 0, 'msg' => ''];
}

17
app/controller/Index.php Normal file
View File

@@ -0,0 +1,17 @@
<?php
namespace app\controller;
use app\BaseController;
class Index extends BaseController {
protected $middleware = ['\app\middleware\Front'];
public function index() {
return '<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:) </h1><p> ThinkPHP V6<br/><span style="font-size:30px">13载初心不改 - 你值得信赖的PHP框架</span></p></div><script type="text/javascript" src="https://tajs.qq.com/stats?sId=64890268" charset="UTF-8"></script><script type="text/javascript" src="https://e.topthink.com/Public/static/client.js"></script><think id="eab4b9f840753f8e7"></think>';
}
public function miss($name = 'ThinkPHP6') {
return 'hello,' . $name;
}
}

View File

@@ -6,20 +6,25 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn> // | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
namespace app\admin\controller; namespace app\controller\admin;
use app\controller\Admin;
/** /**
* @title 后端公共模块 * @title 后端公共模块
*/ */
class Index extends Base { class Index extends Admin{
/** /**
* @title 系统首页 * @title 系统首页
*/ */
public function index(){ public function index(){
$this->data['data'] = array( return $this->data;
'info' => 'ddd' }
);
return $this->fetch('', $this->data, $this->meta); public function login(){
if ($this->request->isAjax()) {
return $this->data;
}
} }
} }

View File

@@ -1,17 +0,0 @@
<?php
namespace app\index\controller;
use app\BaseController;
class Index extends BaseController
{
public function index()
{
return '<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:) </h1><p> ThinkPHP V6<br/><span style="font-size:30px">13载初心不改 - 你值得信赖的PHP框架</span></p></div><script type="text/javascript" src="https://tajs.qq.com/stats?sId=64890268" charset="UTF-8"></script><script type="text/javascript" src="https://e.topthink.com/Public/static/client.js"></script><think id="eab4b9f840753f8e7"></think>';
}
public function hello($name = 'ThinkPHP6')
{
return 'hello,' . $name;
}
}

View File

@@ -6,7 +6,7 @@ return [
// 多语言加载 // 多语言加载
// \think\middleware\LoadLangPack::class, // \think\middleware\LoadLangPack::class,
// Session初始化 // Session初始化
// \think\middleware\SessionInit::class, \think\middleware\SessionInit::class,
// 页面Trace调试 // 页面Trace调试
// \think\middleware\TraceDebug::class, // \think\middleware\TraceDebug::class,
]; ];

View File

@@ -6,23 +6,32 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn> // | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
namespace app\admin\controller; namespace app\middleware;
use app\BaseController;
use think\facade\View; use think\facade\View;
/** /**
* @title 后台基类 * @title 后台中间件
*/ */
class Base extends BaseController { class Admin {
public $data = array(); protected $data = [];
public $meta = array();
public function handle($request, \Closure $next) {
$response = $next($request);
$this->data = $response->getData();
if ($request->isAjax()) {
return json($this->data);
}else{
return $response->data($this->fetch());
}
}
/** /**
* @title 显示类 * @title 显示类
*/ */
public function fetch($template){ protected function fetch($template = ''){
// 使用内置PHP模板引擎渲染模板输出 // 使用内置PHP模板引擎渲染模板输出
$config = array( $config = array(
'tpl_replace_string' => array( 'tpl_replace_string' => array(

View File

@@ -6,13 +6,23 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn> // | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
namespace app\admin\middleware; namespace app\middleware;
use think\facade\View;
use think\facade\Session;
/** /**
* @title 后台中间件 * @title 后台中间件
*/ */
class Admin { class AdminAuth {
public function handle($request, \Closure $next) {
public function handle($request, \Closure $next) {
$user = Session::get('user');
if (Session::has('user') && $user['uid']) {
return $next($request);
}else{
return redirect(url('admin.index/login'))->remember();
}
} }
} }

50
app/middleware/Front.php Normal file
View File

@@ -0,0 +1,50 @@
<?php
// +----------------------------------------------------------------------
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.tensent.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
// +----------------------------------------------------------------------
namespace app\middleware;
use think\facade\View;
/**
* @title 后台中间件
*/
class Front {
protected $data = [];
public function handle($request, \Closure $next) {
$response = $next($request);
$this->data = $response->getData();
if ($request->isAjax()) {
return json($this->data);
}else{
return $response->data($this->fetch());
}
}
/**
* @title 显示类
*/
protected function fetch($template = ''){
// 使用内置PHP模板引擎渲染模板输出
$config = array(
'tpl_replace_string' => array(
'__static__' => '/static',
'__img__' => '/static/admin/images',
'__css__' => '/static/admin/css',
'__js__' => '/static/admin/js',
'__public__' => '/static/admin',
)
);
if (is_string($this->data)) {
$this->data = array('data' => $this->data);
}
return View::config($config)->assign($this->data)->fetch($template);
}
}

View File

@@ -0,0 +1,326 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"/>
<meta charset="utf-8">
<title>SentCMS后台管理系统</title>
<link href="__static__/libs/bootstrap/css/bootstrap.min.css" rel="stylesheet"/>
<link href="__static__/libs/font-awesome/css/font-awesome.min.css" rel="stylesheet"/>
<link rel="stylesheet" href="__static__/libs/nanoscroller/nanoscroller.css" />
<link href="__css__/theme_styles.css" rel="stylesheet"/>
</meta>
</head>
<body>
<div id="theme-wrapper">
<header class="navbar" id="header-navbar">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#header-nav">
<span class="sr-only">菜单</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="{:url('admin/index/index')}" id="logo">
<img alt="" class="normal-logo logo-white" src="__static__/images/logo.png"/>
<img alt="" class="normal-logo logo-black" src="__static__/images/logo.png"/>
<img alt="" class="small-logo hidden-xs hidden-sm hidden" src="__static__/images/logo.png"/>
</a>
<ul class="nav navbar-nav pull-right visible-xs">
<li class="dropdown profile-dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<img src="/static/images/samples/scarlet-159.png" alt=""/>
<span class="hidden-xs">admin</span> <b class="caret"></b>
</a>
<ul class="dropdown-menu dropdown-menu-right">
<li>
<a href="/admin/user/edit.html">
<i class="fa fa-user"></i>
修改资料
</a>
</li>
<li>
<a href="/admin/user/editpwd.html">
<i class="fa fa-cog"></i>
修改密码
</a>
</li>
<li>
<a href="/admin/logout.html">
<i class="fa fa-power-off"></i>
退出后台
</a>
</li>
<li>
<a href="http://www.tensent.cn" target="_blank">
<i class="fa fa-home"></i>
前台首页
</a>
</li>
</ul>
</li>
</ul>
</div>
<div class="nav-no-collapse navbar-left pull-left hidden-sm hidden-xs">
<ul class="nav navbar-nav pull-left">
<li>
<a class="btn" id="make-small-nav"> <i class="fa fa-bars"></i>
</a>
</li>
</ul>
</div>
<div class="collapse navbar-collapse" id="header-nav">
<ul class="nav navbar-nav">
<li class="active">
<a href="/admin/index/index.html">
<i class="fa fa-home"></i>
<span>首页</span>
</a>
</li>
<li class="">
<a href="/admin/config/group.html">
<i class="fa fa-laptop"></i>
<span>系统</span>
</a>
</li>
<li class="">
<a href="/admin/category/index.html">
<i class="fa fa-list"></i>
<span>内容</span>
</a>
</li>
<li class="">
<a href="/admin/user/index.html">
<i class="fa fa-user"></i>
<span>会员</span>
</a>
</li>
<li class="">
<a href="/admin/link/index.html">
<i class="fa fa-th"></i>
<span>运营</span>
</a>
</li>
<li class="">
<a href="/admin/addons/index.html">
<i class="fa fa-tags"></i>
<span>扩展</span>
</a>
</li>
<li class="">
<a href="/admin/client/index.html">
<i class="fa fa-android"></i>
<span>客户端</span>
</a>
</li>
</ul>
<ul class="nav navbar-nav pull-right">
<li class="dropdown profile-dropdown hidden-sm hidden-xs">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<img src="/static/images/samples/scarlet-159.png" alt=""/>
<span class="hidden-xs">admin</span> <b class="caret"></b>
</a>
<ul class="dropdown-menu dropdown-menu-right">
<li>
<a href="/admin/user/edit.html">
<i class="fa fa-user"></i>
修改资料
</a>
</li>
<li>
<a href="/admin/user/editpwd.html">
<i class="fa fa-cog"></i>
修改密码
</a>
</li>
<li>
<a href="/admin/logout.html">
<i class="fa fa-power-off"></i>
退出后台
</a>
</li>
<li>
<a href="http://www.tensent.cn" target="_blank">
<i class="fa fa-home"></i>
前台首页
</a>
</li>
</ul>
</li>
<li class="visible-lg">
<a href="#" class="btn" onclick="helpIntro();">
<i class="fa fa-question-circle"></i>
操作指南
</a>
</li>
</ul>
</div>
</div>
</header>
<div id="page-wrapper" class="container nav-small">
<div class="row">
<div id="nav-col">
<section id="col-left" class="col-left-nano">
<div id="col-left-inner" class="col-left-nano-content">
<div id="sidebar-nav">
<ul class="nav nav-pills nav-stacked">
<li class="nav-header hidden-sm hidden-xs">后台首页</li>
<li class="">
<a href="/admin/index/clear.html">
<i class="fa fa-refresh"></i>
<span>更新缓存</span>
</a>
</li>
</ul>
</div>
</div>
</section>
<div id="nav-col-submenu"></div>
</div>
<div id="content-wrapper">
<div class="row">
<div class="col-lg-12">
<div class="row">
<div class="col-lg-12">
<div id="content-header" class="clearfix">
<div class="pull-left">
<ol class="breadcrumb">
<li>
<a href="/Admin/index/index.html">后台首页</a>
</li>
<li class="active">
<span>后台首页</span>
</li>
</ol>
</div>
<div class="pull-right hidden-xs">
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="row">
<div class="col-lg-12">
<div class="row">
<div class="col-lg-3 col-sm-6 col-xs-12">
<div class="main-box infographic-box colored emerald-bg"> <i class="fa fa-envelope"></i>
<span class="headline">今日行为</span>
<span class="value">0</span>
</div>
</div>
<div class="col-lg-3 col-sm-6 col-xs-12">
<div class="main-box infographic-box colored green-bg"> <i class="fa fa-money"></i>
<span class="headline">栏目总数</span>
<span class="value">14</span>
</div>
</div>
<div class="col-lg-3 col-sm-6 col-xs-12">
<div class="main-box infographic-box colored red-bg"> <i class="fa fa-user"></i>
<span class="headline">用户总数</span>
<span class="value">241</span>
</div>
</div>
<div class="col-lg-3 col-sm-6 col-xs-12">
<div class="main-box infographic-box colored purple-bg">
<i class="fa fa-globe"></i>
<span class="headline">模型总数</span>
<span class="value">4</span>
</div>
</div>
</div>
</div><div class="col-lg-6">
<div class="main-box clearfix">
<header class="main-box-header clearfix">
<h2>SentCMS开发团队</h2>
</header>
<div class="main-box-body clearfix">
<table class="table">
<tr>
<th>总策划</th>
<td>郭平平</td>
</tr>
<tr>
<th>产品设计及研发团队</th>
<td>郭平平</td>
</tr>
<tr>
<th>界面及用户体验团队</th>
<td>BootStrap 团队</td>
</tr>
<tr>
<th>官方网址</th>
<td><a href="http://www.tensent.cn" target="_blank">www.tensent.cn</a></td>
</tr>
<tr>
<th>官方QQ群</th>
<td><a target="_blank" href="http://jq.qq.com/?_wv=1027&k=WVW2se"><img border="0" src="http://pub.idqqimg.com/wpa/images/group.png" alt="SentCMS技术交流" title="SentCMS技术交流"></a></td>
</tr>
<tr>
<th>BUG反馈</th>
<td><a href="http://bbs.sentcms.com/" target="_blank">SentCMS讨论区</a></td>
</tr>
</table>
</div>
</div>
</div><div class="col-lg-6">
<div class="main-box clearfix">
<header class="main-box-header clearfix">
<h2>系统信息</h2>
</header>
<div class="main-box-body clearfix">
<table class="table">
<tr>
<th>核心版本</th>
<td>SentCMS v3.6.201803</td>
</tr>
<tr>
<th>服务器操作系统</th>
<td>Linux</td>
</tr>
<tr>
<th>运行环境</th>
<td>nginx/1.12.2</td>
</tr>
<tr>
<th>MYSQL版本</th>
<td>5.6.37-log</td>
</tr>
<tr>
<th>上传限制</th>
<td>50M</td>
</tr>
<tr>
<th>系统版权所有</th>
<td>
<a href="http://www.tensent.cn/" target="_blank">南昌腾速科技有限公司</a>
</td>
</tr>
</table>
</div>
</div>
</div></div>
</div>
</div>
</div>
</div>
<footer id="footer-bar" class="row">
<p id="footer-copyright" class="col-xs-12">Powered by <a href="http://www.tensent.cn" target="_blank">TenSent,Inc.</a></p>
</footer>
</div>
</div>
</div>
</div>
{include file="admin/setting"}
<script src="__js__/skin-changer.js"></script>
<script src="__static__/libs/jquery/jquery.min.js"></script>
<script src="__static__/libs/bootstrap/js/bootstrap.min.js"></script>
<script src="__static__/libs/nanoscroller/jquery.nanoscroller.min.js"></script>
<script type="text/javascript" src="__static__/js/jquery.slimscroll.min.js"></script>
<script type="text/javascript" src="__js__/app.js"></script>
</body>
</html>

View File

@@ -0,0 +1,108 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>SentCMS后台管理系统-后台登录</title>
<link href="__static__/libs/bootstrap/css/bootstrap.min.css" rel="stylesheet"/>
<link href="__static__/libs/font-awesome/css/font-awesome.min.css" rel="stylesheet"/>
<link href="__css__/theme_styles.css" rel="stylesheet"/>
<link href="__css__/login.css" rel="stylesheet"/>
</head>
<body>
<div class="login-container">
<!-- 动态云层动画 开始 -->
<div class="clouds-container">
<div class="clouds clouds-footer"></div>
<div class="clouds"></div>
<div class="clouds clouds-fast"></div>
</div>
<!-- 动态云层动画 结束 -->
<!-- 顶部导航条 开始 -->
<div class="header notselect">
<span class="title notselect">SentCMS <sup>v{$system_version|default="4.0.0"}</sup></span>
<ul>
<li><a href="javascript:void(0)" target="_blank">帮助</a></li>
<li>
<a href="http://sw.bos.baidu.com/sw-search-sp/software/9e6bc213b9d0b/ChromeStandalone_63.0.3239.132_Setup.exe" target="_blank">推荐使用谷歌浏览器</a>
</li>
</ul>
</div>
<!-- 顶部导航条 结束 -->
<!-- 页面表单主体 开始 -->
<div class="container">
<div class="login-from">
<div class="logo"><img src="__static__/images/logo.png"></div>
<div class="form">
<form action="">
<div class="form-group">
<div class="input-group">
<span class="input-group-addon" id="basic-addon1"><i class="fa fa-user"></i></span>
<input type="text" class="form-control" placeholder="用户名" aria-describedby="basic-addon1">
</div>
</div>
<div class="form-group">
<div class="input-group">
<span class="input-group-addon" id="basic-addon1"><i class="fa fa-lock"></i></span>
<input type="password" class="form-control" placeholder="密码" aria-describedby="basic-addon1">
</div>
</div>
<button class="btn btn-default btn-block" type="submit">确认登录</button>
</form>
</div>
</div>
</div>
<!-- 页面表单主体 结束 -->
<!-- 底部版权信息 开始 -->
<div class="footer notselect">
腾速科技 &copy; TenSent.Icn
</div>
<!-- 底部版本信息 结束 -->
</div>
<script src="__static__/libs/jquery/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
//表单提交
$(document).ajaxStart(function(){
$("button:submit").addClass("log-in").attr("disabled", true);
}).ajaxStop(function(){
$("button:submit").removeClass("log-in").attr("disabled", false);
});
$("form").submit(function(){
var self = $(this);
$.post(self.attr("action"), self.serialize(), success, "json");
return false;
function success(data){
if(data.code){
layer.msg(data.msg, {time:3000, end:function(){
window.location.href = data.url;
}});
} else {
layer.msg(data.msg, {time:3000, end:function(){
//刷新验证码
$(".reloadverify").click();
}});
}
}
});
//初始化选中用户名输入框
$("#itemBox").find("input[name=username]").focus();
//刷新验证码
var verifyimg = $(".verifyimg").attr("src");
$(".reloadverify").click(function(){
if( verifyimg.indexOf('?')>0){
$(".verifyimg").attr("src", verifyimg+'&random='+Math.random());
}else{
$(".verifyimg").attr("src", verifyimg.replace(/\?.*$/,'')+'?'+Math.random());
}
});
});
</script>
</body>
</html>

39
app/view/index/index.html Normal file
View File

@@ -0,0 +1,39 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>SentCMS网站管理系统</title>
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css">
<!-- Styles -->
<style>
html, body {background-color: #fff; color: #636b6f; font-family: 'Raleway', sans-serif; font-weight: 100; height: 100vh; margin: 0;}
.full-height {height: 100vh;}
.flex-center {align-items: center;display: flex;justify-content: center;}
.position-ref {position: relative;}
.top-right {position: absolute;right: 10px;top: 18px;}
.content {text-align: center;}
.title {font-size: 84px;}
.links > a {color: #636b6f;padding: 0 25px; font-size: 12px;font-weight: 600;letter-spacing: .1rem;text-decoration: none;text-transform: uppercase;}
.m-b-md {margin-bottom: 30px;}
</style>
</head>
<body>
<div class="flex-center position-ref full-height">
<div class="content">
<div class="title m-b-md">
SentCMS网站管理系统
</div>
<div class="links">
<a href="https://www.kancloud.cn/tensent/sentcms3/169624" target="_blank">文档</a>
<a href="https://www.tensent.cn" target="_blank">资讯</a>
<a href="https://gitee.com/sentcms/sentcms" target="_blank">Gitee</a>
</div>
</div>
</div>
</body>
</html>

39
app/view/index/miss.html Normal file
View File

@@ -0,0 +1,39 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>SentCMS网站管理系统</title>
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css">
<!-- Styles -->
<style>
html, body {background-color: #fff; color: #636b6f; font-family: 'Raleway', sans-serif; font-weight: 100; height: 100vh; margin: 0;}
.full-height {height: 100vh;}
.flex-center {align-items: center;display: flex;justify-content: center;}
.position-ref {position: relative;}
.top-right {position: absolute;right: 10px;top: 18px;}
.content {text-align: center;}
.title {font-size: 84px;}
.links > a {color: #636b6f;padding: 0 25px; font-size: 12px;font-weight: 600;letter-spacing: .1rem;text-decoration: none;text-transform: uppercase;}
.m-b-md {margin-bottom: 30px;}
</style>
</head>
<body>
<div class="flex-center position-ref full-height">
<div class="content">
<div class="title m-b-md">
404 Not Found!
</div>
<div class="links">
<a href="https://www.kancloud.cn/tensent/sentcms3/169624" target="_blank">文档</a>
<a href="https://www.tensent.cn" target="_blank">资讯</a>
<a href="https://gitee.com/sentcms/sentcms" target="_blank">Gitee</a>
</div>
</div>
</div>
</body>
</html>

View File

@@ -18,7 +18,9 @@
"require": { "require": {
"php": ">=7.1.0", "php": ">=7.1.0",
"topthink/framework": "6.0.*-dev", "topthink/framework": "6.0.*-dev",
"topthink/think-view": "^1.0", "topthink/think-view": "^1.0"
},
"require-dev": {
"symfony/var-dumper": "^4.2" "symfony/var-dumper": "^4.2"
}, },
"autoload": { "autoload": {

351
composer.lock generated
View File

@@ -4,20 +4,151 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "2b198878f2331e428e4bdc9512a87fa5", "content-hash": "0bae2a09cc872cd4f33b7a8d7a193d96",
"packages": [ "packages": [
{ {
"name": "opis/closure", "name": "league/flysystem",
"version": "3.1.6", "version": "1.0.53",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/opis/closure.git", "url": "https://github.com/thephpleague/flysystem.git",
"reference": "ccb8e3928c5c8181c76cdd0ed9366c5bcaafd91b" "reference": "08e12b7628f035600634a5e76d95b5eb66cea674"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/opis/closure/zipball/ccb8e3928c5c8181c76cdd0ed9366c5bcaafd91b", "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/08e12b7628f035600634a5e76d95b5eb66cea674",
"reference": "ccb8e3928c5c8181c76cdd0ed9366c5bcaafd91b", "reference": "08e12b7628f035600634a5e76d95b5eb66cea674",
"shasum": ""
},
"require": {
"ext-fileinfo": "*",
"php": ">=5.5.9"
},
"conflict": {
"league/flysystem-sftp": "<1.0.6"
},
"require-dev": {
"phpspec/phpspec": "^3.4",
"phpunit/phpunit": "^5.7.10"
},
"suggest": {
"ext-fileinfo": "Required for MimeType",
"ext-ftp": "Allows you to use FTP server storage",
"ext-openssl": "Allows you to use FTPS server storage",
"league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2",
"league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3",
"league/flysystem-azure": "Allows you to use Windows Azure Blob storage",
"league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching",
"league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem",
"league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files",
"league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib",
"league/flysystem-webdav": "Allows you to use WebDAV storage",
"league/flysystem-ziparchive": "Allows you to use ZipArchive adapter",
"spatie/flysystem-dropbox": "Allows you to use Dropbox storage",
"srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.1-dev"
}
},
"autoload": {
"psr-4": {
"League\\Flysystem\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Frank de Jonge",
"email": "info@frenky.net"
}
],
"description": "Filesystem abstraction: Many filesystems, one API.",
"keywords": [
"Cloud Files",
"WebDAV",
"abstraction",
"aws",
"cloud",
"copy.com",
"dropbox",
"file systems",
"files",
"filesystem",
"filesystems",
"ftp",
"rackspace",
"remote",
"s3",
"sftp",
"storage"
],
"time": "2019-06-18T20:09:29+00:00"
},
{
"name": "league/flysystem-cached-adapter",
"version": "1.0.9",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem-cached-adapter.git",
"reference": "08ef74e9be88100807a3b92cc9048a312bf01d6f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/flysystem-cached-adapter/zipball/08ef74e9be88100807a3b92cc9048a312bf01d6f",
"reference": "08ef74e9be88100807a3b92cc9048a312bf01d6f",
"shasum": ""
},
"require": {
"league/flysystem": "~1.0",
"psr/cache": "^1.0.0"
},
"require-dev": {
"mockery/mockery": "~0.9",
"phpspec/phpspec": "^3.4",
"phpunit/phpunit": "^5.7",
"predis/predis": "~1.0",
"tedivm/stash": "~0.12"
},
"suggest": {
"ext-phpredis": "Pure C implemented extension for PHP"
},
"type": "library",
"autoload": {
"psr-4": {
"League\\Flysystem\\Cached\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "frankdejonge",
"email": "info@frenky.net"
}
],
"description": "An adapter decorator to enable meta-data caching.",
"time": "2018-07-09T20:51:04+00:00"
},
{
"name": "opis/closure",
"version": "3.3.0",
"source": {
"type": "git",
"url": "https://github.com/opis/closure.git",
"reference": "f846725591203098246276b2e7b9e8b7814c4965"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/opis/closure/zipball/f846725591203098246276b2e7b9e8b7814c4965",
"reference": "f846725591203098246276b2e7b9e8b7814c4965",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -25,12 +156,12 @@
}, },
"require-dev": { "require-dev": {
"jeremeamia/superclosure": "^2.0", "jeremeamia/superclosure": "^2.0",
"phpunit/phpunit": "^4.0|^5.0|^6.0|^7.0" "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.1.x-dev" "dev-master": "3.3.x-dev"
} }
}, },
"autoload": { "autoload": {
@@ -65,7 +196,7 @@
"serialization", "serialization",
"serialize" "serialize"
], ],
"time": "2019-02-22T10:30:00+00:00" "time": "2019-05-31T20:04:32+00:00"
}, },
{ {
"name": "psr/cache", "name": "psr/cache",
@@ -257,21 +388,213 @@
], ],
"time": "2017-10-23T01:57:42+00:00" "time": "2017-10-23T01:57:42+00:00"
}, },
{
"name": "symfony/polyfill-mbstring",
"version": "v1.11.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "fe5e94c604826c35a32fa832f35bd036b6799609"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fe5e94c604826c35a32fa832f35bd036b6799609",
"reference": "fe5e94c604826c35a32fa832f35bd036b6799609",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"suggest": {
"ext-mbstring": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.11-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Mbstring\\": ""
},
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill for the Mbstring extension",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"mbstring",
"polyfill",
"portable",
"shim"
],
"time": "2019-02-06T07:57:58+00:00"
},
{
"name": "symfony/polyfill-php72",
"version": "v1.11.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
"reference": "ab50dcf166d5f577978419edd37aa2bb8eabce0c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/ab50dcf166d5f577978419edd37aa2bb8eabce0c",
"reference": "ab50dcf166d5f577978419edd37aa2bb8eabce0c",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.11-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Polyfill\\Php72\\": ""
},
"files": [
"bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
"shim"
],
"time": "2019-02-06T07:57:58+00:00"
},
{
"name": "symfony/var-dumper",
"version": "v4.3.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
"reference": "45d6ef73671995aca565a1aa3d9a432a3ea63f91"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/45d6ef73671995aca565a1aa3d9a432a3ea63f91",
"reference": "45d6ef73671995aca565a1aa3d9a432a3ea63f91",
"shasum": ""
},
"require": {
"php": "^7.1.3",
"symfony/polyfill-mbstring": "~1.0",
"symfony/polyfill-php72": "~1.5"
},
"conflict": {
"phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
"symfony/console": "<3.4"
},
"require-dev": {
"ext-iconv": "*",
"symfony/console": "~3.4|~4.0",
"symfony/process": "~3.4|~4.0",
"twig/twig": "~1.34|~2.4"
},
"suggest": {
"ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
"ext-intl": "To show region name in time zone dump",
"symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
},
"bin": [
"Resources/bin/var-dump-server"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.3-dev"
}
},
"autoload": {
"files": [
"Resources/functions/dump.php"
],
"psr-4": {
"Symfony\\Component\\VarDumper\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony mechanism for exploring and dumping PHP variables",
"homepage": "https://symfony.com",
"keywords": [
"debug",
"dump"
],
"time": "2019-06-17T17:37:00+00:00"
},
{ {
"name": "topthink/framework", "name": "topthink/framework",
"version": "6.0.x-dev", "version": "6.0.x-dev",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/top-think/framework.git", "url": "https://github.com/top-think/framework.git",
"reference": "f2a3948ff4194bc0bd198da48dcb74197d147bce" "reference": "a73dfadfffd884b59856d35e90bed695fbe0d33f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/top-think/framework/zipball/f2a3948ff4194bc0bd198da48dcb74197d147bce", "url": "https://api.github.com/repos/top-think/framework/zipball/a73dfadfffd884b59856d35e90bed695fbe0d33f",
"reference": "f2a3948ff4194bc0bd198da48dcb74197d147bce", "reference": "a73dfadfffd884b59856d35e90bed695fbe0d33f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"league/flysystem": "^1.0",
"league/flysystem-cached-adapter": "^1.0",
"opis/closure": "^3.1", "opis/closure": "^3.1",
"php": ">=7.1.0", "php": ">=7.1.0",
"psr/cache": "~1.0", "psr/cache": "~1.0",
@@ -312,7 +635,7 @@
"orm", "orm",
"thinkphp" "thinkphp"
], ],
"time": "2019-04-30T10:43:43+00:00" "time": "2019-06-29T07:44:17+00:00"
}, },
{ {
"name": "topthink/think-template", "name": "topthink/think-template",

View File

@@ -25,7 +25,7 @@ return [
// 是否启用事件 // 是否启用事件
'with_event' => true, 'with_event' => true,
// 自动多应用模式 // 自动多应用模式
'auto_multi_app' => true, 'auto_multi_app' => false,
// 应用映射(自动多应用模式有效) // 应用映射(自动多应用模式有效)
'app_map' => [], 'app_map' => [],
// 域名绑定(自动多应用模式有效) // 域名绑定(自动多应用模式有效)

View File

@@ -15,6 +15,17 @@ return [
// 默认使用的数据库连接配置 // 默认使用的数据库连接配置
'default' => Env::get('database.driver', 'mysql'), 'default' => Env::get('database.driver', 'mysql'),
// 自定义时间查询规则
'time_query_rule' => [],
// 自动写入时间戳字段
// true为自动识别类型 false关闭
// 字符串则明确指定时间字段类型 支持 int timestamp datetime date
'auto_timestamp' => true,
// 时间字段取出后的默认时间格式
'datetime_format' => 'Y-m-d H:i:s',
// 数据库连接配置信息 // 数据库连接配置信息
'connections' => [ 'connections' => [
'mysql' => [ 'mysql' => [
@@ -30,8 +41,6 @@ return [
'password' => Env::get('database.password', ''), 'password' => Env::get('database.password', ''),
// 端口 // 端口
'hostport' => Env::get('database.hostport', '3306'), 'hostport' => Env::get('database.hostport', '3306'),
// 连接dsn
'dsn' => '',
// 数据库连接参数 // 数据库连接参数
'params' => [], 'params' => [],
// 数据库编码默认采用utf8 // 数据库编码默认采用utf8
@@ -52,18 +61,10 @@ return [
'fields_strict' => true, 'fields_strict' => true,
// 是否需要进行SQL性能分析 // 是否需要进行SQL性能分析
'sql_explain' => false, 'sql_explain' => false,
// Builder类
'builder' => '',
// Query类
'query' => '',
// 是否需要断线重连 // 是否需要断线重连
'break_reconnect' => false, 'break_reconnect' => false,
], ],
// 更多的数据库配置信息 // 更多的数据库配置信息
], ],
// 自动写入时间戳字段
'auto_timestamp' => 'timestamp',
// 时间字段取出后的默认时间格式
'datetime_format' => 'Y-m-d H:i:s',
]; ];

View File

@@ -6,11 +6,11 @@ return [
'default' => Env::get('filesystem.driver', 'local'), 'default' => Env::get('filesystem.driver', 'local'),
'disks' => [ 'disks' => [
'local' => [ 'local' => [
'driver' => 'local', 'type' => 'local',
'root' => app()->getRuntimePath() . 'storage', 'root' => app()->getRuntimePath() . 'storage',
], ],
'public' => [ 'public' => [
'driver' => 'local', 'type' => 'local',
'root' => app()->getRootPath() . 'public/storage', 'root' => app()->getRootPath() . 'public/storage',
'url' => '/storage', 'url' => '/storage',
'visibility' => 'public', 'visibility' => 'public',

View File

@@ -8,23 +8,46 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com> // | Author: liu21st <liu21st@gmail.com>
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
use think\facade\Env;
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | 日志设置 // | 日志设置
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
return [ return [
// 日志记录方式,内置 file socket 支持扩展 // 默认日志记录通道
'default' => Env::get('log.channel', 'file'),
// 日志记录级别
'level' => [],
// 日志类型记录的通道 ['error'=>'email',...]
'type_channel' => [],
// 关闭全局日志写入
'close' => false,
// 全局日志处理 支持闭包
'processor' => null,
// 日志通道列表
'channels' => [
'file' => [
// 日志记录方式
'type' => 'File', 'type' => 'File',
// 日志保存目录 // 日志保存目录
'path' => '', 'path' => '',
// 日志记录级别
'level' => [],
// 单文件日志写入 // 单文件日志写入
'single' => false, 'single' => false,
// 独立日志级别 // 独立日志级别
'apart_level' => [], 'apart_level' => [],
// 最大日志文件数量 // 最大日志文件数量
'max_files' => 0, 'max_files' => 0,
// 是否关闭日志写入 // 使用JSON格式记录
'json' => false,
// 日志处理
'processor' => null,
// 关闭通道日志写入
'close' => false, 'close' => false,
// 日志输出格式化
'format' => '[%s][%s] %s',
],
// 其它日志通道配置
],
]; ];

View File

@@ -28,8 +28,6 @@ return [
'route_rule_merge' => false, 'route_rule_merge' => false,
// 路由是否完全匹配 // 路由是否完全匹配
'route_complete_match' => false, 'route_complete_match' => false,
// 使用注解路由
'route_annotation' => false,
// 是否开启路由缓存 // 是否开启路由缓存
'route_check_cache' => false, 'route_check_cache' => false,
// 路由缓存连接参数 // 路由缓存连接参数

View File

@@ -10,8 +10,11 @@
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
use think\facade\Route; use think\facade\Route;
Route::get('think', function () { Route::group('admin', function(){
return 'hello,ThinkPHP6!'; Route::rule('/', 'admin.index/index');
//Route::rule(':controller', 'admin.:controller/index');
Route::rule('login', 'admin.index/login');
Route::rule(':controller/:function', 'admin.:controller/:function');
}); });
Route::get('hello/:name', 'index/hello'); Route::miss('index/miss');