diff --git a/README.md b/README.md
index 8676e92..1454747 100644
--- a/README.md
+++ b/README.md
@@ -26,7 +26,7 @@ Fly模板
#### 安装教程
-1.git下载:https://gitee.com/toogee/TaoLer/repository/archive/master.zip
+1.git下载:https://gitee.com/toogee/TaoLer
2.官网下载:http://www.aieok.com
3.解压后,项目域名部署为public目录对外访问,访问http://www.youdomain.com/install/index安装,如果安装中有问题,需要回退到第一步。
4.安装前需要先建立好数据库(数据库连接地址,数据库用户名,数据库密码,数据库端口,数据库名称)
diff --git a/app/admin/controller/Admin.php b/app/admin/controller/Admin.php
index 010fa07..1a26efc 100644
--- a/app/admin/controller/Admin.php
+++ b/app/admin/controller/Admin.php
@@ -60,7 +60,7 @@ class Admin extends AdminController
}
}else {
- return json(['code'=>1,'msg'=>'审核出错']);
+ return json(['code'=>-1,'msg'=>'审核出错']);
}
}
@@ -76,9 +76,9 @@ class Admin extends AdminController
$result = Db::name('admin')->save($data);
Db::name('auth_group_access')->save(['uid'=>$data['id'],'group_id'=>$data['auth_group_id']]);
if($result){
- $res = ['code'=>1,'msg'=>'添加成功'];
+ $res = ['code'=>0,'msg'=>'添加成功'];
}else{
- $res = ['code'=>0,'msg'=>'添加失败'];
+ $res = ['code'=>-1,'msg'=>'添加失败'];
}
return json($res);
}
@@ -105,9 +105,9 @@ class Admin extends AdminController
$result = $admin->update($data);
Db::name('auth_group_access')->where('uid',$data['id'])->update(['group_id'=>$data['auth_group_id']]);
if($result){
- $res = ['code'=>1,'msg'=>'编辑成功'];
+ $res = ['code'=>0,'msg'=>'编辑成功'];
}else{
- $res = ['code'=>0,'msg'=>'编辑失败'];
+ $res = ['code'=>-1,'msg'=>'编辑失败'];
}
return json($res);
}
@@ -124,24 +124,23 @@ class Admin extends AdminController
$result = $user->delete();
if($result){
- return json(['code'=>1,'msg'=>'删除成功']);
+ return json(['code'=>0,'msg'=>'删除成功']);
}else{
- return json(['code'=>0,'msg'=>'删除失败']);
+ return json(['code'=>-1,'msg'=>'删除失败']);
}
}
}
-
+ //管理员资料更新
public function info()
{
$admin = AdminModel::find(Session::get('admin_id'));
if(Request::isAjax()){
- $data = Request::param();
- unset($data['auth_group_id']);
- $result = $admin->allowField(['nickname','sex','mobile','email','remarks'])->update($data);
+ $data = Request::only(['nickname','sex','mobile','email','remarks']);
+ $result = $admin->save($data);
if($result){
$res = ['code'=>0,'msg'=>'更新成功'];
} else {
- $res = ['code'=>1,'msg'=>'更新失败'];
+ $res = ['code'=>-1,'msg'=>'更新失败'];
}
return json($res);
}
@@ -149,12 +148,7 @@ class Admin extends AdminController
return View::fetch('set/user/info');
}
- /**
- * 显示指定的资源
- *
- * @param int $id
- * @return \think\Response
- */
+ //改密码
public function repass()
{
//
@@ -165,9 +159,9 @@ class Admin extends AdminController
$pwd = substr_replace(md5($data['oldPassword']),$salt,0,6);
$data['oldPassword'] = md5($pwd);
if($admin['password'] != $data['oldPassword']){
- $res = ['code'=>1,'msg'=>'当前密码错误'];
+ return json(['code'=>-1,'msg'=>'当前密码错误']);
} elseif($data['password'] != $data['repassword']){
- $res = ['code'=>1,'msg'=>'两次密码不一致'];
+ return json(['code'=>-1,'msg'=>'两次密码不一致']);
} else {
$password = md5(substr_replace(md5($data['password']),$salt,0,6));
$result = $admin->update([
@@ -177,11 +171,12 @@ class Admin extends AdminController
if($result){
$res = ['code'=>0,'msg'=>'更新成功'];
} else {
- $res = ['code'=>1,'msg'=>'更新失败'];
+ $res = ['code'=>-1,'msg'=>'更新失败'];
}
+ return json($res);
}
- return json($res);
+
}
View::assign('admin',$admin);
return View::fetch('set/user/repass');
diff --git a/app/admin/controller/AuthGroup.php b/app/admin/controller/AuthGroup.php
index 151ebdb..1767c21 100644
--- a/app/admin/controller/AuthGroup.php
+++ b/app/admin/controller/AuthGroup.php
@@ -39,16 +39,6 @@ class AuthGroup extends AdminController
return View::fetch('role');
}
-
-
-
- //角色管理
- public function role()
- {
- //
- return View::fetch('role');
- }
-
//角色添加
public function roleAdd()
{
@@ -56,9 +46,9 @@ class AuthGroup extends AdminController
$data = Request::param();
$result = AuthGroupModel::create($data);
if($result) {
- $res = ['code'=>1,'msg'=>'添加成功'];
+ $res = ['code'=>0,'msg'=>'添加成功'];
} else {
- $res = ['code'=>0,'msg'=>'添加失败'];
+ $res = ['code'=>-1,'msg'=>'添加失败'];
}
return json($res);
}
@@ -84,9 +74,9 @@ class AuthGroup extends AdminController
*/
$rule = AuthGroupModel::update($data);
if($rule){
- $res = ['code'=>1,'msg'=>'保存成功'];
+ $res = ['code'=>0,'msg'=>'保存成功'];
} else {
- $res = ['code'=>1,'msg'=>'保存成功'];
+ $res = ['code'=>-1,'msg'=>'保存失败'];
}
return json($res);
}
@@ -102,6 +92,41 @@ class AuthGroup extends AdminController
return View::fetch('roleedit');
}
+ //角色删除
+ public function roledel($id)
+ {
+ if(Request::isAjax()){
+ $role =AuthGroupModel::find($id);
+ $result = $role->delete();
+
+ if($result){
+ $res = ['code'=>0,'msg'=>'删除成功'];
+ }else{
+ $res = ['code'=>-1,'msg'=>'删除失败'];
+ }
+ return json($res);
+ }
+ }
+
+ //角色审核
+ public function check()
+ {
+ $data = Request::param();
+
+ //获取状态
+ $res = Db::name('auth_group')->where('id',$data['id'])->save(['status' => $data['status']]);
+ if($res){
+ if($data['status'] == 1){
+ return json(['code'=>0,'msg'=>'角色审核通过','icon'=>6]);
+ } else {
+ return json(['code'=>0,'msg'=>'禁用此角色','icon'=>5]);
+ }
+
+ }else {
+ return json(['code'=>-1,'msg'=>'审核出错']);
+ }
+
+ }
}
diff --git a/app/admin/controller/AuthRule.php b/app/admin/controller/AuthRule.php
index 7384407..437b3cb 100644
--- a/app/admin/controller/AuthRule.php
+++ b/app/admin/controller/AuthRule.php
@@ -39,14 +39,13 @@ class AuthRule extends AdminController
//
if(Request::isAjax()){
$data = Request::param();
- //halt($data);
$plevel = Db::name('auth_rule')->field('level')->find($data['pid']);
if($plevel){
$data['level'] = $plevel['level']+1;
} else {
$data['level'] = 0;
}
-
+ $data['create_time'] = time();
$list = Db::name('auth_rule')->save($data);
if($list){
@@ -81,17 +80,13 @@ class AuthRule extends AdminController
if($zi){
$zi->update(['level'=>$data['level']+1]);
}
-
-
-
-
-
+
$save = AuthRuleModel::update($data);
if($save){
$res = ['code'=>0,'msg'=>'修改成功'];
} else {
- $res = ['code'=>1,'msg'=>'修改失败'];
+ $res = ['code'=>-1,'msg'=>'修改失败'];
}
return json($res);
}
@@ -118,7 +113,7 @@ class AuthRule extends AdminController
}
}else {
- return json(['code'=>1,'msg'=>'审核出错']);
+ return json(['code'=>-1,'msg'=>'审核出错']);
}
}
@@ -127,16 +122,15 @@ class AuthRule extends AdminController
public function menuShow()
{
$data = Request::param();
- //var_dump($data);
$rules = Db::name('auth_rule')->save($data);
if($rules){
if($data['ishidden'] == 1){
- return json(['code'=>1,'msg'=>'设置菜单显示','icon'=>6]);
+ return json(['code'=>0,'msg'=>'设置菜单显示','icon'=>6]);
} else {
- return json(['code'=>1,'msg'=>'取消菜单显示','icon'=>5]);
+ return json(['code'=>0,'msg'=>'取消菜单显示','icon'=>5]);
}
}else{
- $res = ['code'=>0,'msg'=>'设置失败'];
+ $res = ['code'=>-1,'msg'=>'设置失败'];
}
return json($res);
}
@@ -147,21 +141,27 @@ class AuthRule extends AdminController
$data = Request::param();
$rules = Db::name('auth_rule')->save($data);
if($rules){
- $res = ['code'=>1,'msg'=>'排序成功'];
+ $res = ['code'=>0,'msg'=>'排序成功'];
}else{
- $res = ['code'=>0,'msg'=>'排序失败'];
+ $res = ['code'=>-1,'msg'=>'排序失败'];
}
return json($res);
}
public function delete($id)
- { var_dump($id);
+ {
+ $pids = AuthRuleModel::where('pid',$id)->select();
+ if($pids)
+ {
+ $result = $pids->delete();
+ }
+
$rule = AuthRuleModel::find($id);
$result = $rule->delete();
if($result){
- $res = ['code'=>1,'msg'=>'删除成功'];
+ $res = ['code'=>0,'msg'=>'删除成功'];
} else {
- $res = ['code'=>0,'msg'=>'删除失败'];
+ $res = ['code'=>-1,'msg'=>'删除失败'];
}
return json($res);
}
diff --git a/app/admin/controller/Forum.php b/app/admin/controller/Forum.php
index aa7e3f0..556f4fd 100644
--- a/app/admin/controller/Forum.php
+++ b/app/admin/controller/Forum.php
@@ -7,6 +7,7 @@ use app\admin\validate\Admin;
use app\admin\model\Admin as adminModel;
use app\common\model\Cate;
use app\common\model\Comment;
+use app\common\model\Article;
use think\facade\View;
use think\facade\Request;
use think\facade\Db;
@@ -22,7 +23,7 @@ class Forum extends AdminController
$forumList = Db::name('article')
->alias('a')
->join('user u','a.user_id = u.id')
- ->field('a.id as aid,name,user_img,title,a.update_time,is_top')
+ ->field('a.id as aid,name,user_img,title,a.update_time as update_time,is_top,is_hot,a.status as astatus')
->where('a.delete_time',0)
->order('a.create_time', 'desc')
->paginate(15);
@@ -32,7 +33,7 @@ class Forum extends AdminController
$res['msg'] = '';
$res['count'] = $forumList->total();
foreach($forumList as $k=>$v){
- $res['data'][]= ['id'=>$v['aid'],'poster'=>$v['name'],'avatar'=>$v['user_img'],'content'=>$v['title'],'posttime'=>date("Y-m-d",$v['update_time']),'top'=>$v['is_top']];
+ $res['data'][]= ['id'=>$v['aid'],'poster'=>$v['name'],'avatar'=>$v['user_img'],'content'=>$v['title'],'posttime'=>date("Y-m-d",$v['update_time']),'top'=>$v['is_top'],'hot'=>$v['is_hot'],'check'=>$v['astatus']];
}
}
return json($res);
@@ -41,7 +42,7 @@ class Forum extends AdminController
}
//编辑帖子
- public function listForm()
+ public function listform()
{
if(Request::isAjax()){
$data = Request::param();
@@ -51,6 +52,49 @@ class Forum extends AdminController
return View::fetch();
}
+ //删除帖子
+ public function listdel($id)
+ {
+ if(Request::isAjax()){
+ $article =Article::find($id);
+ $result = $article->together(['comments'])->delete();
+
+ if($result){
+ return json(['code'=>0,'msg'=>'删除成功']);
+ }else{
+ return json(['code'=>-1,'msg'=>'删除失败']);
+ }
+ }
+ }
+ //置顶帖子
+ public function top()
+ {
+ //
+ }
+ //加精帖子
+ public function hot()
+ {
+ //
+ }
+ //审核帖子
+ public function check()
+ {
+ $data = Request::param();
+
+ //获取状态
+ $res = Db::name('article')->where('id',$data['id'])->save(['status' => $data['status']]);
+ if($res){
+ if($data['status'] == 1){
+ return json(['code'=>0,'msg'=>'帖子审核通过','icon'=>6]);
+ } else {
+ return json(['code'=>0,'msg'=>'帖子被禁止','icon'=>5]);
+ }
+
+ }else {
+ return json(['code'=>-1,'msg'=>'审核出错']);
+ }
+ }
+
//帖子分类
public function tags()
{
@@ -141,7 +185,7 @@ class Forum extends AdminController
->alias('a')
->join('user u','a.user_id = u.id')
->join('article c','a.article_id = c.id')
- ->field('a.id as aid,name,title,user_img,a.content as content,a.create_time as create_time')
+ ->field('a.id as aid,name,title,user_img,a.content as content,a.create_time as create_time,a.status as astatus,c.id as cid')
->where('a.delete_time',0)
->order('a.create_time', 'desc')
->paginate(15);
@@ -151,9 +195,8 @@ class Forum extends AdminController
if ($replys) {
$res = ['code'=>0,'msg'=>'','count'=>$count];
foreach($replys as $k => $v){
- //var_dump($v);
//$res['data'][] = ['id'=>$v['id'],'replyer'=>$v->user->name,'cardid'=>$v->article->title,'avatar'=>$v->user->user_img,'content'=>$v['content'],'replytime'=>$v['create_time']];
- $res['data'][] = ['id'=>$v['aid'],'replyer'=>$v['name'],'cardid'=>$v['title'],'avatar'=>$v['user_img'],'content'=>$v['content'],'replytime'=>$v['create_time']];
+ $res['data'][] = ['id'=>$v['aid'],'replyer'=>$v['name'],'cardid'=>$v['title'],'avatar'=>$v['user_img'],'content'=>$v['content'],'replytime'=>date("Y-m-d",$v['create_time']),'check'=>$v['astatus'],'cid'=>$v['cid']];
}
}
return json($res);
@@ -162,9 +205,41 @@ class Forum extends AdminController
return View::fetch();
}
+ //评论编辑
public function replysform()
{
return View::fetch();
}
-
+ //评论删除
+ public function redel($id)
+ {
+ if(Request::isAjax()){
+ $comm =Comment::find($id);
+ $result = $comm->delete();
+
+ if($result){
+ return json(['code'=>0,'msg'=>'删除成功']);
+ }else{
+ return json(['code'=>-1,'msg'=>'删除失败']);
+ }
+ }
+ }
+ //评论审核
+ public function recheck()
+ {
+ $data = Request::param();
+
+ //获取状态
+ $res = Db::name('comment')->where('id',$data['id'])->save(['status' => $data['status']]);
+ if($res){
+ if($data['status'] == 1){
+ return json(['code'=>0,'msg'=>'评论审核通过','icon'=>6]);
+ } else {
+ return json(['code'=>0,'msg'=>'评论被禁止','icon'=>5]);
+ }
+
+ }else {
+ return json(['code'=>-1,'msg'=>'审核出错']);
+ }
+ }
}
diff --git a/app/admin/controller/Upgrade.php b/app/admin/controller/Upgrade.php
index 4de0d95..ee271a9 100644
--- a/app/admin/controller/Upgrade.php
+++ b/app/admin/controller/Upgrade.php
@@ -39,7 +39,7 @@ class Upgrade extends AdminController
- /** 展示升级界面 */
+ /** 升级界面 */
public function index()
{
$sys_version_num = Db::name('system')->field('sys_version_num,key,upcheck_url,upgrade_url')->find(1);
diff --git a/app/admin/controller/User.php b/app/admin/controller/User.php
index edce1ec..1a0f91d 100644
--- a/app/admin/controller/User.php
+++ b/app/admin/controller/User.php
@@ -31,9 +31,8 @@ class User extends AdminController
$res = [];
if($user){
$res = ['code'=>0,'msg'=>'','count'=>$count];
-
foreach($user as $k => $v){
- $data = ['id'=>$v['id'],'username'=>$v['name'],'avatar'=>$v['user_img'],'phone'=>$v['phone'],'email'=>$v['email'],'sex'=>$v['sex'],'ip'=>$v['last_login_ip'],'jointime'=>date("Y-m-d",$v['create_time']),'status'=>$v['status']];
+ $data = ['id'=>$v['id'],'username'=>$v['name'],'avatar'=>$v['user_img'],'phone'=>$v['phone'],'email'=>$v['email'],'sex'=>$v['sex'],'ip'=>$v['last_login_ip'],'jointime'=>date("Y-m-d",$v['create_time']),'check'=>$v['status'],'auth'=>$v['auth']];
$res['data'][] = $data;
}
}
@@ -51,9 +50,9 @@ class User extends AdminController
$data = Request::param();
$result = Db::name('user')->save($data);
if($result){
- $res = ['code'=>1,'msg'=>'添加成功'];
+ $res = ['code'=>0,'msg'=>'添加成功'];
}else{
- $res = ['code'=>0,'msg'=>'添加失败'];
+ $res = ['code'=>-1,'msg'=>'添加失败'];
}
return json($res);
}
@@ -68,9 +67,9 @@ class User extends AdminController
$data = Request::param();
$result = Db::name('user')->update($data);
if($result){
- $res = ['code'=>1,'msg'=>'编辑成功'];
+ $res = ['code'=>0,'msg'=>'编辑成功'];
}else{
- $res = ['code'=>0,'msg'=>'编辑失败'];
+ $res = ['code'=>-1,'msg'=>'编辑失败'];
}
return json($res);
}
@@ -87,9 +86,9 @@ class User extends AdminController
$result = $user->delete();
if($result){
- return json(['code'=>1,'msg'=>'删除成功']);
+ return json(['code'=>0,'msg'=>'删除成功']);
}else{
- return json(['code'=>0,'msg'=>'删除失败']);
+ return json(['code'=>-1,'msg'=>'删除失败']);
}
}
}
@@ -111,12 +110,50 @@ class User extends AdminController
$name_path =str_replace('\\',"/",$upload.'/'.$savename);
$res = ['code'=>0,'msg'=>'上传头像成功','src'=>$name_path];
} else {
- $res = ['code'=>1,'msg'=>'上传错误'];
+ $res = ['code'=>-1,'msg'=>'上传错误'];
}
return json($res);
}
+ //审核用户
+ public function check()
+ {
+ $data = Request::param();
+
+ //获取状态
+ $res = Db::name('user')->where('id',$data['id'])->save(['status' => $data['status']]);
+ if($res){
+ if($data['status'] == 1){
+ return json(['code'=>0,'msg'=>'用户审核通过','icon'=>6]);
+ } else {
+ return json(['code'=>0,'msg'=>'禁用用户','icon'=>5]);
+ }
+
+ }else {
+ return json(['code'=>-1,'msg'=>'审核出错']);
+ }
+
+ }
+
+ //超级管理员
+ public function auth()
+ {
+ $data = Request::param();
+ $user = Db::name('user')->save($data);
+ if($user){
+ if($data['auth'] == 1){
+ return json(['code'=>0,'msg'=>'设置为超级管理员','icon'=>6]);
+ } else {
+ return json(['code'=>0,'msg'=>'取消超级管理员','icon'=>5]);
+ }
+ }else{
+ $res = ['code'=>-1,'msg'=>'前台管理员设置失败'];
+ }
+ return json($res);
+ }
+
+
//退出登陆
public function logout()
{
diff --git a/app/admin/model/AuthRule.php b/app/admin/model/AuthRule.php
index dbcb07d..bd2dfd4 100644
--- a/app/admin/model/AuthRule.php
+++ b/app/admin/model/AuthRule.php
@@ -5,15 +5,19 @@ namespace app\admin\model;
use think\Model;
use think\facade\Db;
use think\facade\Session;
-//use think\model\concern\SoftDelete;
+use think\model\concern\SoftDelete;
class AuthRule extends Model
{
//软删除
- //use SoftDelete;
- //protected $deleteTime = 'delete_time';
- //protected $defaultSoftDelete = 0;
+ use SoftDelete;
+ protected $deleteTime = 'delete_time';
+ protected $defaultSoftDelete = 0;
+ public function searchIdAttr($query, $value, $data)
+ {
+ $query->where('id', $value );
+ }
//登陆校验
public function authRuleTree()
{
diff --git a/app/index/controller/Article.php b/app/index/controller/Article.php
index 6d20655..1e195c4 100644
--- a/app/index/controller/Article.php
+++ b/app/index/controller/Article.php
@@ -97,7 +97,7 @@ class Article extends BaseController
//获取文章ID
$id = Request::param('id');
//查询文章
- $article = ArticleModel::field('id,title,content,status,cate_id,user_id,is_top,is_hot,is_reply,pv,jie,create_time')->with([
+ $article = ArticleModel::field('id,title,content,status,cate_id,user_id,is_top,is_hot,is_reply,pv,jie,create_time')->where('status',1)->with([
'cate' => function($query){
$query->where('delete_time',0)->field('id,catename');
},
diff --git a/app/install/config/database.php b/app/install/config/database.php
index f7a8879..de860c7 100644
--- a/app/install/config/database.php
+++ b/app/install/config/database.php
@@ -8,11 +8,11 @@ return [
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
- 'database' => 'taotest',
+ 'database' => '',
// 用户名
- 'username' => 'root',
+ 'username' => '',
// 密码
- 'password' => 'root',
+ 'password' => '',
// 端口
'hostport' => '3306',
// 数据库连接参数
diff --git a/app/install/data/taoler.sql b/app/install/data/taoler.sql
index 9d1ced4..99dec0a 100644
--- a/app/install/data/taoler.sql
+++ b/app/install/data/taoler.sql
@@ -1,33 +1,37 @@
SET FOREIGN_KEY_CHECKS=0;
-/*Table structure for tao_admin*/
+
+/* Table structure for tao_admin */
+
DROP TABLE IF EXISTS `tao_admin`;
CREATE TABLE `tao_admin` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `username` varchar(20) NOT NULL COMMENT '管理员账户',
- `nickname` varchar(20) NOT NULL COMMENT '昵称',
- `password` varchar(32) NOT NULL COMMENT '密码',
- `email` varchar(30) NOT NULL COMMENT '邮箱',
- `mobile` varchar(11) NOT NULL COMMENT '手机号',
+ `username` varchar(20) NOT NULL DEFAULT '' COMMENT '管理员账户',
+ `nickname` varchar(20) NOT NULL DEFAULT '' COMMENT '昵称',
+ `password` varchar(32) NOT NULL DEFAULT '' COMMENT '密码',
+ `email` varchar(30) NOT NULL DEFAULT '' COMMENT '邮箱',
+ `mobile` varchar(11) NOT NULL DEFAULT '' COMMENT '手机号',
`sex` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0女1男',
`status` enum('1','0') NOT NULL DEFAULT '0' COMMENT '1启用0禁用',
`auth_group_id` smallint(1) NOT NULL DEFAULT '0' COMMENT '1超级管理员0是普通管理员',
- `remarks` varchar(255) NOT NULL COMMENT '备注',
- `last_login_ip` varchar(70) NOT NULL COMMENT '最后登录IP',
- `last_login_time` int(11) unsigned zerofill NOT NULL COMMENT '最后登录时间',
+ `remarks` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
+ `last_login_ip` varchar(70) NOT NULL DEFAULT '' COMMENT '最后登录IP',
+ `last_login_time` int(11) NOT NULL DEFAULT '0' COMMENT '最后登录时间',
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '软删除',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
-/*Records of tao_admin*/
-INSERT INTO `tao_admin` VALUES ('1', 'admin', '管理员', 'def94a4e0b210f2fac7df0fb279d09d3', 'adminqq@qq.com', '13511112222', '1', '1', '1', '2019.12.31 明天新年发布新版本!', '127.0.0.1', '01578650049', '1577258664', '1578554380', '0');
-INSERT INTO `tao_admin` VALUES ('2', 'test', '', '3dbfa76bd34a2a0274f5d52f5529ccb3', 'tao@qq.com', '13567891236', '0', '1', '2', '', '127.0.0.1', '01578643147', '1555892325', '1576554415', '0');
+
+/* Records of tao_admin */
+
+INSERT INTO `tao_admin` VALUES ('1', 'admin', '管理员', '4e60b6cccab6617237b4034316bcb4f2', 'taoler@qq.com', '13812345678', '1', '1', '1', '2019.1.1 新年发布新版本!', '127.0.0.1', '1578986287', '1577258664', '1578986600', '0');
+INSERT INTO `tao_admin` VALUES ('2', 'test', '', '3dbfa76bd34a2a0274f5d52f5529ccb3', 'tao@qq.com', '13567891236', '0', '0', '2', '', '127.0.0.1', '1578643147', '1555892325', '1576554415', '0');
-/*Table structure for tao_article*/
+/* Table structure for tao_article */
DROP TABLE IF EXISTS `tao_article`;
CREATE TABLE `tao_article` (
@@ -46,20 +50,20 @@ CREATE TABLE `tao_article` (
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=27 DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM AUTO_INCREMENT=29 DEFAULT CHARSET=utf8;
-/*Records of tao_article*/
+/* Records of tao_article */
-INSERT INTO `tao_article` VALUES ('1', '哪里有好用专一的社区论坛?', '最近有所需要,在网上搜了一下,想找好用现成的社区性质的论坛,本来想搭建一个小区可维护的论坛。你们有推荐的吗?\r\n偶尔进到layui的Fly社区,感觉这个还挺好看的,搜了一下,也有几个类似的项目,得到的结果是,有不错的,可惜不维护了,有维护的,但不是自己想要的风格。\r\n我看的项目框架大多PHP实现的,要不咱也来一个。', '1', '6', '1', '0', '0', '1', '27', '0', '1546698110', '1577773844', '0');
+INSERT INTO `tao_article` VALUES ('1', '哪里有好用专一的社区论坛?', '最近有所需要,在网上搜了一下,想找好用现成的社区性质的论坛,本来想搭建一个小区可维护的论坛。你们有推荐的吗?\r\n偶尔进到layui的Fly社区,感觉这个还挺好看的,搜了一下,也有几个类似的项目,得到的结果是,有不错的,可惜不维护了,有维护的,但不是自己想要的风格。\r\n我看的项目框架大多PHP实现的,要不咱也来一个。', '1', '6', '1', '0', '0', '1', '27', '0', '1546698110', '1578976657', '0');
INSERT INTO `tao_article` VALUES ('2', 'php是世界最好的语言吗?', '[quote]\r\n PHP是世界最好的语言\r\n[/quote]\r\n您是怎么认为的呢?据说现在PHP7性能蛮好的,对于WEB开发很有效率,我是学C的,PHP几年前有过了解,在ASP时代,做过电影网站站长,很ASP后来很快就不用了。\r\n你认为PHP怎么样呢?', '1', '1', '1', '0', '0', '1', '77', '0', '1546699158', '1577773832', '0');
INSERT INTO `tao_article` VALUES ('3', 'php压缩文件解压Unzip类', '[quote]\r\n 解压代码\r\n[/quote]\r\n[pre]\r\ncreate_dirs($dest_dir);\r\n\r\n // zip包中的 每个 文件\r\n while ($zip_entry = zip_read($zip))\r\n {\r\n\r\n // 现在我们要在目标目录中创建目录\r\n \r\n // 如果文件不在根目录中\r\n $pos_last_slash = strrpos(zip_entry_name($zip_entry), \"/\"); // strrpos()字符串在另一字符串中最后一次出现的位置。\r\n if ($pos_last_slash !== false)\r\n {\r\n // 创建保存zip条目的目录(结尾加“/”)substr()可在字符串中抽取从 start 下标开始的指定数目的字符。\r\n $this->create_dirs($dest_dir.substr(zip_entry_name($zip_entry), 0, $pos_last_slash+1));\r\n \r\n }\r\n\r\n // Open the entry\r\n if (zip_entry_open($zip,$zip_entry,\"r\"))\r\n {\r\n \r\n // 要保存在磁盘上的文件名\r\n $file_name = $dest_dir.zip_entry_name($zip_entry);\r\n\r\n // 检查是否应覆盖文件\r\n if ($overwrite === true || $overwrite === false && !is_file($file_name))\r\n {\r\n // 获取zip条目的内容\r\n $fstream = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));\r\n\r\n file_put_contents($file_name, $fstream );\r\n // Set the rights\r\n chmod($file_name, 0777);\r\n echo \"save: \".$file_name.\"
\";\r\n }\r\n \r\n // Close the entry\r\n zip_entry_close($zip_entry);\r\n } \r\n }\r\n // Close the zip-file\r\n zip_close($zip);\r\n }\r\n }else{\r\n return false;\r\n }\r\n \r\n return true;\r\n}\r\n\r\n/**\r\n* This function creates recursive directories if it doesn\'t already exist\r\n*\r\n* @param String The path that should be created\r\n* \r\n* @return void\r\n*/\r\npublic function create_dirs($path)\r\n{\r\n if (!is_dir($path))\r\n {\r\n $directory_path = \"\";\r\n $directories = explode(\"/\",$path);\r\n array_pop($directories);\r\n \r\n foreach($directories as $directory)\r\n {\r\n $directory_path .= $directory.\"/\";\r\n if (!is_dir($directory_path))\r\n {\r\n mkdir($directory_path);\r\n chmod($directory_path, 0777);\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n}\r\n[/pre]\r\n\r\n[quote]\r\n 使用实例\r\n[/quote]\r\n[pre]\r\nExtract C:/zipfiletest/zip-file.zip to C:/zipfiletest/zip-file/ and overwrites existing files\r\nunzip(\"C:/zipfiletest/zip-file.zip\", false, true, true);\r\n\r\nExtract C:/zipfiletest/zip-file.zip to C:/another_map/zipfiletest/ and doesn\'t overwrite existing files. NOTE: It doesn\'t create a map with the zip-file-name!\r\nunzip(\"C:/zipfiletest/zip-file.zip\", \"C:/another_map/zipfiletest/\", true, false);\r\n[/pre]\r\n\r\n\r\n', '1', '2', '1', '0', '1', '1', '220', '0', '1546698192', '1577763213', '0');
-INSERT INTO `tao_article` VALUES ('4', 'Fly Template 社区模版', '[quote]\r\n 你们认为layui官方Fly Template 社区模版怎么样?\r\n[/quote]\r\nimg[https://cdn.layui.com/upload/2017_11/168_1512035128058_80242.jpg] \r\n你喜欢吗?\r\n很多人都说比较喜欢,我个人认为不错的,这个板子非常喜欢,我看到有一些人做了开发,可惜的是都没有很好的维护,有的漏洞比较多,不完善,很美好的一个板子,但没有长久 的更新,非常的可惜。\r\n如果用别人的不好用,那我就做一个出来吧。喜欢的人多关注,适当时候放出来大家一起用。\r\n关于详情页的内容解析\r\n该模板自带一个特定语法的编辑器,当你把内容存储到数据库后,在页面读取后浏览,会发现诸如“表情、代码、图片”等无法解析,这是因为需要对该内容进行一次转义,通常来说这是在服务端完成的,但鉴于简单化,你还可以直接在前端去解析,在模板的detail.html中,我们已经把相关的代码写好了,你只需打开注释即可(在代码的最下面)。当然,如果觉得编辑器无法满足你的需求,你也可以把该编辑器换成别的HTML编辑器或MarkDown编辑器。', '1', '1', '1', '0', '0', '1', '12', '0', '1546698225', '1577772362', '0');
+INSERT INTO `tao_article` VALUES ('4', 'Fly Template 社区模版', '[quote]\r\n 你们认为layui官方Fly Template 社区模版怎么样?\r\n[/quote]\r\nimg[https://cdn.layui.com/upload/2017_11/168_1512035128058_80242.jpg] \r\n你喜欢吗?\r\n很多人都说比较喜欢,我个人认为不错的,这个板子非常喜欢,我看到有一些人做了开发,可惜的是都没有很好的维护,有的漏洞比较多,不完善,很美好的一个板子,但没有长久 的更新,非常的可惜。\r\n如果用别人的不好用,那我就做一个出来吧。喜欢的人多关注,适当时候放出来大家一起用。\r\n关于详情页的内容解析\r\n该模板自带一个特定语法的编辑器,当你把内容存储到数据库后,在页面读取后浏览,会发现诸如“表情、代码、图片”等无法解析,这是因为需要对该内容进行一次转义,通常来说这是在服务端完成的,但鉴于简单化,你还可以直接在前端去解析,在模板的detail.html中,我们已经把相关的代码写好了,你只需打开注释即可(在代码的最下面)。当然,如果觉得编辑器无法满足你的需求,你也可以把该编辑器换成别的HTML编辑器或MarkDown编辑器。', '1', '1', '1', '0', '0', '1', '13', '0', '1546698225', '1577772362', '0');
INSERT INTO `tao_article` VALUES ('5', '中国区域性网上社区的舆情研究', '[quote]\r\n 中国区域性网上社区的舆情研究--基于《济南部落论坛》和《福州家园网》的实证分析\r\n冯立梅\r\n福建师范大学\r\n[/quote]\r\n网上论坛是网上社区最主要的组成部分。继全国性综合网上论坛,如天涯论坛、强国论坛的火爆之后,区域性的网上论坛,也开始迅速成长。\r\n如今每个城市,甚至有的县,都已经拥有了自己的网上论坛。泡本地的网上论坛,成为上网一族的习惯。处在社会转型时期的中国,各种矛盾问题比以往更加突出。而越来越多的社会热点事件,是萌芽于各地方性的网上论坛。网络舆情,是网上论坛信息的体现。因此,研究中国区域性网上社区的舆情信息就显得十分必要。\r\n\r\n本文力图从舆情的第一线出发,探讨中国区域性网上社区目前发展的态势,以及网络舆情的状况。并具体到几个网上论坛,通过综合研究和个案观察的方法,来概括其真实的表征,以此为据进行相关的理论分析。\r\n本着根据调查成果来下结论的思路,经过研究发现,中国区域性网上论坛能够一定程度的反映网络舆情,但是多停留在初级的讨论状态,情绪抒发后真正的问题并没有得到实质的解决。只有个别事件由于舆论压力而被重点处理。网上论坛具有很好的社会降压阀的作用,但对于网络民主的促进,远不及微博等新的媒体形式。 ', '1', '3', '2', '0', '1', '1', '23', '0', '1556798251', '1577765263', '0');
-INSERT INTO `tao_article` VALUES ('6', 'PHP是什么', '[quote]\r\n PHP原始为Personal Home Page的缩写,已经正式更名为 \"PHP: Hypertext Preprocessor\"。\r\n[/quote]\r\n\r\n自20世纪90年代国内互联网开始发展到现在,互联网信息几乎覆盖了我们日常活动所有知识范畴,并逐渐成为我们生活、学习、工作中必不可少的一部分。据统计,从2003 年开始,我国的网页规模基本保持了翻番的增长速度,并且呈上升趋势。PHP 语言作为当今最热门的网站程序开发语言,它具有成本低、速度快、可移植性好、 内置丰富的函数库等优点,因此被越来越多的企业应用于网站开发中。但随着互联网的不断更新换代,PHP语言也出现了不少问题。 [1] \r\n根据动态网站要求,PHP语言作为一种语言程序,其专用性逐渐在应用过程中显现,其技术水平的优劣与否将直接影响网站的运行效率。其特点是具有公开的源代码, 在程序设计上与通用型语言,如C语言相似性较高,因此在操作过程中简单易懂,可操作性强。同时,PHP语言具有较高的数据传送处理水平和输出水平,可以广泛应用在Windows系统及各类Web服务器中。如果数据量较大,PHP语言还可以拓宽链接面,与各种数据库相连,缓解数据存储、检索及维护压力。随着技术的发展,PHP 语言搜索引擎还可以量体裁衣,实行个性化服务,如根据客户的喜好进行分类收集储存,极大提高了数据运行效率。', '1', '3', '1', '0', '0', '1', '33', '0', '1546748103', '1578542674', '1578542674');
+INSERT INTO `tao_article` VALUES ('6', 'PHP是什么', '[quote]\r\n PHP原始为Personal Home Page的缩写,已经正式更名为 \"PHP: Hypertext Preprocessor\"。\r\n[/quote]\r\n\r\n自20世纪90年代国内互联网开始发展到现在,互联网信息几乎覆盖了我们日常活动所有知识范畴,并逐渐成为我们生活、学习、工作中必不可少的一部分。据统计,从2003 年开始,我国的网页规模基本保持了翻番的增长速度,并且呈上升趋势。PHP 语言作为当今最热门的网站程序开发语言,它具有成本低、速度快、可移植性好、 内置丰富的函数库等优点,因此被越来越多的企业应用于网站开发中。但随着互联网的不断更新换代,PHP语言也出现了不少问题。 [1] \r\n根据动态网站要求,PHP语言作为一种语言程序,其专用性逐渐在应用过程中显现,其技术水平的优劣与否将直接影响网站的运行效率。其特点是具有公开的源代码, 在程序设计上与通用型语言,如C语言相似性较高,因此在操作过程中简单易懂,可操作性强。同时,PHP语言具有较高的数据传送处理水平和输出水平,可以广泛应用在Windows系统及各类Web服务器中。如果数据量较大,PHP语言还可以拓宽链接面,与各种数据库相连,缓解数据存储、检索及维护压力。随着技术的发展,PHP 语言搜索引擎还可以量体裁衣,实行个性化服务,如根据客户的喜好进行分类收集储存,极大提高了数据运行效率。', '1', '3', '1', '0', '0', '1', '33', '0', '1546748103', '1578542674', '0');
INSERT INTO `tao_article` VALUES ('7', 'thinkphp Db类和模型的正确使用姿势', '[quote]\r\n 来源:流年 ThinkPHP官方博客\r\n[/quote]\r\n\r\n2018 年 10 月 23 日 发布\r\n发现很多开发者在使用ThinkPHP5.*的时候不明白Db和模型的正确使用姿势,尤其是在5.1版本里面,如果你没有使用下面的正确姿势,有很大可能性会踩坑。\r\n\r\nDb的正确姿势\r\n下面是官方推荐的Db类用法(也就是每次都是静态方法调用)\r\n\r\n[pre]\r\n// 查询单个数据\r\nDb::name(\'user\')->where(\'id\', 1)->find();\r\n// 查询多个数据\r\nDb::name(\'user\')->where(\'id\', \'>\', 1)->select();\r\n// 写入新的数据\r\nDb::name(\'user\')->insert([\'name\' => \'张三\']);\r\n// 更新数据\r\nDb::name(\'user\')->where(\'id\', 1)->update([\'name\' => \'李四\']);\r\n// 删除数据\r\nDb::name(\'user\')->delete(1);\r\n[/pre]\r\n\r\n很多开发者为了简化代码,喜欢使用下面的代码。\r\n\r\n[quote]\r\n 但是,永远不要在5.1中使用下面的代码!\r\n[/quote]\r\n\r\n[pre]\r\n// 错误的用法\r\n\r\n$user = Db::name(\'user\');\r\n// 查询单个数据\r\n$user->where(\'id\', 1)->find();\r\n// 查询多个数据\r\n$user->where(\'id\', \'>\', 1)->select();\r\n// 写入新的数据\r\n$user->insert([\'name\' => \'张三\']);\r\n// 更新数据\r\n$user->update([\'name\' => \'李四\']);\r\n// 删除数据\r\n$user->delete(1);\r\n[/pre]\r\n\r\n[quote]\r\n 即便是使用助手函数仍然不建议!\r\n[/quote]\r\n\r\n[pre]\r\n// 仍然是错误的用法\r\n\r\n// 查询单个数据\r\ndb(\'user\')->where(\'id\', 1)->find();\r\n// 查询多个数据\r\ndb(\'user\')->where(\'id\', \'>\', 1)->select();\r\n// 写入新的数据\r\ndb(\'user\')->insert([\'name\' => \'张三\']);\r\n// 更新数据\r\ndb(\'user\')->update([\'name\' => \'李四\']);\r\n// 删除数据\r\ndb(\'user\')->delete(1);\r\n[/pre]\r\n\r\n很多开发者可能会奇怪,为什么是错误的用法呢?我使用的结果明明都没问题啊?这只是说明你还没踩坑罢了。\r\n\r\n真正的原因,是5.1版本每次查询后是不会清空前次(5.0则会每次清空)的查询条件的,所以下面的用法是有效的。\r\n\r\n[pre]\r\n$user = Db::name(\'user\');\r\n// 查询分数大于80分的用户总数\r\n$count = $user->where(\'score\', \'>\', 80)->count();\r\n// 查询分数大于80分的用户数据\r\n$user->select();\r\n[/pre]\r\n\r\n看到这里你应该明白了,当你使用的是同一个数据库查询对象实例的话,查询条件是始终会保留的(也就是会导致后面的查询条件错乱),而如果你使用助手函数或者手动实例化后多次操作都是相同的对象实例,除非你像下面一样手动清除。\r\n\r\n[pre]\r\n$user = Db::name(\'user\');\r\n// 查询分数大于80分的用户总数\r\n$count = $user->where(\'score\', \'>\', 80)->count();\r\n// 清除查询条件(但不包括排序或者字段等信息)\r\n$user->removeOption(\'where\');\r\n// 查询所有用户数据 并按分数倒序排列 \r\n$user->order(\'score\', \'desc\')->select();\r\n// 清除所有查询条件\r\n$user->removeOption();\r\n// 查询分数等于100的用户\r\n$user->where(\'score\', 100)->select();\r\n[/pre]\r\n\r\n[quote]\r\n 最佳实践:每次使用全新的Db静态查询\r\n[/quote]\r\n\r\n模型的正确姿势\r\n模型的设计其实和Db一样,基本上不需要手动进行实例化。\r\n\r\n[pre]\r\n// 写入新的数据\r\n$user = User::create([\'name\' => \'张三\']);\r\n// 更新数据\r\n$user->update([\'name\' => \'李四\']);\r\n\r\n// 查询单个数据\r\n$user = User::get(1);\r\n// 删除当前模型数据\r\n$user->delete();\r\n[/pre]\r\n\r\n上面的代码中,我们没有使用任何的实例化代码,都是使用静态方法操作。模型的实例化工作是由系统在查询或者写入数据的时候自动完成的。如果你自己手动实例化模型的话,会造成模型的重复实例化开销。\r\n\r\n不建议的用法:\r\n\r\n[pre]\r\n$user = new User;\r\n// 写入新的数据\r\n$user->name = \'张三\';\r\n$user->save();\r\n$user = new User;\r\n$user->find(1);\r\necho $user->name;\r\n[/pre]\r\n\r\n建议用法:\r\n\r\n[pre]\r\n// 写入新的数据\r\nUser::create([\'name\' => \'张三\']);\r\n$user = User::get(1);\r\necho $user->name;\r\n[/pre]\r\n\r\n所以,请不要手动实例化模型,也不建议使用model助手函数。\r\n\r\n[quote]\r\n 最佳实践:模型查询和创建都使用静态方法\r\n[/quote]\r\n\r\n现在,你明白Db类和模型使用的正确姿势了么?', '1', '2', '3', '0', '1', '1', '29', '0', '1546776559', '1577766682', '0');
INSERT INTO `tao_article` VALUES ('8', 'thinkphp更新数据表的方法', '[quote]\r\n tp更新数据表的方法\r\n[/quote]\r\n[pre]\r\n/**\r\n * 更新数据表\r\n * @param resource $db 数据库连接资源\r\n * @param string $prefix\r\n * @author lyq <605415184@qq.com>\r\n */\r\nfunction update_tables($db, $prefix = \'\') {\r\n //读取SQL文件\r\n $sql = file_get_contents(APP_PATH . \'install/data/update.sql\');\r\n $sql = str_replace(\"\\r\", \"\\n\", $sql);\r\n $sql = explode(\";\\n\", $sql);\r\n\r\n //替换表前缀\r\n $sql = str_replace(\" `tao_\", \" `{$prefix}\", $sql);\r\n\r\n //开始安装\r\n show_msg(\'开始升级数据库...\');\r\n foreach ($sql as $value) {\r\n $value = trim($value);\r\n if (empty($value)) {\r\n continue;\r\n }\r\n if (substr($value, 0, 12) == \'CREATE TABLE\') {\r\n $name = preg_replace(\"/^CREATE TABLE `(\\w+)` .*/s\", \"\\\\1\", $value);\r\n $msg = \"创建数据表{$name}\";\r\n if (false !== $db->execute($value)) {\r\n show_msg($msg . \'...成功!\');\r\n } else {\r\n show_msg($msg . \'...失败!\', \'error\');\r\n Session::set(\'error\', true, \'install\');\r\n }\r\n } else {\r\n if (substr($value, 0, 8) == \'UPDATE `\') {\r\n $name = preg_replace(\"/^UPDATE `(\\w+)` .*/s\", \"\\\\1\", $value);\r\n $msg = \"更新数据表{$name}\";\r\n } else if (substr($value, 0, 11) == \'ALTER TABLE\') {\r\n $name = preg_replace(\"/^ALTER TABLE `(\\w+)` .*/s\", \"\\\\1\", $value);\r\n $msg = \"修改数据表{$name}\";\r\n } else if (substr($value, 0, 11) == \'INSERT INTO\') {\r\n $name = preg_replace(\"/^INSERT INTO `(\\w+)` .*/s\", \"\\\\1\", $value);\r\n $msg = \"写入数据表{$name}\";\r\n }\r\n if (($db->execute($value)) !== false) {\r\n show_msg($msg . \'...成功!\');\r\n } else {\r\n show_msg($msg . \'...失败!\', \'error\');\r\n Session::set(\'error\', true, \'install\');\r\n }\r\n }\r\n }\r\n}\r\n[/pre]\r\n', '1', '2', '2', '0', '0', '1', '110', '0', '1546776594', '1577763657', '0');
-INSERT INTO `tao_article` VALUES ('9', '社区为单位组织的区域性社区服务', '作为以社区为单位组织的区域性社区福利服务,社区服务主要表现为以下几个方面特征:()\r\n\r\nA、自助互助性\r\n\r\nB、多元化\r\n\r\nC、服务形式丰富化\r\n\r\nD、广泛性\r\n\r\nE、服务人员专业化\r\n\r\nF、持续发展性', '1', '3', '2', '0', '0', '1', '37', '0', '1546776655', '1577765003', '0');
+INSERT INTO `tao_article` VALUES ('9', '社区为单位组织的区域性社区服务', '作为以社区为单位组织的区域性社区福利服务,社区服务主要表现为以下几个方面特征:()\r\n\r\nA、自助互助性\r\n\r\nB、多元化\r\n\r\nC、服务形式丰富化\r\n\r\nD、广泛性\r\n\r\nE、服务人员专业化\r\n\r\nF、持续发展性', '1', '3', '2', '0', '0', '1', '39', '0', '1546776655', '1577765003', '0');
INSERT INTO `tao_article` VALUES ('10', '徐州这个小区业主自治攒下24万元家底', '[quote]\r\n 转自腾讯网\r\n[/quote]\r\n2月13日,大年初九,家住军缘新城的蔺女士是春节后第四次在家请客了。\r\n\r\n“以前小区环境不好,不好意思喊亲戚朋友来家里吃饭。现在小区像花园一样,晚上还有喷泉,作为业主感觉很自豪。小区自治这几个月,变化太大了。”\r\n\r\n重建后的小区广场美观又实用\r\nimg[https://inews.gtimg.com/newsapp_bt/0/7699348341/1000] \r\n\r\n13日早上9时许,军缘新城小区广场上很安静,只听见扫帚“唰唰”的扫地声,两名保洁员在打扫卫生,清扫过的地面一尘不染。\r\n\r\n小区业委会主任马照明和财务监督组组长周永才介绍了自从2018年9月10日小区自治以来广场上发生的变化:\r\nimg[https://inews.gtimg.com/newsapp_bt/0/7699348342/1000] \r\n\r\n小区水清路净。\r\n\r\n最大的亮点是春节前花费2305元修好了闲置多年的喷泉,安装上彩色的灯带。春节以来,业主们每天晚上都到广场欣赏彩色喷泉,大人孩子个个欢天喜地。\r\n\r\n\r\n春节前,清理水池里的淤泥,修复喷泉。\r\n\r\n“喷泉水池积攒多年的淤泥我们都清理干净了,七八个人整整干了12天的时间,又花300元钱买了一批观赏鱼放进去。”周永才指着清澈见底的水池说:“天冷,这些鱼懒得动,喜欢躲在石头缝里,等天年暖和了,它们游来游去更漂亮。”\r\n\r\n小区路灯全部更换成LED灯,亮堂又节能。广场上有一盏10米多高的大灯,是6年前有业主捐赠的,只亮了一段时间就坏了,几任物业公司都没人修理过。\r\nimg[https://inews.gtimg.com/newsapp_bt/0/7699348344/1000] \r\n\r\n业委会工作人员和业主齐心协力上阵,安装照明设施。\r\n\r\n这次实行自治后,也请电工维修好了。因为灯杆太高太重,放下和扶起的时候难度都很大,小区20多名男女老少一起过来用绳子把它拽起来。灯亮起来以后,早上锻炼、晚上跳广场舞的业主都很方便。\r\n\r\n广场的绿植看上去也很整齐、富有层次,树木已经修剪好,灌木丛内没有一点杂草和落叶。白玉兰树叶绿油油的,樱花树枝也泛出了生机。\r\n\r\n\r\n为了美化环境,小区内每个向阳的地段都设置了晾晒区\r\n\r\n小区广场不仅美观,还很实用,四周安装了15个高大的晾衣架。阳光好的时候,业主都喜欢到这里晒被子。\r\n\r\n广场的一角,还有一个醒目的展示牌,上面贴着1月11日至2月10日的各项收支明细和工资发放表。大到几百元的灯带,小到2元的刷子,一项项都罗列清楚。\r\n\r\n小区自治之路一波三折\r\n\r\n治理好一个小区,并不比管理好一家企业轻松。军缘新城的自治之路,也经历了一波三折。\r\n\r\n军缘新城于2008年3月上房,至2018年年初,10年间换了6任物业公司,没有一家能够在这个小区顺顺当当干下去。\r\n\r\n“主要是形成了恶性循环。物业服务不好,业主不愿交物业费;物业收不上来费用,服务质量就更差。”周永才说,最差的一年,物业公司只收到了60户业主的物业费。\r\n\r\n亏损最严重的一家物业公司,欠下了9万多元的债务。每一任物业走的时候,小区都是垃圾遍地,物业办公室里甚至连灯泡都被拆走。最后,业主们只能向社区求助,2018年以后,没有物业公司愿意到军缘新城来服务了。\r\n\r\n业主自治成了军缘新城唯一的出路。马照明说,自治并不像想像的那么简单、美好。军缘新城先后有三班热心业主出马实行自治,都想改变小区面貌,也摔了不少跟头。\r\n\r\n第一次自治从2018年2月开始,坚持了5个月,但管理中出现一些问题,物业费迟迟收不上来,只得偃旗息鼓;在社区的组织下,第二次自治很快又开始了,但因为提出的两套方案业主不认可,也没能顺利收取物业费,前后只坚持了26天。\r\n\r\n\r\n业主委员会马照明主任向业主群内发布的就职声明\r\n\r\n两次自治失败,有些人觉得灰心了。这时,曾经担任过业委会成员的马照明,在大家的推选之下站了出来,愿意担心业委会主任。上任之初他就声明:不要任何薪水和奖励,一切工作站在广大业主利益方面出发,监督、督促物业搞好小区物业服务,维护业主利益。\r\n\r\n新的业委会班子共有11名成员,经过商讨,成立了自治办,自治办负责人是热心业主朱兆砥,一名退休老师,也是他带头站出来支持小区自治的。\r\n\r\n\r\n只有物业经理和保安保洁等人员能领工资,他们都是小区业主。\r\n\r\n朱兆砥聘任用了一名物业经理和保安、保洁、电工共10人,只有这11人是拿工资的,其余人全部是义务为小区服务。朱兆砥在内蒙还有一份工作,经常在群里“遥控”指挥,春节回来这几天每天泡在小区里,几乎没有休息过。\r\n\r\n成功秘诀是“财务公开+办实事”\r\n\r\n\r\n每个月公示一次账目\r\n\r\n总结小区自治成功的经验,马照明透露了两个秘诀:一是财务公开,二是给业主办实事。\r\n\r\n作为小区的“财务总监”,周永才说,他们财务小组一共有7名成员,里面有从事会计工作的,有拿到会计师职称的,有干过财务科长的,还有在高校里传授财会知识的教授,这些成员都由热心业主推荐,他挨家挨户上门动员做工作争取来的。\r\n\r\n每个月月底大家坐在一起集体进行财务审核,查看各项收入和支出有无问题,全部同意后由周永才签字,再进行公示。\r\n\r\n接手小区财务后,他们才知道,有些盈利以前的物业从来不公示也不会告知业主,比如小区的饮水机、捐衣箱、快递箱都是有租金的,虽然不高,但也积少成多。\r\n\r\n诸如此类的收入,哪怕有100元的进账,周永才也会公示。支出更要征求民意,春年前给物业人员每人发100元过节费,也是征得大家同意的。\r\n\r\n每项财务专项专用,物业费用于发放物业人员工资,小区租金和广告收入则用于小区公共建设。\r\n\r\n\r\n业主委员会财务都有专职人员进行监管,每个月的收支都张贴出来。\r\n\r\n“我们账上现在还剩余241580.9元。”年过六旬的周永才对小区账户上的每项数字都能脱口而出。他总是想方设法为小区省钱,购买路灯灯泡时为了享受团购价,他在群里发动有需求的业主一起购买,最终省下了150元。小区物业办公需要电脑,他主动把自己家闲置的电脑拿过来作为公用。业委会与物业用房也由5间压缩为4间,多出租一间房就多一点收入。\r\n\r\n说到给业主办实事,那肯定需要钱,军缘新城的这一届业委会上任时一穷二白,马照明甚至还垫付了4000多元的电梯维修费。怎么办?\r\n\r\n业委会想到了小门门口的一排公共用房,上房多年来,除去物业和业委会用房5间,其余全部被无端占用。顶着巨大的压力,他们请一些有威望的老人前去做工作,一遍遍动员、贴公告,前后花了两个月的时间终于把房子全部要回来并租了出去,14间房屋每年可收租金3.5万元。另外小区广告费的收入每年也有2.5万元左右。\r\n\r\n业委会和自治办一边整改小区,一边收取物业费,将物业费收取标准由每平米0.45元降至每平米0.40元,而且不另收公共能耗费,前三个月的物业费收缴率终于创了新高,达到90%以上,如果不是有140户空关户,收缴率会更高。\r\n\r\n社区放心了,业主满意了\r\n\r\n军缘新城新一轮自治从2018年9月10日开始,到现在5个多月了,工作进展十分顺利。\r\n\r\n道北社区盛莉主任感慨说,现在军缘新城自治工作确实已经走上正轨,不需要社区介入了,也没有业主前来投诉了。以前每次物业撤出和自治失败后,都是社区来兜底。\r\n\r\n这次自治,物业费收得低,保安和保洁用的都是小区居民,活干得好,业委会跟业主沟通也有方法,业主很满意,社区也放心了。\r\n\r\n在广场上保洁的陈衍玲说,\r\n\r\n她负责小区三栋楼房和半个广场的清洁工作,每天把三栋楼的公共区域都打扫一遍,广场早中晚都要打扫,一天下来没有清闲的时候,每个月工资1600元。\r\n\r\n但是打扫自己的小区很开心,就像在自己家里搞卫生一样,到处弄得干干净净的,得到业主的夸赞,心里很自豪。\r\n\r\n小区居民季女士对业委会竖起了大拇指:\r\n\r\n小区自治很成功,业主们都很感激业委会和自治办,他们个个都是无私奉献。如今的小区比很多有物业管理的小区都要干净。\r\n\r\n自从她5年前住进这里,喷泉水池就是个臭水沟,以前从来没见喷泉喷过水,现在水池变得那么干净,还养起了鱼。变化大太了。业委会为业主服务更热心,有一次她家突然停电了,马主任带着电工到她家维修,一会儿就把问题解决了。他们是实实在在给业主办事。\r\n\r\n马照明骄傲地说,前几天他看到小区里有个孩子不愿去爷爷奶奶家,原因竟然是这里晚上有漂亮的喷泉,比爷爷奶奶家好玩。\r\n\r\n据了解,军缘新城即将上马一个更好玩的项目:取消门禁卡,刷脸进小区,打造智慧小区。这个全市还是首家。\r\n\r\n对于小区将来的发展,军缘新城业委会已经制定了长远规划:重建广场上6座小亭子,更换所有单元门,美化小区入口的500米长廊,建成花园式小区。最近他们正在寻找广告商合作一起翻修入口长廊,还希望有爱好墙壁画的人士能帮他们美化墙面。', '1', '4', '2', '0', '1', '1', '68', '0', '1550996685', '1577765713', '0');
INSERT INTO `tao_article` VALUES ('11', '数据查询链式操作', 'face[微笑] \r\n\r\n数据库提供的链式操作方法,可以有效的提高数据存取的代码清晰度和开发效率,并且支持所有的CURD操作(原生查询不支持链式操作)。\r\n\r\n使用也比较简单,假如我们现在要查询一个User表的满足状态为1的前10条记录,并希望按照用户的创建时间排序 ,代码如下:\r\n\r\n[pre]\r\nDb::table(\'think_user\')\r\n ->where(\'status\',1)\r\n ->order(\'create_time\')\r\n ->limit(10)\r\n ->select();\r\n[/pre]\r\n这里的where、order和limit方法就被称之为链式操作方法,除了select方法必须放到最后一个外(因为select方法并不是链式操作方法),链式操作的方法调用顺序没有先后,例如,下面的代码和上面的等效:\r\n\r\n[pre]\r\nDb::table(\'think_user\')\r\n ->order(\'create_time\')\r\n ->limit(10)\r\n ->where(\'status\',1)\r\n ->select();\r\n[/pre]\r\n其实不仅仅是查询方法可以使用连贯操作,包括所有的CURD方法都可以使用,例如:\r\n\r\n[pre]\r\nDb::table(\'think_user\')\r\n ->where(\'id\',1)\r\n ->field(\'id,name,email\')\r\n ->find(); \r\n \r\nDb::table(\'think_user\')\r\n ->where(\'status\',1)\r\n ->where(\'id\',1)\r\n ->delete();\r\n[/pre]', '1', '3', '1', '0', '0', '1', '53', '0', '1546860297', '1577773852', '0');
INSERT INTO `tao_article` VALUES ('12', 'layui表单页面元素', '[quote]\r\n 在一个容器中设定 class=\"layui-form\" 来标识一个表单元素块,通过规范好的HTML结构及CSS类,来组装成各式各样的表单元素,并通过内置的 form模块 来完成各种交互。\r\n[/quote]\r\n[quote]\r\n 依赖加载模块:form (请注意:如果不加载form模块,select、checkbox、radio等将无法显示,并且无法使用form相关功能)\r\n[/quote]\r\n[pre]\r\n
\r\n \r\n\r\n[/pre]\r\nUI的最终呈现得益于 Form模块 的全自动渲染,她将原本普通的诸如select、checkbox、radio等元素重置为你所看到的模样。或许你可以移步左侧导航的 内置模块 中的 表单 对其进行详细的了解。', '1', '2', '1', '0', '0', '1', '29', '0', '1546871441', '1577771850', '0');
@@ -68,14 +72,18 @@ INSERT INTO `tao_article` VALUES ('14', 'thinkphp5.1目录结构', '[pre]\r\nwww
INSERT INTO `tao_article` VALUES ('15', 'add添加文章有误', 'face[微笑] \r\n123\r\nimg[/uploads/20190310/4cc8e58de8f2765270e8475bf059ae1d.jpg] \r\n[hr]\r\n[pre]\r\njjjj\r\n[/pre]\r\n[quote]\r\n这样的风格,呵呵!\r\n[/quote]\r\n', '1', '1', '1', '0', '0', '1', '184', '0', '1551436861', '1555747615', '0');
INSERT INTO `tao_article` VALUES ('16', '谁在使用thinkphp6.0版本', '新项目测试,更新为thinkphp6框架。', '1', '6', '1', '0', '0', '1', '12', '0', '1552182370', '1577769774', '0');
INSERT INTO `tao_article` VALUES ('17', '2019.3.10创建TaoLer项目', '创建TaoLer项目\r\n使用Thinkphp为核心框架,\r\n前身TLBS,think5.1开发。\r\n', '1', '4', '1', '0', '0', '1', '32', '0', '1552183473', '1577769686', '0');
-INSERT INTO `tao_article` VALUES ('18', 'layui 2.5.5发布', '闲心:\r\n[quote]\r\n 之前大家在《2.5.x 问题集中收集》中反馈的内容,我已如数看到,谢谢大家的积极反馈!。其中有些被采纳在本次版本中,有些被规划到了 v2.6、v3.0 中。我深知之前反复的断更对 layui 带来的是怎样无可挽回的损失,然而 layui 终于还是不得不重新审视它所处的位置,行进的「前端河」分出了两条支流:一条是滚滚洪流,没有人能够逃脱它的流速,我们必须要在拥抱中重生;一条是波澜不惊,那是我们最初的方向,返璞归真、自诩的「经典」和不灭的执念。顺应潮流而不背离初心,layui 注定要同时流向这两条支流,虽千万里之行,亦愿独闯。\r\n[/quote]\r\n\r\n# v2.5.5(2019.09.10)\r\n● [优化] form 组件的 val() 方法,除了之前版本的赋值,目前还可支持取值\r\n● [新增] tree 组件的数据源参数 field,用于定义数据字段名\r\n● [优化] tree 组件的节点删除前的提示功能\r\n● [修复] tree 组件的数据源参数 checked 在父子节点同时设定时的异常问题\r\n● [优化] table 组件的 defaultToolbar 参数,可以扩展头部工具栏右侧图标按钮\r\n● [优化] table 组件的局部代码,减少重复的全局事件引发的卡顿问题\r\n● [修复] table 组件的合计行未按照对应列显示自定义模板的问题\r\n● [修复] table 组件导出数据时未包含合计行的问题\r\n● [修复] transfer 组件的右侧面板在使用搜索转移数据后,无法再获取右侧数据的问题\r\n● [新增] upload 组件的 progress 回调,用于监听文件的上传进度', '1', '4', '1', '1', '0', '1', '90', '0', '1568096396', '1577769315', '0');
-INSERT INTO `tao_article` VALUES ('19', 'php创建递归目录', '如果不存在,创建递归目录:\r\n[pre]\r\n/**\r\n* This function creates recursive directories if it doesn\'t already exist\r\n*\r\n* @param String The path that should be created\r\n* \r\n* @return void\r\n*/\r\npublic function create_dirs($path)\r\n{\r\n if (!is_dir($path))\r\n {\r\n $directory_path = \"\";\r\n $directories = explode(\"/\",$path);\r\n array_pop($directories);\r\n \r\n foreach($directories as $directory)\r\n {\r\n $directory_path .= $directory.\"/\";\r\n if (!is_dir($directory_path))\r\n {\r\n mkdir($directory_path);\r\n chmod($directory_path, 0777);\r\n }\r\n }\r\n }\r\n}\r\n[/pre]\r\n', '1', '2', '1', '0', '1', '1', '179', '0', '1559193830', '1577763199', '0');
+INSERT INTO `tao_article` VALUES ('18', 'layui 2.5.5发布', '闲心:\r\n[quote]\r\n 之前大家在《2.5.x 问题集中收集》中反馈的内容,我已如数看到,谢谢大家的积极反馈!。其中有些被采纳在本次版本中,有些被规划到了 v2.6、v3.0 中。我深知之前反复的断更对 layui 带来的是怎样无可挽回的损失,然而 layui 终于还是不得不重新审视它所处的位置,行进的「前端河」分出了两条支流:一条是滚滚洪流,没有人能够逃脱它的流速,我们必须要在拥抱中重生;一条是波澜不惊,那是我们最初的方向,返璞归真、自诩的「经典」和不灭的执念。顺应潮流而不背离初心,layui 注定要同时流向这两条支流,虽千万里之行,亦愿独闯。\r\n[/quote]\r\n\r\n# v2.5.5(2019.09.10)\r\n● [优化] form 组件的 val() 方法,除了之前版本的赋值,目前还可支持取值\r\n● [新增] tree 组件的数据源参数 field,用于定义数据字段名\r\n● [优化] tree 组件的节点删除前的提示功能\r\n● [修复] tree 组件的数据源参数 checked 在父子节点同时设定时的异常问题\r\n● [优化] table 组件的 defaultToolbar 参数,可以扩展头部工具栏右侧图标按钮\r\n● [优化] table 组件的局部代码,减少重复的全局事件引发的卡顿问题\r\n● [修复] table 组件的合计行未按照对应列显示自定义模板的问题\r\n● [修复] table 组件导出数据时未包含合计行的问题\r\n● [修复] transfer 组件的右侧面板在使用搜索转移数据后,无法再获取右侧数据的问题\r\n● [新增] upload 组件的 progress 回调,用于监听文件的上传进度', '1', '4', '1', '1', '0', '1', '91', '0', '1568096396', '1577769315', '0');
+INSERT INTO `tao_article` VALUES ('19', 'php创建递归目录', '如果不存在,创建递归目录:\r\n[pre]\r\n/**\r\n* This function creates recursive directories if it doesn\'t already exist\r\n*\r\n* @param String The path that should be created\r\n* \r\n* @return void\r\n*/\r\npublic function create_dirs($path)\r\n{\r\n if (!is_dir($path))\r\n {\r\n $directory_path = \"\";\r\n $directories = explode(\"/\",$path);\r\n array_pop($directories);\r\n \r\n foreach($directories as $directory)\r\n {\r\n $directory_path .= $directory.\"/\";\r\n if (!is_dir($directory_path))\r\n {\r\n mkdir($directory_path);\r\n chmod($directory_path, 0777);\r\n }\r\n }\r\n }\r\n}\r\n[/pre]\r\n', '1', '2', '1', '0', '1', '1', '180', '0', '1559193830', '1577763199', '0');
INSERT INTO `tao_article` VALUES ('22', '漂亮!2018江苏扶贫脱贫工作再报好成绩!', '2019年02月26日 21:50 新华报业网\r\n交汇点讯 以“绣花”功夫扎实推进精准扶贫精准脱贫,以决战决胜的信心和决心打赢打好脱贫攻坚战。2月26日下午,全省扶贫开发工作会议在南京召开。根据会议通报,2018年,全省人均收入6000元以下低收入农户共有267674户、675383人实现脱贫。全省有244个省定经济薄弱村集体经济收入超过18万元,扶贫工作交出亮眼“成绩单”。\r\nimg[http://n.sinaimg.cn/translate/516/w752h564/20190226/qNqo-htptaqe9309745.png] \r\n\r\n 家门口就能就业苏北5市脱贫工作成效显著\r\n\r\n 根据会议通报,苏北5市脱贫255046户、653051人,占全省脱贫人数的96.7%。苏中扬州市、泰州市脱贫12628户、22332人。苏北12个重点县(区)脱贫126548户、352630人,占苏北5市脱贫人数的54.0%。苏北5市脱贫236个村,占全省脱贫村总数的96.7%;苏中泰州市脱贫8个。苏北12个重点县(区)脱贫140个村,占苏北5市脱贫村的59.3%。\r\n\r\n 成绩单背后,是全省扶贫工作的扎实稳步推进。\r\n\r\n 以宿迁市为例,2018年该市实现12.8万建档立卡低收入人口、46个省定经济薄弱村脱贫达标,分别完成年度且标任务的126.7%、109.5%。宿迁市副市长光华介绍,该市打造优质稻米、标准化果蔬、园艺型花木、农牧循环型生猪、精深加工型肉禽、生态河蟹六大百亿级产业,带动近10万低收入人口增收;免费开展劳动力培训,累计实施“家门口就业”项目989个,带动低收入劳动力就业5.9万人,人均年增收1.32万元。\r\n\r\n “沙集模式”加入助力精准扶贫、精准脱贫\r\n\r\n 靶向发力,精准施策,才能让脱贫攻坚取得过硬成果。\r\n\r\n 2018年,睢宁县53个省定和47个县定经济薄弱村全部“摘帽”,12.14万低收入人口实现脱贫。在众多扶贫举措中,做好电商扶贫是该县扶贫工作的一大亮点。\r\n\r\n 睢宁县委副书记王敏说,睢宁县着力打造8大电商产业园区、设立600多个服务网点,全面拓宽电商就业渠道。设置1000万元电商专项扶持资金,强化扶贫小额贷款支持力度。依托全国首家地市级“淘宝大学”,实施“万人培训计划”,4年免费培训超过4万人,带动近5500名低收入户成功创业。\r\n\r\n 不仅如此,该县复制推广“沙集模式”,积极开展淘宝镇村创建,打造出东部简约家具、西南部小饰品、西北部特色农产品、中部传统店铺与网店结合的“四大电商片区”。2018年累计创成淘宝镇10个、淘宝村92个,淘宝村总量全省第一、全国第四,拥有网商3.4万户,带动从业人数超21万人,直接或间接帮助近2万人脱贫。\r\n\r\n 各类帮扶项目持续发力为扶贫增收提供保障\r\n\r\n 2018年,全省235家后方单位完成省定出资任务2.59亿元,到挂钩帮扶县(区)开展扶贫现场办公3769人次。省委驻县帮扶工作队全年协调投入资金12.55亿元,实施各类帮扶项目623个,所挂钩帮扶203个省定经济薄弱村通过不到一年的帮扶,已有140个村实现脱贫。\r\n\r\n 在淮安,省委驻涟水县帮扶工作队打造了“安东米富”品牌,整合资源,扶持经营主体,以“互联网+公司+基地+农户”的模式,打造新型农业产业化联合体。省委驻涟水县帮扶工作队队长孙国君介绍,目前已整合7个生产基地,对接15个家庭农场;“安东米富”从单一有机稻米,扩展到近二十几种产品,拥有草鸡蛋、有机大米、红薯粉丝等23个特色农产品,产业发展覆盖9个村,带动农户2066个。已经形成的长期稳定产销关系实现全年销售额超过1000万元,为村集体和农民持久增收提供了有力保障。\r\n\r\n 两地帮扶共赢为区域后续发展增添新动能\r\n\r\n 截至2018年底,全省低收入人口还剩余568883人未脱贫,97个省定经济薄弱村未达标。打赢打好脱贫攻坚战,求实求效,相生相长,也是一个有效措施。\r\n\r\n 南京市江宁区从1995年开始挂钩帮扶淮安市淮阴区。截至目前,帮扶淮阴区建设项目146个,累计投入资金5352万元;江宁开发区投入以奖代补资金8500万元。\r\n\r\n 2006年10月,江宁开发区与淮阴区携手共建淮阴工业园,随着一系列项目招引、转型升级举措的实施,这一园区在全省45家南北共建园区中,连续七年被评为共建园区先进单位;成功引进了众创空间合伙人项目,2018年9月获批省级众创空间称号,是淮安市唯一获批的省级众创空间。\r\n\r\n 南京江宁区委常委、常务副区长李滨说,目前,在众创空间注册成立企业16家,引进创业团队13个。李德发院士、王国栋院士在园区企业澳华农牧、振达钢管设立院士工作站;淮阴工学院、淮阴师范学院等高校和科研院所,常年在园区开展“百名博士帮百企”等活动,为区域后续发展增添了新动能。\r\n\r\n 【新闻延伸】\r\n\r\n 江苏全省低收入人口大病专项救治病种数增至30种\r\n\r\n 交汇点讯全省因病致贫农户从2016年的40.3万户下降到目前的14.2万户。这是记者从2月26日下午举办的全省扶贫开发工作会议上获得的消息。\r\n\r\n 据省卫生健康委巡视员何小鹏介绍,全省低收入人口治疗总费用个人自付比例由2016年的50%左右下降至2018年底的30%左右;大病专项救治病种数由20种增至30种;全省确定定点医院412家,救治大病患者7.47万人,减免医疗费用超过3.21亿元。\r\n\r\n 交汇点见习记者 胡安静', '1', '4', '3', '0', '1', '0', '4', '0', '1551996685', '1577767438', '0');
INSERT INTO `tao_article` VALUES ('23', 'ThinkPHP6.0版本发布', '[quote]\r\n 2019 年 10 月 24 日 发布\r\n官方历时一年多倾力打造的ThinkPHP6.0版本正式发布,该版本基于精简核心和统一用法两大原则在5.1的基础上对底层架构做了进一步的优化改进,并更加规范化。\r\n\r\n由于引入了一些新特性,ThinkPHP6.0运行环境要求PHP7.1+(推荐PHP7.3+),不支持5.1的无缝升级\r\n[/quote]\r\n\r\n主要特性:\r\n采用PHP7强类型(严格模式)\r\n支持更多的PSR规范\r\n多应用支持\r\nORM组件独立\r\n改进的中间件机制\r\n核心架构服务化\r\n全新的事件系统\r\n容器功能增强\r\n模板引擎组件独立\r\n内部功能中间件化\r\nSESSION机制改进\r\n缓存及日志支持多通道\r\n引入Filesystem组件\r\n对Swoole以及协程支持改进\r\n对IDE更加友好\r\n统一和精简大量用法\r\n强类型及严格模式\r\n在主流框架里面,ThinkPHP6.0是最先采用PHP7严格模式的。所有的核心文件都是开启了严格模式的类型约束,因此有任何的变量类型不符的情况都会抛出异常,有利于规范代码中的变量类型和提前发现问题隐患。\r\n\r\n多应用模式\r\n新版框架提供了多应用模式支持,默认安装为单应用,你只需要安装一个多应用模式扩展就可以更轻松的部署多个应用而不需要重复安装依赖组件,每个应用都支持独立入口访问以及域名绑定,也可以使用一个入口文件实现自动多应用部署。并且自动多应用模式支持智能识别,对于不存在的应用访问会自动切换到单应用模式进行匹配。同时支持应用的映射和禁止访问机制。\r\n\r\n多应用模式的设计可以让开发更加模块化,因为每个应用的配置、路由及视图都可以纳入应用目录,所以更方便应用的模块化,甚至引入composer应用。\r\n\r\n容器和服务\r\n新版的容器支持PSR-11规范,容器类的功能特性主要包括:\r\n\r\n绑定类、对象实例、接口到容器\r\n创建类的实例(存在则直接获取)\r\n容器对象绑定别名\r\n支持容器对象(实例化)回调\r\n获取容器对象实例\r\n删除容器中的对象实例\r\n提供依赖注入和门面实现支持\r\n调用容器对象实例的方法(或者闭包)\r\n提供容器对象的ArrayAccess支持\r\n事件系统\r\n新版的事件系统可以看成是5.1版本行为系统的升级版,事件系统相比行为系统强大的地方在于事件本身可以是一个类,并且可以更好的支持事件订阅者。支持事件智能订阅,通过反射机制来识别当前订阅者要订阅的事件。\r\n\r\n事件相比较中间件的优势是事件比中间件更加精准定位(或者说粒度更细),并且更适合一些业务场景的扩展。例如,我们通常会遇到用户注册或者登录后需要做一系列操作,通过事件系统可以做到不侵入原有代码完成登录的操作扩展,降低系统的耦合性的同时,也降低了BUG的可能性。\r\n\r\n中间件支持完善\r\n中间件分为全局中间件、应用中间件、路由中间件和控制器中间件,这四个中间件分组完全独立执行,但同一个分组内的中间件不会重复执行。中间件方法执行依赖注入,以及请求结束的回调机制。\r\n\r\n核心很多功能都是基于中间件来完成,包括多应用模式也是采用中间件机制执行。\r\n\r\n路由和请求\r\n新版的路由精简了很多不必要的功能,路由定义也更加规范化和语义化,并且路由定义文件支持纳入应用目录,便于模块化开发。路由注解功能独立为think-annotation库,并且使用更加规范,支持IDE提示。\r\n\r\n新版的请求对象更易扩展,系统默认安装后提供了一个app\\Request类,你可以在应用中直接自定义请求对象,增加必要的属性和方法。但不会影响对think\\Request的依赖注入和门面调用。\r\n\r\n系统服务\r\n由于核心框架采用了服务化设计,你可以在你的扩展或者应用中注册需要的服务。在系统服务中注册一个对象到容器,或者对某些对象进行相关的依赖注入。由于系统服务的执行优先级问题,可以确保相关组件在执行的时候已经完成相关依赖注入。一个服务类通常包括注册(register)和启动(boot)方法,用于不同阶段的执行。\r\n\r\nORM组件化\r\n内置的ORM功能已经完全独立为think-orm组件,可以独立使用,ThinkPHP6.0默认依赖安装了该组件,保持用法不变的同时,增强了查询功能。\r\n\r\n模板引擎组件化\r\n核心不再内置任何模板引擎,仅提供PHP模板支持,官方的模板引擎已经独立为think-template模板引擎,并默认依赖安装。你可以更方便的使用第三方模板引擎。\r\n\r\n日志系统\r\n日志支持多通道、并统一命令行和WEB日志格式,主要包括:\r\n\r\n日志增加多通道支持,可以同时或者切换写入多个通道\r\nWEB和CLI的日志记录格式统一,并支持日志格式化\r\n对JSON日志格式的改进\r\n支持日志写入事件\r\nSession机制改进\r\n6.0版本的Session机制完全重写了,并且不再使用PHP内置的Session机制,全新实现一套Session机制,可以更好的支持Swoole/Workerman等环境。\r\n\r\n所以不再支持PHP内置的session_*** 系列函数,也不再支持使用$_SESSION读取session数据,你必须通过框架提供的Session类或者门面来操作,Request类也封装了Session数据的读取。\r\n\r\nSession支持跨应用读取和自定义序列化机制,默认采用文件类型记录Session数据,由于共用了缓存机制,你还可以使用任何支持的缓存类型来记录Session数据。\r\n\r\n引入Filesystem组件\r\n新版增加了Filesystem类库对文件系统强化了支持,而且可以很方便的支持各种云存储,包括阿里云和七牛云。\r\n\r\nSwoole扩展改进\r\nSwoole扩展同时支持HTTP和Socket服务,支持数据库和缓存的连接池功能,以及RPC功能。\r\n\r\n调试工具更新\r\n原来内置的页面Trace调试工具已经更改为扩展的方式,改成安装think-trace扩展,如果通过composer安装应用的话,默认会安装topthink/think-trace扩展。\r\n\r\n基本用法和之前保持不变,但无需额外配置,默认使用html方式显示,同时仍然支持浏览器控制台显示,并仅在调试模式下有效。\r\n\r\n同时增加了一个基于debugbar的调试扩展think-debugbar,需要单独安装后才能使用。\r\n\r\ncomposer require topthink/think-debugbar\r\n统一和精简大量用法\r\n新版对很多用法进行了精简和统一,尽可能避免在开发过程中规范不一的困惑。', '1', '4', '3', '1', '0', '1', '14', '0', '1571986396', '1552186396', '0');
-INSERT INTO `tao_article` VALUES ('24', '辞旧迎新 ,回顾2019,展望2020!', '2019,即将留在了历史长河中,失去的,得到的,都是过去的,\r\n2020,期待着,和你一起远行,加油吧...', '1', '2', '1', '1', '0', '1', '23', '0', '1577775729', '1578469215', '0');
+INSERT INTO `tao_article` VALUES ('24', '辞旧迎新 ,回顾2019,展望2020!', '2019,即将留在了历史长河中,失去的,得到的,都是过去的,\r\n2020,期待着,和你一起远行,加油吧...', '1', '2', '1', '1', '0', '1', '24', '0', '1577775729', '1578469215', '0');
+INSERT INTO `tao_article` VALUES ('26', 'PHP解压zip', '[pre]\r\ncreate_dirs($dir);\r\n }\r\n \r\n if(file_exists($filename)) {\r\n $resource = zip_open($filename);\r\n \r\n while($zip = zip_read($resource)) {\r\n if(zip_entry_open($resource, $zip)) {\r\n \r\n //获得文件名,mac压缩成zip,解压需要过滤资源库隐藏文件\r\n $file_content = zip_entry_name($zip);\r\n \r\n \r\n // 如果文件不在根目录中\r\n $pos_last_slash = strrpos($file_content, \"/\"); \r\n $file_name = substr($file_content, $pos_last_slash+1);\r\n \r\n if(empty($file_name)){\r\n \r\n $pt = $this->create_dirs($dir.$file_content);\r\n }\r\n \r\n if($file_name) {\r\n \r\n $save_path = $dir.$file_content;\r\n \r\n if(file_exists($save_path)) {\r\n if($overwrite === true){\r\n //echo $file_name . \'\'; \r\n $file_size = zip_entry_filesize($zip);\r\n $file = zip_entry_read($zip, $file_size);\r\n $fpc = file_put_contents($save_path, $file);\r\n //zip_entry_close($zip); \r\n }else{\r\n //echo \'文件夹内已存在文件 \"\' . $file_name . \'\" \';\r\n return json([\'code\'=>0,\'msg\'=>\'文件夹内已存在文件\']);\r\n }\r\n \r\n }else {\r\n //echo $file_name . \'\'; \r\n $file_size = zip_entry_filesize($zip);\r\n $file = zip_entry_read($zip, $file_size);\r\n $fpc = file_put_contents($save_path, $file);\r\n //zip_entry_close($zip);\r\n }\r\n \r\n }\r\n zip_entry_close($zip); \r\n }\r\n }\r\n zip_close($resource);\r\n \r\n }else{\r\n return false;\r\n }\r\n return true;\r\n }\r\n \r\n \r\n public function create_dirs($path)\r\n {\r\n if (!is_dir($path))\r\n {\r\n $directory_path = \"\";\r\n $directories = explode(\"/\",$path);\r\n array_pop($directories);\r\n \r\n foreach($directories as $directory)\r\n {\r\n $directory_path .= $directory.\"/\";\r\n if (!is_dir($directory_path))\r\n {\r\n mkdir($directory_path);\r\n chmod($directory_path, 0777);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n[/pre]\r\n', '1', '2', '1', '0', '0', '1', '2', '0', '1578471370', '1578471436', '0');
+INSERT INTO `tao_article` VALUES ('25', 'TaoLer v1.0.0 第一个beat版本发布', '[quote]\r\n TaoLer 社区系统\r\n[/quote]\r\n版本:TaoLer 1.0.0\r\n日期:2020.1.1\r\n官网: a(http://www.aieok.com)[http://www.aieok.com] \r\n[quote]\r\n 介绍\r\n[/quote]\r\n1.采用动态密码加密,相同密码在入库时具有唯一性,即使管理员也无法破解,用户信息安全牢固。\r\n2.系统采用最新版TinkPHP6框架开发,底层安全可靠,数据查询更快,运行效率更高,网站速度更快。\r\n3.自适应前端,桌面和移动端访问界面友好简洁,模块清晰。\r\n4.完善的后台系统,管理便捷,动态菜单和权限角色分配系统。支持3级菜单和无限极分类。\r\n5.双升级系统,可支持自动和手动升级。可在线检测并升级系统,保持网站的更新和安全。\r\n6.代码开源,不设暗门操作,更安全。\r\n7.项目会长期维护,优化更新。\r\n\r\n[quote]\r\n 软件架构\r\n[/quote]\r\nthinkphp6+layui+fly\r\nThinkPHP6核心框架\r\n 快速、简单的面向对象的轻量级PHP开发框架,出色的性能和至简代码的,更注重易用性。代码维护方便。\r\nlayui前端\r\n 极简、丰盈,简单高效,模块化UI框架,体积轻盈,组件丰盈。\r\nFly模板\r\n 一款至简的社区模板,适合政府机构、教育机构、事业单位、商业企业、个人站长等众多行业领域。\r\n\r\n[quote]\r\n 安装教程\r\n[/quote]\r\n1.git下载:https://gitee.com/toogee/TaoLer/repository/archive/master.zip\r\n2.官网下载:http://www.aieok.com\r\n3.解压后,项目域名部署为public目录对外访问,访问http://www.youdomain.com/install/index安装,如果安装中有问题,需要回退到第一步。\r\n4.安装前需要先建立好数据库(数据库连接地址,数据库用户名,数据库密码,数据库端口,数据库名称)\r\n5.安装过程注意记录好设置的管理员用户名和密码。前后台的管理员密码一致。安装好后,前后端管理员是分开的,前端主要对文章内容的审查,置顶等操作。\r\n\r\n[quote]\r\n 使用说明\r\n[/quote]\r\n1. 安装后本系统已配置默认演示数据,可以删除原数据或者进行数据的修改\r\n2. 后台可设置分类cate,一定要设置英文别名\r\n3. 首页有置顶模块,列表文章模块,右侧包含广告模块,回复展示模块\r\n\r\n[quote]\r\n 文档\r\n[/quote]\r\n参考官网分享文章\r\n\r\n[quote]\r\n 参与贡献\r\n[/quote]\r\n1. Fork gitee本仓库\r\n2. 新建 Feat_xxx 分支\r\n3. 提交代码\r\n4. 新建 Pull Request\r\n\r\n[quote]\r\n 版权信息\r\n[/quote]\r\n\r\n非商业可免费使用,没有功能限制,但不能更改版本信息,如需更改可购买授权。\r\n\r\n本项目包含的第三方源码和二进制文件之版权信息另行标注。\r\n\r\n版权所有Copyright © 2020 by aieok.com (http://www.aieok.com)\r\n\r\nAll rights reserved。', '1', '6', '1', '1', '1', '1', '33', '0', '1577856311', '1578468967', '0');
+INSERT INTO `tao_article` VALUES ('27', '数据库默认是utf8格式吗', 'sql文件乱码', '1', '1', '40', '0', '0', '1', '26', '0', '1578376995', '1578376995', '0');
+INSERT INTO `tao_article` VALUES ('28', 'Layui社区fly宕机', '今天fly社区一直打不开,据闲心说,昨晚10点就宕机了。\r\n昨天我把网站迁移到群晖nas上来,使用frp做的穿透,速度还挺快的,但就是不稳定,由于粗心,忘记做frp穿透设置ssh了,在家里连接不了服务器,只能等到公司了再换线路。', '1', '4', '1', '1', '0', '1', '5', '0', '1578739274', '1578739317', '0');
-/*Table structure for tao_auth_group*/
+/* Table structure for tao_auth_group */
DROP TABLE IF EXISTS `tao_auth_group`;
CREATE TABLE `tao_auth_group` (
@@ -84,7 +92,7 @@ CREATE TABLE `tao_auth_group` (
`rules` char(255) NOT NULL DEFAULT '',
`limits` varchar(255) NOT NULL DEFAULT '' COMMENT '权限范围',
`descr` varchar(255) NOT NULL DEFAULT '' COMMENT '权限描述',
- `status` tinyint(1) NOT NULL DEFAULT '1',
+ `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '角色状态1可用0禁止',
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
@@ -92,14 +100,15 @@ CREATE TABLE `tao_auth_group` (
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
-/*Records of tao_auth_group*/
+/* Records of tao_auth_group */
-INSERT INTO `tao_auth_group` VALUES ('1', '超级管理员', '4,14,20,29,30,31,32,33,34,3,12,13,5,15,21,22,16,24,26,25,17,27,28,23,1,6,7,8,9,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,53,2,10,51,11,18,52,54,55,19,56,57,58,59,60', '管理所有的管理员', '所有权限', '1', '0', '0', '0');
-INSERT INTO `tao_auth_group` VALUES ('2', '管理员', '4,14,20,29,30,31,32,33,34,1,6,7,8,9,35,38,42,49,3,12,13,5,15,21,16,24,25,17,27,28,2,10,51,11,18,52,54,55,53', '所有列表的管理', '普通管理员', '1', '0', '1578643132', '0');
-INSERT INTO `tao_auth_group` VALUES ('3', '帖子管理', '3,12,13,5,15,21,22,16,24,26,25,17,27,28,23', '负责帖子的审核', '文章专员', '1', '0', '0', '0');
+INSERT INTO `tao_auth_group` VALUES ('1', '超级管理员', '5,15,21,22,62,63,23,17,27,28,64,16,24,26,25,4,20,32,33,34,14,29,30,31,1,65,6,35,36,37,38,7,39,40,41,42,8,43,44,45,66,9,47,48,49,50,46,67,2,10,51,11,18,52,54,55,19,56,57,58,59,60,53,3,12,13', '管理所有的管理员', '所有权限', '1', '0', '1578984825', '0');
+INSERT INTO `tao_auth_group` VALUES ('2', '管理员', '5,15,21,22,62,63,23,17,27,28,64,16,24,26,25,1,65,6,35,36,37,38,67,3,12,13', '所有列表的管理', '普通管理员', '1', '0', '1578984832', '0');
+INSERT INTO `tao_auth_group` VALUES ('3', '帖子管理', '5,15,21,22,62,63,23,17,27,28,64,16,24,26,25', '负责帖子的审核', '文章专员', '1', '0', '1578980219', '0');
+INSERT INTO `tao_auth_group` VALUES ('4', '网站维护', '2,10,51,11,18,52,54,55,19,56,57,58,59,60,53,3,12,13', '对数据进行统计', '网站维护', '1', '0', '1578980364', '0');
-/*Table structure for tao_auth_group_access*/
+/* Table structure for tao_auth_group_access */
DROP TABLE IF EXISTS `tao_auth_group_access`;
CREATE TABLE `tao_auth_group_access` (
@@ -111,14 +120,15 @@ CREATE TABLE `tao_auth_group_access` (
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-/*Records of tao_auth_group_access*/
+/* Records of tao_auth_group_access */
INSERT INTO `tao_auth_group_access` VALUES ('1', '1');
INSERT INTO `tao_auth_group_access` VALUES ('2', '2');
INSERT INTO `tao_auth_group_access` VALUES ('3', '3');
+INSERT INTO `tao_auth_group_access` VALUES ('4', '3');
-/*Table structure for tao_auth_rule*/
+/* Table structure for tao_auth_rule */
DROP TABLE IF EXISTS `tao_auth_rule`;
CREATE TABLE `tao_auth_rule` (
@@ -129,82 +139,86 @@ CREATE TABLE `tao_auth_rule` (
`status` enum('1','0') NOT NULL DEFAULT '1' COMMENT '菜单1启用,0禁用',
`pid` smallint(5) NOT NULL DEFAULT '0' COMMENT '父级ID',
`level` tinyint(1) NOT NULL DEFAULT '1' COMMENT '菜单层级',
- `icon` varchar(50) NOT NULL COMMENT '图标',
+ `icon` varchar(50) NOT NULL DEFAULT '' COMMENT '图标',
`ishidden` enum('1','0') NOT NULL DEFAULT '1' COMMENT '0隐藏,1显示',
- `sort` tinyint(4) NOT NULL COMMENT '排序',
+ `sort` tinyint(4) NOT NULL DEFAULT '50' COMMENT '排序',
`condition` char(100) NOT NULL DEFAULT '',
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`)
-) ENGINE=MyISAM AUTO_INCREMENT=62 DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM AUTO_INCREMENT=68 DEFAULT CHARSET=utf8;
-/*Records of tao_auth_rule*/
+/* Records of tao_auth_rule */
INSERT INTO `tao_auth_rule` VALUES ('1', 'admin', '管理', '1', '1', '0', '0', 'layui-icon-user', '1', '3', '', '0', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('2', 'set', '设置', '1', '1', '0', '0', 'layui-icon-set', '1', '4', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('3', 'administrator', '账户', '1', '1', '0', '0', 'layui-icon-username', '1', '5', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('4', 'app', '应用', '1', '1', '0', '0', 'layui-icon-app', '1', '2', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('5', 'article', '内容', '1', '1', '0', '0', 'layui-icon-read', '1', '1', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('6', 'admin/User/list', '用户管理', '1', '1', '1', '1', '', '1', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('7', 'admin/Admin/index', '管理员', '1', '1', '1', '1', '', '1', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('8', 'admin/AuthGroup/list', '角色管理', '1', '1', '1', '1', '', '1', '0', '', '0', '1578553504', '0');
-INSERT INTO `tao_auth_rule` VALUES ('9', 'admin/AuthRule/index', '权限管理', '1', '1', '1', '1', '', '1', '0', '', '0', '0', '0');
+INSERT INTO `tao_auth_rule` VALUES ('3', 'administrator', '账户', '1', '1', '0', '0', 'layui-icon-username', '1', '5', '', '0', '1578980034', '0');
+INSERT INTO `tao_auth_rule` VALUES ('5', 'article', '内容', '1', '1', '0', '0', 'layui-icon-read', '1', '0', '', '0', '1578902321', '0');
+INSERT INTO `tao_auth_rule` VALUES ('6', 'admin/User/list', '用户管理', '1', '1', '1', '1', '', '1', '1', '', '0', '1578901015', '0');
+INSERT INTO `tao_auth_rule` VALUES ('7', 'admin/Admin/index', '管理员', '1', '1', '1', '1', '', '1', '6', '', '0', '1578901133', '0');
+INSERT INTO `tao_auth_rule` VALUES ('8', 'admin/AuthGroup/list', '角色管理', '1', '1', '1', '1', '', '1', '11', '', '0', '1578901282', '0');
+INSERT INTO `tao_auth_rule` VALUES ('9', 'admin/AuthRule/index', '权限管理', '1', '1', '1', '1', '', '1', '16', '', '0', '1578981541', '0');
INSERT INTO `tao_auth_rule` VALUES ('10', 'admin/set/website', '网站设置', '1', '1', '2', '1', '', '1', '1', '', '0', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('11', 'admin/set/email', '邮件服务', '1', '1', '2', '1', '', '1', '3', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('12', 'admin/Admin/info', '基本资料', '1', '1', '3', '1', '', '1', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('13', 'admin/Admin/repass', '修改密码', '1', '1', '3', '1', '', '1', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('15', 'admin/forum/list', '帖子列表', '1', '1', '5', '1', '', '1', '1', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('16', 'admin/forum/tags', '分类管理', '1', '1', '5', '1', '', '1', '4', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('17', 'admin/forum/replys', '评论管理', '1', '1', '5', '1', '', '1', '8', '', '0', '0', '0');
+INSERT INTO `tao_auth_rule` VALUES ('12', 'admin/Admin/info', '基本资料', '1', '1', '3', '1', '', '1', '50', '', '0', '1578980034', '0');
+INSERT INTO `tao_auth_rule` VALUES ('13', 'admin/Admin/repass', '修改密码', '1', '1', '3', '1', '', '1', '51', '', '0', '1578980034', '0');
+INSERT INTO `tao_auth_rule` VALUES ('15', 'admin/Forum/list', '帖子列表', '1', '1', '5', '1', '', '1', '1', '', '0', '1578902605', '0');
+INSERT INTO `tao_auth_rule` VALUES ('16', 'admin/Forum/tags', '分类管理', '1', '1', '5', '1', '', '1', '11', '', '0', '1578904950', '0');
+INSERT INTO `tao_auth_rule` VALUES ('17', 'admin/Forum/replys', '评论管理', '1', '1', '5', '1', '', '1', '7', '', '0', '1578904590', '0');
INSERT INTO `tao_auth_rule` VALUES ('18', 'admin/slider/index', '广告投放', '1', '1', '2', '1', '', '1', '4', '', '0', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('19', 'admin/Upgrade/index', '系统升级', '1', '1', '2', '1', '', '1', '8', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('21', 'admin/forum/edit', '编辑帖子', '1', '1', '5', '1', '', '0', '2', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('22', 'admin/forum/del', '删除帖子', '1', '1', '5', '1', '', '0', '3', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('23', 'admin/forum/check', '审核帖子', '1', '1', '5', '1', '', '0', '11', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('24', 'admin/forum/addtags', '添加分类', '1', '1', '5', '1', '', '0', '5', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('25', 'admin/forum/tagsform', '编辑分类', '1', '1', '5', '1', '', '0', '7', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('26', 'admin/forum/tagsdelete', '删除分类', '1', '1', '5', '1', '', '0', '6', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('27', 'admin/forum/commedit', '编辑评论', '1', '1', '5', '1', '', '0', '9', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('28', 'admin/forum/commdel', '删除评论', '1', '1', '5', '1', '', '0', '10', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('35', 'admin/User/userform', '添加用户', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('36', 'admin/User/useredit', '编辑用户', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('37', 'admin/User/delete', '删除用户', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('38', 'admin/User/check', '审核用户', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('39', 'admin/Admin/add', '添加管理员', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('40', 'admin/Admin/edit', '编辑管理员', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('41', 'admin/Admin/delete', '删除管理员', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('42', 'admin/Admin/check', '审核管理员', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('43', 'admin/AuthGroup/roleadd', '添加角色', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('44', 'admin/AuthGroup/roleedit', '编辑角色', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('45', 'admin/AuthGroup/delete', '删除角色', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('46', 'admin/AuthRule/add', '添加权限', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('47', 'admin/AuthRule/edit', '编辑权限', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('48', 'admin/AuthRule/delete', '删除权限', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('49', 'admin/AuthRule/check', '审核权限', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('50', 'admin/AuthRule/menushow', '菜单权限', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
+INSERT INTO `tao_auth_rule` VALUES ('21', 'admin/Forum/listform', '编辑帖子', '1', '1', '5', '1', '', '0', '2', '', '0', '1578903229', '0');
+INSERT INTO `tao_auth_rule` VALUES ('22', 'admin/Forum/listdel', '删除帖子', '1', '1', '5', '1', '', '0', '3', '', '0', '1578903919', '0');
+INSERT INTO `tao_auth_rule` VALUES ('23', 'admin/Forum/check', '审核帖子', '1', '1', '5', '1', '', '0', '6', '', '0', '1578904476', '0');
+INSERT INTO `tao_auth_rule` VALUES ('24', 'admin/Forum/addtags', '添加分类', '1', '1', '5', '1', '', '0', '12', '', '0', '1578904966', '0');
+INSERT INTO `tao_auth_rule` VALUES ('25', 'admin/Forum/tagsform', '编辑分类', '1', '1', '5', '1', '', '0', '14', '', '0', '1578905046', '0');
+INSERT INTO `tao_auth_rule` VALUES ('26', 'admin/Forum/tagsdelete', '删除分类', '1', '1', '5', '1', '', '0', '13', '', '0', '1578904996', '0');
+INSERT INTO `tao_auth_rule` VALUES ('27', 'admin/Forum/replysform', '编辑评论', '1', '1', '5', '1', '', '0', '8', '', '0', '1578904627', '0');
+INSERT INTO `tao_auth_rule` VALUES ('28', 'admin/Forum/redel', '删除评论', '1', '1', '5', '1', '', '0', '9', '', '0', '1578904856', '0');
+INSERT INTO `tao_auth_rule` VALUES ('35', 'admin/User/userform', '添加用户', '1', '1', '1', '1', '', '0', '2', '', '0', '1578901074', '0');
+INSERT INTO `tao_auth_rule` VALUES ('36', 'admin/User/useredit', '编辑用户', '1', '1', '1', '1', '', '0', '3', '', '0', '1578901089', '0');
+INSERT INTO `tao_auth_rule` VALUES ('37', 'admin/User/delete', '删除用户', '1', '1', '1', '1', '', '0', '4', '', '0', '1578901099', '0');
+INSERT INTO `tao_auth_rule` VALUES ('38', 'admin/User/check', '审核用户', '1', '1', '1', '1', '', '0', '5', '', '0', '1578905291', '0');
+INSERT INTO `tao_auth_rule` VALUES ('39', 'admin/Admin/add', '添加管理员', '1', '1', '1', '1', '', '0', '7', '', '0', '1578901163', '0');
+INSERT INTO `tao_auth_rule` VALUES ('40', 'admin/Admin/edit', '编辑管理员', '1', '1', '1', '1', '', '0', '8', '', '0', '1578901184', '0');
+INSERT INTO `tao_auth_rule` VALUES ('41', 'admin/Admin/delete', '删除管理员', '1', '1', '1', '1', '', '0', '9', '', '0', '1578901198', '0');
+INSERT INTO `tao_auth_rule` VALUES ('42', 'admin/Admin/check', '审核管理员', '1', '1', '1', '1', '', '0', '10', '', '0', '1578901216', '0');
+INSERT INTO `tao_auth_rule` VALUES ('43', 'admin/AuthGroup/roleadd', '添加角色', '1', '1', '1', '1', '', '0', '12', '', '0', '1578981437', '0');
+INSERT INTO `tao_auth_rule` VALUES ('44', 'admin/AuthGroup/roleedit', '编辑角色', '1', '1', '1', '1', '', '0', '13', '', '0', '1578901349', '0');
+INSERT INTO `tao_auth_rule` VALUES ('45', 'admin/AuthGroup/roledel', '删除角色', '1', '1', '1', '1', '', '0', '14', '', '0', '1578971659', '0');
+INSERT INTO `tao_auth_rule` VALUES ('46', 'admin/AuthRule/add', '添加权限', '1', '1', '1', '1', '', '0', '21', '', '0', '1578981581', '0');
+INSERT INTO `tao_auth_rule` VALUES ('47', 'admin/AuthRule/edit', '编辑权限', '1', '1', '1', '1', '', '0', '17', '', '0', '1578901457', '0');
+INSERT INTO `tao_auth_rule` VALUES ('48', 'admin/AuthRule/delete', '删除权限', '1', '1', '1', '1', '', '0', '18', '', '0', '1578901469', '0');
+INSERT INTO `tao_auth_rule` VALUES ('49', 'admin/AuthRule/check', '审核权限', '1', '1', '1', '1', '', '0', '19', '', '0', '1578901484', '0');
+INSERT INTO `tao_auth_rule` VALUES ('50', 'admin/AuthRule/menushow', '菜单权限', '1', '1', '1', '1', '', '0', '20', '', '0', '1578901495', '0');
INSERT INTO `tao_auth_rule` VALUES ('51', 'admin/set/upload', '上传logo', '1', '1', '2', '1', '', '0', '2', '', '0', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('52', 'admin/slider/add', '添加广告', '1', '1', '2', '1', '', '0', '5', '', '0', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('53', 'admin/slider/edit', '编辑广告', '1', '1', '2', '1', '', '0', '14', '', '0', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('54', 'admin/slider/delete', '删除广告', '1', '1', '2', '1', '', '0', '6', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('55', 'admin/slider/uoloadimg', '上传广告', '1', '1', '2', '1', '', '0', '7', '', '0', '0', '0');
+INSERT INTO `tao_auth_rule` VALUES ('55', 'admin/Slider/uploadimg', '上传广告图片', '1', '1', '2', '1', '', '0', '7', '', '0', '1578906577', '0');
INSERT INTO `tao_auth_rule` VALUES ('56', 'admin/upgrade/key', '设置key', '1', '1', '2', '1', '', '0', '9', '', '0', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('57', 'admin/upgrade/keyedit', '修改key', '1', '1', '2', '1', '', '0', '10', '', '0', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('58', 'admin/upgrade/check', '升级检测', '1', '1', '2', '1', '', '0', '11', '', '0', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('59', 'admin/upgrade/upload', '自动升级', '1', '1', '2', '1', '', '0', '12', '', '0', '0', '0');
INSERT INTO `tao_auth_rule` VALUES ('60', 'admin/upgrade/uploadzip', '上传升级包', '1', '1', '2', '1', '', '0', '13', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('61', 'admin/uzip/uzip', 'zip解压', '1', '1', '2', '1', '', '0', '16', '', '0', '0', '0');
+INSERT INTO `tao_auth_rule` VALUES ('62', 'admin/Forum/top', '置顶帖子', '1', '1', '5', '1', '', '0', '4', '', '0', '0', '0');
+INSERT INTO `tao_auth_rule` VALUES ('63', 'admin/Forum/hot', '加精帖子', '1', '1', '5', '1', '', '0', '5', '', '0', '0', '0');
+INSERT INTO `tao_auth_rule` VALUES ('64', 'admin/Froum/recheck', '审核评论', '1', '1', '5', '1', '', '0', '10', '', '0', '0', '0');
+INSERT INTO `tao_auth_rule` VALUES ('65', 'admin/User/uploadImg', '上传用户头像', '1', '1', '1', '1', '', '0', '0', '', '0', '1578981624', '0');
+INSERT INTO `tao_auth_rule` VALUES ('66', 'admin/AuthGroup/check', '审核角色', '1', '1', '1', '1', '', '0', '15', '', '0', '0', '0');
+INSERT INTO `tao_auth_rule` VALUES ('67', 'admin/User/auth', '设置超级用户', '1', '1', '1', '1', '', '0', '22', '', '1578984801', '0', '0');
-/*Table structure for tao_cate*/
+/* Table structure for tao_cate */
DROP TABLE IF EXISTS `tao_cate`;
CREATE TABLE `tao_cate` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`catename` varchar(20) NOT NULL COMMENT '导航名称',
- `ename` varchar(20) NOT NULL COMMENT '分类别名',
+ `ename` varchar(20) NOT NULL DEFAULT '' COMMENT '分类别名',
`sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序',
`status` enum('0','1') NOT NULL DEFAULT '1' COMMENT '状态1启用0禁用',
`type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0帖子1文章',
@@ -215,18 +229,19 @@ CREATE TABLE `tao_cate` (
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
-/*Records of tao_cate*/
+/* Records of tao_cate */
INSERT INTO `tao_cate` VALUES ('1', '提问', 'ask', '1', '1', '0', '0', '0', '0');
INSERT INTO `tao_cate` VALUES ('2', '分享', 'share', '2', '1', '0', '0', '0', '0');
INSERT INTO `tao_cate` VALUES ('3', '讨论', 'talk', '3', '1', '0', '0', '0', '0');
INSERT INTO `tao_cate` VALUES ('4', '新闻', 'news', '5', '1', '0', '0', '0', '0');
-INSERT INTO `tao_cate` VALUES ('5', '咸鱼', 'fish', '7', '1', '0', '0', '0', '0');
-INSERT INTO `tao_cate` VALUES ('6', '求助', 'help', '6', '1', '0', '0', '0', '0');
-INSERT INTO `tao_cate` VALUES ('7', '工作', 'work', '5', '1', '0', '0', '0', '0');
+INSERT INTO `tao_cate` VALUES ('5', 'Bug反馈', 'fish', '7', '1', '0', '0', '0', '0');
+INSERT INTO `tao_cate` VALUES ('6', '程序', 'help', '6', '1', '0', '0', '0', '0');
+INSERT INTO `tao_cate` VALUES ('7', '工作', 'work', '5', '1', '0', '0', '0', '1571231165');
+INSERT INTO `tao_cate` VALUES ('8', '群晖', 'nas', '8', '1', '0', '0', '0', '0');
-/*Table structure for tao_collection*/
+/* Table structure for tao_collection */
DROP TABLE IF EXISTS `tao_collection`;
CREATE TABLE `tao_collection` (
@@ -239,12 +254,23 @@ CREATE TABLE `tao_collection` (
) ENGINE=MyISAM AUTO_INCREMENT=149 DEFAULT CHARSET=utf8 COMMENT='文章收藏表';
-/*Records of tao_collection*/
+/* Records of tao_collection */
INSERT INTO `tao_collection` VALUES ('141', '11', '1', '1567586177', '0');
+INSERT INTO `tao_collection` VALUES ('144', '6', '1', '1567586767', '0');
+INSERT INTO `tao_collection` VALUES ('143', '4', '1', '1567586749', '0');
+INSERT INTO `tao_collection` VALUES ('137', '13', '1', '1555745134', '0');
+INSERT INTO `tao_collection` VALUES ('138', '10', '1', '1555745142', '0');
+INSERT INTO `tao_collection` VALUES ('142', '1', '1', '1567586744', '0');
+INSERT INTO `tao_collection` VALUES ('140', '15', '1', '1567586167', '0');
+INSERT INTO `tao_collection` VALUES ('136', '14', '1', '1555745109', '0');
+INSERT INTO `tao_collection` VALUES ('145', '17', '1', '1567586778', '0');
+INSERT INTO `tao_collection` VALUES ('146', '19', '1', '1567586785', '0');
+INSERT INTO `tao_collection` VALUES ('147', '12', '1', '1567586802', '0');
+INSERT INTO `tao_collection` VALUES ('148', '8', '1', '1577762980', '0');
-/*Table structure for tao_comment*/
+/* Table structure for tao_comment */
DROP TABLE IF EXISTS `tao_comment`;
CREATE TABLE `tao_comment` (
@@ -262,18 +288,67 @@ CREATE TABLE `tao_comment` (
) ENGINE=MyISAM AUTO_INCREMENT=79 DEFAULT CHARSET=utf8;
-/*Records of tao_comment*/
+/* Records of tao_comment */
-INSERT INTO `tao_comment` VALUES ('1', '33333333333333', '9', '1', '0', '0', '1', '1555127897', '2019', '0');
-INSERT INTO `tao_comment` VALUES ('2', '111111111111', '4', '1', '0', '0', '1', '1555127897', '2019', '0');
-INSERT INTO `tao_comment` VALUES ('3', '333333333333', '10', '2', '0', '0', '1', '1555127897', '1555127897', '0');
+INSERT INTO `tao_comment` VALUES ('1', '33333333333333', '9', '1', '0', '0', '1', '1555127897', '1578977505', '1578977505');
+INSERT INTO `tao_comment` VALUES ('2', '111111111111', '4', '1', '0', '0', '1', '1555127897', '1578977605', '1578977605');
+INSERT INTO `tao_comment` VALUES ('3', '333333333333', '10', '2', '0', '0', '1', '1555127897', '1578977599', '1578977599');
INSERT INTO `tao_comment` VALUES ('4', '数据库提供的链式', '11', '2', '0', '0', '1', '1555127897', '2019', '0');
INSERT INTO `tao_comment` VALUES ('5', 'tp5讨论2019讨论2019讨论2019', '12', '1', '0', '0', '1', '1555127897', '2019', '0');
INSERT INTO `tao_comment` VALUES ('6', '新回复', '12', '1', '0', '0', '1', '1551397905', '1551397905', '0');
+INSERT INTO `tao_comment` VALUES ('24', 'face[微笑] \r\n1232 a(http://www.baidu.com)[http://www.baidu.com] \r\n[pre]\r\ncode\r\najax\r\nphp\r\n[/pre]\r\n[hr]', '14', '1', '0', '0', '1', '1551430267', '1551430267', '0');
+INSERT INTO `tao_comment` VALUES ('23', '哈哈', '14', '1', '0', '0', '1', '1551429718', '1555128388', '0');
+INSERT INTO `tao_comment` VALUES ('22', '美女哦', '14', '1', '0', '0', '1', '1551429702', '1555128391', '0');
+INSERT INTO `tao_comment` VALUES ('21', 'face[微笑] face[ok] ', '14', '2', '0', '1', '1', '1551416557', '1555899790', '0');
+INSERT INTO `tao_comment` VALUES ('20', 'face[嘻嘻] ', '9', '1', '0', '0', '1', '1551413067', '1551413067', '0');
+INSERT INTO `tao_comment` VALUES ('14', '777', '8', '1', '0', '0', '1', '1551412391', '1555128064', '0');
+INSERT INTO `tao_comment` VALUES ('15', '888', '8', '1', '0', '0', '1', '1551412461', '1555128067', '0');
+INSERT INTO `tao_comment` VALUES ('16', '99999', '8', '1', '0', '0', '1', '1551412615', '1555128069', '0');
+INSERT INTO `tao_comment` VALUES ('17', '111', '8', '1', '0', '0', '1', '1551412636', '1555925727', '1555925727');
+INSERT INTO `tao_comment` VALUES ('18', '1111', '8', '1', '0', '0', '1', '1551412678', '1551412678', '0');
+INSERT INTO `tao_comment` VALUES ('19', '222', '8', '1', '0', '0', '1', '1551412706', '1551412706', '0');
+INSERT INTO `tao_comment` VALUES ('25', '11', '6', '1', '0', '0', '1', '1551432002', '1555123067', '0');
+INSERT INTO `tao_comment` VALUES ('26', '22', '6', '1', '0', '0', '1', '1551433089', '1551433089', '0');
+INSERT INTO `tao_comment` VALUES ('27', 'img[https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=4025342085,1549348620&fm=27&gp=0.jpg] ', '3', '1', '0', '0', '1', '1551439637', '1551439637', '0');
+INSERT INTO `tao_comment` VALUES ('28', 'img[https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=4025342085,1549348620&fm=27&gp=0.jpg] ', '3', '1', '0', '0', '1', '1551441998', '1551441998', '0');
+INSERT INTO `tao_comment` VALUES ('29', '1111111', '3', '1', '0', '0', '1', '1551442415', '1551442415', '0');
+INSERT INTO `tao_comment` VALUES ('30', '1111', '15', '1', '0', '0', '1', '1551497333', '1555130622', '0');
+INSERT INTO `tao_comment` VALUES ('31', 'img[/uploads/20190303/dce0bfcb0f47b69630e9d8ff99175e97.jpg] ', '15', '1', '0', '0', '1', '1551577274', '1555130627', '0');
+INSERT INTO `tao_comment` VALUES ('32', 'img[/uploads/20190303\\8b4b729a87ee9d5483e8305dc87bc09a.jpg] ', '15', '1', '0', '0', '1', '1551580565', '1555130637', '0');
+INSERT INTO `tao_comment` VALUES ('33', 'img[/uploads/20190303/a704412e98b34361038a708f9d5cc4ed.jpg] ', '15', '1', '0', '0', '1', '1551581073', '1555130637', '0');
+INSERT INTO `tao_comment` VALUES ('34', 'img[/uploads/20190303/8435363bb2e326932c243e111c98159f.jpg] ', '15', '1', '0', '0', '1', '1551581469', '1555131316', '0');
+INSERT INTO `tao_comment` VALUES ('35', 'img[/uploads/20190303/19ae68ef83487f8e0e5ec5bbf97e0cda.jpg] ', '15', '1', '0', '0', '1', '1551583376', '1551583376', '0');
+INSERT INTO `tao_comment` VALUES ('36', 'face[微笑] ', '15', '1', '0', '0', '1', '1551584959', '1551584959', '0');
+INSERT INTO `tao_comment` VALUES ('47', 'face[哈哈] ', '17', '1', '0', '0', '1', '1552183493', '1552183493', '0');
+INSERT INTO `tao_comment` VALUES ('48', 'face[嘻嘻] ', '17', '1', '0', '0', '1', '1552183510', '1552183510', '0');
+INSERT INTO `tao_comment` VALUES ('38', 'face[微笑] ', '15', '1', '0', '0', '1', '1551609521', '1555131310', '0');
+INSERT INTO `tao_comment` VALUES ('39', 'face[微笑] ', '13', '1', '0', '0', '1', '1551618056', '1551618056', '0');
+INSERT INTO `tao_comment` VALUES ('40', '这是二个提问', '5', '1', '0', '0', '1', '1551878452', '1551878452', '0');
+INSERT INTO `tao_comment` VALUES ('41', '这是二个提问', '15', '1', '0', '0', '1', '1551878500', '1555131321', '0');
+INSERT INTO `tao_comment` VALUES ('42', 'img[/uploads/20190307/0c595e88cbd305c36a9d3257b5562815.png] ', '15', '1', '0', '0', '1', '1551962872', '1551962872', '0');
+INSERT INTO `tao_comment` VALUES ('43', 'face[微笑] ', '3', '1', '0', '0', '1', '1552178897', '1552178897', '0');
+INSERT INTO `tao_comment` VALUES ('44', 'img[/uploads/20190310/1fdcfad1c19010df4d5f83a8e7156af1.jpg] ', '3', '1', '0', '0', '1', '1552178930', '1552178930', '0');
+INSERT INTO `tao_comment` VALUES ('45', 'face[微笑] ', '14', '1', '0', '0', '1', '1552179991', '1552179991', '0');
+INSERT INTO `tao_comment` VALUES ('46', 'img[/uploads/20190310/4d5120c20e9b893c108da64e5c61e97a.jpg] ', '15', '1', '0', '0', '1', '1552181616', '1555131303', '0');
+INSERT INTO `tao_comment` VALUES ('49', 'face[嘻嘻] ', '17', '1', '0', '0', '1', '1552185406', '1552185406', '0');
+INSERT INTO `tao_comment` VALUES ('50', 'face[微笑] ', '18', '1', '0', '0', '1', '1568097396', '1552186489', '0');
+INSERT INTO `tao_comment` VALUES ('57', 'face[微笑] ', '18', '1', '0', '0', '1', '1568097496', '1552190186', '0');
+INSERT INTO `tao_comment` VALUES ('65', 'face[微笑] ', '18', '1', '0', '0', '1', '1568097599', '1552192459', '0');
+INSERT INTO `tao_comment` VALUES ('66', 'face[嘻嘻] ', '3', '1', '0', '0', '1', '1552193197', '1552193197', '0');
+INSERT INTO `tao_comment` VALUES ('67', 'face[微笑] face[嘻嘻] face[哈哈] ', '19', '1', '0', '0', '1', '1559194830', '1555120988', '0');
+INSERT INTO `tao_comment` VALUES ('68', 'face[微笑] ', '15', '1', '0', '0', '1', '1552195005', '1555131299', '0');
+INSERT INTO `tao_comment` VALUES ('69', 'img[/uploads/20190331/8d6af3839efe2a518d0c1aa026993bb5.jpg] ', '2', '1', '0', '0', '1', '1553991079', '1553991079', '0');
+INSERT INTO `tao_comment` VALUES ('70', '@管理员 face[微笑] ', '2', '1', '0', '0', '1', '1553991095', '1553991095', '0');
+INSERT INTO `tao_comment` VALUES ('71', 'face[微笑] face[嘻嘻] 非常高兴工', '19', '1', '0', '0', '1', '1559203830', '1555121920', '0');
+INSERT INTO `tao_comment` VALUES ('72', 'face[微笑] face[good] ', '19', '1', '0', '0', '1', '1559204830', '1555130210', '0');
+INSERT INTO `tao_comment` VALUES ('73', 'face[微笑] ', '11', '1', '0', '0', '1', '1555123035', '1555123035', '0');
+INSERT INTO `tao_comment` VALUES ('74', 'face[给力] ', '14', '2', '0', '1', '1', '1555124049', '1578976226', '1578976226');
+INSERT INTO `tao_comment` VALUES ('75', 'face[微笑] ', '8', '2', '0', '0', '1', '1555124079', '1555127399', '0');
+INSERT INTO `tao_comment` VALUES ('76', 'face[微笑] 好美呀,', '7', '3', '0', '0', '1', '1555131857', '1555131857', '0');
+INSERT INTO `tao_comment` VALUES ('77', '是导入数据库,显示乱码,还是你用工具打开数据库乱码。数据库默认是utf8的格式。', '27', '1', '0', '0', '1', '1578541574', '1578541574', '0');
-
-/*Table structure for tao_mail_server*/
+/* Table structure for tao_mail_server */
DROP TABLE IF EXISTS `tao_mail_server`;
CREATE TABLE `tao_mail_server` (
@@ -288,32 +363,32 @@ CREATE TABLE `tao_mail_server` (
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
-/*Records of tao_mail_server*/
+/* Records of tao_mail_server */
-INSERT INTO `tao_mail_server` VALUES ('1', 'xxx@aliyun.com', 'smtp.aliyun.com', '25', 'xxxx', 'mima', '0');
+INSERT INTO `tao_mail_server` VALUES ('1', 'xxxx@aliyun.com', 'smtp.aliyun.com', '25', 'user', 'zqt15120088572', '0');
-/*Table structure for tao_slider*/
+/* Table structure for tao_slider */
DROP TABLE IF EXISTS `tao_slider`;
CREATE TABLE `tao_slider` (
`id` int(2) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`slid_name` varchar(30) NOT NULL COMMENT '幻灯名',
`slid_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '类型',
- `slid_img` varchar(70) NOT NULL COMMENT '幻灯图片地址',
- `slid_href` varchar(70) NOT NULL COMMENT '链接',
- `slid_color` varchar(10) NOT NULL COMMENT '广告块颜色',
- `slid_start` int(11) NOT NULL COMMENT '开始时间',
- `slid_over` int(11) NOT NULL COMMENT '结束时间',
+ `slid_img` varchar(70) NOT NULL DEFAULT '' COMMENT '幻灯图片地址',
+ `slid_href` varchar(70) NOT NULL DEFAULT '' COMMENT '链接',
+ `slid_color` varchar(10) NOT NULL DEFAULT '' COMMENT '广告块颜色',
+ `slid_start` int(11) NOT NULL DEFAULT '0' COMMENT '开始时间',
+ `slid_over` int(11) NOT NULL DEFAULT '0' COMMENT '结束时间',
`slid_status` enum('1','0') NOT NULL DEFAULT '1' COMMENT '1投放0仓库',
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
-/*Records of tao_slider*/
+/* Records of tao_slider */
INSERT INTO `tao_slider` VALUES ('1', 'CODING', '1', '/storage/slider/F1.jpg', '#', '', '1574870400', '1575043200', '1', '0', '0', '0');
INSERT INTO `tao_slider` VALUES ('2', '无人机', '1', '/storage/slider/F2.jpg', 'www.taobao.com', '', '-28800', '1606665600', '1', '0', '0', '0');
@@ -327,7 +402,7 @@ INSERT INTO `tao_slider` VALUES ('9', 'Taoler社区系统', '6', '', 'http://www
INSERT INTO `tao_slider` VALUES ('10', 'Flay模板-layui社区', '3', '', 'https://fly.layui.com/', '#009688', '1577894400', '1612022400', '1', '0', '0', '0');
-/*Table structure for tao_system*/
+/* Table structure for tao_system */
DROP TABLE IF EXISTS `tao_system`;
CREATE TABLE `tao_system` (
@@ -335,17 +410,17 @@ CREATE TABLE `tao_system` (
`webname` varchar(20) NOT NULL COMMENT '网站名称',
`webtitle` varchar(30) NOT NULL,
`domain` varchar(50) NOT NULL,
- `logo` varchar(70) NOT NULL COMMENT '网站logo',
+ `logo` varchar(70) NOT NULL DEFAULT '' COMMENT '网站logo',
`cache` tinyint(5) NOT NULL DEFAULT '0' COMMENT '缓存时间分钟',
`upsize` int(5) NOT NULL DEFAULT '0' COMMENT '上传文件大小KB',
`uptype` varchar(50) NOT NULL DEFAULT '' COMMENT '上传文件类型',
- `copyright` varchar(80) NOT NULL COMMENT '版权',
+ `copyright` varchar(80) NOT NULL DEFAULT '' COMMENT '版权',
`keywords` tinytext NOT NULL COMMENT '网站关键字',
`descript` tinytext NOT NULL COMMENT '网站描述',
- `is_open` tinyint(4) NOT NULL COMMENT '是否开启站点1开启0关闭',
- `is_comment` tinyint(4) NOT NULL COMMENT '是否开启评论1开启0关闭',
- `is_reg` tinyint(4) NOT NULL COMMENT '是否开放注册1开启0禁止',
- `icp` varchar(50) NOT NULL COMMENT '备案',
+ `is_open` enum('0','1') NOT NULL DEFAULT '1' COMMENT '是否开启站点1开启0关闭',
+ `is_comment` enum('0','1') NOT NULL DEFAULT '1' COMMENT '是否开启评论1开启0关闭',
+ `is_reg` enum('0','1') NOT NULL DEFAULT '1' COMMENT '是否开放注册1开启0禁止',
+ `icp` varchar(50) NOT NULL DEFAULT '' COMMENT '备案',
`blackname` varchar(255) NOT NULL COMMENT '注册黑名单',
`sys_version_num` varchar(5) NOT NULL COMMENT '系统版本',
`key` varchar(60) DEFAULT NULL COMMENT 'key',
@@ -358,34 +433,34 @@ CREATE TABLE `tao_system` (
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='系统配置表';
-/*Records of tao_system*/
+/* Records of tao_system */
-INSERT INTO `tao_system` VALUES ('1', 'TaoLer社区', '轻论坛系统', 'http://www.tp6.com', '/storage/logo/20191024/a5671b2c16a37ec8587f31989dab1177.png', '10', '2048', 'png|gif|jpg|jpeg|zip|rar', 'aieok.com 版权所有', 'TaoLer,轻社区系统,bbs,论坛,Thinkphp6,layui,fly模板,', '这是一个Taoler轻社区论坛系统', '1', '1', '1', '0.0.0.0', '管理员|admin|审核员|超级|垃圾', '1.0.0', '', 'http://www.aieok.com/api/index/cy', 'http://www.aieok.com/api/upload/check', 'http://www.aieok.com/api/upload/api', '0', '1577419197');
+INSERT INTO `tao_system` VALUES ('1', 'TaoLer社区', '轻论坛系统', 'http://www.xxx.com', '/storage/logo/20191024/a5671b2c16a37ec8587f31989dab1177.png', '10', '2048', 'png|gif|jpg|jpeg|zip|rarr', 'aieok.com 版权所有', 'TaoLer,轻社区系统,bbs,论坛,Thinkphp6,layui,fly模板,', '这是一个Taoler轻社区论坛系统', '1', '1', '1', '0.0.0.0', '管理员|admin|审核员|超级|垃圾', '1.0.0', '', 'http://www.aieok.com/api/index/cy', 'http://www.aieok.com/api/upload/check', 'http://www.aieok.com/api/upload/api', '0', '1577419197');
-/*Table structure for tao_user*/
+/* Table structure for tao_user */
DROP TABLE IF EXISTS `tao_user`;
CREATE TABLE `tao_user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`name` varchar(16) NOT NULL COMMENT '用户名',
`password` varchar(32) NOT NULL COMMENT '密码',
- `phone` varchar(11) NOT NULL COMMENT '手机',
- `email` varchar(50) NOT NULL COMMENT '邮箱',
- `nickname` varchar(16) NOT NULL COMMENT '昵称',
- `city` varchar(50) DEFAULT NULL COMMENT '归属地',
+ `phone` varchar(11) NOT NULL DEFAULT '' COMMENT '手机',
+ `email` varchar(50) NOT NULL DEFAULT '' COMMENT '邮箱',
+ `nickname` varchar(16) NOT NULL DEFAULT '' COMMENT '昵称',
+ `city` varchar(50) NOT NULL DEFAULT '' COMMENT '归属地',
`sex` enum('0','1') NOT NULL DEFAULT '0' COMMENT '性别0男1女',
- `sign` varchar(255) DEFAULT NULL COMMENT '签名',
- `user_img` varbinary(70) NOT NULL COMMENT '头像',
+ `sign` varchar(255) NOT NULL DEFAULT '' COMMENT '签名',
+ `user_img` varbinary(70) NOT NULL DEFAULT '' COMMENT '头像',
`auth` enum('1','0') NOT NULL DEFAULT '0' COMMENT '管理员权限0普通1超级',
`point` tinyint(11) NOT NULL DEFAULT '0' COMMENT '积分',
`area_id` int(11) DEFAULT NULL COMMENT '用户所属区域ID',
`status` enum('0','1') NOT NULL DEFAULT '1' COMMENT '1启用0禁用',
- `vip` tinyint(1) DEFAULT NULL COMMENT 'vip',
- `last_login_ip` varchar(70) NOT NULL COMMENT '最后登陆ip',
+ `vip` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'vip',
+ `last_login_ip` varchar(70) NOT NULL DEFAULT '0' COMMENT '最后登陆ip',
`last_login_time` int(11) NOT NULL DEFAULT '0' COMMENT '最后登陆时间',
`login_error_num` tinyint(1) NOT NULL DEFAULT '0' COMMENT '登陆错误次数',
- `login_error_time` int(11) NOT NULL COMMENT '登陆错误时间',
+ `login_error_time` int(11) NOT NULL DEFAULT '0' COMMENT '登陆错误时间',
`login_error_lock` tinyint(1) NOT NULL DEFAULT '0' COMMENT '登陆锁定0正常1锁定',
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '修改时间',
@@ -394,19 +469,19 @@ CREATE TABLE `tao_user` (
) ENGINE=MyISAM AUTO_INCREMENT=41 DEFAULT CHARSET=utf8;
-/*Records of tao_user*/
+/* Records of tao_user */
-INSERT INTO `tao_user` VALUES ('1', 'admin', '', '2147483647', 'xxx@qq.com', '管理员', '北京市', '1', '这是我的第一个TP5系统,2019北京。OK! OK!ok@', 0x2F73746F726167652F686561645F7069632F32303139313231372F39343036636334623866336538323731613238616339646239353339333766352E6A7067, '1', '14', '1', '1', null, '127.0.0.1', '0', '0', '0', '0', '1555892325', '1578469091', '0');
-INSERT INTO `tao_user` VALUES ('2', 'liudong', '', '2147483647', 'liudong@qq.com', '刘冬', '上海', '0', '在', 0x2F7374617469632F7265732F696D616765732F6176617461722F30302E6A7067, '0', '0', '2', '1', null, '', '0', '0', '0', '0', '1555892325', '1546176176', '0');
-INSERT INTO `tao_user` VALUES ('3', 'shenlu', '', '13512345678', 'shenlu@qq.com', '沈璐', '杭州', '0', '沈璐沈璐沈璐沈璐沈璐是一个美女', 0x2F7374617469632F7265732F696D616765732F6176617461722F302E6A7067, '0', '0', '3', '1', null, '', '0', '0', '0', '0', '1555892325', '1547700180', '0');
-INSERT INTO `tao_user` VALUES ('4', '张志', '', '13513615898', 'zhangzhi@qq.com', '张志', '深圳', '0', '在一', 0x2F7374617469632F7265732F696D616765732F6176617461722F312E6A7067, '0', '0', '1', '1', null, '', '0', '0', '0', '0', '1555892325', '1551182521', '0');
-INSERT INTO `tao_user` VALUES ('5', '王龙', '', '0', 'wanglong@qq.com', 'long', '纽约', '1', '', 0x2F7374617469632F7265732F696D616765732F6176617461722F322E6A7067, '0', '0', '2', '0', null, '', '0', '0', '0', '0', '1555892325', '1555890307', '0');
-INSERT INTO `tao_user` VALUES ('6', '贺青', '', '0', 'heqing@qq.com', '贺青', '巴黎', '0', '', 0x2F7374617469632F7265732F696D616765732F6176617461722F332E6A7067, '0', '0', '3', '1', null, '', '0', '0', '0', '0', '1555892325', '1555892325', '0');
-INSERT INTO `tao_user` VALUES ('7', '李可', '', '0', 'keke@qq.com', '可可', '', '1', '', 0x2F7374617469632F7265732F696D616765732F6176617461722F342E6A7067, '0', '2', '0', '1', null, '', '0', '0', '0', '0', '1555892325', '1569247195', '0');
-INSERT INTO `tao_user` VALUES ('8', '飞儿', '', '2147483647', 'fei@qq.com', '飞儿', '', '0', '', 0x2F7374617469632F7265732F696D616765732F6176617461722F352E6A7067, '0', '0', '0', '1', null, '', '0', '0', '0', '0', '1555892325', '1576558484', '1576558484');
+INSERT INTO `tao_user` VALUES ('1', 'admin', '3dbfa76bd34a2a0274f5d52f5529ccb3', '2147483647', 'changlin_zhao@qq.com', '管理员', '北京市', '1', '这是我的第一个TP5系统,2019北京。OK! OK!ok@', 0x2F73746F726167652F686561645F7069632F32303139313231372F39343036636334623866336538323731613238616339646239353339333766352E6A7067, '1', '14', '1', '1', '0', '127.0.0.1', '0', '0', '0', '0', '1555892325', '1578469091', '0');
+INSERT INTO `tao_user` VALUES ('2', 'liudong', '', '2147483647', 'liudong@qq.com', '刘冬', '上海', '0', '在', 0x2F7374617469632F7265732F696D616765732F6176617461722F30302E6A7067, '0', '0', '2', '1', '0', '', '0', '0', '0', '0', '0', '1546176176', '0');
+INSERT INTO `tao_user` VALUES ('3', 'shenlu', '', '13512345678', 'shenlu@qq.com', '沈璐', '杭州', '0', '沈璐沈璐沈璐沈璐沈璐是一个美女', 0x2F7374617469632F7265732F696D616765732F6176617461722F302E6A7067, '0', '0', '3', '1', '0', '', '0', '0', '0', '0', '0', '1547700180', '0');
+INSERT INTO `tao_user` VALUES ('4', '张志', '', '13513615898', 'zhangzhi@qq.com', '张志', '深圳', '0', '在一', 0x2F7374617469632F7265732F696D616765732F6176617461722F312E6A7067, '0', '0', '1', '1', '0', '', '0', '0', '0', '0', '0', '1551182521', '0');
+INSERT INTO `tao_user` VALUES ('5', '王龙', '', '0', 'wanglong@qq.com', 'long', '纽约', '1', '', 0x2F7374617469632F7265732F696D616765732F6176617461722F322E6A7067, '0', '0', '2', '1', '0', '', '0', '0', '0', '0', '0', '1555890307', '0');
+INSERT INTO `tao_user` VALUES ('6', '贺青', '', '0', 'heqing@qq.com', '贺青', '巴黎', '0', '', 0x2F7374617469632F7265732F696D616765732F6176617461722F332E6A7067, '0', '0', '3', '1', '0', '', '0', '0', '0', '0', '0', '1555892325', '0');
+INSERT INTO `tao_user` VALUES ('7', '李可', '', '0', 'keke@qq.com', '可可', '', '1', '', 0x2F7374617469632F7265732F696D616765732F6176617461722F342E6A7067, '0', '2', '0', '1', '0', '', '0', '0', '0', '0', '0', '1569247195', '0');
+INSERT INTO `tao_user` VALUES ('8', '飞儿', '', '2147483647', 'fei@qq.com', '飞儿', '', '0', '', 0x2F7374617469632F7265732F696D616765732F6176617461722F352E6A7067, '0', '0', '0', '1', '0', '', '0', '0', '0', '0', '0', '1576558484', '0');
-/*Table structure for tao_user_area*/
+/* Table structure for tao_user_area */
DROP TABLE IF EXISTS `tao_user_area`;
CREATE TABLE `tao_user_area` (
@@ -420,7 +495,7 @@ CREATE TABLE `tao_user_area` (
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
-/*Records of tao_user_area*/
+/* Records of tao_user_area */
INSERT INTO `tao_user_area` VALUES ('1', '北京', '京', '0', '0', '0');
INSERT INTO `tao_user_area` VALUES ('2', '上海', '沪', '0', '0', '0');
@@ -428,7 +503,7 @@ INSERT INTO `tao_user_area` VALUES ('3', '广州', '广', '0', '0', '0');
INSERT INTO `tao_user_area` VALUES ('4', '深圳', '深', '0', '0', '0');
-/*Table structure for tao_user_sign*/
+/* Table structure for tao_user_sign */
DROP TABLE IF EXISTS `tao_user_sign`;
CREATE TABLE `tao_user_sign` (
@@ -443,7 +518,7 @@ CREATE TABLE `tao_user_sign` (
) ENGINE=MyISAM AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 COMMENT='用户签到表';
-/*Records of tao_user_sign*/
+/* Records of tao_user_sign */
INSERT INTO `tao_user_sign` VALUES ('16', '2', '1', '0', '0', '1558750514', '0');
INSERT INTO `tao_user_sign` VALUES ('18', '1', '1', '0', '0', '1558750797', '0');
@@ -456,25 +531,25 @@ INSERT INTO `tao_user_sign` VALUES ('24', '1', '1', '0', '0', '1574650402', '0')
INSERT INTO `tao_user_sign` VALUES ('25', '1', '1', '0', '0', '1578383133', '0');
-/*Table structure for tao_user_signrule*/
+/* Table structure for tao_user_signrule */
DROP TABLE IF EXISTS `tao_user_signrule`;
CREATE TABLE `tao_user_signrule` (
`id` int(2) unsigned NOT NULL AUTO_INCREMENT,
- `days` int(5) unsigned NOT NULL COMMENT '连续天数',
+ `days` int(5) unsigned NOT NULL DEFAULT '0' COMMENT '连续天数',
`score` int(3) unsigned NOT NULL DEFAULT '0' COMMENT '积分',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COMMENT='用户签到积分规则';
-/*Records of tao_user_signrule*/
+/* Records of tao_user_signrule */
INSERT INTO `tao_user_signrule` VALUES ('1', '1', '2');
INSERT INTO `tao_user_signrule` VALUES ('2', '3', '3');
INSERT INTO `tao_user_signrule` VALUES ('3', '5', '5');
-/*Table structure for tao_user_zan*/
+/* Table structure for tao_user_zan */
DROP TABLE IF EXISTS `tao_user_zan`;
CREATE TABLE `tao_user_zan` (
@@ -484,3 +559,7 @@ CREATE TABLE `tao_user_zan` (
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '点赞时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=46 DEFAULT CHARSET=utf8;
+
+
+/* Records of tao_user_zan */
+
diff --git a/composer.lock b/composer.lock
index 63f9b7a..1aaf2fd 100644
--- a/composer.lock
+++ b/composer.lock
@@ -504,12 +504,12 @@
"source": {
"type": "git",
"url": "https://github.com/top-think/framework.git",
- "reference": "e7fa18eebf3092c9abf34c79310eca4d17c78cbd"
+ "reference": "1444cce94b40a836958380b160a5fb7bfc165daf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/top-think/framework/zipball/e7fa18eebf3092c9abf34c79310eca4d17c78cbd",
- "reference": "e7fa18eebf3092c9abf34c79310eca4d17c78cbd",
+ "url": "https://api.github.com/repos/top-think/framework/zipball/1444cce94b40a836958380b160a5fb7bfc165daf",
+ "reference": "1444cce94b40a836958380b160a5fb7bfc165daf",
"shasum": "",
"mirrors": [
{
@@ -564,7 +564,7 @@
"orm",
"thinkphp"
],
- "time": "2020-01-11T06:53:35+00:00"
+ "time": "2020-01-13T05:48:05+00:00"
},
{
"name": "topthink/think-captcha",
diff --git a/config/app.php b/config/app.php
index a1e91cd..f9471a9 100644
--- a/config/app.php
+++ b/config/app.php
@@ -29,7 +29,7 @@ return [
'deny_app_list' => [],
// 异常页面的模板文件
- 'exception_tmpl' => '../view/404.html',
+ 'exception_tmpl' => app()->getThinkPath() . 'tpl/think_exception.tpl',
// 错误显示信息,非调试模式有效
'error_message' => '页面错误!请稍后再试~',
diff --git a/config/database-1.php b/config/database-1.php
deleted file mode 100644
index dcff575..0000000
--- a/config/database-1.php
+++ /dev/null
@@ -1,63 +0,0 @@
- 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' => [
- 'mysql' => [
- // 数据库类型
- 'type' => Env::get('database.type', 'mysql'),
- // 服务器地址
- 'hostname' => Env::get('database.hostname', '127.0.0.1'),
- // 数据库名
- 'database' => Env::get('database.database', ''),
- // 用户名
- 'username' => Env::get('database.username', 'root'),
- // 密码
- 'password' => Env::get('database.password', ''),
- // 端口
- 'hostport' => Env::get('database.hostport', '3306'),
- // 数据库连接参数
- 'params' => [],
- // 数据库编码默认采用utf8
- 'charset' => Env::get('database.charset', 'utf8'),
- // 数据库表前缀
- 'prefix' => Env::get('database.prefix', ''),
-
- // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
- 'deploy' => 0,
- // 数据库读写是否分离 主从式有效
- 'rw_separate' => false,
- // 读写分离后 主服务器数量
- 'master_num' => 1,
- // 指定从服务器序号
- 'slave_no' => '',
- // 是否严格检查字段是否存在
- 'fields_strict' => true,
- // 是否需要断线重连
- 'break_reconnect' => false,
- // 监听SQL
- 'trigger_sql' => true,
- // 开启字段缓存
- 'fields_cache' => false,
- // 字段缓存路径
- 'schema_cache_path' => app()->getRuntimePath() . 'schema' . DIRECTORY_SEPARATOR,
- ],
-
- // 更多的数据库配置信息
- ],
-];
\ No newline at end of file
diff --git a/config/database.php b/config/database.php
index 61ae363..dcff575 100644
--- a/config/database.php
+++ b/config/database.php
@@ -1,34 +1,43 @@
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' => [
'mysql' => [
// 数据库类型
- 'type' => 'mysql',
+ 'type' => Env::get('database.type', 'mysql'),
// 服务器地址
- 'hostname' => '127.0.0.1',
+ 'hostname' => Env::get('database.hostname', '127.0.0.1'),
// 数据库名
- 'database' => 'taotao',
+ 'database' => Env::get('database.database', ''),
// 用户名
- 'username' => 'root',
+ 'username' => Env::get('database.username', 'root'),
// 密码
- 'password' => 'root',
+ 'password' => Env::get('database.password', ''),
// 端口
- 'hostport' => '3306',
+ 'hostport' => Env::get('database.hostport', '3306'),
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
- 'charset' => 'utf8',
+ 'charset' => Env::get('database.charset', 'utf8'),
// 数据库表前缀
- 'prefix' => 'tao_',
+ 'prefix' => Env::get('database.prefix', ''),
+
// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'deploy' => 0,
// 数据库读写是否分离 主从式有效
@@ -48,5 +57,7 @@ return [
// 字段缓存路径
'schema_cache_path' => app()->getRuntimePath() . 'schema' . DIRECTORY_SEPARATOR,
],
+
+ // 更多的数据库配置信息
],
];
\ No newline at end of file
diff --git a/data/taoler.sql b/data/taoler.sql
deleted file mode 100644
index a47bfb3..0000000
--- a/data/taoler.sql
+++ /dev/null
@@ -1,545 +0,0 @@
-/*
-Navicat MySQL Data Transfer
-
-Source Server : TP
-Source Server Version : 50727
-Source Host : 127.0.0.1:3306
-Source Database : taoler
-
-Target Server Type : MYSQL
-Target Server Version : 50727
-File Encoding : 65001
-
-Date: 2020-01-08 17:20:52
-*/
-
-SET FOREIGN_KEY_CHECKS=0;
-
--- ----------------------------
--- Table structure for tao_admin
--- ----------------------------
-DROP TABLE IF EXISTS `tao_admin`;
-CREATE TABLE `tao_admin` (
- `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `username` varchar(20) NOT NULL COMMENT '管理员账户',
- `nickname` varchar(20) NOT NULL COMMENT '昵称',
- `password` varchar(32) NOT NULL COMMENT '密码',
- `email` varchar(30) NOT NULL COMMENT '邮箱',
- `mobile` varchar(11) NOT NULL COMMENT '手机号',
- `sex` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0女1男',
- `status` enum('1','0') NOT NULL DEFAULT '0' COMMENT '1启用0禁用',
- `auth_group_id` smallint(1) NOT NULL DEFAULT '0' COMMENT '1超级管理员0是普通管理员',
- `remarks` varchar(255) NOT NULL COMMENT '备注',
- `last_login_ip` int(4) unsigned NOT NULL COMMENT '最后登录IP',
- `last_login_time` int(11) unsigned zerofill NOT NULL COMMENT '最后登录时间',
- `create_time` int(11) unsigned zerofill NOT NULL COMMENT '创建时间',
- `update_time` int(11) unsigned zerofill NOT NULL COMMENT '更新时间',
- `delete_time` int(11) unsigned zerofill NOT NULL COMMENT '软删除',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Records of tao_admin
--- ----------------------------
-INSERT INTO `tao_admin` VALUES ('1', 'admin', '管理员', 'def94a4e0b210f2fac7df0fb279d09d3', 'adminqq@qq.com', '13511112222', '1', '1', '1', '2019.12.31,明天新年发布新版本!', '1270', '01577852879', '01577258664', '01577801064', '00000000000');
-INSERT INTO `tao_admin` VALUES ('2', 'test', '测试员', '3dbfa76bd34a2a0274f5d52f5529ccb3', 'tao@qq.com', '13567891236', '0', '0', '2', '', '1270', '01577514365', '01555892325', '01577847765', '00000000000');
-
--- ----------------------------
--- Table structure for tao_article
--- ----------------------------
-DROP TABLE IF EXISTS `tao_article`;
-CREATE TABLE `tao_article` (
- `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
- `title` varchar(50) NOT NULL COMMENT '标题',
- `content` text NOT NULL COMMENT '内容',
- `status` enum('0','1') NOT NULL DEFAULT '1' COMMENT '状态1显示0隐藏',
- `cate_id` int(11) NOT NULL COMMENT '分类id',
- `user_id` int(11) NOT NULL COMMENT '用户id',
- `is_top` enum('0','1') NOT NULL DEFAULT '0' COMMENT '置顶1否0',
- `is_hot` enum('0','1') NOT NULL DEFAULT '0' COMMENT '推荐1否0',
- `is_reply` enum('1','0') NOT NULL DEFAULT '1' COMMENT '0禁评1可评',
- `pv` int(11) NOT NULL COMMENT '浏览量',
- `jie` enum('1','0') NOT NULL DEFAULT '0' COMMENT '0未结1已结',
- `create_time` int(11) NOT NULL COMMENT '创建时间',
- `update_time` int(11) NOT NULL COMMENT '更新时间',
- `delete_time` int(11) NOT NULL COMMENT '删除时间',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=25 DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Records of tao_article
--- ----------------------------
-INSERT INTO `tao_article` VALUES ('1', '哪里有好用专一的社区论坛?', '最近有所需要,在网上搜了一下,想找好用现成的社区性质的论坛,本来想搭建一个小区可维护的论坛。你们有推荐的吗?\r\n偶尔进到layui的Fly社区,感觉这个还挺好看的,搜了一下,也有几个类似的项目,得到的结果是,有不错的,可惜不维护了,有维护的,但不是自己想要的风格。\r\n我看的项目框架大多PHP实现的,要不咱也来一个。', '1', '6', '1', '0', '0', '1', '27', '0', '1546698110', '1577773844', '0');
-INSERT INTO `tao_article` VALUES ('2', 'php是世界最好的语言吗?', '[quote]\r\n PHP是世界最好的语言\r\n[/quote]\r\n您是怎么认为的呢?据说现在PHP7性能蛮好的,对于WEB开发很有效率,我是学C的,PHP几年前有过了解,在ASP时代,做过电影网站站长,很ASP后来很快就不用了。\r\n你认为PHP怎么样呢?', '1', '1', '1', '0', '0', '1', '77', '0', '1546699158', '1577773832', '0');
-INSERT INTO `tao_article` VALUES ('3', 'php压缩文件解压Unzip类', '[quote]\r\n 解压代码\r\n[/quote]\r\n[pre]\r\ncreate_dirs($dest_dir);\r\n\r\n // zip包中的 每个 文件\r\n while ($zip_entry = zip_read($zip))\r\n {\r\n\r\n // 现在我们要在目标目录中创建目录\r\n \r\n // 如果文件不在根目录中\r\n $pos_last_slash = strrpos(zip_entry_name($zip_entry), \"/\"); // strrpos()字符串在另一字符串中最后一次出现的位置。\r\n if ($pos_last_slash !== false)\r\n {\r\n // 创建保存zip条目的目录(结尾加“/”)substr()可在字符串中抽取从 start 下标开始的指定数目的字符。\r\n $this->create_dirs($dest_dir.substr(zip_entry_name($zip_entry), 0, $pos_last_slash+1));\r\n \r\n }\r\n\r\n // Open the entry\r\n if (zip_entry_open($zip,$zip_entry,\"r\"))\r\n {\r\n \r\n // 要保存在磁盘上的文件名\r\n $file_name = $dest_dir.zip_entry_name($zip_entry);\r\n\r\n // 检查是否应覆盖文件\r\n if ($overwrite === true || $overwrite === false && !is_file($file_name))\r\n {\r\n // 获取zip条目的内容\r\n $fstream = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));\r\n\r\n file_put_contents($file_name, $fstream );\r\n // Set the rights\r\n chmod($file_name, 0777);\r\n echo \"save: \".$file_name.\"
\";\r\n }\r\n \r\n // Close the entry\r\n zip_entry_close($zip_entry);\r\n } \r\n }\r\n // Close the zip-file\r\n zip_close($zip);\r\n }\r\n }else{\r\n return false;\r\n }\r\n \r\n return true;\r\n}\r\n\r\n/**\r\n* This function creates recursive directories if it doesn\'t already exist\r\n*\r\n* @param String The path that should be created\r\n* \r\n* @return void\r\n*/\r\npublic function create_dirs($path)\r\n{\r\n if (!is_dir($path))\r\n {\r\n $directory_path = \"\";\r\n $directories = explode(\"/\",$path);\r\n array_pop($directories);\r\n \r\n foreach($directories as $directory)\r\n {\r\n $directory_path .= $directory.\"/\";\r\n if (!is_dir($directory_path))\r\n {\r\n mkdir($directory_path);\r\n chmod($directory_path, 0777);\r\n }\r\n }\r\n }\r\n}\r\n\r\n\r\n}\r\n[/pre]\r\n\r\n[quote]\r\n 使用实例\r\n[/quote]\r\n[pre]\r\nExtract C:/zipfiletest/zip-file.zip to C:/zipfiletest/zip-file/ and overwrites existing files\r\nunzip(\"C:/zipfiletest/zip-file.zip\", false, true, true);\r\n\r\nExtract C:/zipfiletest/zip-file.zip to C:/another_map/zipfiletest/ and doesn\'t overwrite existing files. NOTE: It doesn\'t create a map with the zip-file-name!\r\nunzip(\"C:/zipfiletest/zip-file.zip\", \"C:/another_map/zipfiletest/\", true, false);\r\n[/pre]\r\n\r\n\r\n', '1', '2', '1', '0', '1', '1', '218', '0', '1546698192', '1577763213', '0');
-INSERT INTO `tao_article` VALUES ('4', 'Fly Template 社区模版', '[quote]\r\n 你们认为layui官方Fly Template 社区模版怎么样?\r\n[/quote]\r\nimg[https://cdn.layui.com/upload/2017_11/168_1512035128058_80242.jpg] \r\n你喜欢吗?\r\n很多人都说比较喜欢,我个人认为不错的,这个板子非常喜欢,我看到有一些人做了开发,可惜的是都没有很好的维护,有的漏洞比较多,不完善,很美好的一个板子,但没有长久 的更新,非常的可惜。\r\n如果用别人的不好用,那我就做一个出来吧。喜欢的人多关注,适当时候放出来大家一起用。\r\n关于详情页的内容解析\r\n该模板自带一个特定语法的编辑器,当你把内容存储到数据库后,在页面读取后浏览,会发现诸如“表情、代码、图片”等无法解析,这是因为需要对该内容进行一次转义,通常来说这是在服务端完成的,但鉴于简单化,你还可以直接在前端去解析,在模板的detail.html中,我们已经把相关的代码写好了,你只需打开注释即可(在代码的最下面)。当然,如果觉得编辑器无法满足你的需求,你也可以把该编辑器换成别的HTML编辑器或MarkDown编辑器。', '1', '1', '1', '0', '0', '1', '12', '0', '1546698225', '1577772362', '0');
-INSERT INTO `tao_article` VALUES ('5', '中国区域性网上社区的舆情研究', '[quote]\r\n 中国区域性网上社区的舆情研究--基于《济南部落论坛》和《福州家园网》的实证分析\r\n冯立梅\r\n福建师范大学\r\n[/quote]\r\n网上论坛是网上社区最主要的组成部分。继全国性综合网上论坛,如天涯论坛、强国论坛的火爆之后,区域性的网上论坛,也开始迅速成长。\r\n如今每个城市,甚至有的县,都已经拥有了自己的网上论坛。泡本地的网上论坛,成为上网一族的习惯。处在社会转型时期的中国,各种矛盾问题比以往更加突出。而越来越多的社会热点事件,是萌芽于各地方性的网上论坛。网络舆情,是网上论坛信息的体现。因此,研究中国区域性网上社区的舆情信息就显得十分必要。\r\n\r\n本文力图从舆情的第一线出发,探讨中国区域性网上社区目前发展的态势,以及网络舆情的状况。并具体到几个网上论坛,通过综合研究和个案观察的方法,来概括其真实的表征,以此为据进行相关的理论分析。\r\n本着根据调查成果来下结论的思路,经过研究发现,中国区域性网上论坛能够一定程度的反映网络舆情,但是多停留在初级的讨论状态,情绪抒发后真正的问题并没有得到实质的解决。只有个别事件由于舆论压力而被重点处理。网上论坛具有很好的社会降压阀的作用,但对于网络民主的促进,远不及微博等新的媒体形式。 ', '1', '3', '2', '0', '1', '1', '23', '0', '1556798251', '1577765263', '0');
-INSERT INTO `tao_article` VALUES ('6', 'PHP是什么', '[quote]\r\n PHP原始为Personal Home Page的缩写,已经正式更名为 \"PHP: Hypertext Preprocessor\"。\r\n[/quote]\r\n\r\n自20世纪90年代国内互联网开始发展到现在,互联网信息几乎覆盖了我们日常活动所有知识范畴,并逐渐成为我们生活、学习、工作中必不可少的一部分。据统计,从2003 年开始,我国的网页规模基本保持了翻番的增长速度,并且呈上升趋势。PHP 语言作为当今最热门的网站程序开发语言,它具有成本低、速度快、可移植性好、 内置丰富的函数库等优点,因此被越来越多的企业应用于网站开发中。但随着互联网的不断更新换代,PHP语言也出现了不少问题。 [1] \r\n根据动态网站要求,PHP语言作为一种语言程序,其专用性逐渐在应用过程中显现,其技术水平的优劣与否将直接影响网站的运行效率。其特点是具有公开的源代码, 在程序设计上与通用型语言,如C语言相似性较高,因此在操作过程中简单易懂,可操作性强。同时,PHP语言具有较高的数据传送处理水平和输出水平,可以广泛应用在Windows系统及各类Web服务器中。如果数据量较大,PHP语言还可以拓宽链接面,与各种数据库相连,缓解数据存储、检索及维护压力。随着技术的发展,PHP 语言搜索引擎还可以量体裁衣,实行个性化服务,如根据客户的喜好进行分类收集储存,极大提高了数据运行效率。', '1', '3', '1', '0', '0', '1', '28', '0', '1546748103', '1577772531', '0');
-INSERT INTO `tao_article` VALUES ('7', 'thinkphp Db类和模型的正确使用姿势', '[quote]\r\n 来源:流年 ThinkPHP官方博客\r\n[/quote]\r\n\r\n2018 年 10 月 23 日 发布\r\n发现很多开发者在使用ThinkPHP5.*的时候不明白Db和模型的正确使用姿势,尤其是在5.1版本里面,如果你没有使用下面的正确姿势,有很大可能性会踩坑。\r\n\r\nDb的正确姿势\r\n下面是官方推荐的Db类用法(也就是每次都是静态方法调用)\r\n\r\n[pre]\r\n// 查询单个数据\r\nDb::name(\'user\')->where(\'id\', 1)->find();\r\n// 查询多个数据\r\nDb::name(\'user\')->where(\'id\', \'>\', 1)->select();\r\n// 写入新的数据\r\nDb::name(\'user\')->insert([\'name\' => \'张三\']);\r\n// 更新数据\r\nDb::name(\'user\')->where(\'id\', 1)->update([\'name\' => \'李四\']);\r\n// 删除数据\r\nDb::name(\'user\')->delete(1);\r\n[/pre]\r\n\r\n很多开发者为了简化代码,喜欢使用下面的代码。\r\n\r\n[quote]\r\n 但是,永远不要在5.1中使用下面的代码!\r\n[/quote]\r\n\r\n[pre]\r\n// 错误的用法\r\n\r\n$user = Db::name(\'user\');\r\n// 查询单个数据\r\n$user->where(\'id\', 1)->find();\r\n// 查询多个数据\r\n$user->where(\'id\', \'>\', 1)->select();\r\n// 写入新的数据\r\n$user->insert([\'name\' => \'张三\']);\r\n// 更新数据\r\n$user->update([\'name\' => \'李四\']);\r\n// 删除数据\r\n$user->delete(1);\r\n[/pre]\r\n\r\n[quote]\r\n 即便是使用助手函数仍然不建议!\r\n[/quote]\r\n\r\n[pre]\r\n// 仍然是错误的用法\r\n\r\n// 查询单个数据\r\ndb(\'user\')->where(\'id\', 1)->find();\r\n// 查询多个数据\r\ndb(\'user\')->where(\'id\', \'>\', 1)->select();\r\n// 写入新的数据\r\ndb(\'user\')->insert([\'name\' => \'张三\']);\r\n// 更新数据\r\ndb(\'user\')->update([\'name\' => \'李四\']);\r\n// 删除数据\r\ndb(\'user\')->delete(1);\r\n[/pre]\r\n\r\n很多开发者可能会奇怪,为什么是错误的用法呢?我使用的结果明明都没问题啊?这只是说明你还没踩坑罢了。\r\n\r\n真正的原因,是5.1版本每次查询后是不会清空前次(5.0则会每次清空)的查询条件的,所以下面的用法是有效的。\r\n\r\n[pre]\r\n$user = Db::name(\'user\');\r\n// 查询分数大于80分的用户总数\r\n$count = $user->where(\'score\', \'>\', 80)->count();\r\n// 查询分数大于80分的用户数据\r\n$user->select();\r\n[/pre]\r\n\r\n看到这里你应该明白了,当你使用的是同一个数据库查询对象实例的话,查询条件是始终会保留的(也就是会导致后面的查询条件错乱),而如果你使用助手函数或者手动实例化后多次操作都是相同的对象实例,除非你像下面一样手动清除。\r\n\r\n[pre]\r\n$user = Db::name(\'user\');\r\n// 查询分数大于80分的用户总数\r\n$count = $user->where(\'score\', \'>\', 80)->count();\r\n// 清除查询条件(但不包括排序或者字段等信息)\r\n$user->removeOption(\'where\');\r\n// 查询所有用户数据 并按分数倒序排列 \r\n$user->order(\'score\', \'desc\')->select();\r\n// 清除所有查询条件\r\n$user->removeOption();\r\n// 查询分数等于100的用户\r\n$user->where(\'score\', 100)->select();\r\n[/pre]\r\n\r\n[quote]\r\n 最佳实践:每次使用全新的Db静态查询\r\n[/quote]\r\n\r\n模型的正确姿势\r\n模型的设计其实和Db一样,基本上不需要手动进行实例化。\r\n\r\n[pre]\r\n// 写入新的数据\r\n$user = User::create([\'name\' => \'张三\']);\r\n// 更新数据\r\n$user->update([\'name\' => \'李四\']);\r\n\r\n// 查询单个数据\r\n$user = User::get(1);\r\n// 删除当前模型数据\r\n$user->delete();\r\n[/pre]\r\n\r\n上面的代码中,我们没有使用任何的实例化代码,都是使用静态方法操作。模型的实例化工作是由系统在查询或者写入数据的时候自动完成的。如果你自己手动实例化模型的话,会造成模型的重复实例化开销。\r\n\r\n不建议的用法:\r\n\r\n[pre]\r\n$user = new User;\r\n// 写入新的数据\r\n$user->name = \'张三\';\r\n$user->save();\r\n$user = new User;\r\n$user->find(1);\r\necho $user->name;\r\n[/pre]\r\n\r\n建议用法:\r\n\r\n[pre]\r\n// 写入新的数据\r\nUser::create([\'name\' => \'张三\']);\r\n$user = User::get(1);\r\necho $user->name;\r\n[/pre]\r\n\r\n所以,请不要手动实例化模型,也不建议使用model助手函数。\r\n\r\n[quote]\r\n 最佳实践:模型查询和创建都使用静态方法\r\n[/quote]\r\n\r\n现在,你明白Db类和模型使用的正确姿势了么?', '1', '2', '3', '0', '1', '1', '29', '0', '1546776559', '1577766682', '0');
-INSERT INTO `tao_article` VALUES ('8', 'thinkphp更新数据表的方法', '[quote]\r\n tp更新数据表的方法\r\n[/quote]\r\n[pre]\r\n/**\r\n * 更新数据表\r\n * @param resource $db 数据库连接资源\r\n * @param string $prefix\r\n * @author lyq <605415184@qq.com>\r\n */\r\nfunction update_tables($db, $prefix = \'\') {\r\n //读取SQL文件\r\n $sql = file_get_contents(APP_PATH . \'install/data/update.sql\');\r\n $sql = str_replace(\"\\r\", \"\\n\", $sql);\r\n $sql = explode(\";\\n\", $sql);\r\n\r\n //替换表前缀\r\n $sql = str_replace(\" `tao_\", \" `{$prefix}\", $sql);\r\n\r\n //开始安装\r\n show_msg(\'开始升级数据库...\');\r\n foreach ($sql as $value) {\r\n $value = trim($value);\r\n if (empty($value)) {\r\n continue;\r\n }\r\n if (substr($value, 0, 12) == \'CREATE TABLE\') {\r\n $name = preg_replace(\"/^CREATE TABLE `(\\w+)` .*/s\", \"\\\\1\", $value);\r\n $msg = \"创建数据表{$name}\";\r\n if (false !== $db->execute($value)) {\r\n show_msg($msg . \'...成功!\');\r\n } else {\r\n show_msg($msg . \'...失败!\', \'error\');\r\n Session::set(\'error\', true, \'install\');\r\n }\r\n } else {\r\n if (substr($value, 0, 8) == \'UPDATE `\') {\r\n $name = preg_replace(\"/^UPDATE `(\\w+)` .*/s\", \"\\\\1\", $value);\r\n $msg = \"更新数据表{$name}\";\r\n } else if (substr($value, 0, 11) == \'ALTER TABLE\') {\r\n $name = preg_replace(\"/^ALTER TABLE `(\\w+)` .*/s\", \"\\\\1\", $value);\r\n $msg = \"修改数据表{$name}\";\r\n } else if (substr($value, 0, 11) == \'INSERT INTO\') {\r\n $name = preg_replace(\"/^INSERT INTO `(\\w+)` .*/s\", \"\\\\1\", $value);\r\n $msg = \"写入数据表{$name}\";\r\n }\r\n if (($db->execute($value)) !== false) {\r\n show_msg($msg . \'...成功!\');\r\n } else {\r\n show_msg($msg . \'...失败!\', \'error\');\r\n Session::set(\'error\', true, \'install\');\r\n }\r\n }\r\n }\r\n}\r\n[/pre]\r\n', '1', '2', '2', '0', '0', '1', '110', '0', '1546776594', '1577763657', '0');
-INSERT INTO `tao_article` VALUES ('9', '社区为单位组织的区域性社区服务', '作为以社区为单位组织的区域性社区福利服务,社区服务主要表现为以下几个方面特征:()\r\n\r\nA、自助互助性\r\n\r\nB、多元化\r\n\r\nC、服务形式丰富化\r\n\r\nD、广泛性\r\n\r\nE、服务人员专业化\r\n\r\nF、持续发展性', '1', '3', '2', '0', '0', '1', '37', '0', '1546776655', '1577765003', '0');
-INSERT INTO `tao_article` VALUES ('10', '徐州这个小区业主自治攒下24万元家底', '[quote]\r\n 转自腾讯网\r\n[/quote]\r\n2月13日,大年初九,家住军缘新城的蔺女士是春节后第四次在家请客了。\r\n\r\n“以前小区环境不好,不好意思喊亲戚朋友来家里吃饭。现在小区像花园一样,晚上还有喷泉,作为业主感觉很自豪。小区自治这几个月,变化太大了。”\r\n\r\n重建后的小区广场美观又实用\r\nimg[https://inews.gtimg.com/newsapp_bt/0/7699348341/1000] \r\n\r\n13日早上9时许,军缘新城小区广场上很安静,只听见扫帚“唰唰”的扫地声,两名保洁员在打扫卫生,清扫过的地面一尘不染。\r\n\r\n小区业委会主任马照明和财务监督组组长周永才介绍了自从2018年9月10日小区自治以来广场上发生的变化:\r\nimg[https://inews.gtimg.com/newsapp_bt/0/7699348342/1000] \r\n\r\n小区水清路净。\r\n\r\n最大的亮点是春节前花费2305元修好了闲置多年的喷泉,安装上彩色的灯带。春节以来,业主们每天晚上都到广场欣赏彩色喷泉,大人孩子个个欢天喜地。\r\n\r\n\r\n春节前,清理水池里的淤泥,修复喷泉。\r\n\r\n“喷泉水池积攒多年的淤泥我们都清理干净了,七八个人整整干了12天的时间,又花300元钱买了一批观赏鱼放进去。”周永才指着清澈见底的水池说:“天冷,这些鱼懒得动,喜欢躲在石头缝里,等天年暖和了,它们游来游去更漂亮。”\r\n\r\n小区路灯全部更换成LED灯,亮堂又节能。广场上有一盏10米多高的大灯,是6年前有业主捐赠的,只亮了一段时间就坏了,几任物业公司都没人修理过。\r\nimg[https://inews.gtimg.com/newsapp_bt/0/7699348344/1000] \r\n\r\n业委会工作人员和业主齐心协力上阵,安装照明设施。\r\n\r\n这次实行自治后,也请电工维修好了。因为灯杆太高太重,放下和扶起的时候难度都很大,小区20多名男女老少一起过来用绳子把它拽起来。灯亮起来以后,早上锻炼、晚上跳广场舞的业主都很方便。\r\n\r\n广场的绿植看上去也很整齐、富有层次,树木已经修剪好,灌木丛内没有一点杂草和落叶。白玉兰树叶绿油油的,樱花树枝也泛出了生机。\r\n\r\n\r\n为了美化环境,小区内每个向阳的地段都设置了晾晒区\r\n\r\n小区广场不仅美观,还很实用,四周安装了15个高大的晾衣架。阳光好的时候,业主都喜欢到这里晒被子。\r\n\r\n广场的一角,还有一个醒目的展示牌,上面贴着1月11日至2月10日的各项收支明细和工资发放表。大到几百元的灯带,小到2元的刷子,一项项都罗列清楚。\r\n\r\n小区自治之路一波三折\r\n\r\n治理好一个小区,并不比管理好一家企业轻松。军缘新城的自治之路,也经历了一波三折。\r\n\r\n军缘新城于2008年3月上房,至2018年年初,10年间换了6任物业公司,没有一家能够在这个小区顺顺当当干下去。\r\n\r\n“主要是形成了恶性循环。物业服务不好,业主不愿交物业费;物业收不上来费用,服务质量就更差。”周永才说,最差的一年,物业公司只收到了60户业主的物业费。\r\n\r\n亏损最严重的一家物业公司,欠下了9万多元的债务。每一任物业走的时候,小区都是垃圾遍地,物业办公室里甚至连灯泡都被拆走。最后,业主们只能向社区求助,2018年以后,没有物业公司愿意到军缘新城来服务了。\r\n\r\n业主自治成了军缘新城唯一的出路。马照明说,自治并不像想像的那么简单、美好。军缘新城先后有三班热心业主出马实行自治,都想改变小区面貌,也摔了不少跟头。\r\n\r\n第一次自治从2018年2月开始,坚持了5个月,但管理中出现一些问题,物业费迟迟收不上来,只得偃旗息鼓;在社区的组织下,第二次自治很快又开始了,但因为提出的两套方案业主不认可,也没能顺利收取物业费,前后只坚持了26天。\r\n\r\n\r\n业主委员会马照明主任向业主群内发布的就职声明\r\n\r\n两次自治失败,有些人觉得灰心了。这时,曾经担任过业委会成员的马照明,在大家的推选之下站了出来,愿意担心业委会主任。上任之初他就声明:不要任何薪水和奖励,一切工作站在广大业主利益方面出发,监督、督促物业搞好小区物业服务,维护业主利益。\r\n\r\n新的业委会班子共有11名成员,经过商讨,成立了自治办,自治办负责人是热心业主朱兆砥,一名退休老师,也是他带头站出来支持小区自治的。\r\n\r\n\r\n只有物业经理和保安保洁等人员能领工资,他们都是小区业主。\r\n\r\n朱兆砥聘任用了一名物业经理和保安、保洁、电工共10人,只有这11人是拿工资的,其余人全部是义务为小区服务。朱兆砥在内蒙还有一份工作,经常在群里“遥控”指挥,春节回来这几天每天泡在小区里,几乎没有休息过。\r\n\r\n成功秘诀是“财务公开+办实事”\r\n\r\n\r\n每个月公示一次账目\r\n\r\n总结小区自治成功的经验,马照明透露了两个秘诀:一是财务公开,二是给业主办实事。\r\n\r\n作为小区的“财务总监”,周永才说,他们财务小组一共有7名成员,里面有从事会计工作的,有拿到会计师职称的,有干过财务科长的,还有在高校里传授财会知识的教授,这些成员都由热心业主推荐,他挨家挨户上门动员做工作争取来的。\r\n\r\n每个月月底大家坐在一起集体进行财务审核,查看各项收入和支出有无问题,全部同意后由周永才签字,再进行公示。\r\n\r\n接手小区财务后,他们才知道,有些盈利以前的物业从来不公示也不会告知业主,比如小区的饮水机、捐衣箱、快递箱都是有租金的,虽然不高,但也积少成多。\r\n\r\n诸如此类的收入,哪怕有100元的进账,周永才也会公示。支出更要征求民意,春年前给物业人员每人发100元过节费,也是征得大家同意的。\r\n\r\n每项财务专项专用,物业费用于发放物业人员工资,小区租金和广告收入则用于小区公共建设。\r\n\r\n\r\n业主委员会财务都有专职人员进行监管,每个月的收支都张贴出来。\r\n\r\n“我们账上现在还剩余241580.9元。”年过六旬的周永才对小区账户上的每项数字都能脱口而出。他总是想方设法为小区省钱,购买路灯灯泡时为了享受团购价,他在群里发动有需求的业主一起购买,最终省下了150元。小区物业办公需要电脑,他主动把自己家闲置的电脑拿过来作为公用。业委会与物业用房也由5间压缩为4间,多出租一间房就多一点收入。\r\n\r\n说到给业主办实事,那肯定需要钱,军缘新城的这一届业委会上任时一穷二白,马照明甚至还垫付了4000多元的电梯维修费。怎么办?\r\n\r\n业委会想到了小门门口的一排公共用房,上房多年来,除去物业和业委会用房5间,其余全部被无端占用。顶着巨大的压力,他们请一些有威望的老人前去做工作,一遍遍动员、贴公告,前后花了两个月的时间终于把房子全部要回来并租了出去,14间房屋每年可收租金3.5万元。另外小区广告费的收入每年也有2.5万元左右。\r\n\r\n业委会和自治办一边整改小区,一边收取物业费,将物业费收取标准由每平米0.45元降至每平米0.40元,而且不另收公共能耗费,前三个月的物业费收缴率终于创了新高,达到90%以上,如果不是有140户空关户,收缴率会更高。\r\n\r\n社区放心了,业主满意了\r\n\r\n军缘新城新一轮自治从2018年9月10日开始,到现在5个多月了,工作进展十分顺利。\r\n\r\n道北社区盛莉主任感慨说,现在军缘新城自治工作确实已经走上正轨,不需要社区介入了,也没有业主前来投诉了。以前每次物业撤出和自治失败后,都是社区来兜底。\r\n\r\n这次自治,物业费收得低,保安和保洁用的都是小区居民,活干得好,业委会跟业主沟通也有方法,业主很满意,社区也放心了。\r\n\r\n在广场上保洁的陈衍玲说,\r\n\r\n她负责小区三栋楼房和半个广场的清洁工作,每天把三栋楼的公共区域都打扫一遍,广场早中晚都要打扫,一天下来没有清闲的时候,每个月工资1600元。\r\n\r\n但是打扫自己的小区很开心,就像在自己家里搞卫生一样,到处弄得干干净净的,得到业主的夸赞,心里很自豪。\r\n\r\n小区居民季女士对业委会竖起了大拇指:\r\n\r\n小区自治很成功,业主们都很感激业委会和自治办,他们个个都是无私奉献。如今的小区比很多有物业管理的小区都要干净。\r\n\r\n自从她5年前住进这里,喷泉水池就是个臭水沟,以前从来没见喷泉喷过水,现在水池变得那么干净,还养起了鱼。变化大太了。业委会为业主服务更热心,有一次她家突然停电了,马主任带着电工到她家维修,一会儿就把问题解决了。他们是实实在在给业主办事。\r\n\r\n马照明骄傲地说,前几天他看到小区里有个孩子不愿去爷爷奶奶家,原因竟然是这里晚上有漂亮的喷泉,比爷爷奶奶家好玩。\r\n\r\n据了解,军缘新城即将上马一个更好玩的项目:取消门禁卡,刷脸进小区,打造智慧小区。这个全市还是首家。\r\n\r\n对于小区将来的发展,军缘新城业委会已经制定了长远规划:重建广场上6座小亭子,更换所有单元门,美化小区入口的500米长廊,建成花园式小区。最近他们正在寻找广告商合作一起翻修入口长廊,还希望有爱好墙壁画的人士能帮他们美化墙面。', '1', '4', '2', '0', '1', '1', '68', '0', '1550996685', '1577765713', '0');
-INSERT INTO `tao_article` VALUES ('11', '数据查询链式操作', 'face[微笑] \r\n\r\n数据库提供的链式操作方法,可以有效的提高数据存取的代码清晰度和开发效率,并且支持所有的CURD操作(原生查询不支持链式操作)。\r\n\r\n使用也比较简单,假如我们现在要查询一个User表的满足状态为1的前10条记录,并希望按照用户的创建时间排序 ,代码如下:\r\n\r\n[pre]\r\nDb::table(\'think_user\')\r\n ->where(\'status\',1)\r\n ->order(\'create_time\')\r\n ->limit(10)\r\n ->select();\r\n[/pre]\r\n这里的where、order和limit方法就被称之为链式操作方法,除了select方法必须放到最后一个外(因为select方法并不是链式操作方法),链式操作的方法调用顺序没有先后,例如,下面的代码和上面的等效:\r\n\r\n[pre]\r\nDb::table(\'think_user\')\r\n ->order(\'create_time\')\r\n ->limit(10)\r\n ->where(\'status\',1)\r\n ->select();\r\n[/pre]\r\n其实不仅仅是查询方法可以使用连贯操作,包括所有的CURD方法都可以使用,例如:\r\n\r\n[pre]\r\nDb::table(\'think_user\')\r\n ->where(\'id\',1)\r\n ->field(\'id,name,email\')\r\n ->find(); \r\n \r\nDb::table(\'think_user\')\r\n ->where(\'status\',1)\r\n ->where(\'id\',1)\r\n ->delete();\r\n[/pre]', '1', '3', '1', '0', '0', '1', '53', '0', '1546860297', '1577773852', '0');
-INSERT INTO `tao_article` VALUES ('12', 'layui表单页面元素', '[quote]\r\n 在一个容器中设定 class=\"layui-form\" 来标识一个表单元素块,通过规范好的HTML结构及CSS类,来组装成各式各样的表单元素,并通过内置的 form模块 来完成各种交互。\r\n[/quote]\r\n[quote]\r\n 依赖加载模块:form (请注意:如果不加载form模块,select、checkbox、radio等将无法显示,并且无法使用form相关功能)\r\n[/quote]\r\n[pre]\r\n\r\n \r\n\r\n[/pre]\r\nUI的最终呈现得益于 Form模块 的全自动渲染,她将原本普通的诸如select、checkbox、radio等元素重置为你所看到的模样。或许你可以移步左侧导航的 内置模块 中的 表单 对其进行详细的了解。', '1', '2', '1', '0', '0', '1', '29', '0', '1546871441', '1577771850', '0');
-INSERT INTO `tao_article` VALUES ('13', 'thinkphp5.1开发规范', '[quote]\r\n 命名规范\r\n[/quote]\r\n\r\nThinkPHP5.1遵循PSR-2命名规范和PSR-4自动加载规范,并且注意如下规范:\r\n\r\n[quote]\r\n 目录和文件\r\n[/quote]\r\n\r\n目录使用小写+下划线;\r\n类库、函数文件统一以.php为后缀;\r\n类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;\r\n类文件采用驼峰法命名(首字母大写),其它文件采用小写+下划线命名;\r\n类名和类文件名保持一致,统一采用驼峰法命名(首字母大写);\r\n[quote]\r\n 函数和类、属性命名\r\n[/quote]\r\n\r\n类的命名采用驼峰法(首字母大写),例如 User、UserType,默认不需要添加后缀,例如UserController应该直接命名为User;\r\n函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 get_client_ip;\r\n方法的命名使用驼峰法(首字母小写),例如 getUserName;\r\n属性的命名使用驼峰法(首字母小写),例如 tableName、instance;\r\n特例:以双下划线__打头的函数或方法作为魔术方法,例如 __call 和 __autoload;\r\n[quote]\r\n 常量和配置\r\n[/quote]\r\n\r\n常量以大写字母和下划线命名,例如 APP_PATH;\r\n配置参数以小写字母和下划线命名,例如 url_route_on 和url_convert;\r\n环境变量定义使用大写字母和下划线命名,例如APP_DEBUG;\r\n[quote]\r\n 数据表和字段\r\n[/quote]\r\n\r\n数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user 表和 user_name字段,不建议使用驼峰和中文作为数据表及字段命名。\r\n请理解并尽量遵循以上命名规范,可以减少在开发过程中出现不必要的错误。', '1', '2', '1', '0', '0', '1', '51', '0', '1547436945', '1577772688', '0');
-INSERT INTO `tao_article` VALUES ('14', 'thinkphp5.1目录结构', '[pre]\r\nwww WEB部署目录(或者子目录)\r\n├─application 应用目录\r\n│ ├─common 公共模块目录(可以更改)\r\n│ ├─module_name 模块目录\r\n│ │ ├─common.php 模块函数文件\r\n│ │ ├─controller 控制器目录\r\n│ │ ├─model 模型目录\r\n│ │ ├─view 视图目录\r\n│ │ ├─config 配置目录\r\n│ │ └─ ... 更多类库目录\r\n│ │\r\n│ ├─command.php 命令行定义文件\r\n│ ├─common.php 公共函数文件\r\n│ └─tags.php 应用行为扩展定义文件\r\n│\r\n├─config 应用配置目录\r\n│ ├─module_name 模块配置目录\r\n│ │ ├─database.php 数据库配置\r\n│ │ ├─cache 缓存配置\r\n│ │ └─ ... \r\n│ │\r\n│ ├─app.php 应用配置\r\n│ ├─cache.php 缓存配置\r\n│ ├─cookie.php Cookie配置\r\n│ ├─database.php 数据库配置\r\n│ ├─log.php 日志配置\r\n│ ├─session.php Session配置\r\n│ ├─template.php 模板引擎配置\r\n│ └─trace.php Trace配置\r\n│\r\n├─route 路由定义目录\r\n│ ├─route.php 路由定义\r\n│ └─... 更多\r\n│\r\n├─public WEB目录(对外访问目录)\r\n│ ├─index.php 入口文件\r\n│ ├─router.php 快速测试文件\r\n│ └─.htaccess 用于apache的重写\r\n│\r\n├─thinkphp 框架系统目录\r\n│ ├─lang 语言文件目录\r\n│ ├─library 框架类库目录\r\n│ │ ├─think Think类库包目录\r\n│ │ └─traits 系统Trait目录\r\n│ │\r\n│ ├─tpl 系统模板目录\r\n│ ├─base.php 基础定义文件\r\n│ ├─convention.php 框架惯例配置文件\r\n│ ├─helper.php 助手函数文件\r\n│ └─logo.png 框架LOGO文件\r\n│\r\n├─extend 扩展类库目录\r\n├─runtime 应用的运行时目录(可写,可定制)\r\n├─vendor 第三方类库目录(Composer依赖库)\r\n├─build.php 自动生成定义文件(参考)\r\n├─composer.json composer 定义文件\r\n├─LICENSE.txt 授权说明文件\r\n├─README.md README 文件\r\n├─think 命令行入口文件\r\n[/pre]\r\n\r\n[quote]\r\n 在mac或者linux环境下面,注意需要设置runtime目录权限为777。\r\n[/quote]\r\n[quote]\r\n 由于5.1版本取消了系统路径的常量定义,因此系统的目录名称不可更改。如果需要更改应用目录或者入口文件位置,参考架构章节的入口文件部分。\r\n[/quote]\r\n', '1', '1', '1', '0', '0', '1', '239', '1', '1548325869', '1577772871', '0');
-INSERT INTO `tao_article` VALUES ('15', 'add添加文章有误', 'face[微笑] \r\n123\r\nimg[/uploads/20190310/4cc8e58de8f2765270e8475bf059ae1d.jpg] \r\n[hr]\r\n[pre]\r\njjjj\r\n[/pre]\r\n[quote]\r\n这样的风格,呵呵!\r\n[/quote]\r\n', '1', '1', '1', '0', '0', '1', '184', '0', '1551436861', '1555747615', '0');
-INSERT INTO `tao_article` VALUES ('16', '谁在使用thinkphp6.0版本', '新项目测试,更新为thinkphp6框架。', '1', '6', '1', '0', '0', '1', '12', '0', '1552182370', '1577769774', '0');
-INSERT INTO `tao_article` VALUES ('17', '2019.3.10创建TaoLer项目', '创建TaoLer项目\r\n使用Thinkphp为核心框架,\r\n前身TLBS,think5.1开发。\r\n', '1', '4', '1', '0', '0', '1', '32', '0', '1552183473', '1577769686', '0');
-INSERT INTO `tao_article` VALUES ('18', 'layui 2.5.5发布', '闲心:\r\n[quote]\r\n 之前大家在《2.5.x 问题集中收集》中反馈的内容,我已如数看到,谢谢大家的积极反馈!。其中有些被采纳在本次版本中,有些被规划到了 v2.6、v3.0 中。我深知之前反复的断更对 layui 带来的是怎样无可挽回的损失,然而 layui 终于还是不得不重新审视它所处的位置,行进的「前端河」分出了两条支流:一条是滚滚洪流,没有人能够逃脱它的流速,我们必须要在拥抱中重生;一条是波澜不惊,那是我们最初的方向,返璞归真、自诩的「经典」和不灭的执念。顺应潮流而不背离初心,layui 注定要同时流向这两条支流,虽千万里之行,亦愿独闯。\r\n[/quote]\r\n\r\n# v2.5.5(2019.09.10)\r\n● [优化] form 组件的 val() 方法,除了之前版本的赋值,目前还可支持取值\r\n● [新增] tree 组件的数据源参数 field,用于定义数据字段名\r\n● [优化] tree 组件的节点删除前的提示功能\r\n● [修复] tree 组件的数据源参数 checked 在父子节点同时设定时的异常问题\r\n● [优化] table 组件的 defaultToolbar 参数,可以扩展头部工具栏右侧图标按钮\r\n● [优化] table 组件的局部代码,减少重复的全局事件引发的卡顿问题\r\n● [修复] table 组件的合计行未按照对应列显示自定义模板的问题\r\n● [修复] table 组件导出数据时未包含合计行的问题\r\n● [修复] transfer 组件的右侧面板在使用搜索转移数据后,无法再获取右侧数据的问题\r\n● [新增] upload 组件的 progress 回调,用于监听文件的上传进度', '1', '4', '1', '1', '0', '1', '88', '0', '1568096396', '1577769315', '0');
-INSERT INTO `tao_article` VALUES ('19', 'php创建递归目录', '如果不存在,创建递归目录:\r\n[pre]\r\n/**\r\n* This function creates recursive directories if it doesn\'t already exist\r\n*\r\n* @param String The path that should be created\r\n* \r\n* @return void\r\n*/\r\npublic function create_dirs($path)\r\n{\r\n if (!is_dir($path))\r\n {\r\n $directory_path = \"\";\r\n $directories = explode(\"/\",$path);\r\n array_pop($directories);\r\n \r\n foreach($directories as $directory)\r\n {\r\n $directory_path .= $directory.\"/\";\r\n if (!is_dir($directory_path))\r\n {\r\n mkdir($directory_path);\r\n chmod($directory_path, 0777);\r\n }\r\n }\r\n }\r\n}\r\n[/pre]\r\n', '1', '2', '1', '0', '1', '1', '178', '0', '1559193830', '1577763199', '0');
-INSERT INTO `tao_article` VALUES ('22', '漂亮!2018江苏扶贫脱贫工作再报好成绩!', '2019年02月26日 21:50 新华报业网\r\n交汇点讯 以“绣花”功夫扎实推进精准扶贫精准脱贫,以决战决胜的信心和决心打赢打好脱贫攻坚战。2月26日下午,全省扶贫开发工作会议在南京召开。根据会议通报,2018年,全省人均收入6000元以下低收入农户共有267674户、675383人实现脱贫。全省有244个省定经济薄弱村集体经济收入超过18万元,扶贫工作交出亮眼“成绩单”。\r\nimg[http://n.sinaimg.cn/translate/516/w752h564/20190226/qNqo-htptaqe9309745.png] \r\n\r\n 家门口就能就业苏北5市脱贫工作成效显著\r\n\r\n 根据会议通报,苏北5市脱贫255046户、653051人,占全省脱贫人数的96.7%。苏中扬州市、泰州市脱贫12628户、22332人。苏北12个重点县(区)脱贫126548户、352630人,占苏北5市脱贫人数的54.0%。苏北5市脱贫236个村,占全省脱贫村总数的96.7%;苏中泰州市脱贫8个。苏北12个重点县(区)脱贫140个村,占苏北5市脱贫村的59.3%。\r\n\r\n 成绩单背后,是全省扶贫工作的扎实稳步推进。\r\n\r\n 以宿迁市为例,2018年该市实现12.8万建档立卡低收入人口、46个省定经济薄弱村脱贫达标,分别完成年度且标任务的126.7%、109.5%。宿迁市副市长光华介绍,该市打造优质稻米、标准化果蔬、园艺型花木、农牧循环型生猪、精深加工型肉禽、生态河蟹六大百亿级产业,带动近10万低收入人口增收;免费开展劳动力培训,累计实施“家门口就业”项目989个,带动低收入劳动力就业5.9万人,人均年增收1.32万元。\r\n\r\n “沙集模式”加入助力精准扶贫、精准脱贫\r\n\r\n 靶向发力,精准施策,才能让脱贫攻坚取得过硬成果。\r\n\r\n 2018年,睢宁县53个省定和47个县定经济薄弱村全部“摘帽”,12.14万低收入人口实现脱贫。在众多扶贫举措中,做好电商扶贫是该县扶贫工作的一大亮点。\r\n\r\n 睢宁县委副书记王敏说,睢宁县着力打造8大电商产业园区、设立600多个服务网点,全面拓宽电商就业渠道。设置1000万元电商专项扶持资金,强化扶贫小额贷款支持力度。依托全国首家地市级“淘宝大学”,实施“万人培训计划”,4年免费培训超过4万人,带动近5500名低收入户成功创业。\r\n\r\n 不仅如此,该县复制推广“沙集模式”,积极开展淘宝镇村创建,打造出东部简约家具、西南部小饰品、西北部特色农产品、中部传统店铺与网店结合的“四大电商片区”。2018年累计创成淘宝镇10个、淘宝村92个,淘宝村总量全省第一、全国第四,拥有网商3.4万户,带动从业人数超21万人,直接或间接帮助近2万人脱贫。\r\n\r\n 各类帮扶项目持续发力为扶贫增收提供保障\r\n\r\n 2018年,全省235家后方单位完成省定出资任务2.59亿元,到挂钩帮扶县(区)开展扶贫现场办公3769人次。省委驻县帮扶工作队全年协调投入资金12.55亿元,实施各类帮扶项目623个,所挂钩帮扶203个省定经济薄弱村通过不到一年的帮扶,已有140个村实现脱贫。\r\n\r\n 在淮安,省委驻涟水县帮扶工作队打造了“安东米富”品牌,整合资源,扶持经营主体,以“互联网+公司+基地+农户”的模式,打造新型农业产业化联合体。省委驻涟水县帮扶工作队队长孙国君介绍,目前已整合7个生产基地,对接15个家庭农场;“安东米富”从单一有机稻米,扩展到近二十几种产品,拥有草鸡蛋、有机大米、红薯粉丝等23个特色农产品,产业发展覆盖9个村,带动农户2066个。已经形成的长期稳定产销关系实现全年销售额超过1000万元,为村集体和农民持久增收提供了有力保障。\r\n\r\n 两地帮扶共赢为区域后续发展增添新动能\r\n\r\n 截至2018年底,全省低收入人口还剩余568883人未脱贫,97个省定经济薄弱村未达标。打赢打好脱贫攻坚战,求实求效,相生相长,也是一个有效措施。\r\n\r\n 南京市江宁区从1995年开始挂钩帮扶淮安市淮阴区。截至目前,帮扶淮阴区建设项目146个,累计投入资金5352万元;江宁开发区投入以奖代补资金8500万元。\r\n\r\n 2006年10月,江宁开发区与淮阴区携手共建淮阴工业园,随着一系列项目招引、转型升级举措的实施,这一园区在全省45家南北共建园区中,连续七年被评为共建园区先进单位;成功引进了众创空间合伙人项目,2018年9月获批省级众创空间称号,是淮安市唯一获批的省级众创空间。\r\n\r\n 南京江宁区委常委、常务副区长李滨说,目前,在众创空间注册成立企业16家,引进创业团队13个。李德发院士、王国栋院士在园区企业澳华农牧、振达钢管设立院士工作站;淮阴工学院、淮阴师范学院等高校和科研院所,常年在园区开展“百名博士帮百企”等活动,为区域后续发展增添了新动能。\r\n\r\n 【新闻延伸】\r\n\r\n 江苏全省低收入人口大病专项救治病种数增至30种\r\n\r\n 交汇点讯全省因病致贫农户从2016年的40.3万户下降到目前的14.2万户。这是记者从2月26日下午举办的全省扶贫开发工作会议上获得的消息。\r\n\r\n 据省卫生健康委巡视员何小鹏介绍,全省低收入人口治疗总费用个人自付比例由2016年的50%左右下降至2018年底的30%左右;大病专项救治病种数由20种增至30种;全省确定定点医院412家,救治大病患者7.47万人,减免医疗费用超过3.21亿元。\r\n\r\n 交汇点见习记者 胡安静', '1', '4', '3', '0', '1', '0', '4', '0', '1551996685', '1577767438', '0');
-INSERT INTO `tao_article` VALUES ('23', 'ThinkPHP6.0版本发布', '[quote]\r\n 2019 年 10 月 24 日 发布\r\n官方历时一年多倾力打造的ThinkPHP6.0版本正式发布,该版本基于精简核心和统一用法两大原则在5.1的基础上对底层架构做了进一步的优化改进,并更加规范化。\r\n\r\n由于引入了一些新特性,ThinkPHP6.0运行环境要求PHP7.1+(推荐PHP7.3+),不支持5.1的无缝升级\r\n[/quote]\r\n\r\n主要特性:\r\n采用PHP7强类型(严格模式)\r\n支持更多的PSR规范\r\n多应用支持\r\nORM组件独立\r\n改进的中间件机制\r\n核心架构服务化\r\n全新的事件系统\r\n容器功能增强\r\n模板引擎组件独立\r\n内部功能中间件化\r\nSESSION机制改进\r\n缓存及日志支持多通道\r\n引入Filesystem组件\r\n对Swoole以及协程支持改进\r\n对IDE更加友好\r\n统一和精简大量用法\r\n强类型及严格模式\r\n在主流框架里面,ThinkPHP6.0是最先采用PHP7严格模式的。所有的核心文件都是开启了严格模式的类型约束,因此有任何的变量类型不符的情况都会抛出异常,有利于规范代码中的变量类型和提前发现问题隐患。\r\n\r\n多应用模式\r\n新版框架提供了多应用模式支持,默认安装为单应用,你只需要安装一个多应用模式扩展就可以更轻松的部署多个应用而不需要重复安装依赖组件,每个应用都支持独立入口访问以及域名绑定,也可以使用一个入口文件实现自动多应用部署。并且自动多应用模式支持智能识别,对于不存在的应用访问会自动切换到单应用模式进行匹配。同时支持应用的映射和禁止访问机制。\r\n\r\n多应用模式的设计可以让开发更加模块化,因为每个应用的配置、路由及视图都可以纳入应用目录,所以更方便应用的模块化,甚至引入composer应用。\r\n\r\n容器和服务\r\n新版的容器支持PSR-11规范,容器类的功能特性主要包括:\r\n\r\n绑定类、对象实例、接口到容器\r\n创建类的实例(存在则直接获取)\r\n容器对象绑定别名\r\n支持容器对象(实例化)回调\r\n获取容器对象实例\r\n删除容器中的对象实例\r\n提供依赖注入和门面实现支持\r\n调用容器对象实例的方法(或者闭包)\r\n提供容器对象的ArrayAccess支持\r\n事件系统\r\n新版的事件系统可以看成是5.1版本行为系统的升级版,事件系统相比行为系统强大的地方在于事件本身可以是一个类,并且可以更好的支持事件订阅者。支持事件智能订阅,通过反射机制来识别当前订阅者要订阅的事件。\r\n\r\n事件相比较中间件的优势是事件比中间件更加精准定位(或者说粒度更细),并且更适合一些业务场景的扩展。例如,我们通常会遇到用户注册或者登录后需要做一系列操作,通过事件系统可以做到不侵入原有代码完成登录的操作扩展,降低系统的耦合性的同时,也降低了BUG的可能性。\r\n\r\n中间件支持完善\r\n中间件分为全局中间件、应用中间件、路由中间件和控制器中间件,这四个中间件分组完全独立执行,但同一个分组内的中间件不会重复执行。中间件方法执行依赖注入,以及请求结束的回调机制。\r\n\r\n核心很多功能都是基于中间件来完成,包括多应用模式也是采用中间件机制执行。\r\n\r\n路由和请求\r\n新版的路由精简了很多不必要的功能,路由定义也更加规范化和语义化,并且路由定义文件支持纳入应用目录,便于模块化开发。路由注解功能独立为think-annotation库,并且使用更加规范,支持IDE提示。\r\n\r\n新版的请求对象更易扩展,系统默认安装后提供了一个app\\Request类,你可以在应用中直接自定义请求对象,增加必要的属性和方法。但不会影响对think\\Request的依赖注入和门面调用。\r\n\r\n系统服务\r\n由于核心框架采用了服务化设计,你可以在你的扩展或者应用中注册需要的服务。在系统服务中注册一个对象到容器,或者对某些对象进行相关的依赖注入。由于系统服务的执行优先级问题,可以确保相关组件在执行的时候已经完成相关依赖注入。一个服务类通常包括注册(register)和启动(boot)方法,用于不同阶段的执行。\r\n\r\nORM组件化\r\n内置的ORM功能已经完全独立为think-orm组件,可以独立使用,ThinkPHP6.0默认依赖安装了该组件,保持用法不变的同时,增强了查询功能。\r\n\r\n模板引擎组件化\r\n核心不再内置任何模板引擎,仅提供PHP模板支持,官方的模板引擎已经独立为think-template模板引擎,并默认依赖安装。你可以更方便的使用第三方模板引擎。\r\n\r\n日志系统\r\n日志支持多通道、并统一命令行和WEB日志格式,主要包括:\r\n\r\n日志增加多通道支持,可以同时或者切换写入多个通道\r\nWEB和CLI的日志记录格式统一,并支持日志格式化\r\n对JSON日志格式的改进\r\n支持日志写入事件\r\nSession机制改进\r\n6.0版本的Session机制完全重写了,并且不再使用PHP内置的Session机制,全新实现一套Session机制,可以更好的支持Swoole/Workerman等环境。\r\n\r\n所以不再支持PHP内置的session_*** 系列函数,也不再支持使用$_SESSION读取session数据,你必须通过框架提供的Session类或者门面来操作,Request类也封装了Session数据的读取。\r\n\r\nSession支持跨应用读取和自定义序列化机制,默认采用文件类型记录Session数据,由于共用了缓存机制,你还可以使用任何支持的缓存类型来记录Session数据。\r\n\r\n引入Filesystem组件\r\n新版增加了Filesystem类库对文件系统强化了支持,而且可以很方便的支持各种云存储,包括阿里云和七牛云。\r\n\r\nSwoole扩展改进\r\nSwoole扩展同时支持HTTP和Socket服务,支持数据库和缓存的连接池功能,以及RPC功能。\r\n\r\n调试工具更新\r\n原来内置的页面Trace调试工具已经更改为扩展的方式,改成安装think-trace扩展,如果通过composer安装应用的话,默认会安装topthink/think-trace扩展。\r\n\r\n基本用法和之前保持不变,但无需额外配置,默认使用html方式显示,同时仍然支持浏览器控制台显示,并仅在调试模式下有效。\r\n\r\n同时增加了一个基于debugbar的调试扩展think-debugbar,需要单独安装后才能使用。\r\n\r\ncomposer require topthink/think-debugbar\r\n统一和精简大量用法\r\n新版对很多用法进行了精简和统一,尽可能避免在开发过程中规范不一的困惑。', '1', '4', '3', '1', '0', '1', '13', '0', '1571986396', '1552186396', '0');
-INSERT INTO `tao_article` VALUES ('24', '辞旧迎新 ,回顾2019,展望2020!', '[quote]\r\n 2019,马上就要永远的留在了历史长河中,2020,在期望中到来。\r\n[/quote]\r\n\r\n要总结回顾一下二零一九年,也要展望规划新的二零二零。\r\n过去的这一年里,忙忙碌碌,喜剧哀乐各种滋味都有。丰富多彩,缤纷灿烂。这其中有学习进步,也有懒惰懈怠。\r\n但,总结一句话,2019年是不后悔的,是充满挑战的,是美好的。\r\n新的一年里,会在一点一滴中充实壮大自己。弥补不足,改变不好的,抓住美好的。', '1', '2', '1', '1', '0', '1', '4', '0', '1577775729', '1577775740', '0');
-
--- ----------------------------
--- Table structure for tao_auth_group
--- ----------------------------
-DROP TABLE IF EXISTS `tao_auth_group`;
-CREATE TABLE `tao_auth_group` (
- `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
- `title` varchar(100) NOT NULL DEFAULT '',
- `rules` char(255) NOT NULL DEFAULT '',
- `limits` varchar(255) NOT NULL COMMENT '权限范围',
- `descr` varchar(255) NOT NULL COMMENT '权限描述',
- `status` tinyint(1) NOT NULL DEFAULT '1',
- `create_time` int(11) NOT NULL COMMENT '创建时间',
- `update_time` int(11) NOT NULL COMMENT '更新时间',
- `delete_time` int(11) NOT NULL COMMENT '删除时间',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Records of tao_auth_group
--- ----------------------------
-INSERT INTO `tao_auth_group` VALUES ('1', '超级管理员', '4,14,20,29,30,31,32,33,34,3,12,13,5,15,21,22,16,24,26,25,17,27,28,23,1,6,7,8,9,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,53,2,10,51,11,18,52,54,55,19,56,57,58,59,60', '管理所有的管理员', '所有权限', '1', '0', '0', '0');
-INSERT INTO `tao_auth_group` VALUES ('2', '管理员', '4,14,20,29,30,31,32,33,34,3,12,13,2,10,51,11,18,52,54,55,53', '所有列表的管理', '普通管理员', '1', '0', '0', '0');
-INSERT INTO `tao_auth_group` VALUES ('3', '帖子管理', '3,12,13,5,15,21,22,16,24,26,25,17,27,28,23', '负责帖子的审核', '文章专员', '1', '0', '0', '0');
-
--- ----------------------------
--- Table structure for tao_auth_group_access
--- ----------------------------
-DROP TABLE IF EXISTS `tao_auth_group_access`;
-CREATE TABLE `tao_auth_group_access` (
- `uid` mediumint(8) unsigned NOT NULL,
- `group_id` mediumint(8) unsigned NOT NULL,
- UNIQUE KEY `uid_group_id` (`uid`,`group_id`),
- KEY `uid` (`uid`),
- KEY `group_id` (`group_id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Records of tao_auth_group_access
--- ----------------------------
-INSERT INTO `tao_auth_group_access` VALUES ('1', '1');
-INSERT INTO `tao_auth_group_access` VALUES ('2', '2');
-INSERT INTO `tao_auth_group_access` VALUES ('3', '3');
-INSERT INTO `tao_auth_group_access` VALUES ('4', '3');
-
--- ----------------------------
--- Table structure for tao_auth_rule
--- ----------------------------
-DROP TABLE IF EXISTS `tao_auth_rule`;
-CREATE TABLE `tao_auth_rule` (
- `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
- `name` char(80) NOT NULL DEFAULT '',
- `title` char(20) NOT NULL DEFAULT '',
- `type` tinyint(1) unsigned NOT NULL DEFAULT '1',
- `status` enum('1','0') NOT NULL DEFAULT '1' COMMENT '菜单1启用,0禁用',
- `pid` smallint(5) NOT NULL DEFAULT '0' COMMENT '父级ID',
- `level` tinyint(1) NOT NULL DEFAULT '1' COMMENT '菜单层级',
- `icon` varchar(50) NOT NULL COMMENT '图标',
- `ishidden` enum('1','0') NOT NULL DEFAULT '1' COMMENT '0隐藏,1显示',
- `sort` tinyint(4) NOT NULL COMMENT '排序',
- `condition` char(100) NOT NULL DEFAULT '',
- `create_time` int(11) NOT NULL COMMENT '创建时间',
- `update_time` int(11) NOT NULL COMMENT '更新时间',
- `delete_time` int(11) NOT NULL COMMENT '删除时间',
- PRIMARY KEY (`id`),
- UNIQUE KEY `name` (`name`)
-) ENGINE=MyISAM AUTO_INCREMENT=61 DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Records of tao_auth_rule
--- ----------------------------
-INSERT INTO `tao_auth_rule` VALUES ('1', 'admin', '管理', '1', '1', '0', '0', 'layui-icon-user', '1', '3', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('2', 'set', '设置', '1', '1', '0', '0', 'layui-icon-set', '1', '4', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('3', 'administrator', '账户', '1', '1', '0', '0', 'layui-icon-username', '1', '5', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('4', 'app', '应用', '1', '1', '0', '0', 'layui-icon-app', '0', '2', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('5', 'article', '内容', '1', '1', '0', '0', 'layui-icon-read', '1', '1', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('6', 'admin/user/list', '用户管理', '1', '1', '1', '1', '', '1', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('7', 'admin/admin/adminlist', '管理员', '1', '1', '1', '1', '', '1', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('8', 'admin/authgroup/list', '角色管理', '1', '1', '1', '1', '', '1', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('9', 'admin/Authrule/index', '权限管理', '1', '1', '1', '1', '', '1', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('10', 'admin/set/website', '网站设置', '1', '1', '2', '1', '', '1', '1', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('11', 'admin/set/email', '邮件服务', '1', '1', '2', '1', '', '1', '3', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('12', 'admin/admin/info', '基本资料', '1', '1', '3', '1', '', '1', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('13', 'admin/admin/repass', '修改密码', '1', '1', '3', '1', '', '1', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('15', 'admin/forum/list', '帖子列表', '1', '1', '5', '1', '', '1', '1', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('16', 'admin/forum/tags', '分类管理', '1', '1', '5', '1', '', '1', '4', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('17', 'admin/forum/replys', '评论管理', '1', '1', '5', '1', '', '0', '8', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('18', 'admin/slider/index', '广告投放', '1', '1', '2', '1', '', '1', '4', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('19', 'admin/Upgrade/index', '系统升级', '1', '1', '2', '1', '', '1', '8', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('21', 'admin/forum/edit', '编辑帖子', '1', '1', '5', '1', '', '0', '2', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('22', 'admin/forum/del', '删除帖子', '1', '1', '5', '1', '', '0', '3', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('23', 'admin/forum/check', '审核帖子', '1', '1', '5', '1', '', '0', '11', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('24', 'admin/forum/addtags', '添加分类', '1', '1', '5', '1', '', '0', '5', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('25', 'admin/forum/tagsform', '编辑分类', '1', '1', '5', '1', '', '0', '7', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('26', 'admin/forum/tagsdelete', '删除分类', '1', '1', '5', '1', '', '0', '6', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('27', 'admin/forum/commedit', '编辑评论', '1', '1', '5', '1', '', '0', '9', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('28', 'admin/forum/commdel', '删除评论', '1', '1', '5', '1', '', '0', '10', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('35', 'admin/user/userform', '添加用户', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('36', 'admin/user/useredit', '编辑用户', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('37', 'admin/user/delete', '删除用户', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('38', 'admin/user/check', '审核用户', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('39', 'admin/admin/addform', '添加管理员', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('40', 'admin/admin/addedit', '编辑管理员', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('41', 'admin/admin/delete', '删除管理员', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('42', 'admin/admin/addcheck', '审核管理员', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('43', 'admin/authgroup/roleadd', '添加角色', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('44', 'admin/authgroup/roleedit', '编辑角色', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('45', 'admin/authgroup/delete', '删除角色', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('46', 'admin/authrule/add', '添加权限', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('47', 'admin/authrule/edit', '编辑权限', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('48', 'admin/authrule/delete', '删除权限', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('49', 'admin/authrule/check', '审核权限', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('50', 'admin/authrule/menushow', '菜单权限', '1', '1', '1', '1', '', '0', '0', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('51', 'admin/set/upload', '上传logo', '1', '1', '2', '1', '', '0', '2', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('52', 'admin/slider/add', '添加广告', '1', '1', '2', '1', '', '0', '5', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('53', 'admin/slider/edit', '编辑广告', '1', '1', '2', '1', '', '0', '14', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('54', 'admin/slider/delete', '删除广告', '1', '1', '2', '1', '', '0', '6', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('55', 'admin/slider/uoloadimg', '上传广告', '1', '1', '2', '1', '', '0', '7', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('56', 'admin/upgrade/key', '设置key', '1', '1', '2', '1', '', '0', '9', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('57', 'admin/upgrade/keyedit', '修改key', '1', '1', '2', '1', '', '0', '10', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('58', 'admin/upgrade/check', '升级检测', '1', '1', '2', '1', '', '0', '11', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('59', 'admin/upgrade/upload', '自动升级', '1', '1', '2', '1', '', '0', '12', '', '0', '0', '0');
-INSERT INTO `tao_auth_rule` VALUES ('60', 'admin/upgrade/uploadzip', '上传升级包', '1', '1', '2', '1', '', '0', '13', '', '0', '0', '0');
-
--- ----------------------------
--- Table structure for tao_cate
--- ----------------------------
-DROP TABLE IF EXISTS `tao_cate`;
-CREATE TABLE `tao_cate` (
- `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
- `catename` varchar(20) NOT NULL COMMENT '导航名称',
- `ename` varchar(20) NOT NULL COMMENT '分类别名',
- `sort` int(11) NOT NULL COMMENT '排序',
- `status` enum('0','1') NOT NULL DEFAULT '1' COMMENT '状态1启用0禁用',
- `type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0帖子1文章',
- `create_time` int(11) NOT NULL COMMENT '创建时间',
- `update_time` int(11) NOT NULL COMMENT '更新时间',
- `delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Records of tao_cate
--- ----------------------------
-INSERT INTO `tao_cate` VALUES ('1', '提问', 'ask', '1', '1', '0', '0', '0', '0');
-INSERT INTO `tao_cate` VALUES ('2', '分享', 'share', '2', '1', '0', '0', '0', '0');
-INSERT INTO `tao_cate` VALUES ('3', '讨论', 'talk', '3', '1', '0', '0', '0', '0');
-INSERT INTO `tao_cate` VALUES ('4', '新闻', 'news', '5', '1', '0', '0', '0', '0');
-INSERT INTO `tao_cate` VALUES ('5', '咸鱼', 'fish', '7', '1', '0', '0', '0', '0');
-INSERT INTO `tao_cate` VALUES ('6', '求助', 'help', '6', '1', '0', '0', '0', '0');
-INSERT INTO `tao_cate` VALUES ('7', '工作', 'work', '5', '1', '0', '0', '0', '0');
-
--- ----------------------------
--- Table structure for tao_collection
--- ----------------------------
-DROP TABLE IF EXISTS `tao_collection`;
-CREATE TABLE `tao_collection` (
- `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
- `article_id` int(11) NOT NULL COMMENT '文章id',
- `user_id` int(11) NOT NULL COMMENT '用户id',
- `create_time` int(11) NOT NULL COMMENT '创建时间',
- `delete_time` int(11) NOT NULL COMMENT '删除时间',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=149 DEFAULT CHARSET=utf8 COMMENT='文章收藏表';
-
--- ----------------------------
--- Records of tao_collection
--- ----------------------------
-INSERT INTO `tao_collection` VALUES ('141', '11', '1', '1567586177', '0');
-INSERT INTO `tao_collection` VALUES ('144', '6', '1', '1567586767', '0');
-INSERT INTO `tao_collection` VALUES ('143', '4', '1', '1567586749', '0');
-INSERT INTO `tao_collection` VALUES ('137', '13', '1', '1555745134', '0');
-INSERT INTO `tao_collection` VALUES ('138', '10', '1', '1555745142', '0');
-INSERT INTO `tao_collection` VALUES ('142', '1', '1', '1567586744', '0');
-INSERT INTO `tao_collection` VALUES ('140', '15', '1', '1567586167', '0');
-INSERT INTO `tao_collection` VALUES ('136', '14', '1', '1555745109', '0');
-INSERT INTO `tao_collection` VALUES ('145', '17', '1', '1567586778', '0');
-INSERT INTO `tao_collection` VALUES ('146', '19', '1', '1567586785', '0');
-INSERT INTO `tao_collection` VALUES ('147', '12', '1', '1567586802', '0');
-INSERT INTO `tao_collection` VALUES ('148', '8', '1', '1577762980', '0');
-
--- ----------------------------
--- Table structure for tao_comment
--- ----------------------------
-DROP TABLE IF EXISTS `tao_comment`;
-CREATE TABLE `tao_comment` (
- `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '评论id',
- `content` text NOT NULL COMMENT '评论',
- `article_id` int(11) NOT NULL COMMENT '文章id',
- `user_id` int(11) NOT NULL COMMENT '评论用户',
- `zan` tinyint(4) NOT NULL COMMENT '赞',
- `cai` enum('1','0') NOT NULL DEFAULT '0' COMMENT '0求解1采纳',
- `status` enum('0','1') NOT NULL DEFAULT '1' COMMENT '1通过0禁止',
- `create_time` int(11) NOT NULL COMMENT '创建时间',
- `update_time` int(11) NOT NULL COMMENT '更新时间',
- `delete_time` int(11) NOT NULL COMMENT '删除时间',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=77 DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Records of tao_comment
--- ----------------------------
-INSERT INTO `tao_comment` VALUES ('1', '好呀', '9', '1', '0', '0', '1', '2019', '2019', '0');
-INSERT INTO `tao_comment` VALUES ('2', 'aieok.com', '4', '1', '0', '0', '1', '2019', '2019', '0');
-INSERT INTO `tao_comment` VALUES ('3', 'http://www.aieok.com', '10', '2', '0', '0', '1', '2019', '1555127897', '0');
-INSERT INTO `tao_comment` VALUES ('4', '数据库提供的链式', '11', '2', '0', '0', '1', '2019', '2019', '0');
-INSERT INTO `tao_comment` VALUES ('5', 'tp5讨论2019讨论2019讨论2019', '12', '1', '0', '0', '1', '2019', '2019', '0');
-INSERT INTO `tao_comment` VALUES ('24', 'face[微笑] \r\n1232 a(http://www.baidu.com)[http://www.baidu.com] \r\n[pre]\r\ncode\r\najax\r\nphp\r\n[/pre]\r\n[hr]', '14', '1', '0', '0', '1', '1551430267', '1551430267', '0');
-INSERT INTO `tao_comment` VALUES ('23', '哈哈', '14', '1', '0', '0', '1', '1551429718', '1555128388', '0');
-INSERT INTO `tao_comment` VALUES ('22', '美女哦', '14', '1', '0', '0', '1', '1551429702', '1555128391', '0');
-INSERT INTO `tao_comment` VALUES ('20', 'face[嘻嘻] ', '9', '1', '0', '0', '1', '1551413067', '1551413067', '0');
-INSERT INTO `tao_comment` VALUES ('25', '11', '6', '1', '0', '0', '1', '1551432002', '1555123067', '0');
-INSERT INTO `tao_comment` VALUES ('26', '22', '6', '1', '0', '0', '1', '1551433089', '1551433089', '0');
-INSERT INTO `tao_comment` VALUES ('27', 'img[https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=4025342085,1549348620&fm=27&gp=0.jpg] ', '3', '1', '0', '0', '1', '1551439637', '1551439637', '0');
-INSERT INTO `tao_comment` VALUES ('36', 'face[微笑] ', '15', '1', '0', '0', '1', '1551584959', '1551584959', '0');
-INSERT INTO `tao_comment` VALUES ('47', 'face[哈哈] ', '17', '1', '0', '0', '1', '1552183493', '1552183493', '0');
-INSERT INTO `tao_comment` VALUES ('48', 'face[嘻嘻] ', '17', '1', '0', '0', '1', '1552183510', '1552183510', '0');
-INSERT INTO `tao_comment` VALUES ('39', 'face[微笑] ', '13', '1', '0', '0', '1', '1551618056', '1551618056', '0');
-INSERT INTO `tao_comment` VALUES ('40', '这是二个提问', '5', '1', '0', '0', '1', '1551878452', '1551878452', '0');
-INSERT INTO `tao_comment` VALUES ('41', '这是二个提问', '15', '1', '0', '0', '1', '1551878500', '1555131321', '0');
-INSERT INTO `tao_comment` VALUES ('43', 'face[微笑] ', '3', '1', '0', '0', '1', '1552178897', '1552178897', '0');
-INSERT INTO `tao_comment` VALUES ('44', 'img[/uploads/20190310/1fdcfad1c19010df4d5f83a8e7156af1.jpg] ', '3', '1', '0', '0', '1', '1552178930', '1552178930', '0');
-INSERT INTO `tao_comment` VALUES ('45', 'face[微笑] ', '14', '1', '0', '0', '1', '1552179991', '1552179991', '0');
-INSERT INTO `tao_comment` VALUES ('46', 'img[/uploads/20190310/4d5120c20e9b893c108da64e5c61e97a.jpg] ', '15', '1', '0', '0', '1', '1552181616', '1555131303', '0');
-INSERT INTO `tao_comment` VALUES ('49', 'face[嘻嘻] ', '17', '1', '0', '0', '1', '1552185406', '1552185406', '0');
-INSERT INTO `tao_comment` VALUES ('50', 'face[微笑] ', '18', '1', '0', '0', '1', '1568097396', '1552186489', '0');
-INSERT INTO `tao_comment` VALUES ('66', 'face[嘻嘻] ', '3', '1', '0', '0', '1', '1552193197', '1552193197', '0');
-INSERT INTO `tao_comment` VALUES ('67', 'face[微笑] face[嘻嘻] face[哈哈] ', '19', '1', '0', '0', '1', '1559194830', '1555120988', '0');
-INSERT INTO `tao_comment` VALUES ('68', 'face[微笑] ', '15', '1', '0', '0', '1', '1552195005', '1555131299', '0');
-INSERT INTO `tao_comment` VALUES ('69', 'img[/uploads/20190331/8d6af3839efe2a518d0c1aa026993bb5.jpg] ', '2', '1', '0', '0', '1', '1553991079', '1553991079', '0');
-INSERT INTO `tao_comment` VALUES ('70', '@管理员 face[微笑] ', '2', '1', '0', '0', '1', '1553991095', '1553991095', '0');
-INSERT INTO `tao_comment` VALUES ('71', 'face[微笑] face[嘻嘻] 非常高兴工', '19', '1', '0', '0', '1', '1559203830', '1555121920', '0');
-INSERT INTO `tao_comment` VALUES ('73', 'face[微笑] ', '11', '1', '0', '0', '1', '1555123035', '1555123035', '0');
-INSERT INTO `tao_comment` VALUES ('74', 'face[给力] ', '14', '2', '0', '1', '1', '1555124049', '1555128398', '0');
-INSERT INTO `tao_comment` VALUES ('75', 'face[微笑] ', '8', '2', '0', '0', '1', '1555124079', '1555127399', '0');
-INSERT INTO `tao_comment` VALUES ('76', 'face[微笑] 好美呀,', '7', '3', '0', '0', '1', '1555131857', '1555131857', '0');
-
--- ----------------------------
--- Table structure for tao_mail_server
--- ----------------------------
-DROP TABLE IF EXISTS `tao_mail_server`;
-CREATE TABLE `tao_mail_server` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `mail` varchar(50) NOT NULL COMMENT '邮箱设置',
- `host` varchar(50) NOT NULL COMMENT '邮箱服务地址',
- `port` tinyint(2) NOT NULL COMMENT '邮箱端口',
- `nickname` varchar(20) NOT NULL DEFAULT '' COMMENT '昵称',
- `password` varchar(16) NOT NULL COMMENT '邮箱密码',
- `create_time` int(11) NOT NULL COMMENT '创建时间',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Records of tao_mail_server
--- ----------------------------
-INSERT INTO `tao_mail_server` VALUES ('1', 'xxx@aliyun.com', 'smtp.aliyun.com', '25', '', '', '0');
-
--- ----------------------------
--- Table structure for tao_slider
--- ----------------------------
-DROP TABLE IF EXISTS `tao_slider`;
-CREATE TABLE `tao_slider` (
- `id` int(2) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
- `slid_name` varchar(30) NOT NULL COMMENT '幻灯名',
- `slid_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '类型',
- `slid_img` varchar(70) NOT NULL COMMENT '幻灯图片地址',
- `slid_href` varchar(70) NOT NULL COMMENT '链接',
- `slid_color` varchar(10) NOT NULL COMMENT '广告块颜色',
- `slid_start` int(11) NOT NULL COMMENT '开始时间',
- `slid_over` int(11) NOT NULL COMMENT '结束时间',
- `slid_status` enum('1','0') NOT NULL DEFAULT '1' COMMENT '1投放0仓库',
- `create_time` int(11) NOT NULL COMMENT '创建时间',
- `update_time` int(11) NOT NULL COMMENT '更新时间',
- `delete_time` int(11) NOT NULL COMMENT '删除时间',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Records of tao_slider
--- ----------------------------
-INSERT INTO `tao_slider` VALUES ('1', 'CODING', '1', '/storage/slider/F1.jpg', '#', '', '1574870400', '1575043200', '1', '0', '0', '0');
-INSERT INTO `tao_slider` VALUES ('2', '无人机', '1', '/storage/slider/F2.jpg', 'www.taobao.com', '', '-28800', '1606665600', '1', '0', '0', '0');
-INSERT INTO `tao_slider` VALUES ('3', '通用右栏底部广告', '2', '/storage/slider/20191210/6e6486b81a5b07be4425b676513b0334.jpg', 'http://www.aieok.com', '', '1571155200', '1609344000', '1', '0', '0', '0');
-INSERT INTO `tao_slider` VALUES ('4', '科技', '3', '/storage/slider/20191210/d35a49fda5839d4b27f65076fb57b7f2.jpg', '4', '', '1575907200', '1609344000', '1', '0', '0', '0');
-INSERT INTO `tao_slider` VALUES ('5', '科学', '4', '/storage/slider/20191210/e87f15527f32e690538671753010fd00.jpg', '大', '', '-28800', '1609344000', '1', '0', '0', '0');
-INSERT INTO `tao_slider` VALUES ('6', '更快更好的PHP快速开发框架', '5', '', 'http://www.thinkphp.cn', '', '1577894400', '1640880000', '1', '0', '0', '0');
-INSERT INTO `tao_slider` VALUES ('7', 'Layui前端框架', '6', '', 'https://www.layui.com', '', '1577894400', '1612022400', '1', '0', '0', '0');
-INSERT INTO `tao_slider` VALUES ('8', 'ThinkPHP框架', '6', '', 'http://www.thinkphp.cn/', '', '1577894400', '1612022400', '1', '0', '0', '0');
-INSERT INTO `tao_slider` VALUES ('9', 'Taoler社区系统', '6', '', 'http://www.aieok.com', '', '1577894400', '2147483647', '1', '0', '0', '0');
-
--- ----------------------------
--- Table structure for tao_system
--- ----------------------------
-DROP TABLE IF EXISTS `tao_system`;
-CREATE TABLE `tao_system` (
- `id` tinyint(2) NOT NULL AUTO_INCREMENT COMMENT '主键',
- `webname` varchar(20) NOT NULL COMMENT '网站名称',
- `webtitle` varchar(30) NOT NULL,
- `domain` varchar(50) NOT NULL,
- `logo` varchar(70) NOT NULL COMMENT '网站logo',
- `cache` tinyint(5) NOT NULL DEFAULT '0' COMMENT '缓存时间分钟',
- `upsize` int(5) NOT NULL DEFAULT '0' COMMENT '上传文件大小KB',
- `uptype` varchar(50) NOT NULL DEFAULT '' COMMENT '上传文件类型',
- `copyright` varchar(80) NOT NULL COMMENT '版权',
- `keywords` tinytext NOT NULL COMMENT '网站关键字',
- `descript` tinytext NOT NULL COMMENT '网站描述',
- `is_open` tinyint(4) NOT NULL COMMENT '是否开启站点1开启0关闭',
- `is_comment` tinyint(4) NOT NULL COMMENT '是否开启评论1开启0关闭',
- `is_reg` tinyint(4) NOT NULL COMMENT '是否开放注册1开启0禁止',
- `icp` varchar(50) NOT NULL COMMENT '备案',
- `blackname` varchar(255) NOT NULL COMMENT '注册黑名单',
- `sys_version_num` varchar(5) NOT NULL COMMENT '系统版本',
- `key` varchar(60) DEFAULT NULL COMMENT 'key',
- `base_url` varchar(50) NOT NULL DEFAULT '',
- `upcheck_url` varchar(255) NOT NULL COMMENT '版本检测',
- `upgrade_url` varchar(255) NOT NULL COMMENT '升级地址',
- `create_time` int(11) NOT NULL COMMENT '创建时间',
- `update_time` int(11) NOT NULL COMMENT '更新时间',
- `delete_time` int(11) NOT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='系统配置表';
-
--- ----------------------------
--- Records of tao_system
--- ----------------------------
-INSERT INTO `tao_system` VALUES ('1', 'TaoLer社区', '轻论坛系统', '', '/storage/logo/20191024/a5671b2c16a37ec8587f31989dab1177.png', '10', '2048', 'png|gif|jpg|jpeg|zip|rar', 'aieok.com 版权所有', 'TaoLer,轻社区系统,bbs,论坛,Thinkphp6,layui,fly模板,', '这是一个Taoler轻社区论坛系统', '1', '1', '1', '0.0.0.0', '管理员|admin|审核员|超级|垃圾', '1.0.0', '', 'http://www.aieok.com/api/index/cy', 'http://www.aieok.com/api/upload/check', 'http://www.aieok.com/api/upload/api', '0', '1577419197', '0');
-
--- ----------------------------
--- Table structure for tao_user
--- ----------------------------
-DROP TABLE IF EXISTS `tao_user`;
-CREATE TABLE `tao_user` (
- `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
- `name` varchar(16) NOT NULL COMMENT '用户名',
- `password` varchar(32) NOT NULL COMMENT '密码',
- `phone` varchar(11) NOT NULL COMMENT '手机',
- `email` varchar(50) NOT NULL COMMENT '邮箱',
- `nickname` varchar(16) NOT NULL COMMENT '昵称',
- `city` varchar(50) NOT NULL COMMENT '归属地',
- `sex` enum('0','1') NOT NULL DEFAULT '0' COMMENT '性别0男1女',
- `sign` varchar(255) NOT NULL COMMENT '签名',
- `user_img` varbinary(70) NOT NULL COMMENT '头像',
- `auth` enum('1','0') NOT NULL DEFAULT '0' COMMENT '0普通1超级',
- `point` tinyint(11) NOT NULL DEFAULT '0' COMMENT '积分',
- `area_id` int(11) NOT NULL COMMENT '用户所属区域ID',
- `status` enum('0','1') NOT NULL DEFAULT '1' COMMENT '1启用0禁用',
- `vip` tinyint(1) DEFAULT NULL COMMENT 'vip',
- `last_login_ip` varchar(70) NOT NULL COMMENT '最后登陆ip',
- `last_login_time` int(11) NOT NULL COMMENT '最后登陆时间',
- `login_error_num` tinyint(1) NOT NULL DEFAULT '0' COMMENT '登陆错误次数',
- `login_error_time` int(11) NOT NULL COMMENT '登陆错误时间',
- `login_error_lock` tinyint(1) NOT NULL DEFAULT '0' COMMENT '登陆锁定0正常1锁定',
- `create_time` int(11) NOT NULL COMMENT '创建时间',
- `update_time` int(11) NOT NULL COMMENT '修改时间',
- `delete_time` int(11) NOT NULL COMMENT '删除时间',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=38 DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Records of tao_user
--- ----------------------------
-INSERT INTO `tao_user` VALUES ('1', 'admin', '7596a5c80d28bf147aae75b3b6f02f1a', '2147483647', 'xxx@qq.com', '管理员', '北京市', '1', '这是我的第一个TP5系统,2019北京。OK! OK!ok@', 0x2F73746F726167652F686561645F7069632F32303139313231372F39343036636334623866336538323731613238616339646239353339333766352E6A7067, '1', '12', '1', '1', null, '127.0.0.1', '0', '0', '0', '0', '1555892325', '1577420182', '0');
-INSERT INTO `tao_user` VALUES ('2', 'liudong', '', '2147483647', 'liudong@qq.com', '刘冬', '上海', '0', '在', 0x2F7374617469632F7265732F696D616765732F6176617461722F30302E6A7067, '0', '0', '2', '1', null, '', '0', '0', '0', '0', '1555892355', '1546176176', '0');
-INSERT INTO `tao_user` VALUES ('3', 'shenlu', '', '13512345678', 'shenlu@qq.com', '沈璐', '杭州', '0', '沈璐沈璐沈璐沈璐沈璐是一个美女', 0x2F7374617469632F7265732F696D616765732F6176617461722F302E6A7067, '0', '0', '3', '1', null, '', '0', '0', '0', '0', '1555882325', '1547700180', '0');
-INSERT INTO `tao_user` VALUES ('4', '张志', '', '13513615898', 'zhangzhi@qq.com', '张志', '深圳', '0', '在一', 0x2F7374617469632F7265732F696D616765732F6176617461722F312E6A7067, '0', '0', '1', '1', null, '', '0', '0', '0', '0', '1555892336', '1551182521', '0');
-INSERT INTO `tao_user` VALUES ('5', '王龙', '', '0', 'wanglong@qq.com', 'long', '纽约', '1', '', 0x2F7374617469632F7265732F696D616765732F6176617461722F322E6A7067, '0', '0', '2', '0', null, '', '0', '0', '0', '0', '1555892347', '1555890307', '0');
-INSERT INTO `tao_user` VALUES ('6', '贺青', '', '0', 'heqing@qq.com', '贺青', '巴黎', '0', '', 0x2F7374617469632F7265732F696D616765732F6176617461722F332E6A7067, '0', '0', '3', '1', null, '', '0', '0', '0', '0', '1555893525', '1555892325', '0');
-INSERT INTO `tao_user` VALUES ('7', '李可', '', '0', 'keke@qq.com', '可可', '', '1', '', 0x2F7374617469632F7265732F696D616765732F6176617461722F342E6A7067, '0', '2', '0', '1', null, '', '0', '0', '0', '0', '1555892374', '1569247195', '0');
-INSERT INTO `tao_user` VALUES ('8', '飞儿', '', '2147483647', 'fei@qq.com', '飞儿', '', '0', '', 0x2F7374617469632F7265732F696D616765732F6176617461722F352E6A7067, '0', '0', '0', '1', null, '', '0', '0', '0', '0', '1555892388', '1576558484', '1576558484');
-
--- ----------------------------
--- Table structure for tao_user_area
--- ----------------------------
-DROP TABLE IF EXISTS `tao_user_area`;
-CREATE TABLE `tao_user_area` (
- `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
- `area` varchar(10) NOT NULL COMMENT '所属区域',
- `asing` varchar(2) NOT NULL COMMENT '区域简称',
- `create_time` int(11) NOT NULL,
- `update_time` int(11) NOT NULL,
- `delete_time` int(11) NOT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Records of tao_user_area
--- ----------------------------
-INSERT INTO `tao_user_area` VALUES ('1', '北京', '京', '0', '0', '0');
-INSERT INTO `tao_user_area` VALUES ('2', '上海', '沪', '0', '0', '0');
-INSERT INTO `tao_user_area` VALUES ('3', '广州', '广', '0', '0', '0');
-INSERT INTO `tao_user_area` VALUES ('4', '深圳', '深', '0', '0', '0');
-
--- ----------------------------
--- Table structure for tao_user_sign
--- ----------------------------
-DROP TABLE IF EXISTS `tao_user_sign`;
-CREATE TABLE `tao_user_sign` (
- `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
- `uid` int(11) unsigned NOT NULL COMMENT '用户id',
- `days` tinyint(2) unsigned NOT NULL DEFAULT '0' COMMENT '连续签到的天数',
- `is_share` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否分享过',
- `is_sign` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否签到过',
- `stime` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '签到的时间',
- `create_time` int(11) NOT NULL COMMENT '创建时间',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=25 DEFAULT CHARSET=utf8 COMMENT='用户签到表';
-
--- ----------------------------
--- Records of tao_user_sign
--- ----------------------------
-INSERT INTO `tao_user_sign` VALUES ('16', '2', '1', '0', '0', '1558750514', '0');
-INSERT INTO `tao_user_sign` VALUES ('18', '1', '1', '0', '0', '1558750797', '0');
-INSERT INTO `tao_user_sign` VALUES ('19', '1', '1', '0', '0', '1566911693', '0');
-INSERT INTO `tao_user_sign` VALUES ('20', '1', '1', '0', '0', '1568346096', '0');
-INSERT INTO `tao_user_sign` VALUES ('21', '1', '1', '0', '0', '1568515766', '0');
-INSERT INTO `tao_user_sign` VALUES ('22', '1', '1', '0', '0', '1569245600', '0');
-INSERT INTO `tao_user_sign` VALUES ('23', '36', '1', '0', '0', '1569247195', '0');
-INSERT INTO `tao_user_sign` VALUES ('24', '1', '1', '0', '0', '1574650402', '0');
-
--- ----------------------------
--- Table structure for tao_user_signrule
--- ----------------------------
-DROP TABLE IF EXISTS `tao_user_signrule`;
-CREATE TABLE `tao_user_signrule` (
- `id` int(2) unsigned NOT NULL AUTO_INCREMENT,
- `days` int(5) unsigned NOT NULL COMMENT '连续天数',
- `score` int(3) unsigned NOT NULL DEFAULT '0' COMMENT '积分',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COMMENT='用户签到积分规则';
-
--- ----------------------------
--- Records of tao_user_signrule
--- ----------------------------
-INSERT INTO `tao_user_signrule` VALUES ('1', '1', '2');
-INSERT INTO `tao_user_signrule` VALUES ('2', '3', '3');
-INSERT INTO `tao_user_signrule` VALUES ('3', '5', '5');
-
--- ----------------------------
--- Table structure for tao_user_zan
--- ----------------------------
-DROP TABLE IF EXISTS `tao_user_zan`;
-CREATE TABLE `tao_user_zan` (
- `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '点赞主键id',
- `comment_id` int(11) NOT NULL COMMENT '评论id',
- `user_id` int(11) NOT NULL COMMENT '用户id',
- `create_time` int(11) NOT NULL COMMENT '点赞时间',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=46 DEFAULT CHARSET=utf8;
-
--- ----------------------------
--- Records of tao_user_zan
--- ----------------------------
diff --git a/public/ErrorFiles/400.html b/public/ErrorFiles/400.html
new file mode 100644
index 0000000..6c2401d
--- /dev/null
+++ b/public/ErrorFiles/400.html
@@ -0,0 +1,17 @@
+
+
+
+
+400状态页面
+
+
+
+
+

+

+
{错误请求} 服务器不能接受此应答!
+
+
+
diff --git a/public/ErrorFiles/401.html b/public/ErrorFiles/401.html
new file mode 100644
index 0000000..d90bec8
--- /dev/null
+++ b/public/ErrorFiles/401.html
@@ -0,0 +1,17 @@
+
+
+
+
+401状态页面
+
+
+
+
+

+

+
{未授权} 请求需要身份验证!
+
+
+
\ No newline at end of file
diff --git a/public/ErrorFiles/403.html b/public/ErrorFiles/403.html
new file mode 100644
index 0000000..57b6d4f
--- /dev/null
+++ b/public/ErrorFiles/403.html
@@ -0,0 +1,17 @@
+
+
+
+
+403状态页面
+
+
+
+
+

+

+
{禁止} 服务器拒绝请求!
+
+
+
\ No newline at end of file
diff --git a/public/ErrorFiles/404.html b/public/ErrorFiles/404.html
new file mode 100644
index 0000000..27095e4
--- /dev/null
+++ b/public/ErrorFiles/404.html
@@ -0,0 +1,17 @@
+
+
+
+
+404状态页面
+
+
+
+
+

+

+
{未找到} 法海不懂爱~页面不出来!
+
+
+
\ No newline at end of file
diff --git a/public/ErrorFiles/500.html b/public/ErrorFiles/500.html
new file mode 100644
index 0000000..0217014
--- /dev/null
+++ b/public/ErrorFiles/500.html
@@ -0,0 +1,17 @@
+
+
+
+
+500状态页面
+
+
+
+
+

+

+
{服务器遇到错误} 无法完成请求!
+
+
+
\ No newline at end of file
diff --git a/public/ErrorFiles/502.html b/public/ErrorFiles/502.html
new file mode 100644
index 0000000..0164570
--- /dev/null
+++ b/public/ErrorFiles/502.html
@@ -0,0 +1,17 @@
+
+
+
+
+502状态页面
+
+
+
+
+

+

+
{无效响应} 网关或代理有误!
+
+
+
\ No newline at end of file
diff --git a/public/ErrorFiles/503.html b/public/ErrorFiles/503.html
new file mode 100644
index 0000000..310d727
--- /dev/null
+++ b/public/ErrorFiles/503.html
@@ -0,0 +1,17 @@
+
+
+
+
+503状态页面
+
+
+
+
+

+

+
{服务不可用} 服务器过载或暂停!
+
+
+
\ No newline at end of file
diff --git a/public/ErrorFiles/504.html b/public/ErrorFiles/504.html
new file mode 100644
index 0000000..97b67a1
--- /dev/null
+++ b/public/ErrorFiles/504.html
@@ -0,0 +1,17 @@
+
+
+
+
+504状态页面
+
+
+
+
+

+

+
{网关超时} 超时或解析器有误!
+
+
+
\ No newline at end of file
diff --git a/public/ErrorFiles/510.html b/public/ErrorFiles/510.html
new file mode 100644
index 0000000..1d50d82
--- /dev/null
+++ b/public/ErrorFiles/510.html
@@ -0,0 +1,17 @@
+
+
+
+
+510状态页面
+
+
+
+
+

+

+
{资源超限} 访问或下载资源超过限制!
+
+
+
\ No newline at end of file
diff --git a/public/static/admin/modules/contlist.js b/public/static/admin/modules/contlist.js
index 941ae35..2ec621e 100644
--- a/public/static/admin/modules/contlist.js
+++ b/public/static/admin/modules/contlist.js
@@ -79,7 +79,7 @@ layui.define(['table', 'form'], function(exports){
//分类管理
table.render({
elem: '#LAY-app-content-tags'
- ,url: '/admin/forum/tags' //模拟接口
+ ,url: '/admin/Forum/tags' //模拟接口
,cols: [[
{type: 'numbers', fixed: 'left'}
,{field: 'sort', title: '排序', width: 100, sort: true}
@@ -99,7 +99,7 @@ layui.define(['table', 'form'], function(exports){
layer.confirm('确定删除此分类?', function(index){
$.ajax({
type:'post',
- url:"/admin/forum/tagsdelete",
+ url:"/admin/Forum/tagsdelete",
data:{id:data.id},
dataType:'json',
success:function(data){
@@ -128,7 +128,7 @@ layui.define(['table', 'form'], function(exports){
layer.open({
type: 2
,title: '编辑分类'
- ,content: '/admin/forum/tagsform?id='+ data.id
+ ,content: '/admin/Forum/tagsform?id='+ data.id
,area: ['450px', '300px']
,btn: ['确定', '取消']
,yes: function(index, layero){
@@ -142,7 +142,7 @@ layui.define(['table', 'form'], function(exports){
$.ajax({
type:"post",
- url:"/admin/forum/tagsform",
+ url:"/admin/Forum/tagsform",
data:{"id":data.id,"catename":tags,"sort":sort,"ename":ename},
daType:"json",
success:function (data){
diff --git a/public/static/admin/modules/forum.js b/public/static/admin/modules/forum.js
index 06b5536..3c2fe5f 100644
--- a/public/static/admin/modules/forum.js
+++ b/public/static/admin/modules/forum.js
@@ -16,7 +16,7 @@ layui.define(['table', 'form'], function(exports){
//帖子管理
table.render({
elem: '#LAY-app-forum-list'
- ,url: '/admin/forum/list' //帖子数据接口
+ ,url: '/admin/Forum/list' //帖子数据接口
,cols: [[
{type: 'checkbox', fixed: 'left'}
,{field: 'id', width: 100, title: 'ID', sort: true}
@@ -25,6 +25,8 @@ layui.define(['table', 'form'], function(exports){
,{field: 'content', title: '发帖内容',templet: '#title'}
,{field: 'posttime', title: '发帖时间', sort: true}
,{field: 'top', title: '置顶', templet: '#buttonTpl', minWidth: 80, align: 'center'}
+ ,{field: 'hot', title: '精贴', templet: '#buttonHot', minWidth: 80, align: 'center'}
+ ,{field: 'check', title: '审帖', templet: '#buttonCheck', minWidth: 80, align: 'center'}
,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-forum-list'}
]]
,page: true
@@ -38,7 +40,30 @@ layui.define(['table', 'form'], function(exports){
var data = obj.data;
if(obj.event === 'del'){
layer.confirm('确定删除此条帖子?', function(index){
- obj.del();
+ //obj.del();
+ $.ajax({
+ type:'post',
+ url:"/admin/Forum/listdel",
+ data:{id:data.id},
+ dataType:'json',
+ success:function(data){
+ if(data.code == 0){
+ layer.msg(data.msg,{
+ icon:6,
+ time:2000
+ },function(){
+ location.reload();
+ });
+ } else {
+ layer.open({
+ title:'删除失败',
+ content:data.msg,
+ icon:5,
+ adim:6
+ })
+ }
+ }
+ });
layer.close(index);
});
} else if(obj.event === 'edit'){
@@ -47,7 +72,7 @@ layui.define(['table', 'form'], function(exports){
layer.open({
type: 2
,title: '编辑帖子'
- ,content: '/admin/forum/listform?id='+ data.id
+ ,content: '/admin/Forum/listform?id='+ data.id
,area: ['550px', '400px']
,btn: ['确定', '取消']
,resize: false
@@ -67,7 +92,7 @@ layui.define(['table', 'form'], function(exports){
//$.ajax({});
$.ajax({
type:"post",
- url:"/admin/forum/listform",
+ url:"/admin/Forum/listform",
data:{"id":data.id,"poster":name,"sort":sort,"ename":ename},
daType:"json",
success:function (data){
@@ -103,22 +128,23 @@ layui.define(['table', 'form'], function(exports){
}
});
- //回帖管理
+ //评论管理
table.render({
elem: '#LAY-app-forumreply-list'
- ,url: '/admin/forum/replys'
+ ,url: '/admin/Forum/replys'
,cols: [[
{type: 'checkbox', fixed: 'left'}
,{field: 'id', width: 100, title: 'ID', sort: true}
,{field: 'replyer', title: '回帖人'}
- ,{field: 'cardid', title: '回帖ID', sort: true}
+ ,{field: 'cardid', title: '回帖ID',templet: '#title'}
,{field: 'avatar', title: '头像', width: 100, templet: '#imgTpl'}
,{field: 'content', title: '回帖内容', width: 200}
,{field: 'replytime', title: '回帖时间', sort: true}
+ ,{field: 'check', title: '审核', templet: '#buttonCheck'}
,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-forum-replys'}
]]
,page: true
- ,limit: 10
+ ,limit: 15
,limits: [10, 15, 20, 25, 30]
,text: '对不起,加载出现异常!'
});
@@ -128,7 +154,30 @@ layui.define(['table', 'form'], function(exports){
var data = obj.data;
if(obj.event === 'del'){
layer.confirm('确定删除此条评论?', function(index){
- obj.del();
+ //obj.del();
+ $.ajax({
+ type:'post',
+ url:"/admin/Forum/redel",
+ data:{id:data.id},
+ dataType:'json',
+ success:function(data){
+ if(data.code == 0){
+ layer.msg(data.msg,{
+ icon:6,
+ time:2000
+ },function(){
+ location.reload();
+ });
+ } else {
+ layer.open({
+ title:'删除失败',
+ content:data.msg,
+ icon:5,
+ adim:6
+ })
+ }
+ }
+ });
layer.close(index);
});
} else if(obj.event === 'edit'){
@@ -137,7 +186,7 @@ layui.define(['table', 'form'], function(exports){
layer.open({
type: 2
,title: '编辑评论'
- ,content: '/admin/forum/replysform.html'
+ ,content: '/admin/Forum/replysform.html'
,area: ['550px', '350px']
,btn: ['确定', '取消']
,resize: false
diff --git a/public/static/admin/modules/set.js b/public/static/admin/modules/set.js
index e0a15b8..31b7d52 100644
--- a/public/static/admin/modules/set.js
+++ b/public/static/admin/modules/set.js
@@ -188,6 +188,7 @@ layui.define(['form', 'upload'], function(exports){
//console.log(obj.field);
//提交修改
admin.req({
+ type: post,
url: '/admin/admin/repass'
,data: obj.field
,success: function(res){
diff --git a/public/static/admin/modules/useradmin.js b/public/static/admin/modules/useradmin.js
index b66cc39..75fefe5 100644
--- a/public/static/admin/modules/useradmin.js
+++ b/public/static/admin/modules/useradmin.js
@@ -19,15 +19,16 @@ layui.define(['table', 'form'], function(exports){
,url: '/admin/User/list' //模拟接口
,cols: [[
{type: 'checkbox', fixed: 'left'}
- ,{field: 'id', width: 100, title: 'ID', sort: true}
- ,{field: 'username', title: '用户名', minWidth: 100}
+ ,{field: 'id', width: 50, title: 'ID', sort: true}
+ ,{field: 'username', title: '用户名', minWidth: 80}
,{field: 'avatar', title: '头像', width: 100, templet: '#imgTpl'}
- ,{field: 'phone', title: '手机'}
+ ,{field: 'phone', title: '手机',width: 150}
,{field: 'email', title: '邮箱'}
- ,{field: 'sex', width: 80, title: '性别',templet: '#sex'}
+ ,{field: 'sex', width: 60, title: '性别',templet: '#sex'}
,{field: 'ip', title: '登录IP'}
,{field: 'jointime', title: '申请时间', sort: true}
- ,{field: 'status', title: '状态', templet: '#buttonStatus', minWidth: 80, align: 'center'}
+ ,{field: 'check', title: '状态', templet: '#buttonCheck', minWidth: 80, align: 'center'}
+ ,{field: 'auth', title: '超级管理员', templet: '#buttonAuth', minWidth: 80, align: 'center'}
,{title: '操作', width: 150, align:'center', fixed: 'right', toolbar: '#table-useradmin-webuser'}
]]
,page: true
@@ -54,7 +55,7 @@ layui.define(['table', 'form'], function(exports){
data:{id:data.id},
dataType:'json',
success:function(data){
- if(data.code == 1){
+ if(data.code == 0){
layer.msg(data.msg,{
icon:6,
time:2000
@@ -102,7 +103,7 @@ layui.define(['table', 'form'], function(exports){
data:{"id":field.id,"name":field.username,"phone":field.phone,"email":field.email,"user_img":field.avatar,"sex":field.sex},
daType:"json",
success:function (res){
- if (res.code == 1) {
+ if (res.code == 0) {
layer.msg(res.msg,{
icon:6,
time:2000
@@ -162,7 +163,6 @@ layui.define(['table', 'form'], function(exports){
}, function(value, index){
layer.close(index);
layer.confirm('确定删除此管理员?', function(index){
- //console.log(obj)
//obj.del();
$.ajax({
type:'post',
@@ -170,7 +170,7 @@ layui.define(['table', 'form'], function(exports){
data:{id:data.id},
dataType:'json',
success:function(data){
- if(data.code == 1){
+ if(data.code == 0){
layer.msg(data.msg,{
icon:6,
time:2000
@@ -216,7 +216,7 @@ layui.define(['table', 'form'], function(exports){
data:{"id":field.id,"password":field.password,"mobile":field.mobile,"email":field.email,"auth_group_id":field.auth_group_id},
daType:"json",
success:function (res){
- if (res.code == 1) {
+ if (res.code == 0) {
layer.msg(res.msg,{
icon:6,
time:2000
@@ -258,6 +258,7 @@ layui.define(['table', 'form'], function(exports){
,{field: 'rolename', title: '角色名'}
,{field: 'limits', title: '拥有权限'}
,{field: 'descr', title: '具体描述'}
+ ,{field: 'check', title: '角色审核', toolbar: '#buttonCheck'}
,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-useradmin-admin'}
]]
,text: '对不起,加载出现异常!'
@@ -269,7 +270,30 @@ layui.define(['table', 'form'], function(exports){
if(obj.event === 'del'){
layer.confirm('确定删除此角色?', function(index){
- obj.del();
+ //obj.del();
+ $.ajax({
+ type:'post',
+ url:"/admin/AuthGroup/roledel",
+ data:{id:data.id},
+ dataType:'json',
+ success:function(data){
+ if(data.code == 0){
+ layer.msg(data.msg,{
+ icon:6,
+ time:2000
+ },function(){
+ location.reload();
+ });
+ } else {
+ layer.open({
+ title:'删除失败',
+ content:data.msg,
+ icon:5,
+ adim:6
+ })
+ }
+ }
+ });
layer.close(index);
});
}else if(obj.event === 'edit'){
@@ -314,7 +338,7 @@ layui.define(['table', 'form'], function(exports){
data:{"id":field.id,"rules":rules,"title":field.title,"descr":field.descr},
daType:"json",
success:function (res){
- if (res.code == 1) {
+ if (res.code == 0) {
layer.msg(res.msg,{
icon:6,
time:2000
@@ -350,14 +374,14 @@ layui.define(['table', 'form'], function(exports){
,url: '/admin/AuthRule/index' //权限接口
,cols: [[
{type: 'checkbox', fixed: 'left'}
- ,{field: 'id', width: 50, title: 'ID'}
+ ,{field: 'id', width: 50, title: 'ID', align: 'center'}
,{field: 'sort', title: '排序',width: 60 , align: 'center',templet: '#rules-sort'}
,{field: 'title', title: '权限名', templet: '#rules-title'}
,{field: 'name', title: '权限地址', minWidth: 150}
,{field: 'icon', title: '图标'}
,{field: 'status', title:'权限状态', templet: '#buttonAuth', minWidth: 80, align: 'center'}
- ,{field: 'level', title: '层级',width: 40}
- ,{field: 'ishidden', title: '菜单',templet: '#menu', Width: 40}
+ ,{field: 'level', title: '层级',width: 60, align: 'center'}
+ ,{field: 'ishidden', title: '菜单',templet: '#menu', width: 60}
,{title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-authrule-edit'}
]]
,text: '对不起,加载出现异常!'
@@ -381,7 +405,7 @@ layui.define(['table', 'form'], function(exports){
data:{id:data.id},
dataType:'json',
success:function(data){
- if(data.code == 1){
+ if(data.code == 0){
layer.msg(data.msg,{
icon:6,
time:2000
@@ -450,7 +474,7 @@ layui.define(['table', 'form'], function(exports){
}
});
- table.reload('LAY-user-auth-rule'); //数据刷新
+ //table.reload('LAY-user-auth-rule'); //数据刷新
layer.close(index); //关闭弹层
});
diff --git a/public/u.php b/public/u.php
new file mode 100644
index 0000000..0a35c13
--- /dev/null
+++ b/public/u.php
@@ -0,0 +1,286 @@
+已开启');
+define('NO', '未开启');
+if ($_POST['mysqlPort']=="") {
+$host="127.0.0.1";
+} else {
+$host="127.0.0.1:".$_POST['mysqlPort'];
+}
+$Info = array();
+$Info['php_ini_file'] = function_exists('php_ini_loaded_file') ? php_ini_loaded_file() : '[undefine]';
+$mcrypt = get_extension_funcs('mcrypt') ? YES : NO;
+$xmlrpc = get_extension_funcs('xmlrpc') ? YES : NO;
+$fileinfo = get_extension_funcs('fileinfo') ? YES : NO;
+$ftp = get_extension_funcs('ftp') ? YES : NO;
+$link = @mysqli_connect($host, $_POST['mysqlUser'], $_POST['mysqlPassword']);
+$errno = mysqli_connect_errno();
+$pinfo = $rand;
+$up_start = micro_time_float();
+if (_GET($pinfo) == 'phpinfo') {
+if (function_exists('phpinfo')) phpinfo();
+else echo "PHPINFO函数已被禁用无法正常显示详细信息!";
+exit;
+}
+?>
+
+
+
+
+UPUPW PHP探针安全版
+
+
+
+
+
+
+
+
+
+
+
+
+
+服务器信息 |
+PHP功能组件开启状态 |
+
+
+服务器域名 |
+=_SERVER('SERVER_NAME')?> |
+MySQLi Client组件 |
+=get_extension_funcs('mysqli') ? YES : NO ?> |
+
+
+服务器端口 |
+
+
+=($link)?_SERVER('SERVER_ADDR').':'._SERVER('SERVER_PORT'):"数据库连接测试错误拒绝显示"?>
+数据库连接测试成功后显示";
+?>
+ |
+cURL组件 |
+=get_extension_funcs('curl') ? YES : NO ?> |
+
+
+服务器环境 |
+=stripos(_SERVER('SERVER_SOFTWARE'), 'PHP')?_SERVER('SERVER_SOFTWARE'):_SERVER('SERVER_SOFTWARE')?> |
+GD library组件 |
+=get_extension_funcs('gd') ? YES : NO ?> |
+
+
+PHP运行环境 |
+=PHP_SAPI .' PHP/'.PHP_VERSION?> |
+EXIF信息查看组件 |
+=get_extension_funcs('exif') ? YES : NO ?> |
+
+
+PHP配置文件 |
+
+=($link)?htmlentities($Info['php_ini_file']):"数据库连接测试错误拒绝显示"?>
+数据库连接测试成功后显示";
+?>
+ |
+OpenSSL协议组件 |
+=get_extension_funcs('openssl') ? YES : NO ?> |
+
+
+当前网站目录 |
+
+=($link)?htmlentities(_SERVER('DOCUMENT_ROOT')):"数据库连接测试错误拒绝显示"?>
+数据库连接测试成功后显示";
+?>
+ |
+Mcrypt加密处理组件".$mcrypt." | ";
+}else{
+ echo "FTP组件 | ".$ftp." | ";
+}?>
+
+
+服务器标准时 |
+
+=gmdate('Y-m-d H:i:s', time() + 3600 * 8)?>
+ |
+XML-RPC组件".$xmlrpc." | ";
+}else{
+ echo "FileInfo组件 | ".$fileinfo." | ";
+}?>
+
+
+便捷管理入口 |
+
+=($link)?"PHPINFO详细信息":"数据库连接测试错误拒绝显示"?>
+数据库连接测试成功后显示";
+?>
+ |
+Mbstring组件 |
+=get_extension_funcs('mbstring') ? YES : NO ?> |
+
+
+
+
+PHP Zend解密组件 |
+PHP 缓存优化组件 |
+
+
+Zend Optimizer |
+Zend GuardLoader |
+ionCubeLoader |
+SourceGuardian |
+WinCache |
+Zend OPcache |
+Redis |
+Memcache |
+
+
+=get_extension_funcs('Zend Optimizer') ? YES.' / '.OPTIMIZER_VERSION : NO ?> |
+=get_extension_funcs('Zend Guard Loader') ? YES : NO ?> |
+=get_extension_funcs('ionCube Loader') ? YES : NO ?> |
+=get_extension_funcs('SourceGuardian') ? YES : NO ?> |
+=get_extension_funcs('WinCache') ? YES : NO ?> |
+=get_extension_funcs('Zend OPcache') ? YES : NO ?> |
+=phpversion('redis') ? YES : NO ?> |
+=get_extension_funcs('memcache') ? YES : NO ?> |
+
+
+=PHP_SAPI .' PHP/'.PHP_VERSION?>不完全包括以上组件,不同PHP版本能适配的外部扩展不同,为了性能以上组件除网站特别要求外没必要全开启! |
+
+
+
+
+PHP重要参数检测 |
+
+
+Memory限制 |
+Upload限制 |
+POST限制 |
+Execution超时 |
+Input超时 |
+Socket超时 |
+
+
+=ini_get('memory_limit')?> |
+=ini_get('upload_max_filesize')?> |
+=ini_get('post_max_size')?> |
+=ini_get('max_execution_time').'s'?> |
+=ini_get('max_input_time').'s'?> |
+=ini_get('default_socket_timeout').'s'?> |
+
+
+
+
+PHP已编译模块检测 |
+
+
+
+$value) {
+if ($key!=0 && $key%13==0) {
+echo ' ';
+}
+echo "$value ";
+}
+?>
+ |
+
+
+
+
+
+
+数据库测试结果 |
+
+连接正常 ('.mysqli_get_server_info($link).')';
+else $str1 = '连接错误
'.mysqli_connect_error();
+?>
+
+=$host?> |
+=$str1?> |
+
+
+
+
+UPUPW探针版本: 页面执行时间 秒 消耗内存
+
+
+
© UPUPW PHP探针安全版,站点内容与本程序无关。
+
+
+
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index f0bb044..a56559b 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -728,12 +728,12 @@
"source": {
"type": "git",
"url": "https://github.com/top-think/framework.git",
- "reference": "e7fa18eebf3092c9abf34c79310eca4d17c78cbd"
+ "reference": "1444cce94b40a836958380b160a5fb7bfc165daf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/top-think/framework/zipball/e7fa18eebf3092c9abf34c79310eca4d17c78cbd",
- "reference": "e7fa18eebf3092c9abf34c79310eca4d17c78cbd",
+ "url": "https://api.github.com/repos/top-think/framework/zipball/1444cce94b40a836958380b160a5fb7bfc165daf",
+ "reference": "1444cce94b40a836958380b160a5fb7bfc165daf",
"shasum": "",
"mirrors": [
{
@@ -760,7 +760,7 @@
"mockery/mockery": "^1.2",
"phpunit/phpunit": "^7.0"
},
- "time": "2020-01-11T06:53:35+00:00",
+ "time": "2020-01-13T05:48:05+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
diff --git a/vendor/services.php b/vendor/services.php
index a714c90..9419b6d 100644
--- a/vendor/services.php
+++ b/vendor/services.php
@@ -1,5 +1,5 @@
'think\\captcha\\CaptchaService',
diff --git a/vendor/topthink/framework/src/think/App.php b/vendor/topthink/framework/src/think/App.php
index 7bc271c..24c03f3 100644
--- a/vendor/topthink/framework/src/think/App.php
+++ b/vendor/topthink/framework/src/think/App.php
@@ -39,7 +39,7 @@ use think\initializer\RegisterService;
*/
class App extends Container
{
- const VERSION = '6.0.1';
+ const VERSION = '6.0.2';
/**
* 应用调试模式
diff --git a/view/admin/admin/index.html b/view/admin/admin/index.html
index 03bbab7..738eb56 100644
--- a/view/admin/admin/index.html
+++ b/view/admin/admin/index.html
@@ -115,7 +115,7 @@
$.ajax({
type:'post',
url:"{:url('admin/admin/check')}",
- data:{id:data.id,status:data.value,},
+ data:{"id":data.id,"status":data.value,},
dataType:'json',
success:function(res){
if(res.code == 0){
@@ -191,7 +191,7 @@
data:{"username":field.username,"password":field.username,"mobile":field.mobile,"email":field.email,"auth_group_id":field.auth_group_id,"status":field.status},
daType:"json",
success:function (data){
- if (data.code == 1) {
+ if (data.code == 0) {
layer.msg(data.msg,{
icon:6,
time:2000
diff --git a/view/admin/auth_group/role.html b/view/admin/auth_group/role.html
index 97d9df7..5f1e0bf 100644
--- a/view/admin/auth_group/role.html
+++ b/view/admin/auth_group/role.html
@@ -30,12 +30,8 @@
-
+
+
+
+
+
+
+