From a7402b82df754f6bccee3d74552618f1c3c8062a Mon Sep 17 00:00:00 2001 From: taoser Date: Mon, 1 Feb 2021 16:02:15 +0800 Subject: [PATCH] new --- addons/README.md | 274 +++++ app/common/lib/Msg.php | 104 ++ config/.gitignore | 2 + public/install.php | 24 + public/static/res/images/weixin-1.jpg | Bin 0 -> 26839 bytes public/static/res/images/weixin.jpg | Bin 0 -> 39917 bytes public/static/res/mods/jquery.min.js | 2 + .../9406cc4b8f3e8271a28ac9db953937f5.jpg | Bin 0 -> 33341 bytes vendor/opis/closure/CHANGELOG.md | 220 ++++ vendor/opis/closure/LICENSE | 20 + vendor/opis/closure/NOTICE | 9 + vendor/opis/closure/README.md | 98 ++ vendor/opis/closure/autoload.php | 39 + vendor/opis/closure/composer.json | 40 + vendor/opis/closure/functions.php | 38 + vendor/opis/closure/src/Analyzer.php | 59 + vendor/opis/closure/src/ClosureContext.php | 34 + vendor/opis/closure/src/ClosureScope.php | 25 + vendor/opis/closure/src/ClosureStream.php | 99 ++ vendor/opis/closure/src/ISecurityProvider.php | 25 + vendor/opis/closure/src/ReflectionClosure.php | 1014 +++++++++++++++++ vendor/opis/closure/src/SecurityException.php | 18 + vendor/opis/closure/src/SecurityProvider.php | 42 + vendor/opis/closure/src/SelfReference.php | 31 + .../opis/closure/src/SerializableClosure.php | 668 +++++++++++ .../phpmailer/language/phpmailer.lang-am.php | 26 + vendor/psr/log/.gitignore | 1 + vendor/symfony/var-dumper/.gitattributes | 3 + .../src/think/route/dispatch/Redirect.php | 27 + .../src/think/route/dispatch/Response.php | 27 + .../src/think/route/dispatch/View.php | 28 + view/README.md | 1 + view/admin/.gitignore | 3 + view/admin/admin/add.html | 48 + view/admin/admin/adminedit.html | 61 + view/admin/admin/adminform.html | 57 + view/admin/admin/edit.html | 51 + view/admin/admin/index.html | 247 ++++ view/admin/admin/list.html | 226 ++++ view/admin/article/comment.html | 113 ++ view/admin/article/contform.html | 44 + view/admin/article/list.html | 147 +++ view/admin/article/listform.html | 82 ++ view/admin/article/tags.html | 66 ++ view/admin/article/tagsform.html | 38 + view/admin/auth_access/add.html | 44 + view/admin/auth_access/edit.html | 47 + view/admin/auth_access/index.html | 207 ++++ view/admin/auth_group/edit-1.html | 119 ++ view/admin/auth_group/role.html | 231 ++++ view/admin/auth_group/roleadd.html | 101 ++ view/admin/auth_group/roleedit.html | 129 +++ view/admin/auth_rule/add.html | 65 ++ view/admin/auth_rule/edit.html | 68 ++ view/admin/auth_rule/index.html | 277 +++++ view/admin/authgroup/edit.html | 119 ++ view/admin/authgroup/role-1.html | 164 +++ view/admin/authgroup/role.html | 164 +++ view/admin/authgroup/roleadd.html | 101 ++ view/admin/authgroup/roleedit-1.html | 154 +++ view/admin/authgroup/roleedit.html | 129 +++ view/admin/authrule/add.html | 65 ++ view/admin/authrule/edit.html | 68 ++ view/admin/authrule/index.html | 310 +++++ view/admin/forum/list.html | 210 ++++ view/admin/forum/listform.html | 61 + view/admin/forum/replys.html | 168 +++ view/admin/forum/replysform.html | 39 + view/admin/forum/tags.html | 136 +++ view/admin/forum/tagsform.html | 39 + view/admin/index/home.html | 293 +++++ view/admin/index/index.html | 32 + view/admin/key_auth/add.html | 67 ++ view/admin/key_auth/edit.html | 73 ++ view/admin/key_auth/index.html | 212 ++++ view/admin/login/forget.html | 143 +++ view/admin/login/login.html | 146 +++ view/admin/login/reg.html | 120 ++ view/admin/notice/edit.html | 67 ++ view/admin/notice/index.html | 130 +++ view/admin/public/base.html | 26 + view/admin/public/header.html | 72 ++ view/admin/public/page_tabs.html | 22 + view/admin/public/side_menu.html | 79 ++ view/admin/set/system/email.html | 66 ++ view/admin/set/system/server.html | 190 +++ view/admin/set/system/signedit.html | 38 + view/admin/set/system/vipedit.html | 54 + view/admin/set/system/website.html | 204 ++++ view/admin/set/user/info.html | 101 ++ view/admin/set/user/repass.html | 58 + view/admin/slider/add.html | 120 ++ view/admin/slider/edit.html | 119 ++ view/admin/slider/index.html | 218 ++++ view/admin/upgrade/index.html | 278 +++++ view/admin/upgrade/keyedit.html | 52 + view/admin/user/list.html | 300 +++++ view/admin/user/useredit.html | 83 ++ view/admin/user/userform.html | 80 ++ view/index/.gitignore | 1 + view/index/article/add.html | 251 ++++ view/index/article/cate.html | 109 ++ view/index/article/detail.html | 350 ++++++ view/index/article/edit.html | 261 +++++ view/index/error/404.html | 57 + view/index/index/index.html | 338 ++++++ view/index/index/search.html | 147 +++ view/index/login/forget.html | 239 ++++ view/index/login/login.html | 108 ++ view/index/login/reg.html | 127 +++ view/index/other/404.html | 138 +++ view/index/other/notice.html | 38 + view/index/other/tips.html | 138 +++ view/index/public/.gitignore | 1 + view/index/public/404.html | 57 + view/index/public/base.html | 21 + view/index/public/column.html | 27 + view/index/public/filter.html | 13 + view/index/public/flink.html | 9 + view/index/public/footer.html | 8 + view/index/public/header.html | 65 ++ view/index/public/js.html | 11 + view/index/public/jump.html | 60 + view/index/public/layout.html | 79 ++ view/index/public/link.html | 3 + view/index/public/sign.html | 14 + view/index/public/user.html | 31 + view/index/sign/lists.html | 147 +++ view/index/user/activate.html | 33 + view/index/user/home.html | 103 ++ view/index/user/index.html | 179 +++ view/index/user/message.html | 72 ++ view/index/user/post.html | 238 ++++ view/index/user/set.html | 198 ++++ view/index/user/upimg.html | 31 + view/index/user/user.html | 70 ++ view/install/index/agreement.html | 26 + view/install/index/base.html | 40 + view/install/index/create.html | 139 +++ view/install/index/test.html | 104 ++ view/install/success/complete.html | 15 + 141 files changed, 14935 insertions(+) create mode 100644 addons/README.md create mode 100644 app/common/lib/Msg.php create mode 100644 config/.gitignore create mode 100644 public/install.php create mode 100644 public/static/res/images/weixin-1.jpg create mode 100644 public/static/res/images/weixin.jpg create mode 100644 public/static/res/mods/jquery.min.js create mode 100644 public/storage/head_pic/20191217/9406cc4b8f3e8271a28ac9db953937f5.jpg create mode 100644 vendor/opis/closure/CHANGELOG.md create mode 100644 vendor/opis/closure/LICENSE create mode 100644 vendor/opis/closure/NOTICE create mode 100644 vendor/opis/closure/README.md create mode 100644 vendor/opis/closure/autoload.php create mode 100644 vendor/opis/closure/composer.json create mode 100644 vendor/opis/closure/functions.php create mode 100644 vendor/opis/closure/src/Analyzer.php create mode 100644 vendor/opis/closure/src/ClosureContext.php create mode 100644 vendor/opis/closure/src/ClosureScope.php create mode 100644 vendor/opis/closure/src/ClosureStream.php create mode 100644 vendor/opis/closure/src/ISecurityProvider.php create mode 100644 vendor/opis/closure/src/ReflectionClosure.php create mode 100644 vendor/opis/closure/src/SecurityException.php create mode 100644 vendor/opis/closure/src/SecurityProvider.php create mode 100644 vendor/opis/closure/src/SelfReference.php create mode 100644 vendor/opis/closure/src/SerializableClosure.php create mode 100644 vendor/phpmailer/phpmailer/language/phpmailer.lang-am.php create mode 100644 vendor/psr/log/.gitignore create mode 100644 vendor/symfony/var-dumper/.gitattributes create mode 100644 vendor/topthink/framework/src/think/route/dispatch/Redirect.php create mode 100644 vendor/topthink/framework/src/think/route/dispatch/Response.php create mode 100644 vendor/topthink/framework/src/think/route/dispatch/View.php create mode 100644 view/README.md create mode 100644 view/admin/.gitignore create mode 100644 view/admin/admin/add.html create mode 100644 view/admin/admin/adminedit.html create mode 100644 view/admin/admin/adminform.html create mode 100644 view/admin/admin/edit.html create mode 100644 view/admin/admin/index.html create mode 100644 view/admin/admin/list.html create mode 100644 view/admin/article/comment.html create mode 100644 view/admin/article/contform.html create mode 100644 view/admin/article/list.html create mode 100644 view/admin/article/listform.html create mode 100644 view/admin/article/tags.html create mode 100644 view/admin/article/tagsform.html create mode 100644 view/admin/auth_access/add.html create mode 100644 view/admin/auth_access/edit.html create mode 100644 view/admin/auth_access/index.html create mode 100644 view/admin/auth_group/edit-1.html create mode 100644 view/admin/auth_group/role.html create mode 100644 view/admin/auth_group/roleadd.html create mode 100644 view/admin/auth_group/roleedit.html create mode 100644 view/admin/auth_rule/add.html create mode 100644 view/admin/auth_rule/edit.html create mode 100644 view/admin/auth_rule/index.html create mode 100644 view/admin/authgroup/edit.html create mode 100644 view/admin/authgroup/role-1.html create mode 100644 view/admin/authgroup/role.html create mode 100644 view/admin/authgroup/roleadd.html create mode 100644 view/admin/authgroup/roleedit-1.html create mode 100644 view/admin/authgroup/roleedit.html create mode 100644 view/admin/authrule/add.html create mode 100644 view/admin/authrule/edit.html create mode 100644 view/admin/authrule/index.html create mode 100644 view/admin/forum/list.html create mode 100644 view/admin/forum/listform.html create mode 100644 view/admin/forum/replys.html create mode 100644 view/admin/forum/replysform.html create mode 100644 view/admin/forum/tags.html create mode 100644 view/admin/forum/tagsform.html create mode 100644 view/admin/index/home.html create mode 100644 view/admin/index/index.html create mode 100644 view/admin/key_auth/add.html create mode 100644 view/admin/key_auth/edit.html create mode 100644 view/admin/key_auth/index.html create mode 100644 view/admin/login/forget.html create mode 100644 view/admin/login/login.html create mode 100644 view/admin/login/reg.html create mode 100644 view/admin/notice/edit.html create mode 100644 view/admin/notice/index.html create mode 100644 view/admin/public/base.html create mode 100644 view/admin/public/header.html create mode 100644 view/admin/public/page_tabs.html create mode 100644 view/admin/public/side_menu.html create mode 100644 view/admin/set/system/email.html create mode 100644 view/admin/set/system/server.html create mode 100644 view/admin/set/system/signedit.html create mode 100644 view/admin/set/system/vipedit.html create mode 100644 view/admin/set/system/website.html create mode 100644 view/admin/set/user/info.html create mode 100644 view/admin/set/user/repass.html create mode 100644 view/admin/slider/add.html create mode 100644 view/admin/slider/edit.html create mode 100644 view/admin/slider/index.html create mode 100644 view/admin/upgrade/index.html create mode 100644 view/admin/upgrade/keyedit.html create mode 100644 view/admin/user/list.html create mode 100644 view/admin/user/useredit.html create mode 100644 view/admin/user/userform.html create mode 100644 view/index/.gitignore create mode 100644 view/index/article/add.html create mode 100644 view/index/article/cate.html create mode 100644 view/index/article/detail.html create mode 100644 view/index/article/edit.html create mode 100644 view/index/error/404.html create mode 100644 view/index/index/index.html create mode 100644 view/index/index/search.html create mode 100644 view/index/login/forget.html create mode 100644 view/index/login/login.html create mode 100644 view/index/login/reg.html create mode 100644 view/index/other/404.html create mode 100644 view/index/other/notice.html create mode 100644 view/index/other/tips.html create mode 100644 view/index/public/.gitignore create mode 100644 view/index/public/404.html create mode 100644 view/index/public/base.html create mode 100644 view/index/public/column.html create mode 100644 view/index/public/filter.html create mode 100644 view/index/public/flink.html create mode 100644 view/index/public/footer.html create mode 100644 view/index/public/header.html create mode 100644 view/index/public/js.html create mode 100644 view/index/public/jump.html create mode 100644 view/index/public/layout.html create mode 100644 view/index/public/link.html create mode 100644 view/index/public/sign.html create mode 100644 view/index/public/user.html create mode 100644 view/index/sign/lists.html create mode 100644 view/index/user/activate.html create mode 100644 view/index/user/home.html create mode 100644 view/index/user/index.html create mode 100644 view/index/user/message.html create mode 100644 view/index/user/post.html create mode 100644 view/index/user/set.html create mode 100644 view/index/user/upimg.html create mode 100644 view/index/user/user.html create mode 100644 view/install/index/agreement.html create mode 100644 view/install/index/base.html create mode 100644 view/install/index/create.html create mode 100644 view/install/index/test.html create mode 100644 view/install/success/complete.html diff --git a/addons/README.md b/addons/README.md new file mode 100644 index 0000000..457acb8 --- /dev/null +++ b/addons/README.md @@ -0,0 +1,274 @@ +# think-addons +The ThinkPHP 6 Addons Package + +## 安装 +> composer require zzstudio/think-addons + +## 配置 + +### 生成配置 + +系统安装后会自动在 config 目录中生成 addons.php 的配置文件, +如果系统未生成可在命令行执行 + +```php +php think addons:config +``` + +快速生成配置文件 + +### 公共配置 +```php +'addons' => [ + // 是否自动读取取插件钩子配置信息(默认是开启) + 'autoload' => true, + // 当关闭自动获取配置时需要手动配置hooks信息 + 'hooks' => [ + // 可以定义多个钩子 + 'testhook'=>'test' // 键为钩子名称,用于在业务中自定义钩子处理,值为实现该钩子的插件, + // 多个插件可以用数组也可以用逗号分割 + ], + 'route' => [], + 'service' => [], +]; +``` +或者在\config目录中新建`addons.php`,内容为: +```php + false, + // 当关闭自动获取配置时需要手动配置hooks信息 + 'hooks' => [ + // 可以定义多个钩子 + 'testhook'=>'test' // 键为钩子名称,用于在业务中自定义钩子处理,值为实现该钩子的插件, + // 多个插件可以用数组也可以用逗号分割 + ], + 'route' => [], + 'service' => [], +]; +``` + +## 创建插件 +> 创建的插件可以在view视图中使用,也可以在php业务中使用 + +安装完成后访问系统时会在项目根目录生成名为`addons`的目录,在该目录中创建需要的插件。 + +下面写一个例子: + +### 创建test插件 +> 在addons目录中创建test目录 + +### 创建钩子实现类 +> 在test目录中创建 Plugin.php 类文件。注意:类文件首字母需大写 + +```php + 'test', // 插件标识 + 'title' => '插件测试', // 插件名称 + 'description' => 'thinkph6插件测试', // 插件简介 + 'status' => 0, // 状态 + 'author' => 'byron sampson', + 'version' => '0.1' + ]; + + /** + * 插件安装方法 + * @return bool + */ + public function install() + { + return true; + } + + /** + * 插件卸载方法 + * @return bool + */ + public function uninstall() + { + return true; + } + + /** + * 实现的testhook钩子方法 + * @return mixed + */ + public function testhook($param) + { + // 调用钩子时候的参数信息 + print_r($param); + // 当前插件的配置信息,配置信息存在当前目录的config.php文件中,见下方 + print_r($this->getConfig()); + // 可以返回模板,模板文件默认读取的为插件目录中的文件。模板名不能为空! + return $this->fetch('info'); + } + +} +``` + +### 创建插件配置文件 +> 在test目录中创建config.php类文件,插件配置文件可以省略。 + +```php + [ + 'title' => '是否显示:', + 'type' => 'radio', + 'options' => [ + '1' => '显示', + '0' => '不显示' + ], + 'value' => '1' + ] +]; +``` + +### 创建钩子模板文件 +> 在test->view目录中创建info.html模板文件,钩子在使用fetch方法时对应的模板文件。 + +```html +

hello tpl

+ +如果插件中需要有链接或提交数据的业务,可以在插件中创建controller业务文件, +要访问插件中的controller时使用addon_url生成url链接。 +如下: +link test +或 +link test +格式为: +test为插件名,Action为controller中的类名[多级控制器可以用.分割],link为controller中的方法 +``` + +### 创建插件的controller文件 +> 在test目录中创建controller目录,在controller目录中创建Index.php文件 +> controller类的用法与tp6中的controller一致 + +```php + 创建好插件后就可以在正常业务中使用该插件中的钩子了 +> 使用钩子的时候第二个参数可以省略 + +### 模板中使用钩子 + +```html +
{:hook('testhook', ['id'=>1])}
+``` + +### php业务中使用 +> 只要是thinkphp6正常流程中的任意位置均可以使用 + +```php +hook('testhook', ['id'=>1]) +``` + +### 插件公共方法 +```php +/** + * 处理插件钩子 + * @param string $event 钩子名称 + * @param array|null $params 传入参数 + * @param bool $once 是否只返回一个结果 + * @return mixed + */ +function hook($event, $params = null, bool $once = false); + +/** + * 读取插件的基础信息 + * @param string $name 插件名 + * @return array + */ +function get_addons_info($name); + +/** + * 获取插件Plugin的单例 + * @param string $name 插件名 + * @return mixed|null + */ +function get_addons_instance($name); + +/** + * 插件显示内容里生成访问插件的url + * @param $url 在插件控制器中可忽略插件名,在非插件中生成时需指定插件名。例:插件名://控制器/方法 + * @param array $param + * @param bool|string $suffix 生成的URL后缀 + * @param bool|string $domain 域名 + * @return bool|string + */ +function addons_url($url = '', $param = [], $suffix = true, $domain = false); + +``` + +## 插件目录结构 +### 最终生成的目录结构为 + +```html +www WEB部署目录(或者子目录) +├─addons 插件目录 +├─app 应用目录 +│ ├─controller 控制器目录 +│ ├─model 模型目录 +│ ├─ ... 更多类库目录 +│ │ +│ ├─common.php 公共函数文件 +│ └─event.php 事件定义文件 +│ +├─config 配置目录 +│ ├─app.php 应用配置 +│ ├─cache.php 缓存配置 +│ ├─console.php 控制台配置 +│ ├─cookie.php Cookie配置 +│ ├─database.php 数据库配置 +│ ├─filesystem.php 文件磁盘配置 +│ ├─lang.php 多语言配置 +│ ├─log.php 日志配置 +│ ├─middleware.php 中间件配置 +│ ├─route.php URL和路由配置 +│ ├─session.php Session配置 +│ ├─trace.php Trace配置 +│ └─view.php 视图配置 +│ +├─view 视图目录 +├─route 路由定义目录 +│ ├─route.php 路由定义文件 +│ └─ ... +│ +├─public WEB目录(对外访问目录) +│ ├─index.php 入口文件 +│ ├─router.php 快速测试文件 +│ └─.htaccess 用于apache的重写 +│ +├─extend 扩展类库目录 +├─runtime 应用的运行时目录(可写,可定制) +├─vendor Composer类库目录 +├─.example.env 环境变量示例文件 +├─composer.json composer 定义文件 +├─LICENSE.txt 授权说明文件 +├─README.md README 文件 +├─think 命令行入口文件 +``` diff --git a/app/common/lib/Msg.php b/app/common/lib/Msg.php new file mode 100644 index 0000000..22ae4e9 --- /dev/null +++ b/app/common/lib/Msg.php @@ -0,0 +1,104 @@ + 0, + 'error' => 1, + 'add_success' => Lang::get('add success'), + 'add_error' => Lang::get('add error'), + 'edit_success' => Lang::get('edit success'), + 'edit_error' => Lang::get('edit error'), + 'delete_success' => Lang::get('delete success'), + 'delete_error' => Lang::get('delete error'), + 'upload_success' => Lang::get('upload success'), + 'upload_error' => Lang::get('upload error'), + 'upgrade_success' => Lang::get('upgrade success'), + 'upgrade_error' => Lang::get('upgrade error'), + 'illegal_request' => Lang::get('illegal request'), + ]; + } + + + /** + * 获取返回码 + * @param string $strCode + * @return mixed string + */ + public static function getCode(string $strCode){ + foreach(self::setCodes() as $k => $v){ + if($k == $strCode){ + return $v; + } + } + } + + /** + * 获取返回信息 如果不存在返回自身 + * @param string $strMsg + * @return mixed string + */ + public static function getMsg(string $strMsg){ + foreach(self::setCodes() as $k => $v){ + if($k == $strMsg){ + return $v; + } + } + } + + /** + * 成功提示 + * @param string $strMsg + * @param string|null $url + * @param string $data + * @return string|\think\response\Json + */ + public static function success(string $strMsg,string $url = null, $data = ''){ + if(empty($strMsg)){ + return '不能返回为空消息'; + } + $result = [ + 'code' => self::getCode('success'), + 'msg' => self::getMsg($strMsg), + 'url' => $url, + 'data' => $data + ]; + return json($result); + } + + /** + * 失败提示 + * @param string $strMsg 消息提示码 + * @param string|null $url 跳转地址 + * @param string $data 返回数据 + * @return string|\think\response\Json + */ + public static function error(string $strMsg,string $url = null, $data = ''){ + if(empty($strMsg)){ + return '不能返回为空消息'; + } + $result = [ + 'code' => self::getCode('error'), + 'msg' => self::getMsg($strMsg), + 'url' => $url, + 'data' => $data + ]; + + return json($result); + } + + +} diff --git a/config/.gitignore b/config/.gitignore new file mode 100644 index 0000000..8617f70 --- /dev/null +++ b/config/.gitignore @@ -0,0 +1,2 @@ +database.php +app.php \ No newline at end of file diff --git a/public/install.php b/public/install.php new file mode 100644 index 0000000..31fa17a --- /dev/null +++ b/public/install.php @@ -0,0 +1,24 @@ + +// +---------------------------------------------------------------------- + +// [ 应用入口文件 ] +namespace think; + +require __DIR__ . '/../vendor/autoload.php'; + +// 执行HTTP应用并响应 +$http = (new App())->http; + +$response = $http->run(); + +$response->send(); + +$http->end($response); \ No newline at end of file diff --git a/public/static/res/images/weixin-1.jpg b/public/static/res/images/weixin-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7e06dec7665103e978f47e459cd7882ba8e422a2 GIT binary patch literal 26839 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

K~jfyU9iDRWi= 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 LNB-YjU;O_8W6Ya) literal 0 HcmV?d00001 diff --git a/public/static/res/images/weixin.jpg b/public/static/res/images/weixin.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9fea56e7ddd7963d68ecae811a656c4f9d1d0179 GIT binary patch literal 39917 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 literal 0 HcmV?d00001 diff --git a/public/static/res/mods/jquery.min.js b/public/static/res/mods/jquery.min.js new file mode 100644 index 0000000..4d9b3a2 --- /dev/null +++ b/public/static/res/mods/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w(" +{/block} \ No newline at end of file diff --git a/view/admin/admin/adminedit.html b/view/admin/admin/adminedit.html new file mode 100644 index 0000000..1a42838 --- /dev/null +++ b/view/admin/admin/adminedit.html @@ -0,0 +1,61 @@ + +{extend name="public:base" /} + +{block name="body"} + +

+
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/admin/adminform.html b/view/admin/admin/adminform.html new file mode 100644 index 0000000..f773449 --- /dev/null +++ b/view/admin/admin/adminform.html @@ -0,0 +1,57 @@ + +{extend name="public:base" /} + +{block name="body"} + +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/admin/edit.html b/view/admin/admin/edit.html new file mode 100644 index 0000000..e532b81 --- /dev/null +++ b/view/admin/admin/edit.html @@ -0,0 +1,51 @@ + +{extend name="public:base" /} + +{block name="body"} + +
+
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/admin/index.html b/view/admin/admin/index.html new file mode 100644 index 0000000..aa6c45e --- /dev/null +++ b/view/admin/admin/index.html @@ -0,0 +1,247 @@ +{extend name="public:base" /} + +{block name="body"} +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+ +
+
+ + +
+ +
+ + + +
+
+
+ +{/block} +{block name="js"} + +{/block} diff --git a/view/admin/admin/list.html b/view/admin/admin/list.html new file mode 100644 index 0000000..a877812 --- /dev/null +++ b/view/admin/admin/list.html @@ -0,0 +1,226 @@ +{extend name="public:base" /} + +{block name="body"} +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+ +
+
+ + +
+ +
+ + + +
+
+
+ +{/block} +{block name="js"} + +{/block} diff --git a/view/admin/article/comment.html b/view/admin/article/comment.html new file mode 100644 index 0000000..d472146 --- /dev/null +++ b/view/admin/article/comment.html @@ -0,0 +1,113 @@ + + + + + + + layuiAdmin 内容系统 - 评论管理 + + + + + + + + +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+
+
+ +
+
+ +
+
+
+ + + + + + diff --git a/view/admin/article/contform.html b/view/admin/article/contform.html new file mode 100644 index 0000000..244c7c4 --- /dev/null +++ b/view/admin/article/contform.html @@ -0,0 +1,44 @@ + + + + + + + layuiAdmin 评论管理 iframe 框 + + + + + + + + +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ + + + + \ No newline at end of file diff --git a/view/admin/article/list.html b/view/admin/article/list.html new file mode 100644 index 0000000..99c1c93 --- /dev/null +++ b/view/admin/article/list.html @@ -0,0 +1,147 @@ + + + + + + + layuiAdmin 内容系统 - 文章列表 + + + + + + + + +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+ +
+
+ + +
+
+ + +
+
+
+ + + + + diff --git a/view/admin/article/listform.html b/view/admin/article/listform.html new file mode 100644 index 0000000..80f81bd --- /dev/null +++ b/view/admin/article/listform.html @@ -0,0 +1,82 @@ + + + + + + + layuiAdmin 文章管理 iframe 框 + + + + + + + +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ + +
+
+ + + + + \ No newline at end of file diff --git a/view/admin/article/tags.html b/view/admin/article/tags.html new file mode 100644 index 0000000..ab179c7 --- /dev/null +++ b/view/admin/article/tags.html @@ -0,0 +1,66 @@ + + + + + + layuiAdmin 内容系统-分类管理 + + + + + + + + +
+
+
+ +
+
+
+ +
+
+
+ + + + + diff --git a/view/admin/article/tagsform.html b/view/admin/article/tagsform.html new file mode 100644 index 0000000..5ed7579 --- /dev/null +++ b/view/admin/article/tagsform.html @@ -0,0 +1,38 @@ + + + + + + + layuiAdmin 分类管理 iframe 框 + + + + + + + + + +
+
+ +
+ +
+
+
+ + + + + \ No newline at end of file diff --git a/view/admin/auth_access/add.html b/view/admin/auth_access/add.html new file mode 100644 index 0000000..406614f --- /dev/null +++ b/view/admin/auth_access/add.html @@ -0,0 +1,44 @@ + +{extend name="public:base" /} + +{block name="body"} + +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/auth_access/edit.html b/view/admin/auth_access/edit.html new file mode 100644 index 0000000..6507d8d --- /dev/null +++ b/view/admin/auth_access/edit.html @@ -0,0 +1,47 @@ + +{extend name="public:base" /} + +{block name="body"} + +
+
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/auth_access/index.html b/view/admin/auth_access/index.html new file mode 100644 index 0000000..82d1ebb --- /dev/null +++ b/view/admin/auth_access/index.html @@ -0,0 +1,207 @@ +{extend name="public/base" /} + +{block name="body"} + +
+
+
+
+
+ 管理员筛选 +
+
+ +
+
+
+
+
+ + +
+ +
+ + +
+
+
+ +{/block} +{block name="js"} + +{/block} + diff --git a/view/admin/auth_group/edit-1.html b/view/admin/auth_group/edit-1.html new file mode 100644 index 0000000..0c3d30e --- /dev/null +++ b/view/admin/auth_group/edit-1.html @@ -0,0 +1,119 @@ + + + + + +
+ +
+ + + +
    +
  • + +
      + + + + +
    +
  • +
+ +
    +
  • + +
      + + + + +
    +
  • +
+ +
    +
  • + +
      + + + + +
    +
  • +
+ +
+
+ + + +//获取选中的checkbox的值 +var mId = ""; +var e =iframeWindow.$(":checkbox"); +e.each(function () { + if($(this).next().hasClass("layui-form-checked")){ + mId+=$(this).val()+","; + }; +}) +mId = mId.substring(0,mId.length-1); + diff --git a/view/admin/auth_group/role.html b/view/admin/auth_group/role.html new file mode 100644 index 0000000..f0b077d --- /dev/null +++ b/view/admin/auth_group/role.html @@ -0,0 +1,231 @@ +{extend name="public/base" /} + +{block name="body"} + +
+
+
+
+
+ 角色筛选 +
+
+ +
+
+
+
+
+ + +
+ +
+ + +
+
+
+ +{/block} +{block name="js"} + +{/block} + diff --git a/view/admin/auth_group/roleadd.html b/view/admin/auth_group/roleadd.html new file mode 100644 index 0000000..2f2ddad --- /dev/null +++ b/view/admin/auth_group/roleadd.html @@ -0,0 +1,101 @@ +{extend name="public/base" /} + +{block name="body"} + +
+
+ +
+ +
+
+ +
+ + {volist name="menus" id="vo1"} +
    +
  • + + +
      + {if condition="isset($vo1['children'])"} + {volist name="vo1['children']" id="vo2"} + {if condition="isset($vo2['children'])"} + + {volist name="vo2['children']" id="vo3"} + + {/volist} + {else /} + + {/if} + {/volist} + {/if} +
    +
  • +
+ {/volist} +
+ +
+ +
+ +
+
+
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/auth_group/roleedit.html b/view/admin/auth_group/roleedit.html new file mode 100644 index 0000000..a6d34b4 --- /dev/null +++ b/view/admin/auth_group/roleedit.html @@ -0,0 +1,129 @@ +{extend name="public/base" /} + +{block name="body"} + +
+
+ +
+ +
+ +
+ +
+
+ +
+ + {volist name="menus" id="vo1"} +
    +
  • + + +
      + {if condition="isset($vo1['children'])"} + {volist name="vo1['children']" id="vo2"} + {if condition="isset($vo2['children'])"} + + {volist name="vo2['children']" id="vo3"} + + {/volist} + {else /} + + {/if} + {/volist} + {/if} +
    +
  • +
+ {/volist} +
+ + +
+ +
+ +
+
+
+ +
+
+ +{/block} +{block name="js"} + + + + + +{/block} \ No newline at end of file diff --git a/view/admin/auth_rule/add.html b/view/admin/auth_rule/add.html new file mode 100644 index 0000000..0ce8454 --- /dev/null +++ b/view/admin/auth_rule/add.html @@ -0,0 +1,65 @@ + +{extend name="public:base" /} + +{block name="body"} + +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/auth_rule/edit.html b/view/admin/auth_rule/edit.html new file mode 100644 index 0000000..a34a71a --- /dev/null +++ b/view/admin/auth_rule/edit.html @@ -0,0 +1,68 @@ + +{extend name="public:base" /} + +{block name="body"} + +
+
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/auth_rule/index.html b/view/admin/auth_rule/index.html new file mode 100644 index 0000000..0c99b98 --- /dev/null +++ b/view/admin/auth_rule/index.html @@ -0,0 +1,277 @@ +{extend name="public:base" /} + +{block name="body"} +
+
+
权限菜单
+ +
+
+ +
+
+ + + + + +
+
+
+ +{/block} +{block name="js"} + + +{/block} diff --git a/view/admin/authgroup/edit.html b/view/admin/authgroup/edit.html new file mode 100644 index 0000000..0c3d30e --- /dev/null +++ b/view/admin/authgroup/edit.html @@ -0,0 +1,119 @@ + + + + + +
+ +
+ + + +
    +
  • + +
      + + + + +
    +
  • +
+ +
    +
  • + +
      + + + + +
    +
  • +
+ +
    +
  • + +
      + + + + +
    +
  • +
+ +
+
+ + + +//获取选中的checkbox的值 +var mId = ""; +var e =iframeWindow.$(":checkbox"); +e.each(function () { + if($(this).next().hasClass("layui-form-checked")){ + mId+=$(this).val()+","; + }; +}) +mId = mId.substring(0,mId.length-1); + diff --git a/view/admin/authgroup/role-1.html b/view/admin/authgroup/role-1.html new file mode 100644 index 0000000..8bf0b79 --- /dev/null +++ b/view/admin/authgroup/role-1.html @@ -0,0 +1,164 @@ +{extend name="public/base" /} + +{block name="body"} + +
+
+
+
+
+ 角色筛选 +
+
+ +
+
+
+
+
+ + +
+ +
+ + +
+
+
+ +{/block} +{block name="js"} + +{/block} + diff --git a/view/admin/authgroup/role.html b/view/admin/authgroup/role.html new file mode 100644 index 0000000..eb0fc10 --- /dev/null +++ b/view/admin/authgroup/role.html @@ -0,0 +1,164 @@ +{extend name="public/base" /} + +{block name="body"} + +
+
+
+
+
+ 角色筛选 +
+
+ +
+
+
+
+
+ + +
+ +
+ + +
+
+
+ +{/block} +{block name="js"} + +{/block} + diff --git a/view/admin/authgroup/roleadd.html b/view/admin/authgroup/roleadd.html new file mode 100644 index 0000000..2f2ddad --- /dev/null +++ b/view/admin/authgroup/roleadd.html @@ -0,0 +1,101 @@ +{extend name="public/base" /} + +{block name="body"} + +
+
+ +
+ +
+
+ +
+ + {volist name="menus" id="vo1"} +
    +
  • + + +
      + {if condition="isset($vo1['children'])"} + {volist name="vo1['children']" id="vo2"} + {if condition="isset($vo2['children'])"} + + {volist name="vo2['children']" id="vo3"} + + {/volist} + {else /} + + {/if} + {/volist} + {/if} +
    +
  • +
+ {/volist} +
+ +
+ +
+ +
+
+
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/authgroup/roleedit-1.html b/view/admin/authgroup/roleedit-1.html new file mode 100644 index 0000000..ceb7e5e --- /dev/null +++ b/view/admin/authgroup/roleedit-1.html @@ -0,0 +1,154 @@ +{extend name="public/base" /} + +{block name="body"} + +
+
+ +
+
+ +
+ +
+
+ {volist name="menu" id="vo1"} +
+ + +
+ +
+ {if condition="isset($vo1['children'])"} + {volist name="vo1['children']" id="vo2"} + {if condition="isset($vo2['children'])"} + {volist name="vo2['children']" id="vo3"} + + {/volist} + {else /} + + + + {/if} + {/volist} + {/if} +
+
+ {/volist} +
+ +
+ +
+
+
+ +
+
+ +{/block} +{block name="js"} + + + + + +{/block} \ No newline at end of file diff --git a/view/admin/authgroup/roleedit.html b/view/admin/authgroup/roleedit.html new file mode 100644 index 0000000..a6d34b4 --- /dev/null +++ b/view/admin/authgroup/roleedit.html @@ -0,0 +1,129 @@ +{extend name="public/base" /} + +{block name="body"} + +
+
+ +
+ +
+ +
+ +
+
+ +
+ + {volist name="menus" id="vo1"} +
    +
  • + + +
      + {if condition="isset($vo1['children'])"} + {volist name="vo1['children']" id="vo2"} + {if condition="isset($vo2['children'])"} + + {volist name="vo2['children']" id="vo3"} + + {/volist} + {else /} + + {/if} + {/volist} + {/if} +
    +
  • +
+ {/volist} +
+ + +
+ +
+ +
+
+
+ +
+
+ +{/block} +{block name="js"} + + + + + +{/block} \ No newline at end of file diff --git a/view/admin/authrule/add.html b/view/admin/authrule/add.html new file mode 100644 index 0000000..0ce8454 --- /dev/null +++ b/view/admin/authrule/add.html @@ -0,0 +1,65 @@ + +{extend name="public:base" /} + +{block name="body"} + +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/authrule/edit.html b/view/admin/authrule/edit.html new file mode 100644 index 0000000..a34a71a --- /dev/null +++ b/view/admin/authrule/edit.html @@ -0,0 +1,68 @@ + +{extend name="public:base" /} + +{block name="body"} + +
+
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/authrule/index.html b/view/admin/authrule/index.html new file mode 100644 index 0000000..7664c8f --- /dev/null +++ b/view/admin/authrule/index.html @@ -0,0 +1,310 @@ +{extend name="public:base" /} + +{block name="body"} +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+ +
+
+ + +
+ +
+ + + + + + + + + +
+
+
+ +{/block} +{block name="js"} + + +{/block} diff --git a/view/admin/forum/list.html b/view/admin/forum/list.html new file mode 100644 index 0000000..fe40f36 --- /dev/null +++ b/view/admin/forum/list.html @@ -0,0 +1,210 @@ +{extend name="public:base" /} + +{block name="body"} +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+ +
+
+ +
+
+ + + + + + + +
+
+
+ +{/block} + +{block name="js"} + +{/block} diff --git a/view/admin/forum/listform.html b/view/admin/forum/listform.html new file mode 100644 index 0000000..aba40e0 --- /dev/null +++ b/view/admin/forum/listform.html @@ -0,0 +1,61 @@ +{extend name="public:base" /} + +{block name="body"} + +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+ +
+
+ +
+
+ +{/block} + +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/forum/replys.html b/view/admin/forum/replys.html new file mode 100644 index 0000000..6b911dc --- /dev/null +++ b/view/admin/forum/replys.html @@ -0,0 +1,168 @@ +{extend name="public:base" /} + +{block name="body"} + +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+
+
+ +
+
+ + + + +
+
+
+ +{/block} + +{block name="js"} + +{/block} diff --git a/view/admin/forum/replysform.html b/view/admin/forum/replysform.html new file mode 100644 index 0000000..bfa84ce --- /dev/null +++ b/view/admin/forum/replysform.html @@ -0,0 +1,39 @@ +{extend name="public:base" /} + +{block name="body"} + +
+
+ +
+ +
+
+
+ +{/block} + +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/forum/tags.html b/view/admin/forum/tags.html new file mode 100644 index 0000000..f32e807 --- /dev/null +++ b/view/admin/forum/tags.html @@ -0,0 +1,136 @@ +{extend name="public:base" /} + +{block name="body"} +
+
+
+ {if condition="checkRuleButton('admin/forum/addtags')"} + + {/if} +
+
+
+ + +
+
+
+ +{/block} + +{block name="js"} + +{/block} diff --git a/view/admin/forum/tagsform.html b/view/admin/forum/tagsform.html new file mode 100644 index 0000000..f3bf31a --- /dev/null +++ b/view/admin/forum/tagsform.html @@ -0,0 +1,39 @@ +{extend name="public:base" /} + +{block name="body"} + +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+ +{/block} + +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/index/home.html b/view/admin/index/home.html new file mode 100644 index 0000000..a2623ee --- /dev/null +++ b/view/admin/index/home.html @@ -0,0 +1,293 @@ +{extend name="public/base" /} + +{block name="body"} +
+
+
+
+
+
+
快捷方式
+ +
+
+ +
+
+
数据概览
+
+ + + +
+
+
+
+
    +
  • 今周发帖
  • +
  • 今周评论
  • +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
版本信息
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
当前系统 + +
当前版本 + +
核心框架 + +
PHP版本 + +
UI框架 + +
运行时间 + +
+
+
+ +
+
效果报告
+
+
+

转化率(日同比 28%

+
+
+
+

签到率(日同比 11%

+
+
+
+
+ +
+
实时监控
+
+
+

CPU使用率

+
+
+
+

内存占用率

+
+
+
+
+ + + +
+
+ 作者心语 + +
+
+

TaoLer,采用Thinkphp6.0最新版本为开发框架,代码简洁,运行高效,更新及时。layui是国内比较流行的前端框架,两者完美结合,您会拥有一个非常让人舒适的网站。

+

专注专一,大简其道!--本系统的特点,力争做到简洁,不臃肿,功能专一。不管是学习还是商用,都可以良好的运行。

+

作者尽最大可能,长期进行项目的维护,做到长期可用。

+
+
+
+ +
+
+{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/index/index.html b/view/admin/index/index.html new file mode 100644 index 0000000..fc22da8 --- /dev/null +++ b/view/admin/index/index.html @@ -0,0 +1,32 @@ +{extend name="public:base" /} + +{block name="body"} +
+
+ {include file="public/header,public/side_menu,public/page_tabs" /} + + +
+
+ +
+
+ + +
+
+
+{/block} + +{block name="js"} + + {/block} + + + diff --git a/view/admin/key_auth/add.html b/view/admin/key_auth/add.html new file mode 100644 index 0000000..884e0c4 --- /dev/null +++ b/view/admin/key_auth/add.html @@ -0,0 +1,67 @@ +{extend name="public/base" /} + +{block name="body"} + +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/key_auth/edit.html b/view/admin/key_auth/edit.html new file mode 100644 index 0000000..f69219d --- /dev/null +++ b/view/admin/key_auth/edit.html @@ -0,0 +1,73 @@ +{extend name="public/base" /} + +{block name="body"} + +
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/key_auth/index.html b/view/admin/key_auth/index.html new file mode 100644 index 0000000..8117248 --- /dev/null +++ b/view/admin/key_auth/index.html @@ -0,0 +1,212 @@ +{extend name="public/base" /} + +{block name="body"} +
+
+
+
+
版本发布
+
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + {volist name="keys" id="vo"} + + + + + + + + + + + + + {/volist} + +
ID用户域名Key等级状态申请时间到期时间操作
{$vo.id}{$vo.user}{$vo.domain}{$vo.key}{$vo.auth_level}{$vo.status?'正常':'禁用'}{$vo.create_time|date='Y-m-d'}{$vo.end_time|date='Y-m-d'} + 编辑 + 删除 +
+
+ +
+ + +
+ +
+
+
+
+
+ +{/block} +{block name="js"} + + + +{/block} \ No newline at end of file diff --git a/view/admin/login/forget.html b/view/admin/login/forget.html new file mode 100644 index 0000000..e4c34c2 --- /dev/null +++ b/view/admin/login/forget.html @@ -0,0 +1,143 @@ +{extend name="public/base" /} + +{block name="title"}忘记密码 - TaoLer{/block} + +{block name="css"}{/block} +{block name="body"} + + +{/block} + +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/login/login.html b/view/admin/login/login.html new file mode 100644 index 0000000..65a15f4 --- /dev/null +++ b/view/admin/login/login.html @@ -0,0 +1,146 @@ +{extend name="public/base" /} + +{block name="title"}登入 - TaoLer{/block} +{block name="css"}{/block} +{block name="body"} + +{/block} + +{block name="js"} + + +{/block} \ No newline at end of file diff --git a/view/admin/login/reg.html b/view/admin/login/reg.html new file mode 100644 index 0000000..56e5e78 --- /dev/null +++ b/view/admin/login/reg.html @@ -0,0 +1,120 @@ +{extend name="public/base" /} + +{block name="css"}{/block} +{block name="body"} + +{/block} + +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/notice/edit.html b/view/admin/notice/edit.html new file mode 100644 index 0000000..304ce40 --- /dev/null +++ b/view/admin/notice/edit.html @@ -0,0 +1,67 @@ +{extend name="public/base" /} + +{block name="body"} +
+
+
+
+
+ +
+
+
+
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+ +
+
+
+
+
+{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/notice/index.html b/view/admin/notice/index.html new file mode 100644 index 0000000..907fe0c --- /dev/null +++ b/view/admin/notice/index.html @@ -0,0 +1,130 @@ +{extend name="public/base" /} + +{block name="body"} +
+
+
+
+
+ +
+
+
+
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+ +
+
+
+ {if condition="checkRuleButton('admin/notice/add')"} + + {else /}{/if} +
+
+ + +
+
+
+
+ +
+
+ +
+ +
+
+
+
+
+{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/public/base.html b/view/admin/public/base.html new file mode 100644 index 0000000..0294fa5 --- /dev/null +++ b/view/admin/public/base.html @@ -0,0 +1,26 @@ + + + + + {block name="title"}TaoLer后台管理模板系统{/block} + + + + + + {block name="css"}{/block} + + +{block name="body"}内容{/block} + + + +{block name="js"}js文件{/block} + + \ No newline at end of file diff --git a/view/admin/public/header.html b/view/admin/public/header.html new file mode 100644 index 0000000..3df1fcd --- /dev/null +++ b/view/admin/public/header.html @@ -0,0 +1,72 @@ +
+ + + +
\ No newline at end of file diff --git a/view/admin/public/page_tabs.html b/view/admin/public/page_tabs.html new file mode 100644 index 0000000..6825410 --- /dev/null +++ b/view/admin/public/page_tabs.html @@ -0,0 +1,22 @@ + +
+
+
+ +
+
    +
  • +
+
+
\ No newline at end of file diff --git a/view/admin/public/side_menu.html b/view/admin/public/side_menu.html new file mode 100644 index 0000000..67d70c4 --- /dev/null +++ b/view/admin/public/side_menu.html @@ -0,0 +1,79 @@ + +
+
+ + + +
+
\ No newline at end of file diff --git a/view/admin/set/system/email.html b/view/admin/set/system/email.html new file mode 100644 index 0000000..4caa547 --- /dev/null +++ b/view/admin/set/system/email.html @@ -0,0 +1,66 @@ +{extend name="public/base" /} + +{block name="body"} +
+
+
+
+
邮件服务
+
+ +
+
+ +
+ +
+
如:smtp.163.com
+
+
+ +
+ +
+
一般为 25 或 465
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ +
+
+
+ +
+
+
+
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/set/system/server.html b/view/admin/set/system/server.html new file mode 100644 index 0000000..70484a0 --- /dev/null +++ b/view/admin/set/system/server.html @@ -0,0 +1,190 @@ +{extend name="public/base" /} + +{block name="body"} +
+
+
+
+
+ +
+
    +
  • 积分设置
  • +
  • 用户等级
  • +
+
+
+
+
+ +
+
+ +
+ +
+
+ +
+
+ {if condition="checkRuleButton('admin/Sign/add')"} + + {else /}{/if} +
+
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+ +
+ +
+
+ +
+
+ {if condition="checkRuleButton('admin/Vip/add')"} + + {else /}{/if} +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ +{/block} +{block name="js"} + +{/block} diff --git a/view/admin/set/system/signedit.html b/view/admin/set/system/signedit.html new file mode 100644 index 0000000..db3d3b1 --- /dev/null +++ b/view/admin/set/system/signedit.html @@ -0,0 +1,38 @@ +{extend name="public/base" /} + +{block name="body"} + +
+
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/set/system/vipedit.html b/view/admin/set/system/vipedit.html new file mode 100644 index 0000000..1c68013 --- /dev/null +++ b/view/admin/set/system/vipedit.html @@ -0,0 +1,54 @@ +{extend name="public/base" /} + +{block name="body"} + +
+
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/set/system/website.html b/view/admin/set/system/website.html new file mode 100644 index 0000000..b80edf5 --- /dev/null +++ b/view/admin/set/system/website.html @@ -0,0 +1,204 @@ +{extend name="public/base" /} + +{block name="body"} +
+
+
+
+
+ +
+
    +
  • 网站设置
  • +
  • 邮箱服务
  • +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ + {if condition="checkRuleButton('admin/set/upload')"} + + + {else /}{/if} +
+
+
+ +
+ +
+
分钟
+
本地开发一般推荐设置为 0,线上环境建议设置为 10。
+
+
+ +
+ +
+
KB
+
提示:1 M = 1024 KB
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
提示:
+
未经授权用户,可不限制功能使用,但严禁私自改写版权脚本。一旦发现,永远禁止升级并追诉相关责任。
+
+
+
+
+ {if condition="checkRuleButton('admin/Set/website')"} + + {else /}{/if} +
+
+
+
+
+
+
+ +
+ +
+
如:smtp.163.com
+
+
+ +
+ +
+
一般为 25 或 465
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ {if condition="checkRuleButton('admin/Set/email')"} + + {else /}{/if} +
+
+
+
+
+
+ +
+
+
+
+
+{/block} +{block name="js"} + +{/block} diff --git a/view/admin/set/user/info.html b/view/admin/set/user/info.html new file mode 100644 index 0000000..6173547 --- /dev/null +++ b/view/admin/set/user/info.html @@ -0,0 +1,101 @@ +{extend name="public/base" /} + +{block name="body"} + +
+
+
+
+
设置我的资料
+
+ +
+
+ +
+
+ +
+ +
+
当前角色不可更改为其它角色
+
+
+ +
+ +
+
不可修改。一般用于后台登入名
+
+
+ +
+ +
+
+
+ +
+ + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ {if condition="checkRuleButton('admin/Admin/infoSet')"} + + {else /} + + {/if} + +
+
+
+ +
+
+
+
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/set/user/repass.html b/view/admin/set/user/repass.html new file mode 100644 index 0000000..24d0373 --- /dev/null +++ b/view/admin/set/user/repass.html @@ -0,0 +1,58 @@ +{extend name="public/base" /} + +{block name="body"} +
+
+
+
+
修改密码
+
+ +
+
+ +
+ +
+
+
+ +
+ +
+
6到16个字符
+
+
+ +
+ +
+
+
+
+ {if condition="checkRuleButton('admin/Admin/repassSet')"} + + {else /} + + {/if} +
+
+
+ +
+
+
+
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/slider/add.html b/view/admin/slider/add.html new file mode 100644 index 0000000..c914864 --- /dev/null +++ b/view/admin/slider/add.html @@ -0,0 +1,120 @@ +{extend name="public/base" /} + +{block name="body"} + +
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+ +
+ +
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/slider/edit.html b/view/admin/slider/edit.html new file mode 100644 index 0000000..f254d7a --- /dev/null +++ b/view/admin/slider/edit.html @@ -0,0 +1,119 @@ +{extend name="public/base" /} + +{block name="body"} + +
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+ +
+ +
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/slider/index.html b/view/admin/slider/index.html new file mode 100644 index 0000000..1a32493 --- /dev/null +++ b/view/admin/slider/index.html @@ -0,0 +1,218 @@ +{extend name="public/base" /} + +{block name="body"} +
+
+
+
+
首页幻灯
+
+ +
+ +
+ +
+ + + + + + + + + + + + + + + + + {volist name="slider" id="vo"} + + + + + + + + + + + + + {/volist} + +
ID名称图片位置路径颜色开始结束状态操作
{$vo.id}{$vo.slid_name}{if condition="$vo.slid_img != ''"}{/if}{$vo.slid_type}{$vo.slid_href}{$vo.slid_color}{$vo.slid_start|date='Y-m-d'}{$vo.slid_over|date='Y-m-d'}{$vo.slid_status ?'显示':'禁止'} + 编辑 + {if condition="checkRuleButton('admin/Slider/delete')"} + 删除 + {else /}删除{/if} +
+
+ +
+ + +
+ +
+
+
+
+
+ +{/block} +{block name="js"} + + + +{/block} \ No newline at end of file diff --git a/view/admin/upgrade/index.html b/view/admin/upgrade/index.html new file mode 100644 index 0000000..11ddc56 --- /dev/null +++ b/view/admin/upgrade/index.html @@ -0,0 +1,278 @@ +{extend name="public/base" /} + +{block name="body"} +
+
+
+
+
升级服务
+
+ +
+ {if ($ver_num.key == '')} +
+ +
+ +
+
+
无Key不能升级
+ +
+ {else /} +
+ +
+ +
+
{$ver_num.key}
+
+ {if condition="checkRuleButton('admin/Upgrade/keyedit')"} + 修改? + {else /}修改?{/if} +
+
+
+ +
当前版本:Taole v_{$ver_num.sys_version_num}
+
+ {if condition="checkRuleButton('admin/Upgrade/check')"} + + {else /}{/if} +
+
+
+ +
+ {if condition="checkRuleButton('admin/Upgrade/uploadzip')"} + + + {else /}{/if} +
+
+ + {/if} + +
+
+
升级说明
+
1.升级服务需要去官网申请key配置文件
+
2.多个版本需要升级时,会自行判断依次序升级
+
3.升级过程尽管会自动备份文件,但为了安全起见可以自行备份文件
+
4.在某些特殊场合,可能需要手动升级
+
+ +
+ +
+ +
+
+
+
+
+ +{/block} +{block name="js"} + + +{/block} \ No newline at end of file diff --git a/view/admin/upgrade/keyedit.html b/view/admin/upgrade/keyedit.html new file mode 100644 index 0000000..f040225 --- /dev/null +++ b/view/admin/upgrade/keyedit.html @@ -0,0 +1,52 @@ +{extend name="public/base" /} + +{block name="body"} + +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
未通知api接口变更,请不要私自更改api,否则无法升级
+
+
+ +
+ +
+ +
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/user/list.html b/view/admin/user/list.html new file mode 100644 index 0000000..7ac84cf --- /dev/null +++ b/view/admin/user/list.html @@ -0,0 +1,300 @@ +{extend name="public/base" /} + +{block name="body"} + +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+ +
+
+ + +
+ +
+ + + + + +
+
+
+ +{/block} +{block name="js"} + +{/block} diff --git a/view/admin/user/useredit.html b/view/admin/user/useredit.html new file mode 100644 index 0000000..625f3f5 --- /dev/null +++ b/view/admin/user/useredit.html @@ -0,0 +1,83 @@ +{extend name="public/base" /} + +{block name="body"} + +
+
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+ +
+
+ +
+ + +
+
+
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/admin/user/userform.html b/view/admin/user/userform.html new file mode 100644 index 0000000..b1c95f8 --- /dev/null +++ b/view/admin/user/userform.html @@ -0,0 +1,80 @@ +{extend name="public/base" /} + +{block name="body"} + +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+ +
+
+ +
+ + +
+
+
+ +
+
+ +{/block} +{block name="js"} + +{/block} \ No newline at end of file diff --git a/view/index/.gitignore b/view/index/.gitignore new file mode 100644 index 0000000..02f238c --- /dev/null +++ b/view/index/.gitignore @@ -0,0 +1 @@ +/api \ No newline at end of file diff --git a/view/index/article/add.html b/view/index/article/add.html new file mode 100644 index 0000000..a9d4440 --- /dev/null +++ b/view/index/article/add.html @@ -0,0 +1,251 @@ +{extend name="public/base" /} +{block name="title"}发表帖子{/block} +{block name="column"}{/block} +{block name="content"} +
+
+ +
+
+
    +
  • 发表新帖
  • +
+
+
+ +
+
+ +
+ +
+
+
+ +
+ + + +
+
+ {if ($user.auth == 1)} +
+
+
+ {/if} +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+ +
+
+
+
+ +
+ +
+
是否回复可下载或者密码下载
+
+
+ +
+
+ +
+ +
+ +
+
+
+
+
+
+ + +
+ +
+ +
+
+ captcha +
+
+
+ +
+ +
+
+
+
+
+
+{/block} + +{block name="script"} + + +{/block} \ No newline at end of file diff --git a/view/index/article/cate.html b/view/index/article/cate.html new file mode 100644 index 0000000..1420a69 --- /dev/null +++ b/view/index/article/cate.html @@ -0,0 +1,109 @@ +{extend name="public/base" /} +{block name="title"}{$Request.param.ename|getCateName}-{$sysInfo.webname}{/block} +{block name="keywords"}{$Request.param.ename|getCateName},{$sysInfo.webname}{/block} +{block name="description"}{$Request.param.ename|getCateDesc}{/block} +{block name="column"}{include file="/public/column" /}{/block} + +{block name="content"} +
+
+
+
+ + {include file="public/filter" /} + +
{$artList|raw}
+ +
+ +
+
+
+
本周热议
+ {volist name="artHot" id="vo"} +
+ {$vo.title} + {$vo.comments_count} +
+ {/volist} +
+ +
+
心级赞助商 - + 我要加入 +
+
+ {volist name="ad_cate" id="vo"} + {$vo.slid_name} + {/volist} +
+
+ +
+
+ 这里可作为广告区域 +
+
+ {volist name="ad_comm" id="vo"} + + {/volist} +
+
+
+
+
+ +{/block} +{block name="script"} + +{/block} \ No newline at end of file diff --git a/view/index/article/detail.html b/view/index/article/detail.html new file mode 100644 index 0000000..998a011 --- /dev/null +++ b/view/index/article/detail.html @@ -0,0 +1,350 @@ +{extend name="public/base" /} +{block name="title"}{$article.title}-{$sysInfo.webname}{/block} +{block name="keywords"}{$article.title},{$article.tags}{/block} +{block name="description"}{$article.title},{:getArtContent($article.content)}{/block} +{block name="column"}
{include file="/public/column" /}
{/block} +{block name="content"} +
+
+
+
+

{$article.title} +
+

+ +
+ + {$article.cate.catename} + {if ($article.jie == 0)} + 未结 + {else /} + 已结 + {/if} + {if ($article.is_top == 1)} + 置顶 + {/if} + {if ($article.is_hot == 1)} + 精帖 + {/if} +
+ {if ($user.auth == 1)} + 删除 + {if($article.is_top == 0)} + 置顶 + {else /} + 取消置顶 + {/if} + {if($article.is_hot == 0)} + 加精 + {else /} + 取消加精 + {/if} + 高亮 + {/if} +
+ + + {$comments->count()} + {$pv} + +
+
+ + {$article.user.name} + + +
+ + {if(session('user_name')==$article.user.name || $user.auth == 1)} + 编辑此贴 + {/if} +
+
+
{$article.content|raw}
+
+ +
+
+ 回帖 +
+ +
    + {volist name="comments" id="vo" empty="暂时还没有评论"} +
  • + +
    + +  + +
    + + {:getAsing($vo.user.area_id) ?: '无'} + {$vo.user.nickname ?: $vo.user.name} + + + {if condition="$article.user.id eq $vo.user.id"} + (贴主) + {/if} + +
    + +
    + {$vo.create_time} +
    + {if $vo.cai == 1} + + {/if} +
    + +
    {$vo.content|raw}
    + +
    + + {$vo.zan} + + 回复 + +
    + {if (session('user_id') == $vo.user.id) && (getLimtTime($vo.create_time) < 2) OR $user.auth == 1} + 编辑 + 删除 + {if $vo.cai == 0 && session('user_id') == $article.user_id /} + 采纳 + {/if} + {/if} +
    +
    +
  • + {/volist} +
+ +
+ {$comments|raw} +
+ + {if condition="$article.is_reply == 1"} +
+
+
+ +
+ +
+
+
+ + + +
+
+
+ {else /} +
本帖已设置禁止回复
+ {/if} +
+
+
+
+
本周热议
+ {volist name="artHot" id="vo"} +
+ {$vo.title} + {$comments->count()} +
+ {/volist} + + + +
+ +
+
心级赞助商 - + 我要加入 +
+
+ {volist name="ad_art" id="vo"} + {$vo.slid_name} + {/volist} +
+
+ +
+
+ 这里可作为广告区域 +
+ + +
+ +
+ {volist name="ad_comm" id="vo"} + + {/volist} +

QQ扫码加入TaoLer官群

+
+ +
+
+
+{/block} +{block name="script"} + + +{/block} \ No newline at end of file diff --git a/view/index/article/edit.html b/view/index/article/edit.html new file mode 100644 index 0000000..df825e3 --- /dev/null +++ b/view/index/article/edit.html @@ -0,0 +1,261 @@ +{extend name="public/base" /} +{block name="title"}编辑帖子{/block} +{block name="column"}{/block} +{block name="content"} +
+
+ +
+
+
    +
  • 编辑帖子
  • +
+
+
+ + +
+
+ +
+ +
+
+
+ +
+ + + +
+
+ {if ($user.auth == 1)} +
+
+
+
+ {/if} +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+ +
+
+
+
+ +
+ +
+
发表后无法更改飞吻
+
+
+
+
+ +
+ +
+
是否回复可下载或者密码下载
+
+
+ +
+
+ +
+ +
+ +
+
+
+
+ {volist name="tags" id="vo" } + + {/volist} +
+
+
+ +
+ +
+
+ captcha +
+
+
+ +
+ +
+
+
+
+
+
+{/block} + +{block name="script"} + +{/block} \ No newline at end of file diff --git a/view/index/error/404.html b/view/index/error/404.html new file mode 100644 index 0000000..a41ed6d --- /dev/null +++ b/view/index/error/404.html @@ -0,0 +1,57 @@ + + + + + 404 - TaoLer社区 + + + + + + + + + +
+
+
+

+

页面或者数据被 纸飞机 运到火星了,啥都看不到了…

+
+
+
+ + + + + + + + + + + + + + + + + + + + + diff --git a/view/index/index/index.html b/view/index/index/index.html new file mode 100644 index 0000000..351750e --- /dev/null +++ b/view/index/index/index.html @@ -0,0 +1,338 @@ +{extend name="public:base" /} + +{block name="title"}{$sysInfo.webname}-{$sysInfo.webtitle}{/block} +{block name="keywords"}{$sysInfo.keywords}{/block} +{block name="description"}{$sysInfo.descript}{/block} +{block name="column"}{include file="public/column" /}{/block} + +{block name="content"} +
+
+ +
+ +
+
+ +
+
+ +
+ + +
+ +
+ {include file="public/filter" /} + +
+ +
+ +
+
+
+
+

温馨通道

+ +
+ {include file="public/sign" /} +
+
钻级赞助商 + 我要加入 +
+
+ {volist name="ad_index" id="vo"} + {$vo.slid_name} + {/volist} +
+
+ +
+

回贴周榜

+
+ +
+
+ +
+
本周热议
+ {volist name="artHot" id="vo"} +
+ {$vo.title} + {$vo.comments_count} +
+ {/volist} + + + +
+ +
+
+ 官方产品 +
+ +
+
+ {volist name="ad_comm" id="vo"} + + {/volist} +
+ +{include file="public/flink" /} +
+ +
+
+{/block} + +{block name="script"} + + +{/block} \ No newline at end of file diff --git a/view/index/index/search.html b/view/index/index/search.html new file mode 100644 index 0000000..d54be81 --- /dev/null +++ b/view/index/index/search.html @@ -0,0 +1,147 @@ + +{extend name="public/base" /} + +{block name="title"} +TP5学习制作:Tao.2019 +{/block} + +{block name="column"} +{include file="/public/column" /} +{/block} + +{block name="content"} +
+
+ +
+ +
+ + + + + + +
+
+
+ +
+

温馨通道

+ +
+ + +
+

回贴周榜

+
+ +
+
+
+
本周热议
+ {volist name="artHot" id="vo"} +
+ {$vo.title} + 16 +
+ {/volist} + + + +
+ +
+
+ 这里可作为广告区域 +
+ +
+ {include file="public/flink" /} + +
+ +
+
+{/block} + +{block name="script"} + + +{/block} \ No newline at end of file diff --git a/view/index/login/forget.html b/view/index/login/forget.html new file mode 100644 index 0000000..1f32123 --- /dev/null +++ b/view/index/login/forget.html @@ -0,0 +1,239 @@ + +{extend name="public/base" /} + +{block name="title"}密码找回{/block} +{block name="column"}{/block} +{block name="content"} +
+
+
+
    +
  • 登入
  • +
  • {if cache('repass')==2}重置密码{else /}找回密码{/if}
  • +
+
+
+ + + {if cache('repass')==1} +
+
+
+ +
+ +
+
+
+ + 返回 +
+
+
+ + {elseif cache('repass')==2 /} + + +
请重置您的密码
+
+
+
+ +
+ +
+
6到16个字符
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+ captcha +
+
+
+
+
+ + +
+
+
+ +
该重置密码链接已失效,请重新校验您的信息
+
非法链接,请重新校验您的信息
+ + {else /} + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
captcha
+
+
+
+ +
+ +
+
+
+ {/if} +
+
+
+
+
+{/block} + +{block name="script"} + + +{/block} diff --git a/view/index/login/login.html b/view/index/login/login.html new file mode 100644 index 0000000..5bf4635 --- /dev/null +++ b/view/index/login/login.html @@ -0,0 +1,108 @@ +{extend name="public/base" /} + +{block name="title"}用户登录{/block} +{block name="column"}{/block} +{block name="content"} +
+
+
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ captcha +
+
+
+ + + 忘记密码? + +
+ +
+
+
+
+
+
+
+{/block} + +{block name="script"} + + + +{/block} \ No newline at end of file diff --git a/view/index/login/reg.html b/view/index/login/reg.html new file mode 100644 index 0000000..9f9d378 --- /dev/null +++ b/view/index/login/reg.html @@ -0,0 +1,127 @@ + +{extend name="public:base" /} +{block name="title"}注册账号{/block} +{block name="column"}{/block} +{block name="content"} +
+
+
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
密码找回唯一途径
+
+
+ +
+ +
+
经过强类型加密
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+ captcha +
+
+
+
+
+ +
+ +
+
+
+
+
+
+ +
+{/block} + +{block name="script"} + + +{/block} diff --git a/view/index/other/404.html b/view/index/other/404.html new file mode 100644 index 0000000..d58009c --- /dev/null +++ b/view/index/other/404.html @@ -0,0 +1,138 @@ + + + + + + + 404 - Fly社区 + + + + + + + + +
+
+ + + + +
+
+ +
+ +
+ +
+
+
+

+

页面或者数据被 纸飞机 运到火星了,啥都看不到了…

+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/view/index/other/notice.html b/view/index/other/notice.html new file mode 100644 index 0000000..c0e748e --- /dev/null +++ b/view/index/other/notice.html @@ -0,0 +1,38 @@ + + + + + + + + 故障公告页 + + + + + + + + + + + + + +
+ +
+ +
+ 非常抱歉,社区正在维护,稍后恢复
文档 示例 +
+ + + \ No newline at end of file diff --git a/view/index/other/tips.html b/view/index/other/tips.html new file mode 100644 index 0000000..6d7dde3 --- /dev/null +++ b/view/index/other/tips.html @@ -0,0 +1,138 @@ + + + + + + + 提示页面 + + + + + + + + +
+
+ + + + +
+
+ +
+ +
+ +
+
+
+

+

这是一个基于 layui 的极简通用型社区页面模版

+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/view/index/public/.gitignore b/view/index/public/.gitignore new file mode 100644 index 0000000..28f97bf --- /dev/null +++ b/view/index/public/.gitignore @@ -0,0 +1 @@ +user-nav.html \ No newline at end of file diff --git a/view/index/public/404.html b/view/index/public/404.html new file mode 100644 index 0000000..25bed51 --- /dev/null +++ b/view/index/public/404.html @@ -0,0 +1,57 @@ + + + + + 404 - TaoLer社区 + + + + + + + + + +
+
+
+

+

页面或者数据被 纸飞机 运到火星了,啥都看不到了…

+
+
+
+ + + + + + + + + + + + + + + + + + + + + diff --git a/view/index/public/base.html b/view/index/public/base.html new file mode 100644 index 0000000..b10981a --- /dev/null +++ b/view/index/public/base.html @@ -0,0 +1,21 @@ + + + + + {block name="title"}标题{/block} + + + + + + + +{include file="public/header" /} +{block name="column"}导航{/block} +{block name="content"}内容{/block} +{include file="public/footer" /} +{include file="public/js" /} +{block name="script"}{/block} + + + diff --git a/view/index/public/column.html b/view/index/public/column.html new file mode 100644 index 0000000..b9416de --- /dev/null +++ b/view/index/public/column.html @@ -0,0 +1,27 @@ +
+
+ + +
+ + 发表新帖 +
+ +
+
\ No newline at end of file diff --git a/view/index/public/filter.html b/view/index/public/filter.html new file mode 100644 index 0000000..fa07204 --- /dev/null +++ b/view/index/public/filter.html @@ -0,0 +1,13 @@ +
+ 综合 + + 已结 + + 热帖 + + 精华 + + +
+ diff --git a/view/index/public/flink.html b/view/index/public/flink.html new file mode 100644 index 0000000..8ab4d83 --- /dev/null +++ b/view/index/public/flink.html @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/view/index/public/footer.html b/view/index/public/footer.html new file mode 100644 index 0000000..5e8e295 --- /dev/null +++ b/view/index/public/footer.html @@ -0,0 +1,8 @@ + diff --git a/view/index/public/header.html b/view/index/public/header.html new file mode 100644 index 0000000..c6540a8 --- /dev/null +++ b/view/index/public/header.html @@ -0,0 +1,65 @@ +
+
+ + + + +
+
\ No newline at end of file diff --git a/view/index/public/js.html b/view/index/public/js.html new file mode 100644 index 0000000..b6675b2 --- /dev/null +++ b/view/index/public/js.html @@ -0,0 +1,11 @@ + + + diff --git a/view/index/public/jump.html b/view/index/public/jump.html new file mode 100644 index 0000000..21197f0 --- /dev/null +++ b/view/index/public/jump.html @@ -0,0 +1,60 @@ + + + + + {block name="title"}这是title{/block} + + + + + + {include file="public/js" /} + + +{include file="public/header" /} + +{block name="column"} +{include file="/public/column" /} +{/block} + +{block name="content"} + + + +{/block} + +{include file="public/footer" /} + +{block name="script"} +{/block} + + + diff --git a/view/index/public/layout.html b/view/index/public/layout.html new file mode 100644 index 0000000..75840c6 --- /dev/null +++ b/view/index/public/layout.html @@ -0,0 +1,79 @@ + + + + + + 用户中心 + + + + + + + +{include file="public/header" /} +
+{include file="public/nav" /} +
+ {__CONTENT__} +
+
+{include file="public/footer" /} +{include file="public/js" /} + + + + + + + \ No newline at end of file diff --git a/view/index/public/link.html b/view/index/public/link.html new file mode 100644 index 0000000..9243b44 --- /dev/null +++ b/view/index/public/link.html @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/view/index/public/sign.html b/view/index/public/sign.html new file mode 100644 index 0000000..1945cd7 --- /dev/null +++ b/view/index/public/sign.html @@ -0,0 +1,14 @@ + + + diff --git a/view/index/public/user.html b/view/index/public/user.html new file mode 100644 index 0000000..65290e9 --- /dev/null +++ b/view/index/public/user.html @@ -0,0 +1,31 @@ + + + + + + 用户中心 + + + + + + + {block name="css"} {/block} + + +{include file="public/header" /} +
+{include file="public/user-nav" /} +
+ {block name="content"} + {/block} +
+
+{include file="public/footer" /} +{include file="public/js" /} + +{block name="script"} +js脚本 +{/block} + + \ No newline at end of file diff --git a/view/index/sign/lists.html b/view/index/sign/lists.html new file mode 100644 index 0000000..fae933b --- /dev/null +++ b/view/index/sign/lists.html @@ -0,0 +1,147 @@ + + + +
+
+
    +
  • 最新签到
  • +
  • 今日最快
  • +
  • 总签到榜
  • +
+ +
+
+ \ No newline at end of file diff --git a/view/index/user/activate.html b/view/index/user/activate.html new file mode 100644 index 0000000..d621a5f --- /dev/null +++ b/view/index/user/activate.html @@ -0,0 +1,33 @@ +{layout name="public:layout" /} + +
+
    +
  • + 激活邮箱 +
  • +
+
+
    +
  • + + {$user.email} + + (尚未激活) + +
  • +
  • +
    + 1. 如果您未收到邮件,或激活链接失效,您可以 + 重新发送邮件,或者 + 更换邮箱; +
    +
    + 2. 如果您始终没有收到 Fly 发送的邮件,请注意查看您邮箱中的垃圾邮件; +
    +
    + 3. 如果你实在无法激活邮件,您还可以联系:admin@xx.com +
    +
  • +
+
+
diff --git a/view/index/user/home.html b/view/index/user/home.html new file mode 100644 index 0000000..83edf70 --- /dev/null +++ b/view/index/user/home.html @@ -0,0 +1,103 @@ +{extend name="public/base" /} +{block name="title"}{$u.nickname ?: $u.name}的主页-{$sysInfo.webname}{/block} +{block name="description"}{$u.sign}{/block} +{block name="column"}{/block} +{block name="content"} +
+ {$u.name} + +

+ {$u.nickname ?: $u.name} + {if($u.sex==0)} + {else} {/if} + VIP{$u.vip} + +

+

认证信息: 作者

+

+ {$u.point} 飞吻 + {$u.create_time|date='Y-m-d'} 加入 + {:session('user_id') ? '来自'.$u.city:'登录查看'} +

+

({$u.sign ?:'懒得还没有签名'})

+ + +
+ +
+
+
+
+

{$u.nickname ?: $u.name} 最近的帖子

+
    + {volist name="$arts" id="vo"} +
  • + {if condition="$vo.is_hot==1"}{/if} + {$vo.title} + {$vo.create_time|date='Y-m-d'} + {$vo.pv} 阅 +
  • + {/volist} + {if condition="$arts eq ''"} +
    没有发表任何求解
    + {/if} +
+
+
+ +
+
+

{$u.nickname ?? $u.name} 最近的回答

+
    + {volist name="$reys" id="vo" empty="没有回答任何问题"} +
  • +

    + {$vo.create_time|date='Y-m-d H-m'} + 在{$vo.title}中回答: +

    +
    {$vo.content}
    +
  • + {/volist} + +
+
+
+
+
+{/block} + +{block name="script"} + +{/block} diff --git a/view/index/user/index.html b/view/index/user/index.html new file mode 100644 index 0000000..8e261ac --- /dev/null +++ b/view/index/user/index.html @@ -0,0 +1,179 @@ +{extend name="public/user" /} + +{block name="content"} + +
+ Hi,{:session('user_name')},你已是我们的正式社员。 +
+
+
+ {include file="public/sign" /} + +
+
+
我的会员信息
+
+

您的财富经验值:{$user.point} 金币

您当前为:VIP{$user.vip}

+ + +
+ +{/block} + +{block name="script"} + + + +{/block} \ No newline at end of file diff --git a/view/index/user/message.html b/view/index/user/message.html new file mode 100644 index 0000000..aa75c83 --- /dev/null +++ b/view/index/user/message.html @@ -0,0 +1,72 @@ +{extend name="public/user" /} + +{block name="content"} +
+ +
+
+{/block} +{block name="script"} + +{/block} diff --git a/view/index/user/post.html b/view/index/user/post.html new file mode 100644 index 0000000..a80a564 --- /dev/null +++ b/view/index/user/post.html @@ -0,0 +1,238 @@ +{extend name="public/user" /} + +{block name="content"} + +
+
    +
  • 我发的帖({$article->total()}
  • +
  • 我收藏的帖({$collect->total()}
  • +
  • 我要发帖
  • +
+ +
+
+ + + + + + + + + + + + + + + + + + + {volist name="article" id="vo" } + + + + + + + + {/volist} + + +
帖子标题状态发表时间数据操作
{$vo.title}{if $vo.status ==1}正常{else /}待审{/if}{$vo.update_time|date='Y-m-d'}{$vo.pv}阅/{$vo.comments_count}答编辑 + 删除 +
+
{$page|raw}
+
+ +
+ + + + + + + + + + + + + + + + + {volist name="collect" id="vo" } + + + + + + + {/volist} + +
帖子标题作者收藏时间取消收藏
{$vo.article_id|getArticName}{$vo.article.user.name}{$vo.create_time|date='Y-m-d'}取消 +
+
+
+ +
+
    +
  • + + 已成功绑定,您可以使用QQ帐号直接登录Fly社区,当然,您也可以 + 解除绑定 + + +
  • +
  • + + + + 立即绑定 + ,即可使用微博帐号登录Fly社区 +
  • +
+
+ +
+
+ +{/block} + +{block name="script"} + + + + + + + +{/block} \ No newline at end of file diff --git a/view/index/user/set.html b/view/index/user/set.html new file mode 100644 index 0000000..cbcfdc2 --- /dev/null +++ b/view/index/user/set.html @@ -0,0 +1,198 @@ +{extend name="public/user" /} + +{block name="content"} +
+
    +
  • 我的资料
  • +
  • 头像
  • +
  • 密码
  • +
  • 帐号绑定
  • +
+
+
+
+
+ + +
+ +
+
如果您在邮箱已激活的情况下,变更了邮箱,需重新验证邮箱
+
+
+ +
+ +
+
+
+ + +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+ +
+
+
+

建议尺寸168*168,支持jpg、png、gif,最大不能超过50KB

+ + + +
+
+
+ +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
6到16个字符
+
+
+ +
+ +
+
+
+ +
+
+
+ +
+
    +
  • + + 已成功绑定,您可以使用QQ帐号直接登录Fly社区,当然,您也可以 + 解除绑定 + + +
  • +
  • + + + + 立即绑定 + ,即可使用微博帐号登录Fly社区 +
  • +
+
+
+
+{/block} + +{block name="script"} + + + + +{/block} \ No newline at end of file diff --git a/view/index/user/upimg.html b/view/index/user/upimg.html new file mode 100644 index 0000000..e4815a5 --- /dev/null +++ b/view/index/user/upimg.html @@ -0,0 +1,31 @@ +{layout name="public:layout" /} +
+
    + +
  • 头像
  • + +
+
+
+
+
+

建议尺寸168*168,支持jpg、png、gif,最大不能超过50KB

+ +
+
+ +
+
+ +

+
+
+ + + +
+
+
+
+
+ \ No newline at end of file diff --git a/view/index/user/user.html b/view/index/user/user.html new file mode 100644 index 0000000..1230222 --- /dev/null +++ b/view/index/user/user.html @@ -0,0 +1,70 @@ +{extend name="public/user" /} + +{block name="content"} + +
+ Hi,{$Think.session.user_name},你已是我们的正式社员。 +
+
+
+ +
+
+
我的会员信息
+
+

您的财富经验值:0

您当前为:非 VIP

+ + +
+ +{/block} + +{block name="script"} + + +{/block} \ No newline at end of file diff --git a/view/install/index/agreement.html b/view/install/index/agreement.html new file mode 100644 index 0000000..93a8205 --- /dev/null +++ b/view/install/index/agreement.html @@ -0,0 +1,26 @@ +{extend name="index/base" /} + {block name="body"} +
+
+

TaoLer - 社区系统(简称Tao社区)安装协议:

+
+

1、欢迎使用Tao社区系统,她是一款轻量化、快速、便捷、简单的综合社区内容管理系统。

+

2、适用于学校、企业、社团组织、社区、政府、本地华商圈等综合型服务类型

+

3、本系统在作者能力范围内做到安全可靠,代码严禁,并力争进行长期更新支持、及时修复BUG,减少使用者的使用成本。

+

4、尽管程序在发布前已经过安全测试,但仍不能完全保证漏洞的存在和丢失数据的风险,作者不承担商业风险。

+

5、本程序版权归开发者所有,在未经过作者同意的情况下,严禁转售、赠送他人。

+

6、您可以在完全遵守本许可协议的基础上,免费下载安装使用,商业应用请联系作者授权。

+

7、无论您是个人或组织、盈利与否、用途如何(包括以学习和研究为目的),均需仔细阅读本协议,包括免除或者限制开发团队责任的免责条款及对您的权利限制。请您审阅并接受或不接受本服务条款。如您不同意本服务条款及/或随时对其的修改,您应不使用或主动取消产品。否则,您的任何对产品中的相关服务的注册、登陆、下载、查看等使用行为将被视为您对本服务条款全部的完全接受,包括接受对服务条款随时所做的任何修改。

+

8、本协议一旦发生变更, Tao社区开发团队将在网页上公布修改内容。修改后的服务条款一旦在网站管理后台上公布即有效代替原来的服务条款。如果您选择接受本条款,即表示您同意接受协议各项条件的约束。如果您不同意本服务条款,则不能获得使用本服务的权利。您若有违反本条款规定,TaoLer有权随时中止或终止您对本程序的使用资格并保留追究相关法律责任的权利。

+

9、在理解、同意、并遵守本协议的全部条款后,方可开始使用本程序。本许可协议条款的解释,效力及纠纷的解决,适用于中华人民共和国大陆法律。

+

10、您使用本系统,需要遵循许可协议,一旦安装表示您已接受该系统各项条款。

+ + +
+
+
+ {/block} diff --git a/view/install/index/base.html b/view/install/index/base.html new file mode 100644 index 0000000..ee29041 --- /dev/null +++ b/view/install/index/base.html @@ -0,0 +1,40 @@ + + + + + + TaoLer安装程序 + + + + + + + +
+
+

+ TaoLer +
    +
  • 1
  • +
  • 安装协议
  • +
+
    +
  • 2
  • +
  • 环境检测
  • +
+
    +
  • 3
  • +
  • 创建数据
  • +
+
    +
  • 4
  • +
  • 安装完成
  • +
+

+
+{block name="body"}主题{/block} + + + + \ No newline at end of file diff --git a/view/install/index/create.html b/view/install/index/create.html new file mode 100644 index 0000000..931d253 --- /dev/null +++ b/view/install/index/create.html @@ -0,0 +1,139 @@ +{extend name="index/base" /} + +{block name="body"} +
+
+
+

创建数据库:

+ + + +
+ +
+ +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+

网站信息:

+ +
+ +
+ +
+
+
+ +
+ +
+
+

管理员账号:

+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ 上一步 +
+
+ +
+
+ +
+
+{/block} \ No newline at end of file diff --git a/view/install/index/test.html b/view/install/index/test.html new file mode 100644 index 0000000..dcad008 --- /dev/null +++ b/view/install/index/test.html @@ -0,0 +1,104 @@ +{extend name="index/base" /} + +{block name="body"} +
+
+

环境检测:

+ + + + + + + + + + + + + + + + + + + + +
坏境最低配置当前配置是否符合
操作系统不限 + +
php版本>7.1 + + + =7) || ($php_version['0']>=5 && $php_version['1']>=3)): ?> √ + × + +
+

目录权限:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
坏境最低配置当前配置是否符合
./runtime可写 + 可写 + 不可写 + + + √ + × + +
./install可写 + 可写 + 不可写 + + + √ + × + +
./app可写 + 可写 + 不可写 + + + √ + × + +
+
+ 上一步 +
+
+ 下一步 +
+
+
+ +{/block} \ No newline at end of file diff --git a/view/install/success/complete.html b/view/install/success/complete.html new file mode 100644 index 0000000..d5a047b --- /dev/null +++ b/view/install/success/complete.html @@ -0,0 +1,15 @@ +{extend name="index/base" /} + {block name="body"} +
+
+

恭喜您安装成功

+ + + +
+
+ {/block} \ No newline at end of file