13 Commits
2.0 ... 2.0.2

222 changed files with 12770 additions and 4751 deletions

View File

@@ -1,63 +1,47 @@
# 欧奥 PicHome ## PicHome
### 官方网站:https://oaooa.com/pichome.html 官方网站:https://oaooa.com/pichome.html
### 演示地址:http://pichome.oaooa.com
# 欧奥PicHome是什么 演示地址:http://pichome.oaooa.com
欧奥PicHome是用于欧奥图文档系统的图片展示门户图片搜索引擎。也能够用于Eagle等其他图库软件的图片展示门户。
# 为什么使用欧奥PicHome ### 欧奥PicHome是什么
一般图库是由一个人或者多个人进行管理常见管理方式是采用欧奥图文档系统或者eagle等图库软件当需要将图库中内容向更多人展示个下载时就不太方便了。欧奥PicHome的用途就是作为已有图库的展示门户或者图片搜索引擎来使用。例如以下场景某企业的宣传设计品是由设计部的几个人员管理。企业的其他部门和产品代理商遍布在全国各地会经常需要获取产品各类设计素材宣传品的最新版本文件。此时这些人员就可以使用欧奥PicHome对需要的素材文件查找和下载。
PicHome 是一款快速创建在线图库,音视频库,文库的程序。用于将文件快速生成展示网站,实现随时随地,多端浏览,多人共享的目的。
# 功能特点 ### PicHome 特点
### 任何操作系统都可以安装 1. 指定一个文件目录,自动根据目录结构生成展示网站。支持添加颜色,标签,描述,评分等信息。
windowsmacoslinux都可以安装PicHome
### 任何设备都可以部署 2. 指定 Eagle 库目录,自动将 Eagle 库生成展示网站。支持 Eagle 库的颜色,标签,描述,评分等信息。
个人电脑NAS阿里云腾讯云等网络服务器采用1核2G以上的硬件配置以上就可以部署。
### 任何设备都可以使用 3. 指定 Billfish 库目录,自动将 Billfish 库生成展示网站。支持 Billfish 库的颜色,标签,描述,评分等信息。
只需要有浏览器功能的设备就可以访问,查找图片。
### 任何地点查使用 4. 自带网盘功能,是一款针对图片,音视频管理友好的网盘程序,可以将网盘内容自动生成展示网站。支持添加颜色,标签,描述,评分等信息。
如果您的服务器支持外网访问,或者直接部署在阿里云,腾讯云等公网服务器,那么在任何地点都可以访问使用。
### 支持原有图库的查询条件 ### 可以用 PicHome 做什么?
标签,颜色,形状,评分,拍摄时间等,高度保留原有图库软件中的图片信息进行筛选查询。
### 数据自动同步 1. 使用内置的网盘功能,当作网盘使用
自动同步原有图库软件的数据信息在原有图库系统中增删改图片和标签自动更新PicHome网站。
### 多库综合搜索 2. 创建素材网站
可以将多人,多个图库集中在一起综合查询
### 大数据量支持 3. 创建文件发布站
轻松支持数十万量级文件高速查询。如果有更大量级的查询需求,可以联系我们付费获取高可用部署方案。
### 免费发布,功能定制 4. 实现 Eagle 素材库多端展示
PicHome是免费发布的任何人都可以免费安装。如果有特殊的功能需求还可以联系我们付费定制功能。
5. 实现 Billfish 素材库多端展示
# 一些常见使用场景 6. 实现普通文件夹多端展示
在移动端,平板方便的查看图库内容,搜索图片。 7. 建立企业知识库
随时将图片分享给同事,代理商,客户查看或下载。 8. 建立代理商,分销商,分公司产品资料共享平台
向其他人展示我的图库,或者下载我的图片。 9. 建立商品素材,商品图共享平台
团队讨论设计方案时,随时快速查询灵感素材,资料库,材料库信息。 10. 建立企业图库平台
与客户交流时,随时快速查询出需要举例的素材或相似方案,辅助描述表达。 11. 建立团队灵感库
用平板向客户一边查看图片,一边讲解产品设计理念。
与异地协作人员共享素材。
汇总多个图库,多人的图库统一管理,统一查找。
个人,企业作品或产品展示网站。
12. 建立团队标准库
......

View File

@@ -1,21 +1,17 @@
## PicHome Home 2.0 更新说明 ## PicHome Home 2.0.2 更新说明
### 1增加PH库支持上传文件编辑文件信息名称标签描述评分等 ### 1增加搜索设置应用,同时单页增加搜索模块
### 2增加单页功能,可以自定义单页内容 ### 2修复billfish库颜色导入处理错误问题
### 3增加栏目功能,库,单页,连接可以设置成栏目,对外展示,新增加的库将自动生成栏目,默认是关闭状态,对于老版本升级后将自动为开启状态 ### 3更改腾讯云存储eagle库处理提升导入效率
### 4增加个人中心,统一管理用户相关的内容,个人中心包括下载记录,浏览记录等信息 ### 4处理描述字段,支持更多内容输入
### 5重构并优化系统缩略图机制,提升加载速度。 ### 5修复已登录用户登录不了后台的bug
### 6增加管理工具,包含系统设置,系统工具,登录日志和存储位置,将原有的站点设置功能迁移到系统设置中,并丰富原有设置内容,增加如缩略图,邮件的设置 ### 6优化ph库上传及其逻辑处理
### 7兼容Billfish 3版本的导入 ### 7处理部分路径图片加载不到的bug,优化页面加载速度
### 8优化库导入和更新机制 ### 8修复修改站点logo不生效的bug
### 9支持腾讯云存储以及cdn加速域名 ### 9重写登录注册页
### 10栏目单页支持短链接需设置rewrite规则具体内容安装包中包含 ### 10修复其他已知bug
注:
1. 当前版本展示内容和管理内容实行分开处理,不再直接将库展示给游客和普通用户,安装完成之后站点首页内容可根据需要自行设置
2. 安装完成后默认为站点不公开,必须登录才能访问,如需公开,请在管理工具,系统设置中进行设置
3. 缩略图设置在管理工具存储位置中设置,原则上优先文件位置选择生成方式
## PicHome Home 1.1 升级到 2.0 升级方法 ## PicHome Home 2.0.1 升级到 2.0.2 升级方法
### 1复制所有文件覆盖到网站目录 ### 1复制所有文件覆盖到网站目录
### 2运行 http(s)://网站域名ip)/install/update.php按提示步骤完成升级 ### 2运行 http(s)://网站域名ip)/install/update.php按提示步骤完成升级
### 3升级完成后使用管理员登录站点进入系统设置打开站点并且进入 系统工具 更新系统缓存 ### 3升级完成后使用管理员登录站点进入系统设置打开站点并且进入 系统工具 更新系统缓存

BIN
admin/login/images/bg.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

View File

@@ -86,7 +86,7 @@ function html_login_header($form = true) {
EOT; EOT;
if ($form) { if ($form) {
$loginset_img=$_G['setting']['loginset']['img']?$_G['setting']['loginset']['img']:'user/login/images/login.jpg'; $loginset_img=$_G['setting']['loginset']['img']?$_G['setting']['loginset']['img']:'admin/login/images/bg.jpg';
$loginset_bcolor=$_G['setting']['loginset']['bcolor']?$_G['setting']['loginset']['bcolor']:'#76838f'; $loginset_bcolor=$_G['setting']['loginset']['bcolor']?$_G['setting']['loginset']['bcolor']:'#76838f';
echo <<<EOT echo <<<EOT
<div id="wrapper_div" style="width: 100%;height:100%; position: absolute; top: 0px; left: 0px; margin: 0px; padding: 0px; overflow: hidden;z-index:0; font-size: 0px; background:$loginset_bcolor;"> <div id="wrapper_div" style="width: 100%;height:100%; position: absolute; top: 0px; left: 0px; margin: 0px; padding: 0px; overflow: hidden;z-index:0; font-size: 0px; background:$loginset_bcolor;">

View File

@@ -45,11 +45,13 @@ d2e3db4a6d2283c8c833ae64da723c6e *admin/language/en-US/lang.php
d8a7e6b6f5a2f94640bc7b5397f6585d *admin/language/zh-CN/lang.php d8a7e6b6f5a2f94640bc7b5397f6585d *admin/language/zh-CN/lang.php
b63c4bfc2ca6d35704fadddc2edb49a3 *admin/login/classes/adminlogin.php b63c4bfc2ca6d35704fadddc2edb49a3 *admin/login/classes/adminlogin.php
51bcacee1c7fed967c6f91b256e9c139 *admin/login/images/adminlogin.css 51bcacee1c7fed967c6f91b256e9c139 *admin/login/images/adminlogin.css
1eef21e18ab8b500ee9f628a85041327 *admin/login/images/bg.jpg
d3af6beed6f4c5941d8474d8c30de6ab *admin/login/images/bg_login.gif d3af6beed6f4c5941d8474d8c30de6ab *admin/login/images/bg_login.gif
0f31ffb005308e69393850d6704a5743 *admin/login/images/login_title.gif 0f31ffb005308e69393850d6704a5743 *admin/login/images/login_title.gif
b319f04a04ad0145eb5b1bdb8bc41910 *admin/login/login.php ec6c5b76921afd52697c213e7247e8ac *admin/login/login.php
2ccb26dbc4099faa5579c6c0d5727623 *admin/login/updatesession.php 2ccb26dbc4099faa5579c6c0d5727623 *admin/login/updatesession.php
cd5af5197f085d31563c357bf2b3f933 *admin/scripts/admin.js cd5af5197f085d31563c357bf2b3f933 *admin/scripts/admin.js
5d4ad240cf08eec518b101fc5b873f37 *admin/scripts/uploadpic.js
0f2e3c04241b9563ebf40fef0db6f2df *admin/setting/ajax.php 0f2e3c04241b9563ebf40fef0db6f2df *admin/setting/ajax.php
27d6c225c330d8df82f6e58a8eb4151c *admin/setting/assistant.php 27d6c225c330d8df82f6e58a8eb4151c *admin/setting/assistant.php
b1740fba6fc79a37824526cff94c79bd *admin/setting/cloudindex.php b1740fba6fc79a37824526cff94c79bd *admin/setting/cloudindex.php
@@ -59,6 +61,7 @@ b290cc26db3179585733e4fc2da89b99 *admin/setting/dist/css/chunk-1ce8ae7e.57e2bf3f
dbab9ab0cf92809ab8808fa898529054 *admin/setting/dist/css/chunk-201f656b.eb2931b7.css dbab9ab0cf92809ab8808fa898529054 *admin/setting/dist/css/chunk-201f656b.eb2931b7.css
7b5bb48b23db1f991ea3bf51ef29192c *admin/setting/dist/css/chunk-27b595b5.6f37d603.css 7b5bb48b23db1f991ea3bf51ef29192c *admin/setting/dist/css/chunk-27b595b5.6f37d603.css
61a5775f360f0dd3f9035bf0649577b3 *admin/setting/dist/css/chunk-2e9b5e3e.ff920983.css 61a5775f360f0dd3f9035bf0649577b3 *admin/setting/dist/css/chunk-2e9b5e3e.ff920983.css
80d4937ba2d48c0d268f2603d93612ea *admin/setting/dist/css/chunk-302fb9a6.814b8c98.css
23864a19ba2cbc165f4db6625f57a722 *admin/setting/dist/css/chunk-36ed7802.ddfa8de2.css 23864a19ba2cbc165f4db6625f57a722 *admin/setting/dist/css/chunk-36ed7802.ddfa8de2.css
b10381543c946e99fcc01e2d16ac98e7 *admin/setting/dist/css/chunk-37d74806.0c02e4db.css b10381543c946e99fcc01e2d16ac98e7 *admin/setting/dist/css/chunk-37d74806.0c02e4db.css
210c8e3f3abb61b503ea770f74739d8d *admin/setting/dist/css/chunk-42c1b704.3293b89e.css 210c8e3f3abb61b503ea770f74739d8d *admin/setting/dist/css/chunk-42c1b704.3293b89e.css
@@ -69,11 +72,13 @@ e09b07deb0edc3fd09af962a57283ad6 *admin/setting/dist/css/chunk-45f0a227.cdc9335d
e6be2f0650b61091fa4636798d50848a *admin/setting/dist/css/chunk-56b92ffd.7264eae2.css e6be2f0650b61091fa4636798d50848a *admin/setting/dist/css/chunk-56b92ffd.7264eae2.css
ec898662ccd2685dcbce11f78a7d3396 *admin/setting/dist/css/chunk-60968146.4f89c1c7.css ec898662ccd2685dcbce11f78a7d3396 *admin/setting/dist/css/chunk-60968146.4f89c1c7.css
70b57dad1912d81a4e940aed146e778d *admin/setting/dist/css/chunk-65f82ec1.82e43d2c.css 70b57dad1912d81a4e940aed146e778d *admin/setting/dist/css/chunk-65f82ec1.82e43d2c.css
cf36308b70f8864be5d793aaf507422e *admin/setting/dist/css/chunk-6a900ee1.a62df9f6.css
6c3fe49c5343d75e9504f646231a1119 *admin/setting/dist/css/chunk-745ec13c.c40d05c4.css 6c3fe49c5343d75e9504f646231a1119 *admin/setting/dist/css/chunk-745ec13c.c40d05c4.css
b725e80a7ff1e8a3a434e77ba290a6df *admin/setting/dist/css/chunk-74c32c70.4b7d665e.css b725e80a7ff1e8a3a434e77ba290a6df *admin/setting/dist/css/chunk-74c32c70.4b7d665e.css
2e6b6788446f5529d3deed1697515b3b *admin/setting/dist/css/chunk-76f23146.6fc79cd8.css 2e6b6788446f5529d3deed1697515b3b *admin/setting/dist/css/chunk-76f23146.6fc79cd8.css
2c2f450cb9f403001fdb4783832cb66d *admin/setting/dist/css/chunk-8253696e.853db2ed.css 2c2f450cb9f403001fdb4783832cb66d *admin/setting/dist/css/chunk-8253696e.853db2ed.css
2288b5f6b07a5b8769f617e6ba1bab17 *admin/setting/dist/css/chunk-8af60fbc.1de80ebe.css 2288b5f6b07a5b8769f617e6ba1bab17 *admin/setting/dist/css/chunk-8af60fbc.1de80ebe.css
b5896e3f7b6787cbc0421ddbe1682d25 *admin/setting/dist/css/chunk-8b3badce.b5cb1c65.css
5999ebf895a97ffc4096e3f9459c6823 *admin/setting/dist/css/chunk-c2ea2536.0dada93f.css 5999ebf895a97ffc4096e3f9459c6823 *admin/setting/dist/css/chunk-c2ea2536.0dada93f.css
3c446c4840dfc54928bbd142ad759f51 *admin/setting/dist/css/chunk-e9e5fa9a.aecc7157.css 3c446c4840dfc54928bbd142ad759f51 *admin/setting/dist/css/chunk-e9e5fa9a.aecc7157.css
f0dec94c817d30ca55179d17d09d4f69 *admin/setting/dist/css/chunk-fc47aa76.dddb9b47.css f0dec94c817d30ca55179d17d09d4f69 *admin/setting/dist/css/chunk-fc47aa76.dddb9b47.css
@@ -87,33 +92,39 @@ ea41001e9a9735db73fd1c33f753a258 *admin/setting/dist/css/chunk-vendors.4d5d56a8.
888e61f04316f10bddfff7bee10c6dd0 *admin/setting/dist/fonts/remixicon.888e61f0.ttf 888e61f04316f10bddfff7bee10c6dd0 *admin/setting/dist/fonts/remixicon.888e61f0.ttf
9915fef980fa539085da55b84dfde760 *admin/setting/dist/fonts/remixicon.9915fef9.woff2 9915fef980fa539085da55b84dfde760 *admin/setting/dist/fonts/remixicon.9915fef9.woff2
95138f36e015ad912c37db92164f5844 *admin/setting/dist/img/remixicon.95138f36.svg 95138f36e015ad912c37db92164f5844 *admin/setting/dist/img/remixicon.95138f36.svg
e40e0b667ae066019e596364229a3de2 *admin/setting/dist/index.html d0b910d5f61aba5337a82f867e90d190 *admin/setting/dist/index.html
f6096cf4fd6a78a1d87107903eb59c3d *admin/setting/dist/js/chunk-11793d76.ce1a5be7.js f6096cf4fd6a78a1d87107903eb59c3d *admin/setting/dist/js/chunk-11793d76.ce1a5be7.js
88f0ed22d1b3c33d6e62827b0bb61a74 *admin/setting/dist/js/chunk-1ce8ae7e.6a1bbf82.js 88f0ed22d1b3c33d6e62827b0bb61a74 *admin/setting/dist/js/chunk-1ce8ae7e.6a1bbf82.js
22996c46ce8ab3d23ac10234af262123 *admin/setting/dist/js/chunk-201f656b.7ab31c65.js 22996c46ce8ab3d23ac10234af262123 *admin/setting/dist/js/chunk-201f656b.7ab31c65.js
b0d7721df9c858dd9783005537b85419 *admin/setting/dist/js/chunk-27b595b5.1211aaff.js b0d7721df9c858dd9783005537b85419 *admin/setting/dist/js/chunk-27b595b5.1211aaff.js
8a47bc6bb5572102c3068be9de1b3226 *admin/setting/dist/js/chunk-2e9b5e3e.602304e3.js 8a47bc6bb5572102c3068be9de1b3226 *admin/setting/dist/js/chunk-2e9b5e3e.602304e3.js
357cbaa08a955b37966560d219a31242 *admin/setting/dist/js/chunk-302fb9a6.9e8263f7.js
898f40b534ecf7e3eb39b3e455c3639b *admin/setting/dist/js/chunk-36ed7802.dfdd9749.js 898f40b534ecf7e3eb39b3e455c3639b *admin/setting/dist/js/chunk-36ed7802.dfdd9749.js
764b102a91261e2caf946a1eaeb367ba *admin/setting/dist/js/chunk-37d74806.18c0b22d.js 764b102a91261e2caf946a1eaeb367ba *admin/setting/dist/js/chunk-37d74806.18c0b22d.js
9ef4ecd8b97d2da1822ca0132877bcd7 *admin/setting/dist/js/chunk-42c1b704.e50a2fab.js 9ef4ecd8b97d2da1822ca0132877bcd7 *admin/setting/dist/js/chunk-42c1b704.e50a2fab.js
0307bbfdff103fc4c36a935779852470 *admin/setting/dist/js/chunk-45f0a227.d6202e1a.js 0307bbfdff103fc4c36a935779852470 *admin/setting/dist/js/chunk-45f0a227.d6202e1a.js
dddc03c93fcf979ce1802ea767d79032 *admin/setting/dist/js/chunk-4850fbf9.2ef97ebb.js dddc03c93fcf979ce1802ea767d79032 *admin/setting/dist/js/chunk-4850fbf9.2ef97ebb.js
bfb87bf89e32f1175ebcb456a18455b5 *admin/setting/dist/js/chunk-4bd6d832.cc9a988f.js bfb87bf89e32f1175ebcb456a18455b5 *admin/setting/dist/js/chunk-4bd6d832.cc9a988f.js
637808f20d794872db0b6d60013735cb *admin/setting/dist/js/chunk-51ab32cd.6b07a5d0.js
569a475111c2cfb07e76d6be413cbd08 *admin/setting/dist/js/chunk-51ab32cd.f2e4282a.js 569a475111c2cfb07e76d6be413cbd08 *admin/setting/dist/js/chunk-51ab32cd.f2e4282a.js
655b254721de319ed0e29edfbd36ecda *admin/setting/dist/js/chunk-56b92ffd.8568d3b0.js 655b254721de319ed0e29edfbd36ecda *admin/setting/dist/js/chunk-56b92ffd.8568d3b0.js
b50a43f53a2cd3c84e9950c1957b3871 *admin/setting/dist/js/chunk-60968146.9c21e70a.js b50a43f53a2cd3c84e9950c1957b3871 *admin/setting/dist/js/chunk-60968146.9c21e70a.js
3e427be0e87db3cf43a1593a6ee1d89e *admin/setting/dist/js/chunk-6337fcfc.90794efc.js 3e427be0e87db3cf43a1593a6ee1d89e *admin/setting/dist/js/chunk-6337fcfc.90794efc.js
df3fad677d28d56c490f2ccaa6b14f2a *admin/setting/dist/js/chunk-65f82ec1.d9e3dbe2.js df3fad677d28d56c490f2ccaa6b14f2a *admin/setting/dist/js/chunk-65f82ec1.d9e3dbe2.js
068f4c7ca9c645501b7f0830e655012d *admin/setting/dist/js/chunk-6a900ee1.618b2392.js
a084b4a0c1248f60439ad6875574cebc *admin/setting/dist/js/chunk-745ec13c.f468e46a.js a084b4a0c1248f60439ad6875574cebc *admin/setting/dist/js/chunk-745ec13c.f468e46a.js
70840b3ac1269f402d117eb92ebb6adc *admin/setting/dist/js/chunk-74c32c70.1f5e9382.js 70840b3ac1269f402d117eb92ebb6adc *admin/setting/dist/js/chunk-74c32c70.1f5e9382.js
240a2f188b2b072ac8200cd0a3cc153a *admin/setting/dist/js/chunk-76f23146.0d2957ed.js 240a2f188b2b072ac8200cd0a3cc153a *admin/setting/dist/js/chunk-76f23146.0d2957ed.js
b2615fd6b4ab7be258f7931d18dafe64 *admin/setting/dist/js/chunk-8253696e.e9561f92.js b2615fd6b4ab7be258f7931d18dafe64 *admin/setting/dist/js/chunk-8253696e.e9561f92.js
0e49a6f0b02f4b2624dd13f39186dcc1 *admin/setting/dist/js/chunk-8af60fbc.8ad59181.js 0e49a6f0b02f4b2624dd13f39186dcc1 *admin/setting/dist/js/chunk-8af60fbc.8ad59181.js
7ebb196b6b816f65907f25498f1daeb7 *admin/setting/dist/js/chunk-8b3badce.fccf1043.js
7a8bf6e721fe790b348668bd041e73e2 *admin/setting/dist/js/chunk-c2ea2536.8fc255e1.js 7a8bf6e721fe790b348668bd041e73e2 *admin/setting/dist/js/chunk-c2ea2536.8fc255e1.js
5ae6e659dd9ccacb3847a5af78e2a741 *admin/setting/dist/js/chunk-e9e5fa9a.322b6d2c.js 5ae6e659dd9ccacb3847a5af78e2a741 *admin/setting/dist/js/chunk-e9e5fa9a.322b6d2c.js
dceea881b903a21b27a03419a32dadc8 *admin/setting/dist/js/chunk-fc47aa76.b39d41e7.js dceea881b903a21b27a03419a32dadc8 *admin/setting/dist/js/chunk-fc47aa76.b39d41e7.js
7d7ca46a7b14500bb3649dfc87aa1c76 *admin/setting/dist/js/chunk-vendors.852e680b.js 7d7ca46a7b14500bb3649dfc87aa1c76 *admin/setting/dist/js/chunk-vendors.852e680b.js
fc3c80f03cb845e5fa71a2a4d3052c2a *admin/setting/dist/js/index.76165d16.js
47a4285a1f8b3560633db877c20337d6 *admin/setting/dist/js/index.c0d8c523.js 47a4285a1f8b3560633db877c20337d6 *admin/setting/dist/js/index.c0d8c523.js
cfdbb4f9aba1e284744188b3810a041f *admin/setting/dist/js/setting_temp.7e3b072c.js
fed529c081a40d86b53cefead4dce8d5 *admin/setting/dist/js/setting_temp.806222b7.js fed529c081a40d86b53cefead4dce8d5 *admin/setting/dist/js/setting_temp.806222b7.js
3a4519fcbcd6ab45fbe9b50d021d566d *admin/setting/dzz_app_setting.xml 3a4519fcbcd6ab45fbe9b50d021d566d *admin/setting/dzz_app_setting.xml
b765d84edd07b710d40795eacbac9b34 *admin/setting/images/0.png b765d84edd07b710d40795eacbac9b34 *admin/setting/images/0.png
@@ -123,7 +134,7 @@ b765d84edd07b710d40795eacbac9b34 *admin/setting/images/0.png
fb7e1ed6ef9ce5378a0f5b99053d98d8 *admin/setting/images/template2.jpg fb7e1ed6ef9ce5378a0f5b99053d98d8 *admin/setting/images/template2.jpg
701de4b317fbfc3a3780f5802fa738d5 *admin/setting/images/template3.jpg 701de4b317fbfc3a3780f5802fa738d5 *admin/setting/images/template3.jpg
280f776dda33acce20c0b7239cee9d4d *admin/setting/index.php 280f776dda33acce20c0b7239cee9d4d *admin/setting/index.php
1b3367f4ac8d529356866249d2ddd37a *admin/setting/interface.php e9c9cbfcee12ade3e24bc5900c15eaec *admin/setting/interface.php
50b58da8298eb2d2c5da1062d4ef1ae0 *admin/setting/language/en-US/lang.php 50b58da8298eb2d2c5da1062d4ef1ae0 *admin/setting/language/en-US/lang.php
c05da173f7e01b9c567d78969411c0f0 *admin/setting/language/zh-CN/lang.php c05da173f7e01b9c567d78969411c0f0 *admin/setting/language/zh-CN/lang.php
0fc3ae69f4beb9a032c3792ebc989b3c *admin/setting/mailcheck.php 0fc3ae69f4beb9a032c3792ebc989b3c *admin/setting/mailcheck.php
@@ -483,7 +494,7 @@ bcfb2e3e9c3ff2018f356176a1cf43a2 *core/class/class_core.php
3ce9db683150a76cd033167c7e281391 *core/class/class_Des.php 3ce9db683150a76cd033167c7e281391 *core/class/class_Des.php
383b8629de65e775e7e9c764fc138bb2 *core/class/class_FileDownload.php 383b8629de65e775e7e9c764fc138bb2 *core/class/class_FileDownload.php
b6b0b9dc4773307d80f9215ed5122361 *core/class/class_GifMerge.php b6b0b9dc4773307d80f9215ed5122361 *core/class/class_GifMerge.php
7e078de507bb8f3b56782b0bb6182b73 *core/class/class_image.php 45f8577dadd53e9c87dc5e16cd25d30f *core/class/class_image.php
723685db99bd44ccab9e75c05326cdf3 *core/class/class_ImagePalette.php 723685db99bd44ccab9e75c05326cdf3 *core/class/class_ImagePalette.php
1b836428237ca8d2bb58695cbe37df67 *core/class/class_JSSDK.php 1b836428237ca8d2bb58695cbe37df67 *core/class/class_JSSDK.php
986ad79bf8a9bff90c64c82918c0fa74 *core/class/class_Minifier.php 986ad79bf8a9bff90c64c82918c0fa74 *core/class/class_Minifier.php
@@ -506,7 +517,7 @@ ff8a737273b4846e66d0e8ae6ee2f038 *core/class/db/db_driver_mysqli_slave.php
aa439e22adcd2c891dc614294517c6f4 *core/class/dzz/apprun.php aa439e22adcd2c891dc614294517c6f4 *core/class/dzz/apprun.php
4068e60addb317b1db13347b92d093e9 *core/class/dzz/config.php 4068e60addb317b1db13347b92d093e9 *core/class/dzz/config.php
df04f6a6a7204e01a17da726e0568990 *core/class/dzz/Datareturn.php df04f6a6a7204e01a17da726e0568990 *core/class/dzz/Datareturn.php
895d3aeb3e790bd9da221b9938dcea02 *core/class/dzz/dzz_admincp.php c8be9777dfe94879f267ed9967ceba1e *core/class/dzz/dzz_admincp.php
0603902dddcccfcf1d65eb5c5956dcd6 *core/class/dzz/dzz_app.php 0603902dddcccfcf1d65eb5c5956dcd6 *core/class/dzz/dzz_app.php
06e1a108fe8f8945f27acc196d698578 *core/class/dzz/dzz_base.php 06e1a108fe8f8945f27acc196d698578 *core/class/dzz/dzz_base.php
90f9c47b4835ebe4512b15d8249c8d0c *core/class/dzz/dzz_censor.php 90f9c47b4835ebe4512b15d8249c8d0c *core/class/dzz/dzz_censor.php
@@ -517,7 +528,7 @@ df04f6a6a7204e01a17da726e0568990 *core/class/dzz/Datareturn.php
d403c1ad69bcff351d1190dce2149e39 *core/class/dzz/dzz_ftp.php d403c1ad69bcff351d1190dce2149e39 *core/class/dzz/dzz_ftp.php
c5befe2b1d89826484787de60d2a193d *core/class/dzz/dzz_io.php c5befe2b1d89826484787de60d2a193d *core/class/dzz/dzz_io.php
fc1a94ac8a1490bd69b1880395f69999 *core/class/dzz/dzz_memory.php fc1a94ac8a1490bd69b1880395f69999 *core/class/dzz/dzz_memory.php
f36b1d82ab5d96087e7664624f5c454e *core/class/dzz/dzz_mime.php 84ed6f91641ede7e5e10d428e47c4030 *core/class/dzz/dzz_mime.php
05d0c988894ba7e0de9c0a905bdee20b *core/class/dzz/dzz_mode.php 05d0c988894ba7e0de9c0a905bdee20b *core/class/dzz/dzz_mode.php
2e4a9e08194e20cf90fcf3d9ab436566 *core/class/dzz/dzz_notification.php 2e4a9e08194e20cf90fcf3d9ab436566 *core/class/dzz/dzz_notification.php
ec81d8a8174b2f23c6ee9038d6040d73 *core/class/dzz/dzz_process.php ec81d8a8174b2f23c6ee9038d6040d73 *core/class/dzz/dzz_process.php
@@ -543,7 +554,7 @@ bff4e6cd4e34ac63e83f3b88d9251e35 *core/class/dzz/ulimit.php
47fcc91680fbd0a95bca3be5d015122c *core/class/helper/helper_browser.php 47fcc91680fbd0a95bca3be5d015122c *core/class/helper/helper_browser.php
a6fc5d54f875f1316bdc7108df3c4209 *core/class/helper/helper_config.php a6fc5d54f875f1316bdc7108df3c4209 *core/class/helper/helper_config.php
e76535b1f2d9ab6323e0517da1fc2de1 *core/class/helper/helper_dbtool.php e76535b1f2d9ab6323e0517da1fc2de1 *core/class/helper/helper_dbtool.php
29813b08c442590409e035164cd38fb9 *core/class/helper/helper_form.php c4dc622ebdb64a58567fa1d264fb024c *core/class/helper/helper_form.php
7f2d22109dcbbd654df212386335048c *core/class/helper/helper_json.php 7f2d22109dcbbd654df212386335048c *core/class/helper/helper_json.php
e685273bd31d372d35384d5a55d92ed5 *core/class/helper/helper_log.php e685273bd31d372d35384d5a55d92ed5 *core/class/helper/helper_log.php
f5034e468dc8425e1aa281e4b9a49e2e *core/class/helper/helper_output.php f5034e468dc8425e1aa281e4b9a49e2e *core/class/helper/helper_output.php
@@ -553,14 +564,14 @@ f5034e468dc8425e1aa281e4b9a49e2e *core/class/helper/helper_output.php
84811cecb141dd3c2cdac2e9cef2414b *core/class/helper/helper_util.php 84811cecb141dd3c2cdac2e9cef2414b *core/class/helper/helper_util.php
555df98c17a7ef50b953910b0a96ceb1 *core/class/io/io_ALIOSS.php 555df98c17a7ef50b953910b0a96ceb1 *core/class/io/io_ALIOSS.php
a5f54203223f8822a121346812c1a131 *core/class/io/io_api.php a5f54203223f8822a121346812c1a131 *core/class/io/io_api.php
3dffea314f2fbf7bca080816ad35e3b6 *core/class/io/io_dzz.php edd6b5a55be69b8a97e354c15c6349a2 *core/class/io/io_dzz.php
0b4b65c82feb864615568c15f607ead0 *core/class/io/io_QCOS.php 48e476807f2ce9d3ab5c26b008f45b48 *core/class/io/io_QCOS.php
0d1397001c79a9dc3abea292d4e63eb3 *core/class/io/io_remote.php 0d1397001c79a9dc3abea292d4e63eb3 *core/class/io/io_remote.php
9d36adf2d2fa9502d26f8261d2fa27c6 *core/class/memory/memory_driver_apc.php 9d36adf2d2fa9502d26f8261d2fa27c6 *core/class/memory/memory_driver_apc.php
9cbd2cb15b983f7c1ef3b66cb4ed3d07 *core/class/memory/memory_driver_eaccelerator.php 9cbd2cb15b983f7c1ef3b66cb4ed3d07 *core/class/memory/memory_driver_eaccelerator.php
9e7a3561d3082cf39238ca811bdc8c6f *core/class/memory/memory_driver_memcache.php 37595bd0be1450134df9674e3c7b29a0 *core/class/memory/memory_driver_memcache.php
466d63f3ff0fb1c2c2d94fe564709ea8 *core/class/memory/memory_driver_memcached.php 30bd49517234b6be737ac9e7f71afe94 *core/class/memory/memory_driver_memcached.php
4f4bf946dafba65a13f15529eeeb78b1 *core/class/memory/memory_driver_redis.php 3457c8347ad56e46c9942ff15fe59c60 *core/class/memory/memory_driver_redis.php
6f24709bc537992e41cdaf94acdbcfb3 *core/class/memory/memory_driver_wincache.php 6f24709bc537992e41cdaf94acdbcfb3 *core/class/memory/memory_driver_wincache.php
e325e846d7a590ec2e2858ca1e0aab5a *core/class/memory/memory_driver_xcache.php e325e846d7a590ec2e2858ca1e0aab5a *core/class/memory/memory_driver_xcache.php
7f514b8f61b36c8de14d9f53c5ee8882 *core/class/PHPExcel/Autoloader.php 7f514b8f61b36c8de14d9f53c5ee8882 *core/class/PHPExcel/Autoloader.php
@@ -800,9 +811,9 @@ c78bc70a04ffabf583c0ba733679d38f *core/class/table/table_app_relative.php
23d2a593419d8ab2c83e4a3e974367a0 *core/class/table/table_app_tag.php 23d2a593419d8ab2c83e4a3e974367a0 *core/class/table/table_app_tag.php
d75145f67e4bc4e6e7466fbcdcce70f6 *core/class/table/table_app_user.php d75145f67e4bc4e6e7466fbcdcce70f6 *core/class/table/table_app_user.php
a1accfbad720cbccb62ad0ced75f6d0a *core/class/table/table_attachment.php a1accfbad720cbccb62ad0ced75f6d0a *core/class/table/table_attachment.php
26b4dbdf6924f52bb931363093589ce6 *core/class/table/table_cache.php aea9070576f5969e9593f533387e304d *core/class/table/table_cache.php
e976bebe68b3b45c309a7b9c287248b5 *core/class/table/table_connect.php e976bebe68b3b45c309a7b9c287248b5 *core/class/table/table_connect.php
8f656fffc779b247e489dd105be62df6 *core/class/table/table_connect_storage.php 9a58ae3fdeafd3b12cef191571a27125 *core/class/table/table_connect_storage.php
51535981c41dfd78d748944eb07cf214 *core/class/table/table_cron.php 51535981c41dfd78d748944eb07cf214 *core/class/table/table_cron.php
f62eb658ab84ebc0d4d29304db39c1ee *core/class/table/table_district.php f62eb658ab84ebc0d4d29304db39c1ee *core/class/table/table_district.php
5b47c663f64792c001ece96a7b93536d *core/class/table/table_failedlogin.php 5b47c663f64792c001ece96a7b93536d *core/class/table/table_failedlogin.php
@@ -816,6 +827,7 @@ d406545402b932f027d01d0eea077d09 *core/class/table/table_local_router.php
c6e3522aaedb7b8d240c818b424777c0 *core/class/table/table_local_storage.php c6e3522aaedb7b8d240c818b424777c0 *core/class/table/table_local_storage.php
b333c9e8748737d29d090f31a502a147 *core/class/table/table_mailcron.php b333c9e8748737d29d090f31a502a147 *core/class/table/table_mailcron.php
01da2848647c78326eb66e42b4d6b695 *core/class/table/table_mailqueue.php 01da2848647c78326eb66e42b4d6b695 *core/class/table/table_mailqueue.php
09d76ccd279dea5e9f5181dd374a1727 *core/class/table/table_my_file.php
437f394ff257753b19aa059e0d18973f *core/class/table/table_notification.php 437f394ff257753b19aa059e0d18973f *core/class/table/table_notification.php
6adc2beec0054eff66d721b983f7c520 *core/class/table/table_onlinetime.php 6adc2beec0054eff66d721b983f7c520 *core/class/table/table_onlinetime.php
14b62849d6b87662030603e5d4f73722 *core/class/table/table_organization.php 14b62849d6b87662030603e5d4f73722 *core/class/table/table_organization.php
@@ -824,7 +836,7 @@ b333c9e8748737d29d090f31a502a147 *core/class/table/table_mailcron.php
7efba4a878332f9739c40a4f63d96f64 *core/class/table/table_organization_job.php 7efba4a878332f9739c40a4f63d96f64 *core/class/table/table_organization_job.php
f9fea2c25dbea100b27386dde7057be4 *core/class/table/table_organization_upjob.php f9fea2c25dbea100b27386dde7057be4 *core/class/table/table_organization_upjob.php
7e02ce47e363f56c798a7c261cccc6a4 *core/class/table/table_organization_user.php 7e02ce47e363f56c798a7c261cccc6a4 *core/class/table/table_organization_user.php
0dc93706249d2050547102773ef48f30 *core/class/table/table_pichome_banner.php e2948c4904f03fb234af09f830cde5ff *core/class/table/table_pichome_banner.php
a4f1ad5ba95b2cf0439071bc2cf60e2c *core/class/table/table_pichome_bannertag.php a4f1ad5ba95b2cf0439071bc2cf60e2c *core/class/table/table_pichome_bannertag.php
eee221093d1ae957d9ac8cd39d24616e *core/class/table/table_pichome_bannertagcat.php eee221093d1ae957d9ac8cd39d24616e *core/class/table/table_pichome_bannertagcat.php
1ac641c0fb6d92c47a541fed54bde43c *core/class/table/table_pichome_collect.php 1ac641c0fb6d92c47a541fed54bde43c *core/class/table/table_pichome_collect.php
@@ -835,21 +847,21 @@ eee221093d1ae957d9ac8cd39d24616e *core/class/table/table_pichome_bannertagcat.ph
4e551d8fb00975b88d5559119e9e95b8 *core/class/table/table_pichome_comments.php 4e551d8fb00975b88d5559119e9e95b8 *core/class/table/table_pichome_comments.php
18b21ba30a6b52bf7d7228bdba1c211d *core/class/table/table_pichome_downloads.php 18b21ba30a6b52bf7d7228bdba1c211d *core/class/table/table_pichome_downloads.php
dc169efe36fdf79623277fb5a538c673 *core/class/table/table_pichome_ffmpeg_record.php dc169efe36fdf79623277fb5a538c673 *core/class/table/table_pichome_ffmpeg_record.php
0a648a60008e313bfefa5a0bd472a737 *core/class/table/table_pichome_folder.php f299fcf44bddc09f18299099a8a94a5f *core/class/table/table_pichome_folder.php
bd9cf7b207fb05e40f2e19fbb2325941 *core/class/table/table_pichome_folderresources.php f2c7702ce4f187ae12c3926f7801d9b1 *core/class/table/table_pichome_folderresources.php
289dd4326fb5944114e23e13c3f7bbd1 *core/class/table/table_pichome_foldertag.php 289dd4326fb5944114e23e13c3f7bbd1 *core/class/table/table_pichome_foldertag.php
fb390b2cfce67236a7263549a430868b *core/class/table/table_pichome_folder_relation.php fb390b2cfce67236a7263549a430868b *core/class/table/table_pichome_folder_relation.php
f2dba998fcb614dd330cf8642c29edb5 *core/class/table/table_pichome_folder_tag.php f2dba998fcb614dd330cf8642c29edb5 *core/class/table/table_pichome_folder_tag.php
180233f6f8d234986280df5c3821fe24 *core/class/table/table_pichome_imagickrecord.php 180233f6f8d234986280df5c3821fe24 *core/class/table/table_pichome_imagickrecord.php
918dd3355ae6abc0677ca80f65030c37 *core/class/table/table_pichome_onlyofficethumb.php 918dd3355ae6abc0677ca80f65030c37 *core/class/table/table_pichome_onlyofficethumb.php
11aa1d892793d058267a9ee99b8a1c56 *core/class/table/table_pichome_palette.php 11aa1d892793d058267a9ee99b8a1c56 *core/class/table/table_pichome_palette.php
5e1600ee529c1f3d002934d380a05fce *core/class/table/table_pichome_resources.php c0aab418d52ebd6c4419bb301b5a4898 *core/class/table/table_pichome_resources.php
4845204287246ee63f88b4e5aced0f22 *core/class/table/table_pichome_resourcestab.php 4845204287246ee63f88b4e5aced0f22 *core/class/table/table_pichome_resourcestab.php
d1e79b04d6de15c004d16ee9af85b48d *core/class/table/table_pichome_resourcestag.php d1e79b04d6de15c004d16ee9af85b48d *core/class/table/table_pichome_resourcestag.php
923a15aba4f53ce197dcc08be0d2a191 *core/class/table/table_pichome_resources_attr.php 923a15aba4f53ce197dcc08be0d2a191 *core/class/table/table_pichome_resources_attr.php
a726efecda30e316b03f9ad64a61570d *core/class/table/table_pichome_resources_relation.php a726efecda30e316b03f9ad64a61570d *core/class/table/table_pichome_resources_relation.php
1a544071965a4e20305947726febe831 *core/class/table/table_pichome_resources_tag.php 1a544071965a4e20305947726febe831 *core/class/table/table_pichome_resources_tag.php
f37f907ef70616d3ee946c4c6828d4e8 *core/class/table/table_pichome_route.php a36caa4e05ce8e35e95b56180089a50d *core/class/table/table_pichome_route.php
89c81b6f28ff6f8a34a2728ed8cf6398 *core/class/table/table_pichome_searchrecent.php 89c81b6f28ff6f8a34a2728ed8cf6398 *core/class/table/table_pichome_searchrecent.php
b0bfcc3cdc42b64bd336b4e2a4bcde2e *core/class/table/table_pichome_share.php b0bfcc3cdc42b64bd336b4e2a4bcde2e *core/class/table/table_pichome_share.php
b07eb8fcfe1030722e81f6ca3f8c4d8f *core/class/table/table_pichome_tag.php b07eb8fcfe1030722e81f6ca3f8c4d8f *core/class/table/table_pichome_tag.php
@@ -857,15 +869,16 @@ b07eb8fcfe1030722e81f6ca3f8c4d8f *core/class/table/table_pichome_tag.php
d36c3e504e4666b6a9301699ebeeeaa5 *core/class/table/table_pichome_taggroup_relation.php d36c3e504e4666b6a9301699ebeeeaa5 *core/class/table/table_pichome_taggroup_relation.php
777751f209e4387a9b4d181ac647cda6 *core/class/table/table_pichome_tagrelation.php 777751f209e4387a9b4d181ac647cda6 *core/class/table/table_pichome_tagrelation.php
71983a6b4e34c25fa9dd944dd5bcacf5 *core/class/table/table_pichome_templatepage.php 71983a6b4e34c25fa9dd944dd5bcacf5 *core/class/table/table_pichome_templatepage.php
ad5c2906952ec93a7ab2cafb9dbcb268 *core/class/table/table_pichome_templatetag.php d0db35207ad1b23243f0eb38c644f3b5 *core/class/table/table_pichome_templatetag.php
1bd42c71f7de95b02af9bcf8c9591100 *core/class/table/table_pichome_templatetagdata.php 8325776a9c2960c08f64e6a99b85743c *core/class/table/table_pichome_templatetagdata.php
f807bb87cebf422361f9b1122252a9a5 *core/class/table/table_pichome_templatetagtheme.php f807bb87cebf422361f9b1122252a9a5 *core/class/table/table_pichome_templatetagtheme.php
2ef90dcafba0bb371491a553588ab26c *core/class/table/table_pichome_theme.php 2ef90dcafba0bb371491a553588ab26c *core/class/table/table_pichome_theme.php
ac6de565041f636fe124e255172ce94a *core/class/table/table_pichome_vapp.php 5aeaae8ca2b27311679a866ba0cfec4b *core/class/table/table_pichome_vapp.php
a816f74bde0dc7190bc2c69592db86e1 *core/class/table/table_pichome_vappmember.php a816f74bde0dc7190bc2c69592db86e1 *core/class/table/table_pichome_vappmember.php
17f837225c74ca752fcc456af254879b *core/class/table/table_pichome_vapp_tag.php 17f837225c74ca752fcc456af254879b *core/class/table/table_pichome_vapp_tag.php
94df617de6c36f8e20476f7efca15a6f *core/class/table/table_pichome_views.php 94df617de6c36f8e20476f7efca15a6f *core/class/table/table_pichome_views.php
eea6b39fd13b5fdf18052c7733adb369 *core/class/table/table_process.php eea6b39fd13b5fdf18052c7733adb369 *core/class/table/table_process.php
28c834b1ba64083567e98128e900a302 *core/class/table/table_search_template.php
ffc8c199da703d941c493fa317785611 *core/class/table/table_session.php ffc8c199da703d941c493fa317785611 *core/class/table/table_session.php
774bda01812449ffa4819b0be241dc4e *core/class/table/table_setting.php 774bda01812449ffa4819b0be241dc4e *core/class/table/table_setting.php
92310e6c7549cdcdd769a54149ca41d0 *core/class/table/table_shorturl.php 92310e6c7549cdcdd769a54149ca41d0 *core/class/table/table_shorturl.php
@@ -884,24 +897,24 @@ d5b0e7dc291a731a5c184d97baecf2df *core/class/table/table_user_profile_setting.ph
4282e6cf8ae4ff9ee917f65f41bc28e8 *core/class/table/table_user_verify.php 4282e6cf8ae4ff9ee917f65f41bc28e8 *core/class/table/table_user_verify.php
bc2e189cfaacbdb84ddceb3a0abdcf92 *core/class/table/table_user_verify_info.php bc2e189cfaacbdb84ddceb3a0abdcf92 *core/class/table/table_user_verify_info.php
692cda4c6ad17e87e1edefb7251d0116 *core/class/table/table_user_wechat.php 692cda4c6ad17e87e1edefb7251d0116 *core/class/table/table_user_wechat.php
d67583b44af4ebd33391930028305a03 *core/class/table/table_video_record.php 4f134f1f5ea2dc0f83ce7df4319549c7 *core/class/table/table_video_record.php
908dd0ea6f6e4354ec12be9a04262c0d *core/class/table/table_views.php 908dd0ea6f6e4354ec12be9a04262c0d *core/class/table/table_views.php
3e168f292c110c9e378f6ca6358365eb *core/coreBase.php 3e168f292c110c9e378f6ca6358365eb *core/coreBase.php
1b18304206d44c65fd98938608ecda41 *core/core_version.php b1ee8d60584d9b3a0e2d684f46727bf0 *core/core_version.php
d90d23b8deb20cef2c43e66725ec2813 *core/cron/cron_cache_cleanup_week.php d90d23b8deb20cef2c43e66725ec2813 *core/cron/cron_cache_cleanup_week.php
b7720a5d71abee399734ca531641a6df *core/cron/cron_cache_pichome_searchhot.php b7720a5d71abee399734ca531641a6df *core/cron/cron_cache_pichome_searchhot.php
09bf107dfc58f0424b0245834d221a42 *core/cron/cron_clean_notification_month.php 09bf107dfc58f0424b0245834d221a42 *core/cron/cron_clean_notification_month.php
8d887d83e37a05ed0bbcffdc960a11a3 *core/cron/cron_pichome_convert.php 439947e729205daf2b48b9ec34f199e4 *core/cron/cron_pichome_convert.php
f0eee9e78e3baec4dfd655d784d9ec12 *core/cron/cron_pichome_delete.php e92ca4444b24fb25f92f090783212cab *core/cron/cron_pichome_delete.php
60ef638d866e6e2028bbdaca2727dcb4 *core/cron/cron_pichome_deletefile.php 91d16754df04a78960cff92fb9fd13ee *core/cron/cron_pichome_deletefile.php
f5c7259c468f4127505a576c2b2e5646 *core/cron/cron_pichome_getconvertstatus.php f5c7259c468f4127505a576c2b2e5646 *core/cron/cron_pichome_getconvertstatus.php
c341a146527cf84c12957ef0bff29a16 *core/cron/cron_pichome_getinfo.php 1cf604b31e0ed5a21ed909d51fabfdd3 *core/cron/cron_pichome_getinfo.php
3eeef73004dffe7cdd389e35ae65fa99 *core/cron/cron_pichome_getthumb.php b45b7617bdbcf5d8b74b3df252b1a78b *core/cron/cron_pichome_getthumb.php
8aeaddde9c01b61f0ecad8db90e80ffd *core/cron/cron_pichome_vapp_update.php 6ffa1c4faa1ae7d8facca0d96853dfff *core/cron/cron_pichome_vapp_update.php
1bbb12845fc08bec9f174d5076ed948b *core/cron/cron_thumbcheckchange.php 54506b515fe85a14ee43c233c648aa90 *core/cron/cron_thumbcheckchange.php
d728e10c28f9e89be8e18037405ed675 *core/cron/cron_thumbdochange.php acfbf06bad285a917104212a69858db9 *core/cron/cron_thumbdochange.php
65746191d4d790ad1d7699ee50c7ff8f *core/cron/cron_update_alonepagedata.php 65746191d4d790ad1d7699ee50c7ff8f *core/cron/cron_update_alonepagedata.php
3f8df477cc0a691f71abc887c6ae5050 *core/cron/cron_vapp_vappdoupdate.php 2f0ea9c358b18a8d775f9c9817b15b10 *core/cron/cron_vapp_vappdoupdate.php
c94b4d2c1d003158b040f5c99d1370d7 *core/dzzstart.php c94b4d2c1d003158b040f5c99d1370d7 *core/dzzstart.php
d4c7872572f6965e3173a12153dd758b *core/function/cache/cache_fields_optional.php d4c7872572f6965e3173a12153dd758b *core/function/cache/cache_fields_optional.php
98b3024c7107943c8573cf473d624710 *core/function/cache/cache_fields_register.php 98b3024c7107943c8573cf473d624710 *core/function/cache/cache_fields_register.php
@@ -921,17 +934,17 @@ aff9e34d19a59c6c356696f8f2540618 *core/function/function_message.php
64130c113cc1efff3e2ffeb999f79429 *core/function/function_organization.php 64130c113cc1efff3e2ffeb999f79429 *core/function/function_organization.php
52bf61b2023d74e373496c3cb431af9a *core/function/function_seccode.php 52bf61b2023d74e373496c3cb431af9a *core/function/function_seccode.php
c250b85f9a57d7e78626dd6787cb3b52 *core/function/function_security.php c250b85f9a57d7e78626dd6787cb3b52 *core/function/function_security.php
b1533a8a98a9016a20f89b3b0f6e9611 *core/language/en-US/lang.php b3e9bb0aaf67901169ee623e69f4e298 *core/language/en-US/lang.php
04a763d3d06024e0d13ecd047c517a9b *core/language/zh-CN/lang.php 7a5c62dc6621ee489bff36358defd090 *core/language/zh-CN/lang.php
a67812c535f3831b9f0a5689a28b9490 *core/template/default/common/about.htm a67812c535f3831b9f0a5689a28b9490 *core/template/default/common/about.htm
15df1d81bd8e8f63e1cc24fba0d517ba *core/template/default/common/commer_header.htm 15df1d81bd8e8f63e1cc24fba0d517ba *core/template/default/common/commer_header.htm
777b6e6d1bb258827df9a1fb7e6096bb *core/template/default/common/container/mobile/ucenter_header.htm 777b6e6d1bb258827df9a1fb7e6096bb *core/template/default/common/container/mobile/ucenter_header.htm
cca41d837a3b05da1a20722999a8d448 *core/template/default/common/container/pc/ad_pic_header.htm 10e99a35865e6f51466e63e1aa2dd837 *core/template/default/common/container/pc/ad_pic_header.htm
b2c3849fe25b5a2b2a6640ef11f7a2b6 *core/template/default/common/container/pc/footer.htm b2c3849fe25b5a2b2a6640ef11f7a2b6 *core/template/default/common/container/pc/footer.htm
4e91028ac6254116d38a1eceb5fac7e7 *core/template/default/common/container/pc/header_default.htm 58e2a881fc7999d45cae869bc743eba6 *core/template/default/common/container/pc/header_default.htm
ae502b90b2b31175892efe56867bc2e7 *core/template/default/common/container/pc/header_end.htm ae502b90b2b31175892efe56867bc2e7 *core/template/default/common/container/pc/header_end.htm
1d108291f44eabb1e08549c20fe44bfe *core/template/default/common/container/pc/header_start.htm f639a8c13770bb2587f0d1b8d2c24322 *core/template/default/common/container/pc/header_start.htm
de036b79e6856759db95bd0509c73eb9 *core/template/default/common/container/pc/ucenter_header.htm 7e88b8172ef6829c4c17c3d54b543d50 *core/template/default/common/container/pc/ucenter_header.htm
eb0a85b0819a5414428af523459c011d *core/template/default/common/footer.htm eb0a85b0819a5414428af523459c011d *core/template/default/common/footer.htm
dcecf9502c1ceadebea0ae4c229d3364 *core/template/default/common/footer_ajax.htm dcecf9502c1ceadebea0ae4c229d3364 *core/template/default/common/footer_ajax.htm
9aca73d28649b755b4a8b75e87fcd8aa *core/template/default/common/footer_reload.htm 9aca73d28649b755b4a8b75e87fcd8aa *core/template/default/common/footer_reload.htm
@@ -960,6 +973,7 @@ c2e9e848f0ebc7bfd0849091242553b0 *core/template/default/common/safechk.htm
6bac1116a4ed718d8b22c9d724d5b4b3 *core/template/default/common/wx_appinfo.htm 6bac1116a4ed718d8b22c9d724d5b4b3 *core/template/default/common/wx_appinfo.htm
9990d7555fdf8210fa4a2a8672f20fd5 *core/template/default/common/wx_menu.htm 9990d7555fdf8210fa4a2a8672f20fd5 *core/template/default/common/wx_menu.htm
768cfd48e43c4a205b1d40ab82acde57 *core/template/default/common/wx_mpinfo.htm 768cfd48e43c4a205b1d40ab82acde57 *core/template/default/common/wx_mpinfo.htm
b3264d636cfbc3e4e435c55864714f97 *cron.php
10a6d028457a6f41b495f3cfac282839 *data/attachment/appico/201712/21/094100vm3fpb41fo6a3x3f.png 10a6d028457a6f41b495f3cfac282839 *data/attachment/appico/201712/21/094100vm3fpb41fo6a3x3f.png
bbcc53d0fdd2a6d7ffcb6d093666d82c *data/attachment/appico/201712/21/095758ft5y66jma56y66vj.png bbcc53d0fdd2a6d7ffcb6d093666d82c *data/attachment/appico/201712/21/095758ft5y66jma56y66vj.png
69e09cebdfee0fd4a7ccabf19257a244 *data/attachment/appico/201712/21/100051c67ri9nq1672q779.png 69e09cebdfee0fd4a7ccabf19257a244 *data/attachment/appico/201712/21/100051c67ri9nq1672q779.png
@@ -1010,7 +1024,7 @@ d41d8cd98f00b204e9800998ecf8427e *data/attachment/imgcache/index.htm
d41d8cd98f00b204e9800998ecf8427e *data/attachment/pichomethumb/index.htm d41d8cd98f00b204e9800998ecf8427e *data/attachment/pichomethumb/index.htm
d41d8cd98f00b204e9800998ecf8427e *data/attachment/qrcode/index.htm d41d8cd98f00b204e9800998ecf8427e *data/attachment/qrcode/index.htm
d41d8cd98f00b204e9800998ecf8427e *data/attachment/qrcode/index.html d41d8cd98f00b204e9800998ecf8427e *data/attachment/qrcode/index.html
2894a0aaf1160440c47ecd1685115ed8 *data/attachment/sitelogo/sitelogo.png fc1dd882274e6396d5e53198b524e9bb *data/attachment/sitelogo/sitelogo.png
d41d8cd98f00b204e9800998ecf8427e *data/attachment/temp/index.htm d41d8cd98f00b204e9800998ecf8427e *data/attachment/temp/index.htm
e447756e3a0f0ee86acc80120ad2e7af *data/avatar/camera.swf e447756e3a0f0ee86acc80120ad2e7af *data/avatar/camera.swf
d41d8cd98f00b204e9800998ecf8427e *data/avatar/index.html d41d8cd98f00b204e9800998ecf8427e *data/avatar/index.html
@@ -1025,40 +1039,41 @@ d41d8cd98f00b204e9800998ecf8427e *data/log/index.htm
d41d8cd98f00b204e9800998ecf8427e *data/sendmail.lock d41d8cd98f00b204e9800998ecf8427e *data/sendmail.lock
d41d8cd98f00b204e9800998ecf8427e *data/sendwx.lock d41d8cd98f00b204e9800998ecf8427e *data/sendwx.lock
d41d8cd98f00b204e9800998ecf8427e *data/template/index.htm d41d8cd98f00b204e9800998ecf8427e *data/template/index.htm
a56367b00723f64ff710ba937d3263c0 *dzz/alonepage/alonepageinterface.php 425a14968825260446999070ce4ba4b0 *dzz/alonepage/alonepageinterface.php
f84214fc43f665c79b92dc7a092b364f *dzz/alonepage/function/function_common.php f84214fc43f665c79b92dc7a092b364f *dzz/alonepage/function/function_common.php
41249858f5d6520433e66bc73cde5369 *dzz/alonepage/index.php 41249858f5d6520433e66bc73cde5369 *dzz/alonepage/index.php
38e186e660843d9887c7bd18fcdc34b6 *dzz/alonepage/setting.php 38e186e660843d9887c7bd18fcdc34b6 *dzz/alonepage/setting.php
29e908006a5bba619a16a078a4c41454 *dzz/alonepage/template/assets/css/index.css 29e908006a5bba619a16a078a4c41454 *dzz/alonepage/template/assets/css/index.css
12518020b0dbc015b254c17f7f8a329e *dzz/alonepage/template/assets/css/setting.css 047bc0e53713377ec1023b9e77e09247 *dzz/alonepage/template/assets/css/setting.css
005f8234ac90f5c09d79b4efa52cf042 *dzz/alonepage/template/assets/js/banner.js 005f8234ac90f5c09d79b4efa52cf042 *dzz/alonepage/template/assets/js/banner.js
f9ba1bf82cbaa7cad38368fe7d2486f7 *dzz/alonepage/template/assets/js/contact.js f9ba1bf82cbaa7cad38368fe7d2486f7 *dzz/alonepage/template/assets/js/contact.js
cff829d71ab0e7f9311ad6de105d8e23 *dzz/alonepage/template/assets/js/db_ids.js ef85ae8fe13e5583fe31f024fb7b4f2e *dzz/alonepage/template/assets/js/db_ids.js
a0118f09633baceb43daa008a0b1d3bd *dzz/alonepage/template/assets/js/file_rec.js bd2a971c5808c190c8d0c7a5e0f27f12 *dzz/alonepage/template/assets/js/file_rec.js
6162d592becd3b9364c36e8ec224389e *dzz/alonepage/template/assets/js/link.js 6162d592becd3b9364c36e8ec224389e *dzz/alonepage/template/assets/js/link.js
f4bbc39e0309d6c6637d58dc122a1486 *dzz/alonepage/template/assets/js/manual_rec.js f4bbc39e0309d6c6637d58dc122a1486 *dzz/alonepage/template/assets/js/manual_rec.js
82b1d23d003d452bb101f014e3afebce *dzz/alonepage/template/assets/js/picture_rec.js 82b1d23d003d452bb101f014e3afebce *dzz/alonepage/template/assets/js/picture_rec.js
ab7878dce4eb3dc32a5d9e155a227eda *dzz/alonepage/template/assets/js/question.js ab7878dce4eb3dc32a5d9e155a227eda *dzz/alonepage/template/assets/js/question.js
8b7b600f6a0f8f766f07a30471a9dcf3 *dzz/alonepage/template/assets/js/rectangle_rec.js 8b7b600f6a0f8f766f07a30471a9dcf3 *dzz/alonepage/template/assets/js/rectangle_rec.js
3807832cf3f7556f56dd0cb1a031f756 *dzz/alonepage/template/assets/js/rich_text.js 3807832cf3f7556f56dd0cb1a031f756 *dzz/alonepage/template/assets/js/rich_text.js
8ca4bc3215d22468973045527c2dfe9b *dzz/alonepage/template/assets/js/search_rec.js
826dbe35181adadd33b456fed3e62140 *dzz/alonepage/template/assets/js/slide.js 826dbe35181adadd33b456fed3e62140 *dzz/alonepage/template/assets/js/slide.js
ff576a3ffb7918059c07947612bed308 *dzz/alonepage/template/assets/js/tab.js e512773e28273a45996a651df6eec3e3 *dzz/alonepage/template/assets/js/tab.js
694635194a077e556473202b1992761d *dzz/alonepage/template/components/common/header.htm 694635194a077e556473202b1992761d *dzz/alonepage/template/components/common/header.htm
482fe2a7ce9f770f46c5573f3d38afea *dzz/alonepage/template/components/common/left.htm 482fe2a7ce9f770f46c5573f3d38afea *dzz/alonepage/template/components/common/left.htm
dca1ecaf7bf8759a7d8c96ffd508852a *dzz/alonepage/template/components/index/right.htm 44038404f09e63919034b2160db7ace9 *dzz/alonepage/template/components/index/right.htm
0cedda9569ea8d2c025a7a80ccfed074 *dzz/alonepage/template/components/setting/main.htm 8eeed3ff1366195c6b0769998b708c58 *dzz/alonepage/template/components/setting/main.htm
a5214ece24b0727a1aa9d51a9a31a1c6 *dzz/alonepage/template/components/setting/right.htm ce7d360df0580896508e116bc4cb7ba2 *dzz/alonepage/template/components/setting/right.htm
4eb823013bf21cca3017e1bd1a1c8b18 *dzz/alonepage/template/components/setting/style.htm 83323171181f245cbfcb4faf06153214 *dzz/alonepage/template/components/setting/style.htm
5e343763d38e44596516c904eb0287b5 *dzz/alonepage/template/components/view/header.htm 158fb800f72d0f0d230fa1a418ea3a27 *dzz/alonepage/template/components/view/header.htm
0fb384ab5279d03ff641de53eb3cd139 *dzz/alonepage/template/components/view/header_m.htm 8effcbbcf594d3e26b4b46060a24f4ec *dzz/alonepage/template/components/view/header_m.htm
e19eb3535e11493673cefe97600df47e *dzz/alonepage/template/page/index.htm e19eb3535e11493673cefe97600df47e *dzz/alonepage/template/page/index.htm
417977ff0496bf0c8a855b2dab6a8367 *dzz/alonepage/template/page/setting.htm a7886fbfa2d7b3dc22a62f7e96ef6c79 *dzz/alonepage/template/page/setting.htm
7eee1995752ad186115d9122f54830a3 *dzz/alonepage/template/page/view.htm 7eee1995752ad186115d9122f54830a3 *dzz/alonepage/template/page/view.htm
60f3704f7de22ca39e556aa4ad9b79ef *dzz/alonepage/view.php b73ffd3ef90415c3303dde6db7f96201 *dzz/alonepage/view.php
fe7d9ef6e65ab6f74f03a491c4a975ca *dzz/banner/admin.php fe7d9ef6e65ab6f74f03a491c4a975ca *dzz/banner/admin.php
0e97ef38829c5c8ef80fbb7b0aa02781 *dzz/banner/app.php 0309bcc7cf37919cc52184e35ea2c9c5 *dzz/banner/app.php
9311a586a8f92a4c52e698e1de2269ca *dzz/banner/appajax.php eb0e230cc79dfd2c29f52f70f83eba20 *dzz/banner/appajax.php
d1f10b328c980db934bbea16e9edbee9 *dzz/banner/bannerinterfcae.php a732be8c86a37029ebf772dd121239ff *dzz/banner/bannerinterfcae.php
ebb2d60e55c7eac9e2652e0f67056d9e *dzz/banner/classes/statskeywordaddafter.php ebb2d60e55c7eac9e2652e0f67056d9e *dzz/banner/classes/statskeywordaddafter.php
f79f6725d66d1f4a2c37437f3f51a74e *dzz/banner/classes/statsviewaddafter.php f79f6725d66d1f4a2c37437f3f51a74e *dzz/banner/classes/statsviewaddafter.php
7bf8ddf51dc493a8013a4cba3637f9fa *dzz/banner/details.php 7bf8ddf51dc493a8013a4cba3637f9fa *dzz/banner/details.php
@@ -1069,39 +1084,40 @@ baad6b141100ca4b9359db6a56622924 *dzz/banner/download.php
20ff6d9bc822c9fb4ab0949733f06ddd *dzz/banner/readtheme.php 20ff6d9bc822c9fb4ab0949733f06ddd *dzz/banner/readtheme.php
8d86eb3059039147b61481f67994e737 *dzz/banner/template/asstes/css/common.js 8d86eb3059039147b61481f67994e737 *dzz/banner/template/asstes/css/common.js
c12291c6f960ba476be3d1e09ce75ca7 *dzz/banner/template/asstes/css/index.css c12291c6f960ba476be3d1e09ce75ca7 *dzz/banner/template/asstes/css/index.css
3830f34431cae4deb0da8f922ec8cf0d *dzz/banner/template/asstes/css/information.css 83e9b5cb6cd0ad5b1277b0f82cbfd87d *dzz/banner/template/asstes/css/information.css
8d86eb3059039147b61481f67994e737 *dzz/banner/template/asstes/js/common.js 8d86eb3059039147b61481f67994e737 *dzz/banner/template/asstes/js/common.js
cba61c448d728c281d32848acbc789a6 *dzz/banner/template/components/index/bottom.htm cba61c448d728c281d32848acbc789a6 *dzz/banner/template/components/index/bottom.htm
121edafed55083ac0af3da9ef116bed9 *dzz/banner/template/components/index/operation.htm 7c2a32ce790ff8968f420fe39bcfd40d *dzz/banner/template/components/index/operation.htm
eb57957cae38783d7714ca2cb6aad775 *dzz/banner/template/components/index/tip.htm eb57957cae38783d7714ca2cb6aad775 *dzz/banner/template/components/index/tip.htm
2d12b91bd49f27c546bc11762fb6043f *dzz/banner/template/components/index/top.htm 2d12b91bd49f27c546bc11762fb6043f *dzz/banner/template/components/index/top.htm
661c60867be53bcbaf8b6fb9c0162e1e *dzz/banner/template/components/information/audio.htm 541548db5bf761287bae054b35a2e0c7 *dzz/banner/template/components/information/audio.htm
060fe63a94ccab48c8bbd5a848b845ed *dzz/banner/template/components/information/document.htm 0d357b01e8e7b6ce0226e213ba94a217 *dzz/banner/template/components/information/document.htm
23109ccb2d92fea856f119562ad677b5 *dzz/banner/template/components/information/image.htm 1a49527725453d6cd792a8a733bc3485 *dzz/banner/template/components/information/header.htm
454a76626689ba4b4aeedb12b5f1d22d *dzz/banner/template/components/information/image.htm
a1a542dbe656680c81955e57a7d30869 *dzz/banner/template/components/information/layout.htm a1a542dbe656680c81955e57a7d30869 *dzz/banner/template/components/information/layout.htm
270d044e560cab64b36d50345ae6f12f *dzz/banner/template/components/information/message.htm 2ea11c76537b35ab45abac1be63968ba *dzz/banner/template/components/information/message.htm
e0d6369507ab1160b4044cdacc7ceef9 *dzz/banner/template/components/information/other.htm 4d39655c6d4b89d0ca6a1e9377603d10 *dzz/banner/template/components/information/other.htm
515247aa2d0768ac0f89b588beb3e194 *dzz/banner/template/components/information/search.htm 1ca7b831687024c3adba3ac60fe33d07 *dzz/banner/template/components/information/search.htm
f48e30550154594353e3213278aa3c61 *dzz/banner/template/components/information/video.htm 803a1e418eb5e816b1071286c37780e5 *dzz/banner/template/components/information/video.htm
60093a724835e267a52d45f7ce45a51f *dzz/banner/template/details/header.htm 60093a724835e267a52d45f7ce45a51f *dzz/banner/template/details/header.htm
a4d7c8ced18cc69e49ddc1c077526946 *dzz/banner/template/details/image.htm a4d7c8ced18cc69e49ddc1c077526946 *dzz/banner/template/details/image.htm
b7e67d108ffd099c51445c9edfd3327e *dzz/banner/template/details/index.htm b7e67d108ffd099c51445c9edfd3327e *dzz/banner/template/details/index.htm
7ed3ddd78dea4316d19de065583a48fc *dzz/banner/template/details/right.htm 7ed3ddd78dea4316d19de065583a48fc *dzz/banner/template/details/right.htm
c2bedf0b7674fdc51baf673d09d06dfd *dzz/banner/template/fashion/pc/assets/css/index.css 51d565d99a6f837f64b013764292667e *dzz/banner/template/fashion/pc/assets/css/index.css
7007c10878e5de64c9c123b97007d795 *dzz/banner/template/fashion/pc/assets/js/menu.js 7007c10878e5de64c9c123b97007d795 *dzz/banner/template/fashion/pc/assets/js/menu.js
bc8884bd0dd740ad0b10e92b20b8813f *dzz/banner/template/fashion/pc/assets/js/swiper.min.css bc8884bd0dd740ad0b10e92b20b8813f *dzz/banner/template/fashion/pc/assets/js/swiper.min.css
18b1cbc6e9fcf4851bd7179193c23c2e *dzz/banner/template/fashion/pc/assets/js/swiper.min.js 18b1cbc6e9fcf4851bd7179193c23c2e *dzz/banner/template/fashion/pc/assets/js/swiper.min.js
15d9465ef65f6f301451dfc9b23ea527 *dzz/banner/template/fashion/pc/components/footer.htm 15d9465ef65f6f301451dfc9b23ea527 *dzz/banner/template/fashion/pc/components/footer.htm
a0dea44e1cc3045d85357954138b0d1c *dzz/banner/template/fashion/pc/components/header.htm b0d92eb01a8e0db6c40569a00325b47b *dzz/banner/template/fashion/pc/components/header.htm
56801ec73c94bf7d1d63bc34547a9b6d *dzz/banner/template/fashion/pc/components/header_m.htm 85949c393905492e87e8f11396300628 *dzz/banner/template/fashion/pc/components/header_m.htm
66211274570c14b003d6240609624ca0 *dzz/banner/template/fashion/pc/components/rectangle_rec.htm 66211274570c14b003d6240609624ca0 *dzz/banner/template/fashion/pc/components/rectangle_rec.htm
3e56b419d8fbf42436a3a67a393cdfa6 *dzz/banner/template/fashion/pc/page/index.htm 2538619983031f30ede0e49f7ff6d6d6 *dzz/banner/template/fashion/pc/page/index.htm
ecb130c0bfca13ca7791f4d478b54ad2 *dzz/banner/template/fashion/theme.xml 44265feb8cf34889ecec02a3ffc6d189 *dzz/banner/template/fashion/theme.xml
b2b2deb6587a06bd567efbd3e2cd1876 *dzz/banner/template/page/index.htm b2b2deb6587a06bd567efbd3e2cd1876 *dzz/banner/template/page/index.htm
6f2aa12838c8d4f4dbb20d6442709c74 *dzz/banner/template/page/information.htm 295c397e3925ca8ecf82eb0ef18b2741 *dzz/banner/template/page/information.htm
951a203c1ffafad88a3427096a3e1f4f *dzz/banner/template/page/list.htm dabed78fdc9f66f2dd5509a2f3dc3e01 *dzz/banner/template/page/list.htm
1f8bd5d5daf6dafe138c4c77b60c1e66 *dzz/banner/view.php 1f8bd5d5daf6dafe138c4c77b60c1e66 *dzz/banner/view.php
a85ae78853717c145f16cfa29439f6aa *dzz/billfish/class/class_billfishexport.php 25db66d572a3809f7ed549a3c2aab48e *dzz/billfish/class/class_billfishexport.php
e4a5ffe04c68fd20077c4cc3351d9919 *dzz/billfish/class/table/table_billfish_folderrecord.php e4a5ffe04c68fd20077c4cc3351d9919 *dzz/billfish/class/table/table_billfish_folderrecord.php
9983c7331cc8fd5a353569f31cc003ba *dzz/billfish/class/table/table_billfish_record.php 9983c7331cc8fd5a353569f31cc003ba *dzz/billfish/class/table/table_billfish_record.php
946e09642ffe242f3eb7e3876e66127b *dzz/billfish/class/table/table_billfish_taggrouprecord.php 946e09642ffe242f3eb7e3876e66127b *dzz/billfish/class/table/table_billfish_taggrouprecord.php
@@ -1148,8 +1164,8 @@ b006647cb9c39a657d354fcf0bdf88bf *dzz/details/template/pc/assets/css/xuanzhuan/i
973638f9a52029f1ec265eb9873117f2 *dzz/details/template/pc/components/header.htm 973638f9a52029f1ec265eb9873117f2 *dzz/details/template/pc/components/header.htm
f1302ea025dad52ceac4e4b9df538ef1 *dzz/details/template/pc/components/image.htm f1302ea025dad52ceac4e4b9df538ef1 *dzz/details/template/pc/components/image.htm
025e9d833babe5b48cef2c291106de9f *dzz/details/template/pc/components/right.htm 025e9d833babe5b48cef2c291106de9f *dzz/details/template/pc/components/right.htm
9a95930cfdaf95b513a9657fcc612efe *dzz/details/template/pc/page/index.htm b90a421f0f04524e7e8150e6baee348e *dzz/details/template/pc/page/index.htm
40ee174b26d00c159e11c210d7fca1df *dzz/eagle/class/class_eagleexport.php 98d25863aa118555a32160afb02aad77 *dzz/eagle/class/class_eagleexport.php
ffb22e6a20c94c3ea5c01f330a1d636a *dzz/eagle/class/table/table_eagle_folderrecord.php ffb22e6a20c94c3ea5c01f330a1d636a *dzz/eagle/class/table/table_eagle_folderrecord.php
2c1f9123c8775cd340416afee533d29a *dzz/eagle/class/table/table_eagle_record.php 2c1f9123c8775cd340416afee533d29a *dzz/eagle/class/table/table_eagle_record.php
e9a0575b63f2ee8011d81724eb829b30 *dzz/eagle/classes/deleteafter.php e9a0575b63f2ee8011d81724eb829b30 *dzz/eagle/classes/deleteafter.php
@@ -1158,10 +1174,10 @@ db2a8594d52f5cc6f65f5271849b094f *dzz/eagle/classes/getpichomethumb.php
0b99362e5be7a741986567d8e9738c69 *dzz/eagle/classes/pichomevappdelete.php 0b99362e5be7a741986567d8e9738c69 *dzz/eagle/classes/pichomevappdelete.php
2d0185de715fe914af40ce715d15afca *dzz/eagle/function/function_common.php 2d0185de715fe914af40ce715d15afca *dzz/eagle/function/function_common.php
03a2e80d75673769cfed6f56c82c0083 *dzz/ffmpeg/admin.php 03a2e80d75673769cfed6f56c82c0083 *dzz/ffmpeg/admin.php
3237facd9b6126a68963d7966ce23a52 *dzz/ffmpeg/class/class_fmpeg.php 88530ef758d25956ee7c98122f9fa2dc *dzz/ffmpeg/class/class_fmpeg.php
9faf74bab268b0d66211f04f85d2ff91 *dzz/ffmpeg/classes/convert.php 64e3b2db0f96df77bbfca78d744eba6c *dzz/ffmpeg/classes/convert.php
649d48d007eb84e0c24a49d953a95259 *dzz/ffmpeg/classes/info.php 90aeef69487c310febfd4bf770febfb3 *dzz/ffmpeg/classes/info.php
75e35bf3c71d98adf6ffe78f2a6453e8 *dzz/ffmpeg/classes/thumb.php 1435cb1a39a2a4912cf1d3e7052c03e0 *dzz/ffmpeg/classes/thumb.php
b0ef25e19c4aa9e96c06f5fb6f091883 *dzz/ffmpeg/composer.json b0ef25e19c4aa9e96c06f5fb6f091883 *dzz/ffmpeg/composer.json
a962e01165e345d26a86a07e9e098239 *dzz/ffmpeg/composer.lock a962e01165e345d26a86a07e9e098239 *dzz/ffmpeg/composer.lock
98b56793bff60445eb6603bd7fc3b927 *dzz/ffmpeg/convert.php 98b56793bff60445eb6603bd7fc3b927 *dzz/ffmpeg/convert.php
@@ -1475,8 +1491,8 @@ e0fbf93ee3e79762c694682e010f721d *dzz/ffmpeg/vendor/symfony/process/LICENSE
2a3b661974c0cd7432f29595ccdb6a93 *dzz/ffmpeg/vendor/symfony/process/ProcessBuilder.php 2a3b661974c0cd7432f29595ccdb6a93 *dzz/ffmpeg/vendor/symfony/process/ProcessBuilder.php
13625bd3819dabb00e70409aa8b8cc54 *dzz/ffmpeg/vendor/symfony/process/ProcessUtils.php 13625bd3819dabb00e70409aa8b8cc54 *dzz/ffmpeg/vendor/symfony/process/ProcessUtils.php
a65206ffd50a33022f2e25f5733a9bfa *dzz/imageColor/ceshi.php a65206ffd50a33022f2e25f5733a9bfa *dzz/imageColor/ceshi.php
3945db73b7018dbd8343560a7b771430 *dzz/imageColor/classes/getthumb.php 6b6f2ea86b381d7a2367e7f7c5ab0a77 *dzz/imageColor/classes/getthumb.php
f3d1bb75f26c2e9414ca6e057db1d1e1 *dzz/imageColor/classes/imageColor.php f16afc22ba5ead6bfc81487d40af3398 *dzz/imageColor/classes/imageColor.php
5f350daab38e8690e755a7036f48e486 *dzz/imageColor/getinfo.php 5f350daab38e8690e755a7036f48e486 *dzz/imageColor/getinfo.php
5f350daab38e8690e755a7036f48e486 *dzz/imageColor/index.php 5f350daab38e8690e755a7036f48e486 *dzz/imageColor/index.php
382f3c43cba04a5cc3392aaa97dc8ed2 *dzz/imageColor/test.php 382f3c43cba04a5cc3392aaa97dc8ed2 *dzz/imageColor/test.php
@@ -1764,21 +1780,22 @@ bae84af37dba1b272ef439708d1b8e9f *dzz/images/extimg_small/xml.png
a949e13639231f3ab4192465ff2538ac *dzz/images/logo-blue.png a949e13639231f3ab4192465ff2538ac *dzz/images/logo-blue.png
f8c7f26fc3f6e54ee8abb744a6e01910 *dzz/index/index.php f8c7f26fc3f6e54ee8abb744a6e01910 *dzz/index/index.php
d615e6446bb74240281aa217d6f5ad01 *dzz/index/login.php d615e6446bb74240281aa217d6f5ad01 *dzz/index/login.php
ec6210e0cf49fdb1a7f162dabf39621f *dzz/io/createThumb.php 75ce51b679e7b4e0fb800be44f16a7ea *dzz/io/createThumb.php
d59441ddfb88cc28369a9491d32e88bf *dzz/io/download.php
770b201a8d5a8aaf33622dbc776fc063 *dzz/io/getfileStream.php 770b201a8d5a8aaf33622dbc776fc063 *dzz/io/getfileStream.php
02f6c0bd7bcad909df55b743fa477f85 *dzz/io/getImg.php 420075472d2a59d3a6456d70978055a7 *dzz/io/getImg.php
19f3bc2c8511a107854587a1d439427b *dzz/io/getStream.php 19f3bc2c8511a107854587a1d439427b *dzz/io/getStream.php
0d09b6be01a2df80c1d6f6d52aea9d6d *dzz/io/getThumb.php 0d09b6be01a2df80c1d6f6d52aea9d6d *dzz/io/getThumb.php
c922015b4938aea09a73ed7d1d759ee4 *dzz/language/en-US/lang.php c922015b4938aea09a73ed7d1d759ee4 *dzz/language/en-US/lang.php
d91b3ccebc18bcd41bc44e9da28d598f *dzz/language/zh-CN/lang.php d91b3ccebc18bcd41bc44e9da28d598f *dzz/language/zh-CN/lang.php
e93aa8d005aeecfb54d84c12186c19a6 *dzz/local/class/class_localexport.php 0ed80d5e70461a52fbf9d9b0d554873a *dzz/local/class/class_localexport.php
e331d590b3ac97d720760c20e2f12ab9 *dzz/local/class/table/table_local_record.php e331d590b3ac97d720760c20e2f12ab9 *dzz/local/class/table/table_local_record.php
4536b7ab847d3c7ec2306807b5aeab5c *dzz/local/classes/deleteafter.php 4536b7ab847d3c7ec2306807b5aeab5c *dzz/local/classes/deleteafter.php
6f974aeb4cfe079a9e4cff3e70bd8760 *dzz/local/classes/pichomevappdelete.php 6f974aeb4cfe079a9e4cff3e70bd8760 *dzz/local/classes/pichomevappdelete.php
c06792b5af38bc47cfc88151010295c4 *dzz/manage/index.php fd27255cedf897333e264d412ce83bf7 *dzz/manage/index.php
2e798ecdad9d37fc2a76d229a6d0d917 *dzz/manage/template/assets/css/index.css 2e798ecdad9d37fc2a76d229a6d0d917 *dzz/manage/template/assets/css/index.css
d41d8cd98f00b204e9800998ecf8427e *dzz/manage/template/components/main.htm d41d8cd98f00b204e9800998ecf8427e *dzz/manage/template/components/main.htm
e83b5573d3cff3a94a9e583868b253bc *dzz/manage/template/page/index.htm 00a768d7f389324ff7d57feeffac24b4 *dzz/manage/template/page/index.htm
bb6cc7e1cb75495f8308cb2365e75772 *dzz/onlyoffice_view/admin.php bb6cc7e1cb75495f8308cb2365e75772 *dzz/onlyoffice_view/admin.php
8b140a40f66caa7fb87b1d79eddecd9f *dzz/onlyoffice_view/appkey.php 8b140a40f66caa7fb87b1d79eddecd9f *dzz/onlyoffice_view/appkey.php
18be5d2aee6c8e84abad69a1ac14dffc *dzz/onlyoffice_view/classes/thumb.php 18be5d2aee6c8e84abad69a1ac14dffc *dzz/onlyoffice_view/classes/thumb.php
@@ -2204,13 +2221,6 @@ eba5f5cecbb2a1cf2064e55c8c0de177 *dzz/pdf/web/locale/vi/viewer.properties
badeea57fda90d27e54a9f9488ac4c43 *dzz/pdf/web/viewer.html badeea57fda90d27e54a9f9488ac4c43 *dzz/pdf/web/viewer.html
f2dddeac144b9bbac3ef849464bdf74b *dzz/pdf/web/viewer.js f2dddeac144b9bbac3ef849464bdf74b *dzz/pdf/web/viewer.js
9d8f7b8df2cf3dffa23febb3582928d4 *dzz/pdf/web/viewer.js.map 9d8f7b8df2cf3dffa23febb3582928d4 *dzz/pdf/web/viewer.js.map
4f4252fff415a3a71852d6099af4b7e0 *dzz/pichome/admin/basic.php
04c6404102e8cdc50a2acbea287f18c7 *dzz/pichome/admin/column.php
d510fbb3b961c9b0dadb75a8201fa598 *dzz/pichome/admin/importsetting.php
26b6b5a06b0fd01489a6cf4ae1462d5a *dzz/pichome/admin/index.php
703717d69582b6b633779af31485a638 *dzz/pichome/admin/loginpage.php
59e95f8a426d16644816a85080f6d5e6 *dzz/pichome/admin/readtheme.php
91b43fba060b5acff42c2de76bf3508a *dzz/pichome/admin/tag.php
0a75b5f61795c404911b9f1fb272cff2 *dzz/pichome/admin.php 0a75b5f61795c404911b9f1fb272cff2 *dzz/pichome/admin.php
8b22e613f9737a6d2ab1a8a40e575cd7 *dzz/pichome/attrupgrade.php 8b22e613f9737a6d2ab1a8a40e575cd7 *dzz/pichome/attrupgrade.php
c550e347457729fb118592d6be50d050 *dzz/pichome/checkexport.php c550e347457729fb118592d6be50d050 *dzz/pichome/checkexport.php
@@ -2223,8 +2233,6 @@ caf5c630316175734c034924b2363de0 *dzz/pichome/clearcache.php
39ab62a2c4f6659fe0dedb0f35122cfa *dzz/pichome/details.php 39ab62a2c4f6659fe0dedb0f35122cfa *dzz/pichome/details.php
e16bffeaf5530c9571e083af8be2b37d *dzz/pichome/download.php e16bffeaf5530c9571e083af8be2b37d *dzz/pichome/download.php
1211f2dde092046d32c09d545e3aff70 *dzz/pichome/dzz_app_pichome.xml 1211f2dde092046d32c09d545e3aff70 *dzz/pichome/dzz_app_pichome.xml
4354796d9d55f460e8fd339fb04ca085 *dzz/pichome/exportfile.php
621e7a5cdf84a62b1663c29018da3ff9 *dzz/pichome/exportfilecheck.php
4d30d97c9bb009a88b9048df1a067b73 *dzz/pichome/fileview.php 4d30d97c9bb009a88b9048df1a067b73 *dzz/pichome/fileview.php
d45b7e5387065ea44d0eac381aeaf51f *dzz/pichome/function/function_common.php d45b7e5387065ea44d0eac381aeaf51f *dzz/pichome/function/function_common.php
99f09fe9c3a28888db3d3032c6a1c15f *dzz/pichome/image/authorize1.png 99f09fe9c3a28888db3d3032c6a1c15f *dzz/pichome/image/authorize1.png
@@ -2253,36 +2261,35 @@ cf4ad845fa202adf1c2c99dba55a6490 *dzz/pichome/image/library/file.png
f308fd14dbe2e06349ef366d6f9aa2c7 *dzz/pichome/image/palette.png f308fd14dbe2e06349ef366d6f9aa2c7 *dzz/pichome/image/palette.png
d51db8efca781201f641a41b57420dfe *dzz/pichome/image/phlogo.png d51db8efca781201f641a41b57420dfe *dzz/pichome/image/phlogo.png
a1a8ea692287bb85670594b9690fc934 *dzz/pichome/index.php a1a8ea692287bb85670594b9690fc934 *dzz/pichome/index.php
99beaff4bf6ccfde07f4d2248b611fda *dzz/pichome/initexport.php
c9b191574ccc8ab6c8ff631302f10561 *dzz/pichome/install.php c9b191574ccc8ab6c8ff631302f10561 *dzz/pichome/install.php
c24f19d7061cdf5bae41e5e9b9f5600c *dzz/pichome/language/en-US/lang.php c24f19d7061cdf5bae41e5e9b9f5600c *dzz/pichome/language/en-US/lang.php
df5f3cbcf852b6c838a6d755eb3f2d2a *dzz/pichome/language/zh-CN/lang.php df5f3cbcf852b6c838a6d755eb3f2d2a *dzz/pichome/language/zh-CN/lang.php
833bbbea11df3341c85910ecb3963b33 *dzz/pichome/library/ajax.php 35cdac0ee4401dc6c70b740708d24f73 *dzz/pichome/library/ajax.php
7632f9c485527237765e14d157b38d92 *dzz/pichome/library/details.php 7632f9c485527237765e14d157b38d92 *dzz/pichome/library/details.php
f5e82bef1b45691ea44b5a5c2b2f2a8b *dzz/pichome/library/filelist.php 6ff435c13452f03d6000dc65d3401b09 *dzz/pichome/library/filelist.php
523122a64dd27fef1d901556856bf343 *dzz/pichome/library/fileview.php 523122a64dd27fef1d901556856bf343 *dzz/pichome/library/fileview.php
3ec3bdfffa8de7da535b54935feba4af *dzz/pichome/library/folder.php 3ec3bdfffa8de7da535b54935feba4af *dzz/pichome/library/folder.php
1bbe9f2c38bc913907ef6c53d37726b5 *dzz/pichome/library/index.php 9b528554931e0dda4ce2ddd6f622be14 *dzz/pichome/library/index.php
4f6bf23870c4660bdd200e7e7489a1f1 *dzz/pichome/library/lable.php c99f09a92d011f0c3070fff2f2044a20 *dzz/pichome/library/lable.php
b0f7b0e141a8241334d0aa2fbc060dd9 *dzz/pichome/library/member.php b0f7b0e141a8241334d0aa2fbc060dd9 *dzz/pichome/library/member.php
43e5834be81aa51042ee9609109fefe5 *dzz/pichome/library/recycle.php 43e5834be81aa51042ee9609109fefe5 *dzz/pichome/library/recycle.php
7dfed1f6b287a48b304e038858232d5f *dzz/pichome/library/rightdata.php 7dfed1f6b287a48b304e038858232d5f *dzz/pichome/library/rightdata.php
40670d8b5514c6d1611b0f574451a991 *dzz/pichome/library/tags.php 40670d8b5514c6d1611b0f574451a991 *dzz/pichome/library/tags.php
52f38dc343d9f39367820408649498be *dzz/pichome/library/upload.php bac462b8dc3b0c967600770e6cba83f7 *dzz/pichome/library/upload.php
7236ff5739d70835f8700a6d342069dd *dzz/pichome/library.php 7236ff5739d70835f8700a6d342069dd *dzz/pichome/library.php
f039dd9b19e2a59951cf5b7e853a718f *dzz/pichome/orgtree.php f039dd9b19e2a59951cf5b7e853a718f *dzz/pichome/orgtree.php
b545f7e295220e8ad6ca21ab94c1d0e0 *dzz/pichome/setting.php b545f7e295220e8ad6ca21ab94c1d0e0 *dzz/pichome/setting.php
fac20de40d4dae16fb762454a2fdb35e *dzz/pichome/share.php fac20de40d4dae16fb762454a2fdb35e *dzz/pichome/share.php
b8f4202b7049eb68b96d91434e881f31 *dzz/pichome/storagesetting.php 1d43631c3ac15a7178a6478922f17237 *dzz/pichome/storagesetting.php
2aae661709856fe441861725326f79d7 *dzz/pichome/template/admin/pc/assets/css/admin.css 2aae661709856fe441861725326f79d7 *dzz/pichome/template/admin/pc/assets/css/admin.css
f523beff6d665c1ca673e74cc923a8ce *dzz/pichome/template/admin/pc/assets/css/basic.css f523beff6d665c1ca673e74cc923a8ce *dzz/pichome/template/admin/pc/assets/css/basic.css
5a2d21bb1c57acd425e3cf5d551802e9 *dzz/pichome/template/admin/pc/assets/css/loginpage.css 5a2d21bb1c57acd425e3cf5d551802e9 *dzz/pichome/template/admin/pc/assets/css/loginpage.css
c2f4fbbcbabbea561bf7611cf7100f99 *dzz/pichome/template/admin/pc/components/header.htm c2f4fbbcbabbea561bf7611cf7100f99 *dzz/pichome/template/admin/pc/components/header.htm
426fc23431ec0c1a051efc567089996a *dzz/pichome/template/admin/pc/components/left.htm 426fc23431ec0c1a051efc567089996a *dzz/pichome/template/admin/pc/components/left.htm
471790ca4eca3a38660f8db0fa3c0ca9 *dzz/pichome/template/admin/pc/components/storage/addDialog.htm 471790ca4eca3a38660f8db0fa3c0ca9 *dzz/pichome/template/admin/pc/components/storage/addDialog.htm
c07b5e1d1608237bfd9405e1c36f9389 *dzz/pichome/template/admin/pc/components/storage/editDialogDzz.htm 1eb13c17ae2445e63a5908bdabfaeac8 *dzz/pichome/template/admin/pc/components/storage/editDialogDzz.htm
f1b546e40c2adaafdfd2cc9ec7b70ca4 *dzz/pichome/template/admin/pc/components/storage/editDialogOther.htm f1b546e40c2adaafdfd2cc9ec7b70ca4 *dzz/pichome/template/admin/pc/components/storage/editDialogOther.htm
f8ea3ae5a5d49d60c03569e7a74ed553 *dzz/pichome/template/admin/pc/components/storage/table.htm b36bb0216b55a81957fff92ba7db4778 *dzz/pichome/template/admin/pc/components/storage/table.htm
783acb8d8525b22413c75e404d90495d *dzz/pichome/template/admin/pc/page/adminstorage.htm 783acb8d8525b22413c75e404d90495d *dzz/pichome/template/admin/pc/page/adminstorage.htm
ceed2f73f1f3941d4c2e48864370ab41 *dzz/pichome/template/admin/pc/page/basic.htm ceed2f73f1f3941d4c2e48864370ab41 *dzz/pichome/template/admin/pc/page/basic.htm
0b5feab0745099f41fb3d612a6309540 *dzz/pichome/template/admin/pc/page/loginpage.htm 0b5feab0745099f41fb3d612a6309540 *dzz/pichome/template/admin/pc/page/loginpage.htm
@@ -2290,7 +2297,7 @@ ceed2f73f1f3941d4c2e48864370ab41 *dzz/pichome/template/admin/pc/page/basic.htm
b8e2a51f765d24a6661d2eed743b02df *dzz/pichome/template/librarylist/assets/js/spark-md5.min.js b8e2a51f765d24a6661d2eed743b02df *dzz/pichome/template/librarylist/assets/js/spark-md5.min.js
d41d8cd98f00b204e9800998ecf8427e *dzz/pichome/template/librarylist/pc/assets/css/files.css d41d8cd98f00b204e9800998ecf8427e *dzz/pichome/template/librarylist/pc/assets/css/files.css
e45dace000e25ce200ec4b899c01c70b *dzz/pichome/template/librarylist/pc/assets/css/header.css e45dace000e25ce200ec4b899c01c70b *dzz/pichome/template/librarylist/pc/assets/css/header.css
0639352528f0cb98a1aa745f32d0d216 *dzz/pichome/template/librarylist/pc/assets/css/index.css 8a1a78e80d55df816e907387f87b4fbc *dzz/pichome/template/librarylist/pc/assets/css/index.css
7663076a82c90c3d653345fd27c11bdc *dzz/pichome/template/librarylist/pc/assets/css/tag.css 7663076a82c90c3d653345fd27c11bdc *dzz/pichome/template/librarylist/pc/assets/css/tag.css
06a07b9a1b80179d0c2817e007347359 *dzz/pichome/template/librarylist/pc/assets/css/user.css 06a07b9a1b80179d0c2817e007347359 *dzz/pichome/template/librarylist/pc/assets/css/user.css
69c8a20f13ee8eb40d35ddd497d35fd3 *dzz/pichome/template/librarylist/pc/assets/css/xuanzhuan/iconfont.ttf 69c8a20f13ee8eb40d35ddd497d35fd3 *dzz/pichome/template/librarylist/pc/assets/css/xuanzhuan/iconfont.ttf
@@ -2306,19 +2313,19 @@ f308fd14dbe2e06349ef366d6f9aa2c7 *dzz/pichome/template/librarylist/pc/assets/ima
66fe9527aec8d8b68e3bc5036ea8f7f9 *dzz/pichome/template/librarylist/pc/assets/js/sortable.min.js 66fe9527aec8d8b68e3bc5036ea8f7f9 *dzz/pichome/template/librarylist/pc/assets/js/sortable.min.js
7292e14f4f8fad306d40a6d7d586b225 *dzz/pichome/template/librarylist/pc/assets/js/wavesurfer.js 7292e14f4f8fad306d40a6d7d586b225 *dzz/pichome/template/librarylist/pc/assets/js/wavesurfer.js
3ae6ed32865dc66b698551a4badc75bd *dzz/pichome/template/librarylist/pc/components/index/BoxSelection.htm 3ae6ed32865dc66b698551a4badc75bd *dzz/pichome/template/librarylist/pc/components/index/BoxSelection.htm
370915f3198d944307f3614cde8cc1d5 *dzz/pichome/template/librarylist/pc/components/index/common.htm c4ce44e06ed3c4aaa3b6d01f199053fb *dzz/pichome/template/librarylist/pc/components/index/common.htm
dadce90a92a4582ca04ce0e499391978 *dzz/pichome/template/librarylist/pc/components/index/contextmenu.htm dadce90a92a4582ca04ce0e499391978 *dzz/pichome/template/librarylist/pc/components/index/contextmenu.htm
123c580f228ffa559636341eef7780ff *dzz/pichome/template/librarylist/pc/components/index/file.htm 2fd36bef10146f159f4c60a43cc990e7 *dzz/pichome/template/librarylist/pc/components/index/file.htm
9c883c3c20367c514673c185e53aef2e *dzz/pichome/template/librarylist/pc/components/index/header/index.htm bee6309a7c84926264f0dacd2d83176a *dzz/pichome/template/librarylist/pc/components/index/header/index.htm
16816c9588ad63c17ee87cc3e0c7e29d *dzz/pichome/template/librarylist/pc/components/index/header/right.htm 16816c9588ad63c17ee87cc3e0c7e29d *dzz/pichome/template/librarylist/pc/components/index/header/right.htm
c01e1d2a96394153c2cd8f900179a6aa *dzz/pichome/template/librarylist/pc/components/index/header/rightBtn.htm c01e1d2a96394153c2cd8f900179a6aa *dzz/pichome/template/librarylist/pc/components/index/header/rightBtn.htm
bd12b062826f8f0304702531c9e3f21c *dzz/pichome/template/librarylist/pc/components/index/image.htm 458bc48bc0f24cf2f8581551fd8fea0f *dzz/pichome/template/librarylist/pc/components/index/image.htm
77bf587c13c8d421a2e26d381d6998a3 *dzz/pichome/template/librarylist/pc/components/index/screen/Jsindex.htm 3f6492029c03e04abf83032815d6ddf8 *dzz/pichome/template/librarylist/pc/components/index/screen/Jsindex.htm
b2e56803f696f0baed70ddd122c4f3b8 *dzz/pichome/template/librarylist/pc/components/index/upload.htm 7119827e1739637ad2ccdc1801be6ac8 *dzz/pichome/template/librarylist/pc/components/index/upload.htm
c3c1b7ee691486ab2910575948e26d89 *dzz/pichome/template/librarylist/pc/components/index/uploaddzz.htm 27bbc626bb49cf68503762595cbb151c *dzz/pichome/template/librarylist/pc/components/index/uploaddzz.htm
5976c99e500b05a6c082c536e54da14d *dzz/pichome/template/librarylist/pc/components/index/uploadQCOS.htm 5976c99e500b05a6c082c536e54da14d *dzz/pichome/template/librarylist/pc/components/index/uploadQCOS.htm
c3266cd6b6615f8fd3a793dc699674a1 *dzz/pichome/template/librarylist/pc/components/left/index.htm c3266cd6b6615f8fd3a793dc699674a1 *dzz/pichome/template/librarylist/pc/components/left/index.htm
2e4db1bbf313dcef4db756e558b10ebe *dzz/pichome/template/librarylist/pc/components/left/Jsindex.htm fdc39b3d94f1463db5642b1800ef0645 *dzz/pichome/template/librarylist/pc/components/left/Jsindex.htm
9e3fda9b98e4ec57c24846b9258002d5 *dzz/pichome/template/librarylist/pc/components/right/file/color/js.htm 9e3fda9b98e4ec57c24846b9258002d5 *dzz/pichome/template/librarylist/pc/components/right/file/color/js.htm
bfb941f24098de97c62d8e6bc741eff7 *dzz/pichome/template/librarylist/pc/components/right/file/color/temp.htm bfb941f24098de97c62d8e6bc741eff7 *dzz/pichome/template/librarylist/pc/components/right/file/color/temp.htm
5c4ebdd806ed1c969dd5c4d298009930 *dzz/pichome/template/librarylist/pc/components/right/file/folder/js.htm 5c4ebdd806ed1c969dd5c4d298009930 *dzz/pichome/template/librarylist/pc/components/right/file/folder/js.htm
@@ -2331,29 +2338,31 @@ bfb941f24098de97c62d8e6bc741eff7 *dzz/pichome/template/librarylist/pc/components
f1f201e4895bd8eaab998235982a7703 *dzz/pichome/template/librarylist/pc/components/right/file/temp.htm f1f201e4895bd8eaab998235982a7703 *dzz/pichome/template/librarylist/pc/components/right/file/temp.htm
ca161ce2f6ec303adb32672b1ec8d122 *dzz/pichome/template/librarylist/pc/components/right/folder/temp.htm ca161ce2f6ec303adb32672b1ec8d122 *dzz/pichome/template/librarylist/pc/components/right/folder/temp.htm
c3751d5bdbe0101e4b99a59ce807d4df *dzz/pichome/template/librarylist/pc/components/right/index.htm c3751d5bdbe0101e4b99a59ce807d4df *dzz/pichome/template/librarylist/pc/components/right/index.htm
acb349cd845d3e0ac71afed386d0f94a *dzz/pichome/template/librarylist/pc/components/right/Jsindex.htm 2ade3398d78d427c5b025145b1578dec *dzz/pichome/template/librarylist/pc/components/right/Jsindex.htm
bdcae1b2dcbfab7a6705be084ff54af1 *dzz/pichome/template/librarylist/pc/components/right/other/temp.htm bdcae1b2dcbfab7a6705be084ff54af1 *dzz/pichome/template/librarylist/pc/components/right/other/temp.htm
3dc0cf037f870f30e2732261a085496a *dzz/pichome/template/librarylist/pc/components/tag/content.htm 3dc0cf037f870f30e2732261a085496a *dzz/pichome/template/librarylist/pc/components/tag/content.htm
d7840be40888d6771b8904ca23163081 *dzz/pichome/template/librarylist/pc/components/tag/left.htm d7840be40888d6771b8904ca23163081 *dzz/pichome/template/librarylist/pc/components/tag/left.htm
5ca05f41bc9d64bd70abc402f89b134b *dzz/pichome/template/librarylist/pc/components/user/header.htm 5ca05f41bc9d64bd70abc402f89b134b *dzz/pichome/template/librarylist/pc/components/user/header.htm
e15570356f5ffca3479b298c53ec73ae *dzz/pichome/template/librarylist/pc/components/user/table.htm e15570356f5ffca3479b298c53ec73ae *dzz/pichome/template/librarylist/pc/components/user/table.htm
d76659a689e84b3fd1e4257be8c73e43 *dzz/pichome/template/librarylist/pc/page/index.htm 4ec2166c0c400107b6230ba25f3a53f0 *dzz/pichome/template/librarylist/pc/page/index.htm
17fc639af376da3b402d9eb8ab1621d7 *dzz/pichome/template/librarylist/pc/page/tag.htm 17fc639af376da3b402d9eb8ab1621d7 *dzz/pichome/template/librarylist/pc/page/tag.htm
80ad59b6429359e2c72d6573d89a6865 *dzz/pichome/template/librarylist/pc/page/user.htm 80ad59b6429359e2c72d6573d89a6865 *dzz/pichome/template/librarylist/pc/page/user.htm
ba475c459fac79f8e1fe187f73553bf0 *dzz/pichome/template/libraryview/mobile/components/header_m.htm 613b87b8ace79cf418e3d4f3ef72b763 *dzz/pichome/template/libraryview/mobile/components/header_m.htm
f48154f219b3a69bbd43965371b4742e *dzz/pichome/template/libraryview/mobile/components/index/common.htm 3a763f7f42fd0fd49afd98b4e14cd318 *dzz/pichome/template/libraryview/mobile/components/index/common.htm
01274291589d592b0a701f21b6fc6005 *dzz/pichome/template/libraryview/mobile/components/index/image.htm 7d54b6b0776d61e2ddf60c997df69431 *dzz/pichome/template/libraryview/mobile/components/index/image.htm
2d158f8418aab7ede01ae9cd303dc076 *dzz/pichome/template/libraryview/mobile/components/index/screen/Jsindex.htm bb022acbc729863c8f7676df5b9700bd *dzz/pichome/template/libraryview/mobile/components/index/screen/Jsindex.htm
cf133053aebbb3c3aef10957e8b30e0e *dzz/pichome/template/libraryview/mobile/page/index.htm e1ef482d4df8571e60e6421437a5a1ff *dzz/pichome/template/libraryview/mobile/page/index.htm
0c725d011471eb90f4fa0b80f9640de1 *dzz/pichome/template/libraryview/pc/components/index/common.htm 129059df492fcff573cf262f458277cd *dzz/pichome/template/libraryview/pc/assets/index.css
ade1725b66220050f221051f880011d0 *dzz/pichome/template/libraryview/pc/components/index/header.htm fe423da5b4339469fcadbf91ff6b9cf4 *dzz/pichome/template/libraryview/pc/components/index/common.htm
d54a44ebd6462db3b16701971232ef6e *dzz/pichome/template/libraryview/pc/components/index/image.htm 20beeac72226488dda080f6b2c077009 *dzz/pichome/template/libraryview/pc/components/index/header.htm
d23988a733acd724e3ea2157d3d0a39e *dzz/pichome/template/libraryview/pc/components/index/image.htm
8a4300eabeacb1d5703ed32f95a59325 *dzz/pichome/template/libraryview/pc/components/index/rightBtn.htm 8a4300eabeacb1d5703ed32f95a59325 *dzz/pichome/template/libraryview/pc/components/index/rightBtn.htm
7d53b619963bc5bccaabdd22ded83090 *dzz/pichome/template/libraryview/pc/components/index/screen/Jsindex.htm ce4ffc77ff1a286d3a984cb7a61f2a42 *dzz/pichome/template/libraryview/pc/components/index/screen/Jsindex.htm
f82119d6e06389984a2f7719eb28a1b5 *dzz/pichome/template/libraryview/pc/components/left/index.htm 2df0c8aa044924556c348773a22a3e5b *dzz/pichome/template/libraryview/pc/components/left/index.htm
7041907e6e9e6c1721d20f464bf4fcac *dzz/pichome/template/libraryview/pc/components/left/Jsindex.htm da8068edb631ad2211d7ee6d7330d25a *dzz/pichome/template/libraryview/pc/components/left/Jsindex.htm
8bb44c5b041c8b0fd59ee51ba92978ea *dzz/pichome/template/libraryview/pc/page/index.htm 242678eca1ba1ef6567ffd804806a390 *dzz/pichome/template/libraryview/pc/page/index.htm
40af90e7ac5866f78a27dad2df1ea202 *dzz/pichome/template/personal/assets/index.css 40af90e7ac5866f78a27dad2df1ea202 *dzz/pichome/template/personal/assets/index.css
40af90e7ac5866f78a27dad2df1ea202 *dzz/pichome/template/personal/css/index.css
59f94f2052a3b717c7b0e5312acfc437 *dzz/pichome/template/personal/page/index.htm 59f94f2052a3b717c7b0e5312acfc437 *dzz/pichome/template/personal/page/index.htm
f4249f0e2c622260bc87997d60550aa1 *dzz/pichome/template/share/mobile/assets/css/index.css f4249f0e2c622260bc87997d60550aa1 *dzz/pichome/template/share/mobile/assets/css/index.css
87dc531069590811bdd26a18ac4ce30c *dzz/pichome/template/share/mobile/components/details/footer.htm 87dc531069590811bdd26a18ac4ce30c *dzz/pichome/template/share/mobile/components/details/footer.htm
@@ -2366,14 +2375,14 @@ edeac7f48730b58c9c9f3a0089b80e46 *dzz/pichome/template/share/pc/components/heade
3589f641faa1952946552847cc03d26f *dzz/pichome/template/share/pc/components/image.htm 3589f641faa1952946552847cc03d26f *dzz/pichome/template/share/pc/components/image.htm
a3a409068ca7b9173a4d945af9fc99cb *dzz/pichome/template/share/pc/components/right.htm a3a409068ca7b9173a4d945af9fc99cb *dzz/pichome/template/share/pc/components/right.htm
e5fb4866f24e0735db9c8af02b34166c *dzz/pichome/template/share/pc/page/index.htm e5fb4866f24e0735db9c8af02b34166c *dzz/pichome/template/share/pc/page/index.htm
9a906aff4c028ce28560d8704ffc060d *dzz/pichome/template/storehouse/pc/assets/css/library.css e7d014e42cec948d1c881fee9a65cb34 *dzz/pichome/template/storehouse/pc/assets/css/library.css
cc3ede7b73434d6ccff87b0072b7843d *dzz/pichome/template/storehouse/pc/assets/js/OrguserSelect.js cc3ede7b73434d6ccff87b0072b7843d *dzz/pichome/template/storehouse/pc/assets/js/OrguserSelect.js
57ebbaf70b0c15097b77f96746689b69 *dzz/pichome/template/storehouse/pc/components/library/created.htm 57ebbaf70b0c15097b77f96746689b69 *dzz/pichome/template/storehouse/pc/components/library/created.htm
77791f7037d4be352a356f1b971341f4 *dzz/pichome/template/storehouse/pc/components/library/grade.htm 77791f7037d4be352a356f1b971341f4 *dzz/pichome/template/storehouse/pc/components/library/grade.htm
bdb34a5e82a595bfe4c791b9b86fa42d *dzz/pichome/template/storehouse/pc/components/library/main.htm 61540d3b3e5beaa10e393d977a151629 *dzz/pichome/template/storehouse/pc/components/library/main.htm
02acafd42026670cfa48c3c76c66116f *dzz/pichome/template/storehouse/pc/components/library/right.htm d7c26bc4967a3c7ec3262867f7b0e17c *dzz/pichome/template/storehouse/pc/components/library/right.htm
4d6b6901a0ddb528d783966089c0980e *dzz/pichome/template/storehouse/pc/components/library/setting.htm 4d6b6901a0ddb528d783966089c0980e *dzz/pichome/template/storehouse/pc/components/library/setting.htm
0ecc3e33b0ea0a3832b3687a15b326bc *dzz/pichome/template/storehouse/pc/page/library.htm bd2c1d8e659d8a23f77c9fc658759d92 *dzz/pichome/template/storehouse/pc/page/library.htm
d41d8cd98f00b204e9800998ecf8427e *dzz/pichome/template/storehouseview/mobile/assets/css/index.css d41d8cd98f00b204e9800998ecf8427e *dzz/pichome/template/storehouseview/mobile/assets/css/index.css
9745cafd43f147736cc3d6ea51bc828a *dzz/pichome/template/storehouseview/mobile/page/index.htm 9745cafd43f147736cc3d6ea51bc828a *dzz/pichome/template/storehouseview/mobile/page/index.htm
d41d8cd98f00b204e9800998ecf8427e *dzz/pichome/template/storehouseview/pc/assets/css/index.css d41d8cd98f00b204e9800998ecf8427e *dzz/pichome/template/storehouseview/pc/assets/css/index.css
@@ -2439,8 +2448,8 @@ f9f5a271af0d71711373eab8bc76577f *dzz/qcos/api/cos-js-sdk-v5-master/src/util.js
b89a3e35dc4f2787fa087f4eb21e04e7 *dzz/qcos/api/cos-js-sdk-v5-master/test/test.js b89a3e35dc4f2787fa087f4eb21e04e7 *dzz/qcos/api/cos-js-sdk-v5-master/test/test.js
4dc65e5d426acc7cadea2f2fc46a4542 *dzz/qcos/api/cos-js-sdk-v5-master/webpack.config.js 4dc65e5d426acc7cadea2f2fc46a4542 *dzz/qcos/api/cos-js-sdk-v5-master/webpack.config.js
73d62ced1f7666472f6eb98f9c305be0 *dzz/qcos/callback.php 73d62ced1f7666472f6eb98f9c305be0 *dzz/qcos/callback.php
455b4e4e80ff8bd6658be0d183120111 *dzz/qcos/class/class_video.php be6d6dcbf5cb07eba1fb56eca9593168 *dzz/qcos/class/class_video.php
d48ab2bc6e70c3874327a0427be910b8 *dzz/qcos/classes/convert.php 506c8ef86f9417b0a86af4d9f91a21d5 *dzz/qcos/classes/convert.php
dd3b736f7cf75c9d9130789d14b4c27e *dzz/qcos/classes/info.php dd3b736f7cf75c9d9130789d14b4c27e *dzz/qcos/classes/info.php
27fa71a0060adae8ab637bf435c9a784 *dzz/qcos/classes/thumb.php 27fa71a0060adae8ab637bf435c9a784 *dzz/qcos/classes/thumb.php
04d28f503664f480ca13b1a404d98f1c *dzz/qcos/convert.php 04d28f503664f480ca13b1a404d98f1c *dzz/qcos/convert.php
@@ -2455,15 +2464,39 @@ fed2a795285b8047337deac7fc912bf2 *dzz/qcos/template/header_left.htm
ac8191c429465693c2f9850335e842f2 *dzz/qcos/template/upload.htm ac8191c429465693c2f9850335e842f2 *dzz/qcos/template/upload.htm
ac069ffb4eec56afb72b5aa8047960ba *dzz/qcos/upload.php ac069ffb4eec56afb72b5aa8047960ba *dzz/qcos/upload.php
753f68b8378e0d992896d41acb8f42a7 *dzz/qcosoffice/index.php 753f68b8378e0d992896d41acb8f42a7 *dzz/qcosoffice/index.php
128280fdb9ec34a470e9f3ece7aacbbe *dzz/search/ajax.php
3ea25b78b2fb0dbce99c25af990f6eb4 *dzz/search/dzz_app_search.xml
2d94c306e3d847d685687bbc0a15cda0 *dzz/search/filelist.php
23e47776c6a50b994e5bb423679982d2 *dzz/search/index.php
91abb6e0e88276fd565395d81ced140a *dzz/search/install.php
19dfc86c5ab4ec92798eb7441a849254 *dzz/search/language/zh-CN/lang.php
ed445ec87b5cf77bd86b8df119df7bf4 *dzz/search/setting.php
e5691215935711c8eb2c3bea8a67c7f7 *dzz/search/template/main.htm
e7d014e42cec948d1c881fee9a65cb34 *dzz/search/template/setting/pc/assets/css/library.css
cc3ede7b73434d6ccff87b0072b7843d *dzz/search/template/setting/pc/assets/js/OrguserSelect.js
6928915644fad79138019216670f4c83 *dzz/search/template/setting/pc/components/created.htm
004385357577bf228317c325e8c40030 *dzz/search/template/setting/pc/components/main.htm
93887ee13c5625757f72e3e4690369bf *dzz/search/template/setting/pc/components/right.htm
147ab8e35dd519ab5c43ca04bd06ff87 *dzz/search/template/setting/pc/page/main.htm
c7097d26936fec2c52a254dae2d959e7 *dzz/search/template/view/pc/assets/css/index.css
ab0ab6ddb9b97c1734b95ed80105662f *dzz/search/template/view/pc/components/common.htm
794a21a9bf42b48bd23da3b1899d92cb *dzz/search/template/view/pc/components/header.htm
73327cf3ba580b94f0f7b4c077d7df92 *dzz/search/template/view/pc/components/header_m.htm
21ffb90088c3bb7823149e93ce723608 *dzz/search/template/view/pc/components/image.htm
43cffbcbb3b2106e02e80b6c308c586d *dzz/search/template/view/pc/components/screen.htm
cfffe442b63bb9201ad7a1971b4104b5 *dzz/search/template/view/pc/page/index.htm
f84fb1f49d6326c8ee6672404f83d97e *dzz/search/uninstall.php
d23b79148fd5115c972be6c4f392ec82 *dzz/search/view.php
96fb757cfe66e74bdd88ab4a6de4c38d *dzz/stats/class/table/table_stats_keyword.php 96fb757cfe66e74bdd88ab4a6de4c38d *dzz/stats/class/table/table_stats_keyword.php
c2d776c09ed44baacdad8e2bf6891179 *dzz/stats/class/table/table_stats_view.php c2d776c09ed44baacdad8e2bf6891179 *dzz/stats/class/table/table_stats_view.php
7202159b2fda4bb53699b9dc3c54ee4a *dzz/stats/classes/addstatsdata.php 7202159b2fda4bb53699b9dc3c54ee4a *dzz/stats/classes/addstatsdata.php
b44ef13586255f4847014040e96ae92e *dzz/stats/downloads.php b44ef13586255f4847014040e96ae92e *dzz/stats/downloads.php
407bd4f0c66c7bed57e736132d658c34 *dzz/stats/template/mobile/assets/index.css 407bd4f0c66c7bed57e736132d658c34 *dzz/stats/template/mobile/assets/index.css
1ab6f151c4c81c69f1fdc46a9b9a66e6 *dzz/stats/template/mobile/page/down.htm 407bd4f0c66c7bed57e736132d658c34 *dzz/stats/template/mobile/css/index.css
3667a16fd8414a328d19d80b48b1ef24 *dzz/stats/template/mobile/page/view.htm bd1fc47b7b4c26fc63bcf96dd8cdb602 *dzz/stats/template/mobile/page/down.htm
4e772df1923e00a3be36d884e36bb137 *dzz/stats/template/pc/page/down.htm d4c1f4546245807e52f7203babfc6d80 *dzz/stats/template/mobile/page/view.htm
2d46a17dfc3969d20af6af1f98b6f9a8 *dzz/stats/template/pc/page/view.htm 04978ccd1ad18ec60796c39e9097f60b *dzz/stats/template/pc/page/down.htm
6f6f287679b4d612b105028b526bf395 *dzz/stats/template/pc/page/view.htm
8ea7bbadf0740091610abd4f84719ec9 *dzz/stats/views.php 8ea7bbadf0740091610abd4f84719ec9 *dzz/stats/views.php
d04b12f0691eb3dbf521e692bc14fdd4 *dzz/system/app_ajax.php d04b12f0691eb3dbf521e692bc14fdd4 *dzz/system/app_ajax.php
c6d9c41b09aeef6f4940731d466fb700 *dzz/system/common.php c6d9c41b09aeef6f4940731d466fb700 *dzz/system/common.php
@@ -2533,11 +2566,11 @@ e19d97f977fa3d2316168bbe8e4101e5 *dzz/textviewer/css/theme/darkgrey/root.css
b07e0746971bb7c6dfc1d88ed2bdc4b2 *dzz/textviewer/css/theme/white/root.css b07e0746971bb7c6dfc1d88ed2bdc4b2 *dzz/textviewer/css/theme/white/root.css
dad4a000799b858b5b77d7b171f03482 *dzz/textviewer/dzz_app_textviewer.xml dad4a000799b858b5b77d7b171f03482 *dzz/textviewer/dzz_app_textviewer.xml
7fbb104110bc915c001220d0434d94b6 *dzz/textviewer/index.js 7fbb104110bc915c001220d0434d94b6 *dzz/textviewer/index.js
0d5bd09f6b4237f00ff9d37a4754ac31 *dzz/textviewer/index.php 01e7a3eec0e41ee5095b49ee8ceeaf3b *dzz/textviewer/index.php
75082d3e76c9416b1a1037cb210aa10f *dzz/textviewer/template/textviewer.htm 75082d3e76c9416b1a1037cb210aa10f *dzz/textviewer/template/textviewer.htm
0a6164e73ba1c02f0159bf2e9a476a86 *dzz/textviewer/text.js 0a6164e73ba1c02f0159bf2e9a476a86 *dzz/textviewer/text.js
e352fc27892fdd084f7267152ffb8622 *dzz/xgplayer/dzz_app_xgplayer.xml e352fc27892fdd084f7267152ffb8622 *dzz/xgplayer/dzz_app_xgplayer.xml
5f5b54b07e1fd475574ebc0630fbd11f *dzz/xgplayer/index.php f5c57fcd6157049cd647bdea80f3ef3d *dzz/xgplayer/index.php
0b0d2b77a3d90ee01f9966d01aa19e1d *dzz/xgplayer/js/xgplayer-flv.js 0b0d2b77a3d90ee01f9966d01aa19e1d *dzz/xgplayer/js/xgplayer-flv.js
2b5cfcb2534b8d53dafc8e8f13825f1e *dzz/xgplayer/js/xgplayer-hls.js 2b5cfcb2534b8d53dafc8e8f13825f1e *dzz/xgplayer/js/xgplayer-hls.js
cb39caa80f5f0fac7037c0abcd68b9fc *dzz/xgplayer/js/xgplayer-shaka.js cb39caa80f5f0fac7037c0abcd68b9fc *dzz/xgplayer/js/xgplayer-shaka.js
@@ -2547,9 +2580,9 @@ b0bb6c733a343afcddcd03baaeff31b0 *dzz/xgplayer/js/xgplayer.music.js
8119f6d1c45038a11269aa47ccdff186 *dzz/xgplayer/template/main.htm 8119f6d1c45038a11269aa47ccdff186 *dzz/xgplayer/template/main.htm
1011ce5abacd26ef675bd377393c7fa6 *dzz/xgplayer/template/progress.htm 1011ce5abacd26ef675bd377393c7fa6 *dzz/xgplayer/template/progress.htm
412ef1cfe4016756bfa57d18f3779559 *favicon.ico 412ef1cfe4016756bfa57d18f3779559 *favicon.ico
279f63c0c9b1e405b50247582007ac48 *index.php 5f46f370d6d9965c9e28c70ca3f904ce *index.php
012897bbb2c54ef2a5b8e0ed10b5be4e *install/data/install.sql 6e35daa2e6ccf8bc3a78a989c2282863 *install/data/install.sql
7d3698ac698cf0dc8cd0ded0e38252ec *install/data/install_data.sql 7702bcbebc3704f710962e99af2ebbe4 *install/data/install_data.sql
feabf4e4c8e20dc73548dfd6ba8400f9 *install/images/error.png feabf4e4c8e20dc73548dfd6ba8400f9 *install/images/error.png
fc25acefcabc066437d4b27550387954 *install/images/logo.png fc25acefcabc066437d4b27550387954 *install/images/logo.png
2ba93e93e0fbdfeb91e22f6d3bf8b6ca *install/images/logo.svg 2ba93e93e0fbdfeb91e22f6d3bf8b6ca *install/images/logo.svg
@@ -2563,18 +2596,22 @@ a987af86766c27c565794ffa189cf664 *install/include/install_mysql.php
fba59b1f7adb974e7bcf0d53a3f22228 *install/include/install_var.php fba59b1f7adb974e7bcf0d53a3f22228 *install/include/install_var.php
eb5ef7ba8212c041dfaf61b3fb1ffce6 *install/index.php eb5ef7ba8212c041dfaf61b3fb1ffce6 *install/index.php
51fa45a6423f9fe8ff05cbd257c58fba *install/language/zh-cn/lang.php 51fa45a6423f9fe8ff05cbd257c58fba *install/language/zh-cn/lang.php
f4e849917e66f04b73374886841707ad *install/update.php
021441277fc678c468ee73443604f92d *misc/addfileafter.php 021441277fc678c468ee73443604f92d *misc/addfileafter.php
5aefe69b1ba16fe8a6f79c2156f8f281 *misc/ajax.php 5aefe69b1ba16fe8a6f79c2156f8f281 *misc/ajax.php
146822a31cc58fc5409e63416632183a *misc/chkupdatethumb.php 146822a31cc58fc5409e63416632183a *misc/chkupdatethumb.php
66ee773a4c2e373da92f48f81930cf3f *misc/classes/init.php c8ca32424e84934320e818b18d3d39f8 *misc/classes/init.php
22b120cc32b5d0b682d7dc9e9198bc1b *misc/convert.php 1eba34776ab322f424cfa60965e4fbf3 *misc/convert.php
6a6a2e9460e20172d1f77e70251d6cd3 *misc/createthumb.php eb721c01e68e84b56673f8288b5d1e77 *misc/createthumb.php
82f3bb6c9af2650b30b746821bee43ed *misc/deletevapp.php 82f3bb6c9af2650b30b746821bee43ed *misc/deletevapp.php
22be219d989c89d5aea27094a4710aae *misc/doupdatethumb.php 22be219d989c89d5aea27094a4710aae *misc/doupdatethumb.php
28dafe510c0e9fc80fab261b3d17cd1a *misc/exportfile.php
19b47e000dbf4ac3c5b19b3eceda4776 *misc/exportfilecheck.php
5a1ad4ce0339b96a4d02fa45b57d2862 *misc/finalydelfile.php 5a1ad4ce0339b96a4d02fa45b57d2862 *misc/finalydelfile.php
5e5e07a1e397b4cd43a81c1669b63e5c *misc/getConvertStatus.php 5e5e07a1e397b4cd43a81c1669b63e5c *misc/getConvertStatus.php
686d02d6fb5fef97738eca62331f6181 *misc/getinfo.php 686d02d6fb5fef97738eca62331f6181 *misc/getinfo.php
b8e09d101808b8aabc2c833a30b0f2d6 *misc/getthumb.php 1754681ffb157dcd455f045e4a600663 *misc/getthumb.php
5e15b931d2e36c6978d1e4cb095c2c84 *misc/initexport.php
07c94ac278a2b7e5d3e16375436cc95f *misc/movespace.php 07c94ac278a2b7e5d3e16375436cc95f *misc/movespace.php
4fe4ffdf9e3587c0e3cfce79803a7fcf *misc/seccode.php 4fe4ffdf9e3587c0e3cfce79803a7fcf *misc/seccode.php
b4315dcb6c81d9952f4ec624380d40fa *misc/seluser.php b4315dcb6c81d9952f4ec624380d40fa *misc/seluser.php
@@ -2584,12 +2621,13 @@ ff6abf5b6ce1f3256d2aad8fdd24f646 *misc/setunrun.php
45c256cd29506798392534301ac3047f *misc/stat.php 45c256cd29506798392534301ac3047f *misc/stat.php
38a88c2ea2cd34b23b1704d561e8995b *misc/syscache.php 38a88c2ea2cd34b23b1704d561e8995b *misc/syscache.php
d365238875a6457eaea991f1e7913309 *misc/template/misc_seluser.htm d365238875a6457eaea991f1e7913309 *misc/template/misc_seluser.htm
cba39596c90ee880abfd77fb588d3355 *misc/thumbconvertrecord.php 435204375ed3529d8dc97f309fff374f *misc/thumbconvertrecord.php
f4aabb7e968216f078d4d5c1bcdf55e6 *misc/updatepagedata.php 6dfa1f49a67e78a6f4c5d0cbe492c1e0 *misc/updatepagedata.php
32deeb4bf633f2f3d02be5c01218ec7e *misc/upgrade.php 32deeb4bf633f2f3d02be5c01218ec7e *misc/upgrade.php
170b9709fad7d1a8479d03c5c5913bae *misc.php 170b9709fad7d1a8479d03c5c5913bae *misc.php
39fa2e4d0dc090413c3f39e275407c72 *nginx.htaccess 39fa2e4d0dc090413c3f39e275407c72 *nginx.htaccess
a5721efd9f3863c249cb818023f26351 *PicHome2.0update.txt 71b9070307694aeb12d899a443250351 *PicHome2.0.2update.txt
940f13b0effe1e41d365b0194c21bf86 *README.md
eb11382b6241b03f598530206c21e0a1 *short.php eb11382b6241b03f598530206c21e0a1 *short.php
53356d152c1951221ec03d3f96397a6e *static/axios/axios.min.js 53356d152c1951221ec03d3f96397a6e *static/axios/axios.min.js
a4167122758dd580e234395e98987bcb *static/bootstrap/css/bootstrap-slider.css a4167122758dd580e234395e98987bcb *static/bootstrap/css/bootstrap-slider.css
@@ -2654,8 +2692,9 @@ f68cbc47b15ecdc2ddb8acd680d7b419 *static/dzzthumb/preview/hint_icon.gif
5253174e136c74b4ea6eb221bc1d764f *static/dzzthumb/preview/loading1.gif 5253174e136c74b4ea6eb221bc1d764f *static/dzzthumb/preview/loading1.gif
0f58b0ab566a3ce2b1d728a1c371ef12 *static/dzzthumb/preview/popup_title.gif 0f58b0ab566a3ce2b1d728a1c371ef12 *static/dzzthumb/preview/popup_title.gif
f24228c3ce9b416442e4dfe16e3607c6 *static/dzzthumb/preview/popup_title.png f24228c3ce9b416442e4dfe16e3607c6 *static/dzzthumb/preview/popup_title.png
fbb6fa92c07f2c2e7919f1a9865e3d86 *static/element/Element-Plus/ElementPlus.css 48c4309f3edac5d48a7b52a291378435 *static/element/Element-Plus/ElementPlus.css
608c349af73bcf3a5b1bff715cf3bd41 *static/element/Element-Plus/ElementPlus.js 608c349af73bcf3a5b1bff715cf3bd41 *static/element/Element-Plus/ElementPlus.js
b096560a186f60651f3736672663d09d *static/element/Element-Plus/ElementPlus.min.js
ef02be42b4f7c4a3c365fac3aea18b85 *static/element/Element-Plus/index.iife.min.js ef02be42b4f7c4a3c365fac3aea18b85 *static/element/Element-Plus/index.iife.min.js
fb1bc9df08ed6dc4b8737123befecba3 *static/element/Element-Plus/zhCn.js fb1bc9df08ed6dc4b8737123befecba3 *static/element/Element-Plus/zhCn.js
325472601571f31e1bf00674c368d335 *static/image/common/b.gif 325472601571f31e1bf00674c368d335 *static/image/common/b.gif
@@ -2805,9 +2844,13 @@ d9e3ea6d7d49cc4a320fa83b67e6ea5f *static/prismjs/components/prism-visual-basic.m
5056775c2a3ee2c6f0ea6f6ac0fb10bd *static/prismjs/index.css 5056775c2a3ee2c6f0ea6f6ac0fb10bd *static/prismjs/index.css
2a1e1ee96833d42e320d8476862cb25f *static/prismjs/index.js 2a1e1ee96833d42e320d8476862cb25f *static/prismjs/index.js
da2ff9b722f6d7a6d3d0804d89da9040 *static/prismjs/prism-autoloader.js da2ff9b722f6d7a6d3d0804d89da9040 *static/prismjs/prism-autoloader.js
32215344a11ed1a2bc63f4b513a7512c *static/scss/common.css 967f880f55ebcbcbdca0190d8e7e756b *static/scss/common.css
90040fecee8cbb8453a555adcf9355e5 *static/scss/default/index.css c2b7e11a1783ac2f9ee20e52259729c0 *static/scss/common.scss
e65e27533435fbca49a123b65b840a8a *static/scss/layout.css 74e7138245b73e6942b17d0e5c67c8a8 *static/scss/default/index.css
7552f00c1b13b7f725c2923319448070 *static/scss/layout.css
70a9d21aedabba9fa45db34ba110d497 *static/scss/layout.scss
5595c0a1d4b5200c42d3f10ee1a6f84e *static/tagsinput/jquery.tagsinput.css
16514f2dfada9501ab4e67c06b1706c6 *static/tagsinput/jquery.tagsinput.js
1cd34cd67b257988c2f2b3436ebfd0d3 *static/vant/index.css 1cd34cd67b257988c2f2b3436ebfd0d3 *static/vant/index.css
e2a6958ffcb8c74b7b9c549019518f82 *static/vant/index.min.js e2a6958ffcb8c74b7b9c549019518f82 *static/vant/index.min.js
9bec565e818356e12f7f92cb11ae1320 *static/vue/vue@3/vue.prod.js 9bec565e818356e12f7f92cb11ae1320 *static/vue/vue@3/vue.prod.js
@@ -2818,22 +2861,23 @@ f58d0cea9f4149fb051a009542408fdd *static/vue_components/avatar/image/2.png
d02b4ac4a02e2cdc9ea46931a64ec658 *static/vue_components/avatar/image/4.png d02b4ac4a02e2cdc9ea46931a64ec658 *static/vue_components/avatar/image/4.png
fd91901ea409a0f46bcdfae2ca3e3c17 *static/vue_components/avatar/image/5.png fd91901ea409a0f46bcdfae2ca3e3c17 *static/vue_components/avatar/image/5.png
d51db8efca781201f641a41b57420dfe *static/vue_components/avatar/image/phlogo.png d51db8efca781201f641a41b57420dfe *static/vue_components/avatar/image/phlogo.png
321ada70ce4ad57f0b71d17916fce488 *static/vue_components/avatar/pc/index.js e04f6f3e3e2984f933b310207b957045 *static/vue_components/avatar/pc/index.js
1e5e87cebeb78bc64901cc0ee9b6b277 *static/vue_components/collectdialog/index.js 1e5e87cebeb78bc64901cc0ee9b6b277 *static/vue_components/collectdialog/index.js
a1e6eea92aad9f7d08e0d866676c672d *static/vue_components/HeaderSort/index.js a1e6eea92aad9f7d08e0d866676c672d *static/vue_components/HeaderSort/index.js
58e2b3882444ff35790397898d402ebd *static/vue_components/ImageFile/index.js 58e2b3882444ff35790397898d402ebd *static/vue_components/ImageFile/index.js
b98517fb6c7742db075c8ec432f3bf35 *static/vue_components/ImageLayout/index.js 6e3b711adae49c0194711d3c59c43066 *static/vue_components/ImageLayout/index.js
d47db37338f59a4ca169f3791c2981e9 *static/vue_components/ImageLayoutlimit/index.js 5ea3eb0df2dca8b56a38868cc112687e *static/vue_components/ImageLayoutlimit/index.js
a658518f361f82728ea306155107f907 *static/vue_components/login/index.js a658518f361f82728ea306155107f907 *static/vue_components/login/index.js
345c63e6d655ca3542d4692e7df6b99c *static/vue_components/OrguserSelect/index.js 345c63e6d655ca3542d4692e7df6b99c *static/vue_components/OrguserSelect/index.js
26478c436c53644b2d1bbf7e1ac58b98 *static/vue_components/screen/index.js d8bc6980207b45b36930573b956ecc3f *static/vue_components/screen/index.js
11e40ee37c97d8d626c3712c69757f22 *static/vue_components/screendir/index.js d5fd133eb48a15be696962bfa846e43d *static/vue_components/screendir/index.js
f42f75072670acfe61d1231218d87925 *static/vue_components/theme/default/index.js a563ee69313dbd2cee83b940b249aaed *static/vue_components/theme/default/index.js
533ecd6c015635d93f8bf041868991a5 *static/vue_components/theme/red/index.js 533ecd6c015635d93f8bf041868991a5 *static/vue_components/theme/red/index.js
e4d2d77f2dd064e7ba43b00f26da3d67 *static/wangeditor/index.js e4d2d77f2dd064e7ba43b00f26da3d67 *static/wangeditor/index.js
cdbf6eecc9c1f162f6a45a674d7afdf1 *static/wangeditor/style.css cdbf6eecc9c1f162f6a45a674d7afdf1 *static/wangeditor/style.css
d1ad8ccaadf9ebe30b27c63084cd4ac2 *user/ajax.php f7a2ece05407dc6f4683beb06094c928 *UPDATE.md
40ca267f3f75d6195857f3654be38fc6 *user/classes/checklogin.php 7ad0e8566fcf347808d4f535cd709541 *user/ajax.php
8a6bf2d68bd84b3b91361c12fa011a1b *user/classes/checklogin.php
d8a41c8fbd7289ae2ecb61479f062f86 *user/classes/init.php d8a41c8fbd7289ae2ecb61479f062f86 *user/classes/init.php
7369a569df07dad3b5d04b0938f13d7c *user/classes/route.php 7369a569df07dad3b5d04b0938f13d7c *user/classes/route.php
29040baeef0147f66b8f939a815238d0 *user/classes/safechk.php 29040baeef0147f66b8f939a815238d0 *user/classes/safechk.php
@@ -2855,7 +2899,7 @@ f8bc4718c17c2cf4b42b54b881566037 *user/login/images/login_single3.css
bae050825fa5473c7bf481fad4b8185b *user/login/images/login_single4.css bae050825fa5473c7bf481fad4b8185b *user/login/images/login_single4.css
3559feeb025994ec04ec3a89b338d2ae *user/login/logging/getpasswd.php 3559feeb025994ec04ec3a89b338d2ae *user/login/logging/getpasswd.php
836472163930a4cd61a713c895514a6c *user/login/logging/getPasswdBySms.php 836472163930a4cd61a713c895514a6c *user/login/logging/getPasswdBySms.php
630c2e41c21acd1cd821bf5e325998eb *user/login/logging/login.php 62c565075fee0796b93c7462dd100010 *user/login/logging/login.php
10131823a2ef75cacbac97a26e884cae *user/login/logging/logout.php 10131823a2ef75cacbac97a26e884cae *user/login/logging/logout.php
f77c20227041494541cc4deb2f4575ea *user/login/logging/lostpasswd.php f77c20227041494541cc4deb2f4575ea *user/login/logging/lostpasswd.php
f550cb56b8d8df69e2e6ba37ec41991b *user/login/logging/sms_auth.php f550cb56b8d8df69e2e6ba37ec41991b *user/login/logging/sms_auth.php
@@ -2865,15 +2909,23 @@ c086d7adbe5aab566b96a8311fd56a75 *user/login/template/getpasswd.htm
fd044a68a07006f09f8afefe8212b84a *user/login/template/getpasswd_sms_success.htm fd044a68a07006f09f8afefe8212b84a *user/login/template/getpasswd_sms_success.htm
44245b22f88e02fc15eab6ab138f753d *user/login/template/login_copyright.htm 44245b22f88e02fc15eab6ab138f753d *user/login/template/login_copyright.htm
3dd808f2a4d82e7a40536e3941e37d74 *user/login/template/login_single1.htm 3dd808f2a4d82e7a40536e3941e37d74 *user/login/template/login_single1.htm
4984c425e98b55cc07a4c05df7e840d2 *user/login/template/login_single2.htm 879a73fba71a7f5645616256acfcf40b *user/login/template/login_single2.htm
ec7c3f3741f8298dd4e8f39d892c5508 *user/login/template/login_single3.htm 72085848e15af7d7ccb9985db65b3516 *user/login/template/login_single3.htm
ebafa2d5257b48b62e3f680516296a34 *user/login/template/login_single4.htm ebafa2d5257b48b62e3f680516296a34 *user/login/template/login_single4.htm
4ae58655385cf4d0d9d0f106786d581d *user/login/template/login_single_demo.htm 4ae58655385cf4d0d9d0f106786d581d *user/login/template/login_single_demo.htm
f82562f1c60ed08dc1ae50887aa18097 *user/login/template/login_single_mobile.htm f82562f1c60ed08dc1ae50887aa18097 *user/login/template/login_single_mobile.htm
d28233af369fb8dbff23ae32ed050102 *user/login/template/login_skip.htm d28233af369fb8dbff23ae32ed050102 *user/login/template/login_skip.htm
1f31bf4b7a42849835aaca7314412521 *user/login/template/login_sms_auth.htm 1f31bf4b7a42849835aaca7314412521 *user/login/template/login_sms_auth.htm
1ea581b6b099021c2cc066fe73bb7720 *user/login/template/lostpasswd.htm 1ea581b6b099021c2cc066fe73bb7720 *user/login/template/lostpasswd.htm
e4e8120c7f373daaa7f5c4a29a0fe374 *user/my/index.php 1eef21e18ab8b500ee9f628a85041327 *user/login/template/pc/assets/login.jpg
afc3e6a4a1caaf1a682d79b21b39be21 *user/login/template/pc/assets/login_single1.css
ec9d44d37c6d1d9e64828ea88480c15d *user/login/template/pc/assets/login_single2.css
ea42b5e57e251a7274f7afaa59d87e92 *user/login/template/pc/assets/login_single3.css
44245b22f88e02fc15eab6ab138f753d *user/login/template/pc/page/login_copyright.htm
a0abc179c820235b499d3063c4e19ab7 *user/login/template/pc/page/login_single1.htm
15986451d27729c1677e136ce45f1f20 *user/login/template/pc/page/login_single2.htm
aad9763fe031b768d3f787966f381622 *user/login/template/pc/page/login_single3.htm
da0eb30e36e8fe81e6244a9b7b6b411e *user/my/index.php
30c22a7a19d5c300dd94338dbc4c21ab *user/my/profile.php 30c22a7a19d5c300dd94338dbc4c21ab *user/my/profile.php
e04e8278c015be046fcdf5fa98ec44c1 *user/my/template/mobile/assets/index.css e04e8278c015be046fcdf5fa98ec44c1 *user/my/template/mobile/assets/index.css
9b95e6ae1553841760e68ff34e8bbc68 *user/my/template/mobile/page/index.htm 9b95e6ae1553841760e68ff34e8bbc68 *user/my/template/mobile/page/index.htm

179
admin/scripts/uploadpic.js Normal file
View File

@@ -0,0 +1,179 @@
/*
* @copyright QiaoQiaoShiDai Internet Technology(Shanghai)Co.,Ltd
* @license https://www.oaooa.com/licenses/
*
* @link https://www.oaooa.com
* @author zyx(zyx@oaooa.com)
*/
var attachexts = new Array();
var attachwh = new Array();
var insertType = 1;
var thumbwidth = parseInt(60);
var thumbheight = parseInt(60);
var extensions = 'jpg,jpeg,gif,png';
var forms;
var nowUid = 0;
var uploadStat = 0;
var picid = 0;
var nowid = 0;
var mainForm;
var successState = false;
function getExt(path) {
return path.lastIndexOf('.') == -1 ? '' : path.substr(path.lastIndexOf('.') + 1, path.length).toLowerCase();
}
function delete_pic(obj,picid){
document.getElementById('pic_container').removeChild(obj.parentNode.parentNode);
var input=document.createElement('input');
input.type='hidden';
input.name='delete_pics[]';
input.value=picid;
document.getElementById('pic_delete').appendChild(input);
}
function delAttach(id) {
document.getElementById('attachbody').removeChild(document.getElementById('attach_' + id).parentNode.parentNode.parentNode);
if(document.getElementById('attachbody').innerHTML == '') {
addAttach();
}
document.getElementById('localimgpreview_' + id + '_menu') ? document.body.removeChild(document.getElementById('localimgpreview_' + id + '_menu')) : null;
}
function addAttach() {
newnode = document.getElementById('attachbodyhidden').rows[0].cloneNode(true);
var id = nowid;
var tags;
tags = newnode.getElementsByTagName('form');
for(var i=0;i<tags.length;i++) {
if(tags[i] && tags[i].id == 'upload') {
tags[i].id = 'upload_' + id;
}
}
tags = newnode.getElementsByTagName('input');
for(var i=0;i<tags.length;i++) {
if(tags[i].name == 'attach') {
tags[i].id = 'attach_' + id;
tags[i].name = 'attach';
tags[i].onchange = function() {insertAttach(id)};
tags[i].unselectable = 'on';
}
}
tags = newnode.getElementsByTagName('span');
for(var i=0;i<tags.length;i++) {
if(tags[i].id == 'localfile') {
tags[i].id = 'localfile_' + id;
}
}
nowid++;
document.getElementById('attachbody').appendChild(newnode);
}
addAttach();
function insertAttach(id) {
var localimgpreview = '';
var path = document.getElementById('attach_' + id).value;
var ext = getExt(path);
var re = new RegExp("(^|\\s|,)" + ext + "($|\\s|,)", "ig");
var localfile = document.getElementById('attach_' + id).value.substr(document.getElementById('attach_' + id).value.replace(/\\/g, '/').lastIndexOf('/') + 1);
if(path == '') {
return;
}
if(extensions != '' && (re.exec(extensions) == null || ext == '')) {
alert(__lang.support_upload_pictures_extensions);
return;
}
attachexts[id] = inArray(ext, ['gif', 'jpg', 'jpeg', 'png']) ? 2 : 1;
var inhtml = '<table cellspacing="0" cellpadding="0" class="up_row"><tr>';
inhtml += '<td><strong>' + localfile +'</strong>';
inhtml += '</td><td class="o"><span id="showmsg' + id + '"><a href="javascript:;" onclick="delAttach(' + id + ');return false;" class="xi2">['+__lang.delete+']</a></span>';
inhtml += '</td></tr></table>';
document.getElementById('localfile_' + id).innerHTML = inhtml;
document.getElementById('attach_' + id).style.display = 'none';
addAttach();
}
function getPath(obj){
if (obj) {
if (BROWSER.ie && BROWSER.ie < 7) {
obj.select();
return document.selection.createRange().text;
} else if(BROWSER.firefox) {
if (obj.files) {
return obj.files.item(0).getAsDataURL();
}
return obj.value;
} else {
return '';
}
return obj.value;
}
}
function inArray(needle, haystack) {
if(typeof needle == 'string') {
for(var i in haystack) {
if(haystack[i] == needle) {
return true;
}
}
}
return false;
}
function insertAttachimgTag(id) {
edit_insert('[imgid=' + id + ']');
}
function uploadSubmit(obj) {
obj.disabled = true;
mainForm = obj.form;
forms = document.getElementById('attachbody').getElementsByTagName("FORM");
upload();
}
function upload() {
if(typeof(forms[nowUid]) == 'undefined') return false;
var nid = forms[nowUid].id.split('_');
nid = nid[1];
if(nowUid>0) {
var upobj = document.getElementById('showmsg'+nowid);
if(uploadStat==1) {
upobj.innerHTML = __lang.upload_success;
successState = true;
var InputNode;
try {
var InputNode = document.createElement("<input type=\"hidden\" id=\"picid_" + picid + "\" value=\""+ picid +"\" name=\"picids[]\">");
} catch(e) {
var InputNode = document.createElement("input");
InputNode.setAttribute("name", "picids[]");
InputNode.setAttribute("type", "hidden");
InputNode.setAttribute("id", "picid_" + picid);
InputNode.setAttribute("value",picid);
}
mainForm.appendChild(InputNode);
} else {
upobj.style.color = "#f00";
upobj.innerHTML = __lang.upload_failed+uploadStat;
}
}
if(document.getElementById('showmsg'+nid) != null) {
document.getElementById('showmsg'+nid).innerHTML = __lang.upload_await+'(<a href="javascript:;" onclick="forms[nowUid].submit();">'+__lang.founder_upgrade_reset+'</a>)';
forms[nowUid].submit();
} else if(nowUid+1 == forms.length) {
window.onbeforeunload = null;
mainForm.submit();
}
nowid = nid;
nowUid++;
uploadStat = 0;
}

View File

@@ -0,0 +1 @@
.el-avatar[data-v-a6c00da6]{float:left;cursor:pointer}.el-divider--horizontal.el-divider[data-v-a6c00da6]{margin:8px 0}.aboutPichome{padding:0;width:478px}.aboutPichome .el-message-box__btns,.aboutPichome .el-message-box__header{display:none}.aboutPichome .aboutlogo{text-align:center;line-height:0;padding-top:40px}.aboutPichome .aboutmessage{padding:65px 40px;font-size:19px;padding-bottom:15px}.aboutPichome .aboutmessage .aboutlist{margin-bottom:20px;overflow:hidden}.aboutPichome a{text-decoration:none}.aboutPichome .aboutmessage .aboutlist .title{float:left;width:95px}.aboutPichome .aboutmessage .aboutlist .mes{float:left;width:calc(100% - 95px)}.aboutPichome .aboutmessage .aboutlist .update{font-size:12px}

View File

@@ -0,0 +1 @@
.help-inline[data-v-cac40bea]{display:block}.avatar-uploader[data-v-cac40bea] .el-upload{border:1px dashed #d9d9d9;border-radius:6px;cursor:pointer;position:relative;width:150px;height:150px;overflow:hidden;line-height:160px;padding:5px}.avatar-uploader[data-v-cac40bea] .el-upload .avatar-uploader-icon{font-size:28px;color:#8c939d;vertical-align:sub}.avatar-uploader[data-v-cac40bea] .el-upload .el-image{height:150px;width:100%;line-height:150px}.avatar-uploader[data-v-cac40bea] .el-upload .el-image img{max-width:100%;max-height:150px;width:auto;height:auto;vertical-align:middle}.avatar-uploader[data-v-cac40bea] .el-upload .el-progress{position:absolute;left:5px;top:5px;background:#fff;z-index:100}.max-width[data-v-cac40bea]{width:360px}

View File

@@ -0,0 +1 @@
.basic-container[data-v-fb7dd626]{height:calc(100vh - 46px);overflow:auto}.avatar-uploader[data-v-fb7dd626] .el-upload{border:1px dashed #d9d9d9;border-radius:6px;cursor:pointer;position:relative;width:80px;height:80px;overflow:hidden;line-height:80px;padding:5px}.avatar-uploader[data-v-fb7dd626] .el-upload .avatar-uploader-icon{font-size:28px;color:#8c939d;vertical-align:sub}.avatar-uploader[data-v-fb7dd626] .el-upload .el-image{height:80px;width:100%;line-height:80px}.avatar-uploader[data-v-fb7dd626] .el-upload .el-image img{max-width:100%;max-height:80px;width:auto;height:auto;vertical-align:middle}.avatar-uploader[data-v-fb7dd626] .el-upload .el-progress{position:absolute;left:5px;top:5px;background:#fff;z-index:100}

View File

@@ -1 +1 @@
<!DOCTYPE html><html lang=zh><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=favicon.ico><title></title><link href=/admin/setting/dist/css/chunk-11793d76.e3aa52a0.css rel=prefetch><link href=/admin/setting/dist/css/chunk-1ce8ae7e.57e2bf3f.css rel=prefetch><link href=/admin/setting/dist/css/chunk-201f656b.eb2931b7.css rel=prefetch><link href=/admin/setting/dist/css/chunk-27b595b5.6f37d603.css rel=prefetch><link href=/admin/setting/dist/css/chunk-2e9b5e3e.ff920983.css rel=prefetch><link href=/admin/setting/dist/css/chunk-36ed7802.ddfa8de2.css rel=prefetch><link href=/admin/setting/dist/css/chunk-37d74806.0c02e4db.css rel=prefetch><link href=/admin/setting/dist/css/chunk-42c1b704.3293b89e.css rel=prefetch><link href=/admin/setting/dist/css/chunk-45f0a227.cdc9335d.css rel=prefetch><link href=/admin/setting/dist/css/chunk-4850fbf9.980b88ba.css rel=prefetch><link href=/admin/setting/dist/css/chunk-4bd6d832.ad2beee9.css rel=prefetch><link href=/admin/setting/dist/css/chunk-51ab32cd.519dec70.css rel=prefetch><link href=/admin/setting/dist/css/chunk-56b92ffd.7264eae2.css rel=prefetch><link href=/admin/setting/dist/css/chunk-60968146.4f89c1c7.css rel=prefetch><link href=/admin/setting/dist/css/chunk-65f82ec1.82e43d2c.css rel=prefetch><link href=/admin/setting/dist/css/chunk-745ec13c.c40d05c4.css rel=prefetch><link href=/admin/setting/dist/css/chunk-74c32c70.4b7d665e.css rel=prefetch><link href=/admin/setting/dist/css/chunk-76f23146.6fc79cd8.css rel=prefetch><link href=/admin/setting/dist/css/chunk-8253696e.853db2ed.css rel=prefetch><link href=/admin/setting/dist/css/chunk-8af60fbc.1de80ebe.css rel=prefetch><link href=/admin/setting/dist/css/chunk-c2ea2536.0dada93f.css rel=prefetch><link href=/admin/setting/dist/css/chunk-e9e5fa9a.aecc7157.css rel=prefetch><link href=/admin/setting/dist/css/chunk-fc47aa76.dddb9b47.css rel=prefetch><link href=/admin/setting/dist/css/setting_temp.160d41ee.css rel=prefetch><link href=/admin/setting/dist/js/chunk-11793d76.ce1a5be7.js rel=prefetch><link href=/admin/setting/dist/js/chunk-1ce8ae7e.6a1bbf82.js rel=prefetch><link href=/admin/setting/dist/js/chunk-201f656b.7ab31c65.js rel=prefetch><link href=/admin/setting/dist/js/chunk-27b595b5.1211aaff.js rel=prefetch><link href=/admin/setting/dist/js/chunk-2e9b5e3e.602304e3.js rel=prefetch><link href=/admin/setting/dist/js/chunk-36ed7802.dfdd9749.js rel=prefetch><link href=/admin/setting/dist/js/chunk-37d74806.18c0b22d.js rel=prefetch><link href=/admin/setting/dist/js/chunk-42c1b704.e50a2fab.js rel=prefetch><link href=/admin/setting/dist/js/chunk-45f0a227.d6202e1a.js rel=prefetch><link href=/admin/setting/dist/js/chunk-4850fbf9.2ef97ebb.js rel=prefetch><link href=/admin/setting/dist/js/chunk-4bd6d832.cc9a988f.js rel=prefetch><link href=/admin/setting/dist/js/chunk-51ab32cd.f2e4282a.js rel=prefetch><link href=/admin/setting/dist/js/chunk-56b92ffd.8568d3b0.js rel=prefetch><link href=/admin/setting/dist/js/chunk-60968146.9c21e70a.js rel=prefetch><link href=/admin/setting/dist/js/chunk-6337fcfc.90794efc.js rel=prefetch><link href=/admin/setting/dist/js/chunk-65f82ec1.d9e3dbe2.js rel=prefetch><link href=/admin/setting/dist/js/chunk-745ec13c.f468e46a.js rel=prefetch><link href=/admin/setting/dist/js/chunk-74c32c70.1f5e9382.js rel=prefetch><link href=/admin/setting/dist/js/chunk-76f23146.0d2957ed.js rel=prefetch><link href=/admin/setting/dist/js/chunk-8253696e.e9561f92.js rel=prefetch><link href=/admin/setting/dist/js/chunk-8af60fbc.8ad59181.js rel=prefetch><link href=/admin/setting/dist/js/chunk-c2ea2536.8fc255e1.js rel=prefetch><link href=/admin/setting/dist/js/chunk-e9e5fa9a.322b6d2c.js rel=prefetch><link href=/admin/setting/dist/js/chunk-fc47aa76.b39d41e7.js rel=prefetch><link href=/admin/setting/dist/js/setting_temp.806222b7.js rel=prefetch><link href=/admin/setting/dist/css/chunk-vendors.4d5d56a8.css rel=preload as=style><link href=/admin/setting/dist/css/index.bfb05069.css rel=preload as=style><link href=/admin/setting/dist/js/chunk-vendors.852e680b.js rel=preload as=script><link href=/admin/setting/dist/js/index.c0d8c523.js rel=preload as=script><link href=/admin/setting/dist/css/chunk-vendors.4d5d56a8.css rel=stylesheet><link href=/admin/setting/dist/css/index.bfb05069.css rel=stylesheet></head><body><div id=app></div><script src=/admin/setting/dist/js/chunk-vendors.852e680b.js></script><script src=/admin/setting/dist/js/index.c0d8c523.js></script></body></html> <!DOCTYPE html><html lang=zh><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=favicon.ico><title></title><link href=/admin/setting/dist/css/chunk-11793d76.e3aa52a0.css rel=prefetch><link href=/admin/setting/dist/css/chunk-1ce8ae7e.57e2bf3f.css rel=prefetch><link href=/admin/setting/dist/css/chunk-201f656b.eb2931b7.css rel=prefetch><link href=/admin/setting/dist/css/chunk-27b595b5.6f37d603.css rel=prefetch><link href=/admin/setting/dist/css/chunk-302fb9a6.814b8c98.css rel=prefetch><link href=/admin/setting/dist/css/chunk-36ed7802.ddfa8de2.css rel=prefetch><link href=/admin/setting/dist/css/chunk-37d74806.0c02e4db.css rel=prefetch><link href=/admin/setting/dist/css/chunk-42c1b704.3293b89e.css rel=prefetch><link href=/admin/setting/dist/css/chunk-45f0a227.cdc9335d.css rel=prefetch><link href=/admin/setting/dist/css/chunk-4850fbf9.980b88ba.css rel=prefetch><link href=/admin/setting/dist/css/chunk-4bd6d832.ad2beee9.css rel=prefetch><link href=/admin/setting/dist/css/chunk-51ab32cd.519dec70.css rel=prefetch><link href=/admin/setting/dist/css/chunk-56b92ffd.7264eae2.css rel=prefetch><link href=/admin/setting/dist/css/chunk-60968146.4f89c1c7.css rel=prefetch><link href=/admin/setting/dist/css/chunk-65f82ec1.82e43d2c.css rel=prefetch><link href=/admin/setting/dist/css/chunk-6a900ee1.a62df9f6.css rel=prefetch><link href=/admin/setting/dist/css/chunk-745ec13c.c40d05c4.css rel=prefetch><link href=/admin/setting/dist/css/chunk-74c32c70.4b7d665e.css rel=prefetch><link href=/admin/setting/dist/css/chunk-76f23146.6fc79cd8.css rel=prefetch><link href=/admin/setting/dist/css/chunk-8253696e.853db2ed.css rel=prefetch><link href=/admin/setting/dist/css/chunk-8af60fbc.1de80ebe.css rel=prefetch><link href=/admin/setting/dist/css/chunk-8b3badce.b5cb1c65.css rel=prefetch><link href=/admin/setting/dist/css/chunk-e9e5fa9a.aecc7157.css rel=prefetch><link href=/admin/setting/dist/css/setting_temp.160d41ee.css rel=prefetch><link href=/admin/setting/dist/js/chunk-11793d76.ce1a5be7.js rel=prefetch><link href=/admin/setting/dist/js/chunk-1ce8ae7e.6a1bbf82.js rel=prefetch><link href=/admin/setting/dist/js/chunk-201f656b.7ab31c65.js rel=prefetch><link href=/admin/setting/dist/js/chunk-27b595b5.1211aaff.js rel=prefetch><link href=/admin/setting/dist/js/chunk-302fb9a6.9e8263f7.js rel=prefetch><link href=/admin/setting/dist/js/chunk-36ed7802.dfdd9749.js rel=prefetch><link href=/admin/setting/dist/js/chunk-37d74806.18c0b22d.js rel=prefetch><link href=/admin/setting/dist/js/chunk-42c1b704.e50a2fab.js rel=prefetch><link href=/admin/setting/dist/js/chunk-45f0a227.d6202e1a.js rel=prefetch><link href=/admin/setting/dist/js/chunk-4850fbf9.2ef97ebb.js rel=prefetch><link href=/admin/setting/dist/js/chunk-4bd6d832.cc9a988f.js rel=prefetch><link href=/admin/setting/dist/js/chunk-51ab32cd.6b07a5d0.js rel=prefetch><link href=/admin/setting/dist/js/chunk-56b92ffd.8568d3b0.js rel=prefetch><link href=/admin/setting/dist/js/chunk-60968146.9c21e70a.js rel=prefetch><link href=/admin/setting/dist/js/chunk-6337fcfc.90794efc.js rel=prefetch><link href=/admin/setting/dist/js/chunk-65f82ec1.d9e3dbe2.js rel=prefetch><link href=/admin/setting/dist/js/chunk-6a900ee1.618b2392.js rel=prefetch><link href=/admin/setting/dist/js/chunk-745ec13c.f468e46a.js rel=prefetch><link href=/admin/setting/dist/js/chunk-74c32c70.1f5e9382.js rel=prefetch><link href=/admin/setting/dist/js/chunk-76f23146.0d2957ed.js rel=prefetch><link href=/admin/setting/dist/js/chunk-8253696e.e9561f92.js rel=prefetch><link href=/admin/setting/dist/js/chunk-8af60fbc.8ad59181.js rel=prefetch><link href=/admin/setting/dist/js/chunk-8b3badce.fccf1043.js rel=prefetch><link href=/admin/setting/dist/js/chunk-e9e5fa9a.322b6d2c.js rel=prefetch><link href=/admin/setting/dist/js/setting_temp.7e3b072c.js rel=prefetch><link href=/admin/setting/dist/css/chunk-vendors.4d5d56a8.css rel=preload as=style><link href=/admin/setting/dist/css/index.bfb05069.css rel=preload as=style><link href=/admin/setting/dist/js/chunk-vendors.852e680b.js rel=preload as=script><link href=/admin/setting/dist/js/index.76165d16.js rel=preload as=script><link href=/admin/setting/dist/css/chunk-vendors.4d5d56a8.css rel=stylesheet><link href=/admin/setting/dist/css/index.bfb05069.css rel=stylesheet></head><body><div id=app></div><script src=/admin/setting/dist/js/chunk-vendors.852e680b.js></script><script src=/admin/setting/dist/js/index.76165d16.js></script></body></html>

View File

@@ -0,0 +1 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-302fb9a6"],{"0e9b":function(t,e,a){"use strict";var s=a("2f7e"),o=a.n(s);o.a},"2f7e":function(t,e,a){},6254:function(t,e,a){"use strict";a.r(e);var s=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticStyle:{"margin-left":"10px",display:"inherit"}},[a("el-dropdown",{staticStyle:{width:"35px",height:"35px"},attrs:{trigger:"click","hide-on-click":!1},on:{command:t.handleAvatar}},[t.GetUserData.icon?[a("el-tooltip",{staticClass:"item",attrs:{effect:"dark",content:t.GetUserData.username,placement:"left"}},[a("el-avatar",{attrs:{size:35,src:t.GetUserData.icon}})],1)]:[a("el-tooltip",{staticClass:"item",attrs:{effect:"dark",content:t.GetUserData.username,placement:"left"}},[a("el-avatar",{style:{background:t.GetUserData.headerColor},attrs:{size:35}},[t._v(t._s(t.GetUserData.firstword))])],1)],a("el-dropdown-menu",{staticClass:"avatar-dropdown",attrs:{slot:"dropdown"},slot:"dropdown"},[a("el-dropdown-item",{attrs:{command:"personal"}},[t._v("个人中心")]),a("el-dropdown-item",{attrs:{command:"systeminfo"}},[t._v("系统管理")]),a("el-divider",{staticClass:"adjust-divider"}),a("el-dropdown-item",{attrs:{command:"OutLogin"}},[t._v("退出站点")])],1)],2)],1)},o=[],n=(a("96cf"),a("1da1")),i=a("5530"),r=a("2f62"),c={data:function(){return{}},computed:Object(i["a"])({},Object(r["b"])(["GetUserData","GetFormHash","GetLanguage"])),methods:{handleAvatar:function(t){var e=this;switch(t){case"collection":window.location.href="index.php?mod=collection";break;case"personal":window.location.href="user.php?mod=my";break;case"help":window.open("https://www.yuque.com/pichome");break;case"problem":window.open("https://support.qq.com/products/340252");break;case"setting":window.location.href="index.php?mod=pichome&op=admin&do=basic";break;case"library":window.location.href="index.php?mod=pichome&op=library";break;case"about":this.$alert('<div class="aboutlogo">\n \t\t\t<img src="dzz/pichome/image/phlogo.png" alt="">\n \t\t</div>\n \t\t<div class="aboutmessage">\n \t\t\t<div class="aboutlist">\n \t\t\t\t<span class="title">软件名称:</span><span class="mes">欧奥PicHome</span>\n \t\t\t</div>\n \t\t\t<div class="aboutlist">\n \t\t\t\t<span class="title">版本信息:</span><span class="mes">'+this.GetUserData.version+'</span>\n \t\t\t</div>\n \t\t\t<div class="aboutlist">\n \t\t\t\t<span class="title">版权信息:</span><span class="mes">Powered By oaooa PicHome © 2020-2022 欧奥图文</span>\n \t\t\t</div>\n \t\t\t<div class="aboutlist">\n \t\t\t\t<span class="title">网站地址:</span><span class="mes"><a class="address" href="https://oaooa.com/" target="_blank">oaooa.com</a></span>\n \t\t\t</div>\n \t\t</div>',"",{customClass:"aboutPichome",showClose:!1,showConfirmButton:!1,dangerouslyUseHTMLString:!0,closeOnClickModal:!0});break;case"systeminfo":window.location.href="index.php?mod=systeminfo";break;case"system":window.open("admin.php?mod=system");break;case"orguser":window.open("admin.php?mod=orguser");break;case"systemlog":window.open("admin.php?mod=systemlog");break;case"OutLogin":this.$message,this.$confirm("您确定要注销登录?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(Object(n["a"])(regeneratorRuntime.mark((function t(){var a,s;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,e.axios.post("user.php?mod=login&op=logging&inajax=1&action=logout&formhash="+e.GetFormHash+"&t="+(new Date).getTime());case 2:a=t.sent,s=a.data,s.success?window.location.reload():e.$message.error(s.msg||"退出登录失败");case 5:case"end":return t.stop()}}),t)})))).catch((function(){}));break}return!1}}},l=c,d=(a("0e9b"),a("9c24"),a("2877")),p=Object(d["a"])(l,s,o,!1,null,"a6c00da6",null);e["default"]=p.exports},"864f":function(t,e,a){},"9c24":function(t,e,a){"use strict";var s=a("864f"),o=a.n(s);o.a}}]);

View File

@@ -0,0 +1 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-51ab32cd"],{3685:function(t,e,a){},ec9e:function(t,e,a){"use strict";var n=a("3685"),i=a.n(n);i.a},fcc8:function(t,e,a){"use strict";a.r(e);var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"resNav"},[a("div",{staticClass:"resNav-item resNav-left"},[a("a",{staticClass:"h-left",attrs:{href:"javascript:;"},on:{click:function(e){return t.goBack()}}},[a("el-image",{attrs:{src:"data/attachment/sitelogo/sitelogo.png",fit:"contain"}}),a("span",{staticClass:"text"},[t._v(t._s(t.navTitle))])],1)]),a("div",{staticClass:"resNav-item resNav-center"}),a("div",{staticClass:"resNav-item resNav-right"},[a("Mavatar")],1)])},i=[],c=(a("d3b7"),a("5530")),s=a("2f62"),r={props:["hideContent","apptype","hideBack"],data:function(){return{}},computed:Object(c["a"])(Object(c["a"])({},Object(s["c"])(["headerName","navTitle","IfuserAgent"])),Object(s["b"])(["GetNavMenu"])),methods:{handleClick:function(t){var e=this.GetNavMenu;for(var a in e)if(e[a].index==t){"admin"==e[a].type?window.location.href="admin.php?mod="+t:window.location.href="index.php?mod="+t;break}},goBack:function(){window.location.href="/"}},components:{Mavatar:function(){return a.e("chunk-302fb9a6").then(a.bind(null,"6254"))}}},o=r,d=(a("ec9e"),a("2877")),l=Object(d["a"])(o,n,i,!1,null,"b9d2b62e",null);e["default"]=l.exports}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -41,9 +41,9 @@ if ($operation == 'basic') {
if (Hook::listen('rolecheck', $params, null, true) === false) continue; if (Hook::listen('rolecheck', $params, null, true) === false) continue;
$applist[] = array('appname' => $value['appname'], 'identifier' => 'vapp_' . $value['identify']); $applist[] = array('appname' => $value['appname'], 'identifier' => 'vapp_' . $value['identify']);
} }
if($setting['sitelogo']){
$setting['sitelogoPath'] = IO::getFileUri('attach::'.$setting[sitelogo]); $setting['sitelogoPath'] =getglobal('setting/attachurl').'sitelogo/sitelogo.png?'.VERHASH;
}
exit(json_encode(array('settingdata' => $setting, 'appdata' => $applist,'serverspace'=>$serverspace))); exit(json_encode(array('settingdata' => $setting, 'appdata' => $applist,'serverspace'=>$serverspace)));
} else { } else {
$settingnew = $_GET['settingnew']; $settingnew = $_GET['settingnew'];
@@ -99,10 +99,10 @@ if ($operation == 'basic') {
} }
if ($settingnew['sitelogo'] && $settingnew['sitelogo'] != $setting['sitelogo']) { /* if ($settingnew['sitelogo'] && $settingnew['sitelogo'] != $setting['sitelogo']) {
if ($setting['sitelogo']) C::t('attachment')->delete_by_aid($setting['sitelogo']); if ($setting['sitelogo']) C::t('attachment')->delete_by_aid($setting['sitelogo']);
C::t('attachment')->addcopy_by_aid($settingnew['sitelogo'], 1); C::t('attachment')->addcopy_by_aid($settingnew['sitelogo'], 1);
} }*/
updatesetting($setting,$settingnew); updatesetting($setting,$settingnew);
exit(json_encode(array('success'=>true))); exit(json_encode(array('success'=>true)));
} }
@@ -218,7 +218,32 @@ if ($operation == 'basic') {
updatesetting($setting,$settingnew); updatesetting($setting,$settingnew);
exit(json_encode(array('success'=>true))); exit(json_encode(array('success'=>true)));
} }
}elseif($operation == 'mailcheck'){//邮件检测 }elseif($operation == 'uploadsitelogo'){
global $_G;
$files = $_FILES['files'];
if($files["type"] != 'image/png' || $files['size'] >= 1024*1024*2){
exit(json_encode(array('error'=>'file is not invalite')));
}
$logopath = 'sitelogo/sitelogo.png';
$logofilepath =$_G['setting']['attachdir'] .$logopath;
$logodir = dirname($logofilepath);
dmkdir($logodir);
//获取md5
$logomd5 = md5_file($files["tmp_name"]);
$return = move_uploaded_file($files["tmp_name"],$logofilepath);
if($return){
updatecache('setting');
exit(json_encode(array('success'=>true)));
}else{
exit(json_encode(array('success'=>false)));
}
}
elseif($operation == 'mailcheck'){//邮件检测
global $_G;
if(!submitcheck('settingsubmit')) { if(!submitcheck('settingsubmit')) {
$op = $_GET['op']?$_GET['op']:' '; $op = $_GET['op']?$_GET['op']:' ';
$navtitle=lang('email_send_test'); $navtitle=lang('email_send_test');
@@ -296,9 +321,10 @@ if ($operation == 'basic') {
//获取缩略图的md5 //获取缩略图的md5
$watermd5 = md5_file($files["tmp_name"]); $watermd5 = md5_file($files["tmp_name"]);
$return = move_uploaded_file($files["tmp_name"],$waterfilepath); $return = move_uploaded_file($files["tmp_name"],$waterfilepath);
if($return){ if($return){
//rename($waterpath.$files['name'],$waterpath.'water.png'); //rename($waterpath.$files['name'],$waterpath.'water.png');
@unlink($_G['setting']['waterimg']); //@unlink($_G['setting']['waterimg']);
//C::t('setting')->update('waterimg',$_G['setting']['attachurl'] .$waterpath); //C::t('setting')->update('waterimg',$_G['setting']['attachurl'] .$waterpath);
C::t('setting')->update('watermd5',$watermd5); C::t('setting')->update('watermd5',$watermd5);
updatecache('setting'); updatecache('setting');
@@ -367,7 +393,9 @@ if ($operation == 'basic') {
exit(json_encode(array('path'=>$_G['setting']['attachurl'] .$waterpath))); exit(json_encode(array('path'=>$_G['setting']['attachurl'] .$waterpath)));
} }
exit(json_encode(array('error'=>'upload error'))); exit(json_encode(array('path'=>getglobal('setting/attachurl').$waterpath.'?'.VERHASH)));
}else{
exit(json_encode(array('error'=>'upload failer')));
} }
}elseif($operation == 'watermark'){//水印设置 }elseif($operation == 'watermark'){//水印设置
if(!submitcheck('settingsubmit')) { if(!submitcheck('settingsubmit')) {

View File

@@ -209,7 +209,7 @@ class image {
$this->imagecreatefromfunc = $this->imagefunc = TRUE; $this->imagecreatefromfunc = $this->imagefunc = TRUE;
} }
if(!$this->libmethod && $this->imginfo['mime'] == 'image/gif') { /*if(!$this->libmethod && $this->imginfo['mime'] == 'image/gif') {
if(!$this->imagecreatefromfunc) { if(!$this->imagecreatefromfunc) {
return -4; return -4;
} }
@@ -219,7 +219,7 @@ class image {
$content = fread($fp, $this->imginfo['size']); $content = fread($fp, $this->imginfo['size']);
fclose($fp); fclose($fp);
$this->imginfo['animated'] = strpos($content, 'NETSCAPE2.0') === FALSE ? 0 : 1; $this->imginfo['animated'] = strpos($content, 'NETSCAPE2.0') === FALSE ? 0 : 1;
} }*/
return $this->imagecreatefromfunc ? 1 : -4; return $this->imagecreatefromfunc ? 1 : -4;
} }
@@ -295,6 +295,7 @@ class image {
} }
function Thumb_GD() { function Thumb_GD() {
if(!function_exists('imagecreatetruecolor') || !function_exists('imagecopyresampled') || !function_exists('imagejpeg') || !function_exists('imagecopymerge')) { if(!function_exists('imagecreatetruecolor') || !function_exists('imagecopyresampled') || !function_exists('imagejpeg') || !function_exists('imagecopymerge')) {
return -4; return -4;
} }
@@ -319,7 +320,7 @@ class image {
case 1: case 1:
if($this->imginfo['width'] >= $this->param['thumbwidth'] || $this->imginfo['height'] >= $this->param['thumbheight']) { if($this->imginfo['width'] >= $this->param['thumbwidth'] || $this->imginfo['height'] >= $this->param['thumbheight']) {
$thumb = array(); $thumb = array();
list(,,$thumb['width'], $thumb['height']) = $this->sizevalue(0); list($thumb['width'], $thumb['height']) = $this->scaleImage($this->param['thumbwidth'], $this->param['thumbheight'],$this->imginfo['width'],$this->imginfo['height']);
$cx = $this->imginfo['width']; $cx = $this->imginfo['width'];
$cy = $this->imginfo['height']; $cy = $this->imginfo['height'];
$thumb_photo = imagecreatetruecolor($thumb['width'], $thumb['height']); $thumb_photo = imagecreatetruecolor($thumb['width'], $thumb['height']);
@@ -361,6 +362,7 @@ class image {
break; break;
} }
clearstatcache(); clearstatcache();
if($thumb_photo) { if($thumb_photo) {
if($this->imginfo['mime'] == 'image/jpeg') { if($this->imginfo['mime'] == 'image/jpeg') {
@$imagefunc($thumb_photo, $this->target, $this->param['thumbquality']); @$imagefunc($thumb_photo, $this->target, $this->param['thumbquality']);
@@ -440,9 +442,9 @@ class image {
$im->stripImage(); //去除图片信息 $im->stripImage(); //去除图片信息
$im->setIteratorIndex(0); $im->setIteratorIndex(0);
$im->cropImage($cutw, $cuth, $startx, $starty); $im->cropImage($cutw, $cuth, $startx, $starty);
if($this->imginfo['mime'] == 'image/png') { /* if($this->imginfo['mime'] == 'image/png') {
$prefix='png:'; $prefix='png:';
}elseif($this->imginfo['mime'] == 'image/gif') { }else*/if($this->imginfo['mime'] == 'image/gif') {
$prefix='png:'; $prefix='png:';
}else{ }else{
$prefix=''; $prefix='';
@@ -484,9 +486,9 @@ class image {
$im->stripImage(); //去除图片信息 $im->stripImage(); //去除图片信息
$im->setIteratorIndex(0); $im->setIteratorIndex(0);
$im->cropImage($this->param['thumbwidth'], $this->param['thumbheight'], $startx, $starty); $im->cropImage($this->param['thumbwidth'], $this->param['thumbheight'], $startx, $starty);
if($this->imginfo['mime'] == 'image/png') { /*if($this->imginfo['mime'] == 'image/png') {
$prefix='png:'; $prefix='png:';
}elseif($this->imginfo['mime'] == 'image/gif') { }else*/if($this->imginfo['mime'] == 'image/gif') {
$prefix='png:'; $prefix='png:';
}else{ }else{
$prefix=''; $prefix='';

View File

@@ -82,7 +82,18 @@ class dzz_admincp
if(!$this->isfounder) { if(!$this->isfounder) {
$session = C::t('user')->fetch($this->adminuser['uid']); $session = C::t('user')->fetch($this->adminuser['uid']);
if($session && ($session['groupid']==1) ) { if($session && ($session['groupid']==1) ) {
$session = array_merge($session, (array)C::t('admincp_session')->fetch($this->adminuser['uid'], $session['groupid'])); if(!$s=C::t('admincp_session')->fetch($this->adminuser['uid'], $session['groupid'])){
$s=array(
'uid' => $this->adminuser['uid'],
'adminid' => $this->adminuser['adminid'],
'panel' => $this->adminuser['groupid'],
'ip' => $this->core->var['clientip'],
'dateline' => TIMESTAMP,
'errorcount' => 0,
);
C::t('admincp_session')->insert($s);
}
$session = array_merge($session, $s);
}else $session=array(); }else $session=array();
} else { } else {
$session = C::t('admincp_session')->fetch($this->adminuser['uid'], $this->panel); $session = C::t('admincp_session')->fetch($this->adminuser['uid'], $this->panel);

View File

@@ -810,4 +810,8 @@ class dzz_mime{
public static function get_type($ext) { public static function get_type($ext) {
return isset(self::$mime_maps[$ext]) ? self::$mime_maps[$ext] : 'application/octet-stream'; return isset(self::$mime_maps[$ext]) ? self::$mime_maps[$ext] : 'application/octet-stream';
} }
public function get_ext($type){
$typearr = array_flip(self::$mime_maps);
return isset($typearr[$type]) ? $typearr[$type] : 'dzz';
}
} }

View File

@@ -13,14 +13,7 @@ class helper_form {
global $_G; global $_G;
if($allowget || ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_GET['formhash']) && $_GET['formhash'] == formhash() && empty($_SERVER['HTTP_X_FLASH_VERSION']) && (empty($_SERVER['HTTP_REFERER']) || if($allowget || ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_GET['formhash']) && $_GET['formhash'] == formhash() && empty($_SERVER['HTTP_X_FLASH_VERSION']) && (empty($_SERVER['HTTP_REFERER']) ||
preg_replace("/https?:\/\/([^\:\/]+).*/i", "\\1", $_SERVER['HTTP_REFERER']) == preg_replace("/([^\:]+).*/", "\\1", $_SERVER['HTTP_HOST'])))) { preg_replace("/https?:\/\/([^\:\/]+).*/i", "\\1", $_SERVER['HTTP_REFERER']) == preg_replace("/([^\:]+).*/", "\\1", $_SERVER['HTTP_HOST'])))) {
//if(checkperm('seccode')) {
if($secqaacheck && !check_secqaa($_GET['secanswer'], $_GET['sechash'])) {
showmessage('login_question_invalid');
}
if($seccodecheck && !check_seccode($_GET['seccodeverify'], $_GET['sechash'])) {
showmessage('submit_seccode_invalid');
}
//}
return TRUE; return TRUE;
} else { } else {
showmessage('submit_invalid'); showmessage('submit_invalid');

View File

@@ -2403,21 +2403,7 @@
$relativepath = $data['dirname'] ? getstr($data['dirname']):''; $relativepath = $data['dirname'] ? getstr($data['dirname']):'';
$pfid = $data['pfid'] ? trim($data['pfid']):''; $pfid = $data['pfid'] ? trim($data['pfid']):'';
$level = 0; $level = 0;
/*if($pfid){
$folderdata = DB::result_first("select pathkey,level from %t where fid = %s",array('pichome_folder',$pfid));
$tfids = explode($data['appid'],$folderdata['pathkey']);
$level = $folderdata['level'];
$pfids = [];
foreach($tfids as $v){
$pfids[] = $v.$data['appid'];
}
//获取所有上级目录
$ppath = '';
foreach(DB::fetch_all("select fname from %t where fid in(%n)",array('pichome_folder',$pfids)) as $v){
$ppath .= '/'.$v;
}
$relativepath = str_replace($relativepath,'',$ppath);
}*/
//如果有不存在的目录则创建之 //如果有不存在的目录则创建之
$datas = array(); $datas = array();
@@ -2540,15 +2526,6 @@
$setarr['fsize'] = formatsize($setarr['size']); $setarr['fsize'] = formatsize($setarr['size']);
$setarr['ftype'] = getFileTypeName($setarr['type'], $setarr['ext']); $setarr['ftype'] = getFileTypeName($setarr['type'], $setarr['ext']);
$setarr['fdateline'] = dgmdate($setarr['dateline']/1000); $setarr['fdateline'] = dgmdate($setarr['dateline']/1000);
/* $thumbparams = ['rid' => $setarr['rid'], 'hash' => VERHASH, 'download' => 1,
'hasthumb' => 0, 'lastdate' => $setarr['lastdate']];
if(in_array($setarr['ext'],explode(',',getglobal('config/pichomecommimageext')))){
//缩略图地址
$setarr['icondata'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . Pencode($thumbparams, 0, '');
}else{
$setarr['icondata'] = geticonfromext($setarr['ext']);
}*/
$setarr['icondata'] = false; $setarr['icondata'] = false;
$setarr['width'] = ($setarr['width']) ? intval($setarr['width']):900; $setarr['width'] = ($setarr['width']) ? intval($setarr['width']):900;
$setarr['height'] = ($setarr['height']) ? intval($setarr['height']):900; $setarr['height'] = ($setarr['height']) ? intval($setarr['height']):900;
@@ -2556,7 +2533,7 @@
$setarr['path'] = $path; $setarr['path'] = $path;
$setarr['path'] = dzzencode($setarr['rid'], '', 0, 0); $setarr['path'] = dzzencode($setarr['rid'], '', 0, 0);
$setarr['aid'] = $attach['aid']; $setarr['aid'] = $attach['aid'];
$setarr['addnum'] = 1;
return $setarr; return $setarr;
} else { } else {
return array('error' => lang('data_error')); return array('error' => lang('data_error'));

View File

@@ -44,7 +44,7 @@ class io_dzz extends io_api
$arr = self::getPartInfo($content_range); $arr = self::getPartInfo($content_range);
// echo $pfid;die; // echo $pfid;die;
if ($arr['iscomplete']) { if ($arr['iscomplete']) {
if($relativePath){ if($relativePath && $relativePath != '.' && $relativePath != '..'){
$fdata = C::t('pichome_folder')->createfolerbypath($appid, $relativePath, $pfid); $fdata = C::t('pichome_folder')->createfolerbypath($appid, $relativePath, $pfid);
if (isset($fdata['error'])) { if (isset($fdata['error'])) {
return array('error' => $data['error']); return array('error' => $data['error']);
@@ -52,21 +52,40 @@ class io_dzz extends io_api
}elseif($pfid){ }elseif($pfid){
$folderdata = C::t('pichome_folder')->fetch($pfid); $folderdata = C::t('pichome_folder')->fetch($pfid);
$fdata = ['fid'=>$pfid,'level'=>$folderdata['level']]; $fdata = ['fid'=>$pfid,'level'=>$folderdata['level']];
} }else{
$fdata = ['fid'=>'','level'=>0];
} }
if (substr($filename, -7) == '.folder') {
}else{
if($relativePath && $relativePath != '.' && $relativePath != '..'){
$fdata = C::t('pichome_folder')->createfolerbypath($appid, $relativePath, $pfid);
if (isset($fdata['error'])) {
return array('error' => $data['error']);
}
}elseif($pfid){
$folderdata = C::t('pichome_folder')->fetch($pfid);
$fdata = ['fid'=>$pfid,'level'=>$folderdata['level']];
}else{
$fdata = ['fid'=>'','level'=>0];
}
}
/* if (substr($filename, -7) == '.folder') {
if(!$relativePath){ if(!$relativePath){
$patharr = explode('/',$filename); $patharr = explode('/',$filename);
array_pop($patharr); array_pop($patharr);
$relativePath = ($patharr) ? implode('/',$patharr):''; $relativePath = ($patharr) ? implode('/',$patharr):'';
} }
$fdata = C::t('pichome_folder')->createfolerbypath($appid, $relativePath, $pfid); $fdata = C::t('pichome_folder')->createfolerbypath($appid, $relativePath, $pfid);
var_dump($fdata);
die;
if (isset($fdata['error'])) { if (isset($fdata['error'])) {
return array('error' => $data['error']); return array('error' => $data['error']);
} }
return $fdata; return $fdata;
} }*/
$arr['flag'] = $appid . '_' . $relativePath; $arr['flag'] = $appid . '_' . $relativePath;
//获取文件内容 //获取文件内容
$fileContent = ''; $fileContent = '';
@@ -326,8 +345,66 @@ class io_dzz extends io_api
if ($rid = DB::result_first("select rid from %t where path = %d and appid = %s ", array('pichome_resources_attr', $attach['aid'], $appid))) { if ($rid = DB::result_first("select rid from %t where path = %d and appid = %s ", array('pichome_resources_attr', $attach['aid'], $appid))) {
$resourcesdata = C::t('pichome_resources')->fetch($rid); $resourcesdata = C::t('pichome_resources')->fetch($rid);
if($resourcesdata['isdelete']){
$rsetarr = [
'lastdate' => TIMESTAMP * 1000,
'appid' => $appid,
'uid' => $_G['uid'],
'username' => $_G['username'],
'apptype' => 1,
'size' => $resourcesdata['size'],
'type' => $resourcesdata['type'],
'ext' => $resourcesdata['ext'],
'mtime' => TIMESTAMP * 1000,
'dateline' => TIMESTAMP * 1000,
'btime' => TIMESTAMP * 1000,
'width' => $resourcesdata['width'],
'height' => $resourcesdata['height'],
'lastdate' => TIMESTAMP,
'level' => isset($folderdata['level']) ? $folderdata['level'] : 0,
'name' => $resourcesdata['name'],
'fids' => $folderdata['fid'] ? $folderdata['fid'] : ''
];
if ($rsetarr['rid'] = C::t('pichome_resources')->insert_data($rsetarr)) {//插入主表
//获取附属表数据
$attrdata = C::t('pichome_resources_attr')->fetch($rid);
$attrdata['rid'] = $rsetarr['rid'];
$attrdata['appid'] = $appid;
$attrdata['searchval'] = $rsetarr['name'];
C::t('attachment')->addcopy_by_aid($attrdata['path']);//增加图片使用数
C::t('pichome_resources_attr')->insert($attrdata);
//目录数据
if ($folderdata['fid']) {
$frsetarr = ['appid' => $appid, 'rid' => $rsetarr['rid'], 'fid' => $folderdata['fid']];
C::t('pichome_folderresources')->insert($frsetarr);
//C::t('pichome_folder')->add_filenum_by_fid($folderdata['fid'], 1);
}
//缩略图数据
$thumbrecorddata = C::t('thumb_record')->fetch($rid);
$thumbrecorddata['rid'] = $rsetarr['rid'];
C::t('thumb_record')->insert_data($thumbrecorddata);
//颜色数据
foreach (DB::fetch_all("select * from %t where rid = %s", array('pichome_palette', $rid)) as $v) {
$v['rid'] = $rsetarr['rid'];
unset($v['id']);
C::t('pichome_palette')->insert($v);
}
C::t('pichome_vapp')->addcopy_by_appid($appid);
$data = C::t('pichome_resources')->fetch_by_rid($rsetarr['rid']);
$data['addnum'] = 1;
$data['folder'] = C::t('pichome_folder')->fetch_allfolder_by_fid($folderdata['fid']);
return $data;
}else{
return array('error' => lang('data_error'));
}
}else{
$nfids = explode(',', $resourcesdata['fids']); $nfids = explode(',', $resourcesdata['fids']);
$iscurrentfolder = 1;
if (!in_array($fid, $nfids)) { if (!in_array($fid, $nfids)) {
$iscurrentfolder = 0;
$nfids[] = $fid; $nfids[] = $fid;
} }
$icoarr = [ $icoarr = [
@@ -346,13 +423,15 @@ class io_dzz extends io_api
if (C::t('pichome_resources')->update($rid, $icoarr)) {//插入主表 if (C::t('pichome_resources')->update($rid, $icoarr)) {//插入主表
//目录数据 //目录数据
if ($fid) { if (!$iscurrentfolder && $fid) {
$frsetarr = ['appid' => $appid, 'rid' => $icoarr['rid'], 'fid' => $fid]; $frsetarr = ['appid' => $appid, 'rid' => $rid, 'fid' => $fid];;
C::t('pichome_folderresources')->insert($frsetarr); C::t('pichome_folderresources')->insert($frsetarr);
C::t('pichome_folder')->add_filenum_by_fid($fid, 1); // C::t('pichome_folder')->add_filenum_by_fid($fid, 1);
} }
$data = C::t('pichome_resources')->fetch_by_rid($rid); $data = C::t('pichome_resources')->fetch_by_rid($rid);
$data['addnum'] = ($iscurrentfolder) ? 0:1;
$data['onlyfolderadd'] = 1;
$data['folder'] = C::t('pichome_folder')->fetch_allfolder_by_fid($fid); $data['folder'] = C::t('pichome_folder')->fetch_allfolder_by_fid($fid);
return $data; return $data;
}else{ }else{
@@ -360,6 +439,8 @@ class io_dzz extends io_api
} }
} }
}
elseif ($rid = DB::result_first("select rid from %t where path = %d ", array('pichome_resources_attr',$attach['aid']))) {//如果当前库没有该文件,但其它库有 elseif ($rid = DB::result_first("select rid from %t where path = %d ", array('pichome_resources_attr',$attach['aid']))) {//如果当前库没有该文件,但其它库有
//获取原文件基本数据 //获取原文件基本数据
$resourcesdata = C::t('pichome_resources')->fetch($rid); $resourcesdata = C::t('pichome_resources')->fetch($rid);
@@ -412,6 +493,7 @@ class io_dzz extends io_api
C::t('pichome_vapp')->addcopy_by_appid($appid); C::t('pichome_vapp')->addcopy_by_appid($appid);
$data = C::t('pichome_resources')->fetch_by_rid($rsetarr['rid']); $data = C::t('pichome_resources')->fetch_by_rid($rsetarr['rid']);
$data['folder'] = C::t('pichome_folder')->fetch_allfolder_by_fid($folderdata['fid']); $data['folder'] = C::t('pichome_folder')->fetch_allfolder_by_fid($folderdata['fid']);
$data['addnum'] = 1;
return $data; return $data;
}else{ }else{
return array('error' => lang('data_error')); return array('error' => lang('data_error'));
@@ -473,6 +555,7 @@ class io_dzz extends io_api
$setarr['aid'] = $attach['aid']; $setarr['aid'] = $attach['aid'];
$setarr['dpath'] = dzzencode($setarr['rid'], '', 0, 0); $setarr['dpath'] = dzzencode($setarr['rid'], '', 0, 0);
$setarr['realpath'] = IO::getStream('attach::'.$attach['aid']); $setarr['realpath'] = IO::getStream('attach::'.$attach['aid']);
$setarr['addnum'] = 1;
return $setarr; return $setarr;
} else { } else {
return array('error' => lang('data_error')); return array('error' => lang('data_error'));
@@ -528,7 +611,7 @@ class io_dzz extends io_api
$data = C::t('pichome_resources')->fetch_data_by_rid($path); $data = C::t('pichome_resources')->fetch_data_by_rid($path);
return $data; return $data;
} else { } else {
$path = $this->parsePath($path); // $path = $this->parsePath($path);
global $Types; global $Types;
$pathinfo = pathinfo($path); $pathinfo = pathinfo($path);
$ext = strtolower($pathinfo['extension']); $ext = strtolower($pathinfo['extension']);
@@ -666,15 +749,9 @@ class io_dzz extends io_api
}elseif(strpos($path, 'dzz::') === 0){ }elseif(strpos($path, 'dzz::') === 0){
$path = str_replace('dzz::','',$path); $path = str_replace('dzz::','',$path);
return getglobal('setting/attachurl') . $path; return getglobal('setting/attachurl') . $path;
}else{
$path = $this->parsePath($path);
$localpath = BS . $path;
if(is_file($localpath)){
return $localpath;
}else{ }else{
return $path; return $path;
} }
}
} }
@@ -697,17 +774,9 @@ class io_dzz extends io_api
}elseif(preg_match('/^\w{32}$/',$path)){ }elseif(preg_match('/^\w{32}$/',$path)){
$resources = C::t('resources')->fetch_data_by_rid($path); $resources = C::t('resources')->fetch_data_by_rid($path);
return IO::getStream($resources['path']); return IO::getStream($resources['path']);
}else{
$path = $this->parsePath($path);
$localpath = BS . $path;
if(is_file(getglobal('setting/attachdir') . $path)){
return getglobal('setting/attachdir') . $path;
}
elseif(is_file($localpath)){
return $localpath;
}else{ }else{
return $path; return $path;
}
} }
} }
@@ -1012,6 +1081,8 @@ class io_dzz extends io_api
$extraparams['istmp'] = 1; $extraparams['istmp'] = 1;
$extraparams['nomark'] = 1; $extraparams['nomark'] = 1;
$thumbpath = IO::createThumbByOriginal($filepath, $data, $width, $height, $thumbtype, 0, $extraparams); $thumbpath = IO::createThumbByOriginal($filepath, $data, $width, $height, $thumbtype, 0, $extraparams);
$bz = io_remote::getBzByRemoteid($defaultspace['remoteid']);
$thumbpath = $bz.$thumbpath;
if($thumbpath){ if($thumbpath){
$img = IO::getFileuri($thumbpath); $img = IO::getFileuri($thumbpath);
if ($returnurl) return $img; if ($returnurl) return $img;

View File

@@ -20,10 +20,19 @@ class memory_driver_memcache
$connect = @$this->obj->connect($config['server'], $config['port']); $connect = @$this->obj->connect($config['server'], $config['port']);
} }
$this->enable = $connect ? true : false; $this->enable = $this->checkEnable($connect);
} }
} }
public function checkEnable($connect){
if($connect){
$this->set('_check_','_check_',10);
if($this->get('_check_')=='_check_'){
return true;
}
$this->rm('_check_');
}
return false;
}
public function get($key) { public function get($key) {
return $this->obj->get($key); return $this->obj->get($key);
} }

View File

@@ -12,9 +12,22 @@ class memory_driver_memcached
public function init($config) { public function init($config) {
if(!empty($config['server'])) { if(!empty($config['server'])) {
$this->obj = new Memcached(); $this->obj = new Memcached();
$connect = $this->connectd($config['server'], $config['port']); $connect = $this->connectd($config['server'], $config['port']);
$this->enable = $connect ? true : false; $this->enable=$this->checkEnable($connect);
} }
}
public function checkEnable($connect){
if($connect){
$this->set('_check_','_check_',10);
if($this->get('_check_')=='_check_'){
return true;
}
$this->rm('_check_');
}
return false;
} }
public function connectd($host , $port){ public function connectd($host , $port){
$servers = $this->obj->getServerList(); $servers = $this->obj->getServerList();

View File

@@ -18,7 +18,7 @@ class memory_driver_redis
} catch (RedisException $e) { } catch (RedisException $e) {
echo $e; echo $e;
} }
$this->enable = $connect ? true : false; $this->enable = $this->checkEnable($connect);
if($this->enable) { if($this->enable) {
if($config['requirepass']) { if($config['requirepass']) {
$this->obj->auth($config['requirepass']); $this->obj->auth($config['requirepass']);
@@ -27,7 +27,16 @@ class memory_driver_redis
} }
} }
} }
public function checkEnable($connect){
if($connect){
$this->set('_check_','_check_',10);
if($this->get('_check_')=='_check_'){
return true;
}
$this->rm('_check_');
}
return false;
}
function &instance() { function &instance() {
static $object; static $object;
if(empty($object)) { if(empty($object)) {

View File

@@ -45,7 +45,7 @@ class table_cache extends dzz_table
public function fetch_cachedata_by_cachename($cachename, $expiretime = 600) public function fetch_cachedata_by_cachename($cachename, $expiretime = 600)
{ {
if (memory('check')) { if (memory('check')) {
$data = ($data = memory('get', $cachename)) === false ? array() : unserialize($data['cachevalue']); $data = ($data = memory('get', $cachename)) === false ? array() : (unserialize($data['cachevalue']) ? unserialize($data['cachevalue']):$data['cachevalue']);
} else { } else {
$cachedata = parent::fetch($cachename); $cachedata = parent::fetch($cachename);

View File

@@ -110,7 +110,7 @@ class table_connect_storage extends dzz_table
if (DB::result_first("select COUNT(*) from %t where cloudname=%s ", array($this->_table, $cloudname))) { if (DB::result_first("select COUNT(*) from %t where cloudname=%s ", array($this->_table, $cloudname))) {
$cloudname = preg_replace("/\(\d+\)/i", '', $cloudname) . '(' . ($i + 1) . ')'; $cloudname = preg_replace("/\(\d+\)/i", '', $cloudname) . '(' . ($i + 1) . ')';
$i += 1; $i += 1;
return self::getFolderName($cloudname); return self::getcloudname($cloudname);
} else { } else {
return $cloudname; return $cloudname;
} }

View File

@@ -0,0 +1,224 @@
<?php
if(!defined('IN_OAOOA')) {
exit('Access Denied');
}
class table_my_file extends dzz_table
{
public function __construct()
{
$this->_table = 'my_file';
$this->_pk = 'id';
parent::__construct();
}
public function delete_by_id($id){
$data = parent::fetch($id);
if(parent::delete($id)){
C::t('attachment')->delete_by_aid($aid);
}
return true;
}
public function insert_by_fileurl($setarr){
global $_G;
//获取文件后缀
$filedirpathinfo = pathinfo($setarr['fileurl']);
$filedirextensionarr = explode('?', $filedirpathinfo['extension']);
$ext = strtolower($filedirextensionarr[0]);
//缓存文件位置
$cachepath = 'data/attachment/cache/'.md5($_G['uid'].$setarr['fileurl'].$setarr['type']).'.'.$ext;
//将文件写入到缓冲区
if($this->writeFileurlToFile($setarr['fileurl'],$cachepath)){
$md5 = md5_file($cachepath);
$filesize = filesize($cachepath);
if(!$attachment = C::t('attachment')->fetch_by_md5($md5)){
$filepath = $this->getPath($ext ? ('.' . $ext) : '', 'dzz');
$remoteid = 0;
if($_G['setting']['defaultspace']){
$defaultspace = $_G['setting']['defaultspace'];
$bz = $defaultspace['bz'].':'.$defaultspace['did'].':';
$remoteid = $defaultspace['did'];
}else{
$bz = 'dzz::';
}
$savepath = $bz.$filepath;
//移动文件成功后插入attachment表
if(IO::moveThumbFile($savepath,$cachepath)){
@unlink($cachepath);
$attachment = [
'filename'=>$setarr['name'].'.'.$ext,
'filetype'=>$ext,
'filesize'=>$filesize,
'attachment'=>$filepath,
'remote'=>$remoteid,
'md5'=>$md5,
'dateline'=>TIMESTAMP
];
if (!$attachment['aid'] = C::t('attachment')->insert($attachment, 1)){
IO::Delete($savepath);
return false;
}
}else{
return false;
}
}
else{
return false;
}
}else{
return false;
}
$filearr = [
'uid'=>$_G['uid'],
'username'=>$_G['username'],
'source'=>$setarr['type'],
'aid'=>$attachment['aid'],
'filetype'=>$attachment['filetype'],
'filename'=>$attachment['filename'],
'dateline'=>TIMESTAMP
];
if($id = DB::result_first("select id from %t where uid = %d and aid = %d",array($this->_table,$filearr['uid'],$filearr['aid']))){
parent::update($id,$filearr);
return $id;
}
if($id = parent::insert($filearr,1)){
C::t('attachment')->addcopy_by_aid($attachment['aid']);
return $id;
}else{
return false;
}
}
public function insert_by_base64data($setarr){
global $_G;
//获取文件后缀
if(preg_match("/data:(.+?);base64,/i",$setarr['base64'],$matches)){
$mime=$matches[1];
}
$ext = dzz_mime::get_ext($mime);
$base64Data = preg_replace("/data:(.+?);base64,/i",'',$setarr['base64']);
$decodedData = base64_decode($base64Data);
$md5 = md5($decodedData);
$filesize = fix_integer_overflow(strlen($decodedData));
if(!$attachment = C::t('attachment')->fetch_by_md5($md5)){
//缓存文件位置
$cachepath = 'data/attachment/cache/'.md5($_G['uid'].$md5.$setarr['type']).'.'.$ext;
//将文件写入到缓冲区
if($this->writeContentToFile($decodedData,$cachepath)){
$filepath = $this->getPath($ext ? ('.' . $ext) : '', 'dzz');
$remoteid = 0;
if($_G['setting']['defaultspace']){
$defaultspace = $_G['setting']['defaultspace'];
$bz = $defaultspace['bz'].':'.$defaultspace['did'].':';
$remoteid = $defaultspace['did'];
}else{
$bz = 'dzz::';
}
$savepath = $bz.$filepath;
//移动文件成功后插入attachment表
if(IO::moveThumbFile($savepath,$cachepath)){
@unlink($cachepath);
$attachment = [
'filename'=>$setarr['name'],
'filetype'=>$ext,
'filesize'=>$filesize,
'attachment'=>$filepath,
'remote'=>$remoteid,
'md5'=>$md5,
'dateline'=>TIMESTAMP
];
if (!$attachment['aid'] = C::t('attachment')->insert($attachment, 1)){
IO::Delete($savepath);
return false;
}
}else{
return false;
}
}
else{
return false;
}
}
$filearr = [
'uid'=>$_G['uid'],
'username'=>$_G['username'],
'source'=>$setarr['type'],
'aid'=>$attachment['aid'],
'filetype'=>$attachment['filetype'],
'filename'=>$attachment['filename'],
'dateline'=>TIMESTAMP
];
if($id = DB::result_first("select id from %t where uid = %d and aid = %d",array($this->_table,$filearr['uid'],$filearr['aid']))){
parent::update($id,$filearr);
return $id;
}
if($id = parent::insert($filearr,1)){
C::t('attachment')->addcopy_by_aid($attachment['aid']);
return $id;
}else{
return false;
}
}
public function getPath($ext, $dir = 'dzz')
{
global $_G;
if ($ext && in_array(trim($ext, '.'), $_G['setting']['unRunExts'])) {
$ext = '.dzz';
}
$subdir = $subdir1 = $subdir2 = '';
$subdir1 = date('Ym');
$subdir2 = date('d');
$subdir = $subdir1 . '/' . $subdir2 . '/';
$target1 = $dir . '/' . $subdir . 'index.html';
$target = $dir . '/' . $subdir;
$target_attach = $target1;
$targetpath = $_G['setting']['attachdir'] . dirname($target_attach);
dmkdir($targetpath);
return $target . date('His') . '' . strtolower(random(16)) . $ext;
}
public function writeContentToFile($filecontent,$filepath){
$filedir = dirname($filepath);
dmkdir($filedir);
$handle = fopen($filepath, 'w+');
$chunkSize = 8192; // 每次读取的块大小
$offset = 0;
while ($offset < strlen($filecontent)) {
$chunk = substr($filecontent, $offset, $chunkSize);
fwrite($handle, $chunk);
$offset += strlen($chunk);
}
fclose($handle);
if(is_file($filepath)){
return true;
}else{
return false;
}
}
public function writeFileurlToFile($path, $filepath)
{
$filedir = dirname($filepath);
dmkdir($filedir);
$handle = fopen($path, 'rb');
$succ = 1;
while (!feof($handle)) {
$fileContent = fread($handle, 8192);
if (file_put_contents($filepath, $fileContent, FILE_APPEND) === false) {
$succ = 0;
}
unset($fileContent);
}
fclose($handle);
if (!$succ) {
@unlink($filepath);
return false;
}
return $filepath;
}
}

View File

@@ -43,13 +43,19 @@ class table_pichome_banner extends dzz_table
} }
//删除栏目 //删除栏目
public function delete_by_id($id){ public function delete_by_id($id){
if(!$bdata = parent::fetch($id)) return false; if(!$bdata = parent::fetch($id)) return 0;
foreach(DB::fetch_all("select id,bdata from %t where pathkey like %s",[$this->_table,str_replace('_','\_',$bdata['pathkey']).'%']) as $v){ $i=0;
if(C::t('pichome_route')->delete_by_abid($v['bdata'],1)){ //删除上级时同时删除所有下级
parent::delete($v['id']); $i=0;
foreach(DB::fetch_all("select id,bdata,btype from %t where pathkey like %s",[$this->_table,str_replace('_','\_',$bdata['pathkey']).'%']) as $v){
if( parent::delete($v['id'])){
$i++;
if(!DB::result_first("select COUNT(*) from %t where bdata=%s and btype = %d",array($this->_table,$bdata['bdata'],$bdata['btype']))){
C::t('pichome_route')->delete_by_abid($v['bdata'],1,$bdata['btype']);
} }
} }
return true; }
return $i;
} }
public function fetch_bannerbasic_by_bid($bid){ public function fetch_bannerbasic_by_bid($bid){
if(!$bannerdata = parent::fetch($bid)) return false; if(!$bannerdata = parent::fetch($bid)) return false;

View File

@@ -295,6 +295,7 @@ class table_pichome_folder extends dzz_table
public function fetch_folder_by_appid_pfid($appid,$pfid=[]){ public function fetch_folder_by_appid_pfid($appid,$pfid=[]){
$folderdata = []; $folderdata = [];
if(!empty($pfid)){ if(!empty($pfid)){
foreach(DB::fetch_all("select fid,fname,pathkey,appid,pfid,filenum as nosubfilenum,level as perm from %t where appid = %s and pfid in(%n) order by disp asc",array($this->_table,$appid,$pfid)) as $v){ foreach(DB::fetch_all("select fid,fname,pathkey,appid,pfid,filenum as nosubfilenum,level as perm from %t where appid = %s and pfid in(%n) order by disp asc",array($this->_table,$appid,$pfid)) as $v){
$v['filenum'] = DB::result_first("SELECT count(DISTINCT fr.rid) FROM %t fr $v['filenum'] = DB::result_first("SELECT count(DISTINCT fr.rid) FROM %t fr

View File

@@ -23,8 +23,10 @@
if(parent::insert($setarr)){ if(parent::insert($setarr)){
$ofids = DB::result_first("select fids from %t where rid = %s",array('pichome_resources',$setarr['rid'])); $ofids = DB::result_first("select fids from %t where rid = %s",array('pichome_resources',$setarr['rid']));
$ofidarr = explode(',',$ofids); $ofidarr = explode(',',$ofids);
$fidarr[] = $setarr['fid']; if(!in_array($setarr['fid'],$ofidarr)){
$fids = implode(',',$fidarr); $ofidarr[] = $setarr['fid'];
}
$fids = implode(',',$ofidarr);
C::t('pichome_resources')->update_by_rids($setarr['appid'],$setarr['rid'],['fids'=>$fids,'lastdate'=>TIMESTMP]); C::t('pichome_resources')->update_by_rids($setarr['appid'],$setarr['rid'],['fids'=>$fids,'lastdate'=>TIMESTMP]);
C::t('pichome_folder')->add_filenum_by_fid($setarr,1); C::t('pichome_folder')->add_filenum_by_fid($setarr,1);
} }
@@ -53,6 +55,7 @@
if(!is_array($rids)) $rids = (array)$rids; if(!is_array($rids)) $rids = (array)$rids;
if(!is_array($fids)) $fids = (array)$fids; if(!is_array($fids)) $fids = (array)$fids;
$dids = []; $dids = [];
//print_r(DB::fetch_all("select * from %t where rid in(%n) and fid in(%n)",array($this->_table,$rids,$fids)));die;
foreach(DB::fetch_all("select * from %t where rid in(%n) and fid in(%n)",array($this->_table,$rids,$fids)) as $v){ foreach(DB::fetch_all("select * from %t where rid in(%n) and fid in(%n)",array($this->_table,$rids,$fids)) as $v){
$dids[] = $v['id']; $dids[] = $v['id'];
$rdata = DB::fetch_first("select fids,isdelete from %t where rid = %s",array('pichome_resources',$v['rid'])); $rdata = DB::fetch_first("select fids,isdelete from %t where rid = %s",array('pichome_resources',$v['rid']));

View File

@@ -248,6 +248,7 @@ class table_pichome_resources extends dzz_table
if ($downshare[$resourcesdata['appid']]['isdelete']) return array(); if ($downshare[$resourcesdata['appid']]['isdelete']) return array();
$attrdata = C::t('pichome_resources_attr')->fetch($rid); $attrdata = C::t('pichome_resources_attr')->fetch($rid);
$resourcesdata = array_merge($resourcesdata, $attrdata); $resourcesdata = array_merge($resourcesdata, $attrdata);
$resourcesdata['remoteid'] = 0;
if (is_numeric($resourcesdata['path'])) { if (is_numeric($resourcesdata['path'])) {
$attachment = C::t('attachment')->fetch(intval($resourcesdata['path'])); $attachment = C::t('attachment')->fetch(intval($resourcesdata['path']));
$bz = io_remote::getBzByRemoteid($attachment['remote']); $bz = io_remote::getBzByRemoteid($attachment['remote']);
@@ -260,12 +261,19 @@ class table_pichome_resources extends dzz_table
$resourcesdata['bz'] = 'dzz::'; $resourcesdata['bz'] = 'dzz::';
} else { } else {
$patharr = explode(':', $downshare[$resourcesdata['appid']]['path']); $patharr = explode(':', $downshare[$resourcesdata['appid']]['path']);
if(is_numeric($patharr[1])){
$resourcesdata['bz'] = ($patharr[1]) ? $patharr[0] . ':' . $patharr[1] . ':' : 'dzz::'; $resourcesdata['bz'] = ($patharr[1]) ? $patharr[0] . ':' . $patharr[1] . ':' : 'dzz::';
$resourcesdata['remoteid'] = $patharr[1]; $resourcesdata['remoteid'] = $patharr[1];
}else{
$resourcesdata['bz'] = 'dzz::';
}
} }
$resourcesdata['path'] = $downshare[$resourcesdata['appid']]['path'] . BS . $resourcesdata['path']; $resourcesdata['path'] = $downshare[$resourcesdata['appid']]['path'] . BS . $resourcesdata['path'];
} }
$resourcesdata['vapptype'] = $downshare[$resourcesdata['appid']]['type']; $resourcesdata['vapptype'] = $downshare[$resourcesdata['appid']]['type'];
if($resourcesdata['vapptype'] == 3) $resourcesdata['iswebsitefile'] = 1;
else $resourcesdata['iswebsitefile'] =0;
return $resourcesdata; return $resourcesdata;
} }
@@ -339,10 +347,10 @@ class table_pichome_resources extends dzz_table
if ($did == 1 || $thumurlmod) { if ($did == 1 || $thumurlmod) {
//小图参数 //小图参数
$smallthumbparams = ['rid' => $resourcesdata['rid'], 'hash' => VERHASH, 'download' => $download, $smallthumbparams = ['rid' => $resourcesdata['rid'], 'hash' => VERHASH, 'download' => $download,
'thumbsign' => '0', 'ext' => $resourcesdata['ext'], 'appid' => $resourcesdata['appid']]; 'thumbsign' => '0', 'path'=>$resourcesdata['path'],'ext' => $resourcesdata['ext'], 'appid' => $resourcesdata['appid'],'hasthumb'=>$resourcesdata['hasthumb']];
//大图参数 //大图参数
$largethumbparams = ['rid' => $resourcesdata['rid'], 'hash' => VERHASH, 'download' => $download, $largethumbparams = ['rid' => $resourcesdata['rid'], 'hash' => VERHASH, 'download' => $download,
'thumbsign' => '1', 'ext' => $resourcesdata['ext'], 'appid' => $resourcesdata['appid']]; 'thumbsign' => '1','path'=>$resourcesdata['path'], 'ext' => $resourcesdata['ext'], 'appid' => $resourcesdata['appid'],'hasthumb'=>$resourcesdata['hasthumb']];
if ($apptype == 3 || $apptype == 1) { if ($apptype == 3 || $apptype == 1) {
$thumbdata = C::t('thumb_record')->fetch($resourcesdata['rid']); $thumbdata = C::t('thumb_record')->fetch($resourcesdata['rid']);
if ($thumbdata['sstatus']) $imgdata['icondata'] = getglobal('siteurl') . IO::getFileuri($thumbdata['spath']); if ($thumbdata['sstatus']) $imgdata['icondata'] = getglobal('siteurl') . IO::getFileuri($thumbdata['spath']);
@@ -376,7 +384,7 @@ class table_pichome_resources extends dzz_table
} }
//大图地址 //大图地址
if (in_array($ext, explode(',', getglobal('config/pichomecommimageext')))) { if (!$resourcesdata['hasthumb'] && in_array($ext, explode(',', getglobal('config/pichomecommimageext')))) {
$imgdata['originalimg'] = IO::getFileUri($thumbdir . BS . $resourcesdata['path']); $imgdata['originalimg'] = IO::getFileUri($thumbdir . BS . $resourcesdata['path']);
} else { } else {
$imgdata['originalimg'] = $imgdata['icondata']; $imgdata['originalimg'] = $imgdata['icondata'];
@@ -409,7 +417,7 @@ class table_pichome_resources extends dzz_table
} }
$originalimg = $thumbdir . '/.bf/.preview/' . $thumbpath . '/' . $bid . '.hd.webp'; $originalimg = $thumbdir . '/.bf/.preview/' . $thumbpath . '/' . $bid . '.hd.webp';
//大图地址 //大图地址
if (in_array($ext, $pichomespecialimgextarr) && IO::checkfileexists($originalimg)) { if (!$resourcesdata['hasthumb'] && in_array($ext, $pichomespecialimgextarr) && IO::checkfileexists($originalimg)) {
$imgdata['originalimg'] = IO::getFileUri($originalimg); $imgdata['originalimg'] = IO::getFileUri($originalimg);
} else { } else {
$imgdata['originalimg'] = $imgdata['icondata']; $imgdata['originalimg'] = $imgdata['icondata'];
@@ -485,7 +493,7 @@ class table_pichome_resources extends dzz_table
if ($resourcesdata['height'] == 0) $resourcesdata['height'] = 900; if ($resourcesdata['height'] == 0) $resourcesdata['height'] = 900;
$thumbwidth = getglobal('config/pichomethumlargwidth') ? getglobal('config/pichomethumlargwidth') : 1920; $thumbwidth = getglobal('config/pichomethumlargwidth') ? getglobal('config/pichomethumlargwidth') : 1920;
$thumbheight = getglobal('config/pichomethumlargheight') ? getglobal('config/pichomethumlargheight') : 1080; $thumbheight = getglobal('config/pichomethumlargheight') ? getglobal('config/pichomethumlargheight') : 1080;
$thumsizearr = $this->getImageThumbsize($resourcesdata['width'], $resourcesdata['height'], $thumbwidth, $thumbheight); $thumsizearr = $this->scaleImage($resourcesdata['width'], $resourcesdata['height'], $thumbwidth, $thumbheight);
$resourcesdata['iconwidth'] = $thumsizearr[0]; $resourcesdata['iconwidth'] = $thumsizearr[0];
$resourcesdata['iconheight'] = $thumsizearr[1]; $resourcesdata['iconheight'] = $thumsizearr[1];
@@ -528,6 +536,7 @@ class table_pichome_resources extends dzz_table
if($v['isdelete']){ if($v['isdelete']){
$v['share'] = $v['download'] = $v['collection'] = 0; $v['share'] = $v['download'] = $v['collection'] = 0;
}else{ }else{
$v['share'] = C::t('pichome_vapp')->getpermbypermdata($downshare[$v['appid']]['share'], $v['appid'], 'share'); $v['share'] = C::t('pichome_vapp')->getpermbypermdata($downshare[$v['appid']]['share'], $v['appid'], 'share');
$v['download'] = C::t('pichome_vapp')->getpermbypermdata($downshare[$v['appid']]['download'], $v['appid'], 'download'); $v['download'] = C::t('pichome_vapp')->getpermbypermdata($downshare[$v['appid']]['download'], $v['appid'], 'download');
$v['collection'] = (defined('PICHOME_LIENCE') && ($_G['adminid'] == 1 || ($_G['uid'] && !$_G['config']['pichomeclosecollect']))) ? 1 : 0; $v['collection'] = (defined('PICHOME_LIENCE') && ($_G['adminid'] == 1 || ($_G['uid'] && !$_G['config']['pichomeclosecollect']))) ? 1 : 0;
@@ -538,15 +547,18 @@ class table_pichome_resources extends dzz_table
} else { } else {
$imgdata = $this->getfileimageurl($v, $downshare[$v['appid']]['path'], $downshare[$v['appid']]['type'], $v['download']); $imgdata = $this->getfileimageurl($v, $downshare[$v['appid']]['path'], $downshare[$v['appid']]['type'], $v['download']);
} }
$v['hasthumb'] = $imagedatas[$v['rid']]['imgstatus'] ? intval($imagedatas[$v['rid']]['imgstatus']):0;
$v = array_merge($v, $imgdata); $v = array_merge($v, $imgdata);
$v['annonationnum'] = $annonationnumdata[$v['rid']]['num']; $v['annonationnum'] = $annonationnumdata[$v['rid']]['num'];
$thumbwidth = getglobal('config/pichomethumsmallwidth') ? getglobal('config/pichomethumsmallwidth') : 360; $thumbwidth = getglobal('config/pichomethumsmallwidth') ? getglobal('config/pichomethumsmallwidth') : 360;
$thumbheight = getglobal('config/pichomethumsmallwidth') ? getglobal('config/pichomethumsmallwidth') : 360; $thumbheight = getglobal('config/pichomethumsmallwidth') ? getglobal('config/pichomethumsmallwidth') : 360;
if ($v['width'] == 0) $v['width'] = 900; if ($v['width'] == 0) $v['width'] = 900;
if ($v['height'] == 0) $v['height'] = 900; if ($v['height'] == 0) $v['height'] = 900;
$thumsizearr = $this->getImageThumbsize($v['width'], $v['height'], $thumbwidth, $thumbheight); if($v['hasthumb']){
$thumsizearr = $this->scaleImage($v['width'], $v['height'], $thumbwidth, $thumbheight);
$v['thumbwidth'] = $thumsizearr[0]; $v['thumbwidth'] = $thumsizearr[0];
$v['thumbheight'] = $thumsizearr[1]; $v['thumbheight'] = $thumsizearr[1];
}
//获取文件所属目录数 //获取文件所属目录数
$v['foldernum'] = DB::result_first("select count(id) from %t where rid = %s", array('pichome_folderresources', $v['rid'])); $v['foldernum'] = DB::result_first("select count(id) from %t where rid = %s", array('pichome_folderresources', $v['rid']));
$intcolor = DB::result_first("select color from %t where rid = %s order by weight desc", array('pichome_palette', $v['rid'])); $intcolor = DB::result_first("select color from %t where rid = %s order by weight desc", array('pichome_palette', $v['rid']));
@@ -597,7 +609,34 @@ class table_pichome_resources extends dzz_table
return array($width, $height); return array($width, $height);
} }
function scaleImage($owidth,$oheight,$width,$height) {
if($owidth>$width && $oheight>$height){
$or=$owidth/$oheight;
$r=$width/$height;
if($or>$r){
if($oheight<$height){
$height=$oheight;
$width=$owidth;
}else{
$width=ceil($height*$or);
}
}else{
if($owidth<$width){
$height=$oheight;
$width=$owidth;
}else{
$height=ceil($width/$or);
}
}
}else{
$width=$owidth;
$height=$oheight;
}
//Return the results
return array($width,$height);
}
public function geticondata_by_rid($rid, $onlyicon = 0) public function geticondata_by_rid($rid, $onlyicon = 0)
{ {
$resourcesdata = DB::fetch_first("select r.rid,r.isdelete,r.appid,r.ext,r.type,ra.path as fpath, $resourcesdata = DB::fetch_first("select r.rid,r.isdelete,r.appid,r.ext,r.type,ra.path as fpath,

View File

@@ -60,7 +60,7 @@ class table_pichome_route extends dzz_table
global $_G; global $_G;
//$surl = $this->path_transferred_meaning($url); //$surl = $this->path_transferred_meaning($url);
if(!$path) $path = $this->create_shortpath($url); if(!$path) $path = $this->create_shortpath($url);
elseif(!preg_match('/^\w+$/',$path)) return false; elseif(!preg_match('/^\w{1,30}$/',$path)) return false;
// $spath = $this->path_transferred_meaning($path); // $spath = $this->path_transferred_meaning($path);
if(!DB::result_first("select id from %t where path = %s ",array($this->_table,$path))){ if(!DB::result_first("select id from %t where path = %s ",array($this->_table,$path))){
if($id = DB::result_first("select id from %t where url = %s",array($this->_table,$url))){ if($id = DB::result_first("select id from %t where url = %s",array($this->_table,$url))){
@@ -79,30 +79,42 @@ class table_pichome_route extends dzz_table
} }
//删除栏目单页的route规则 //删除栏目单页的route规则
public function delete_by_abid($id,$isbanner = 1){ public function delete_by_abid($id,$isbanner = 1,$btype=2){
$params = [$this->_table]; $params = [$this->_table];
if(!$isbanner){ if(!$isbanner){
$wheresql = " url like %s "; $wheresql = " url like %s ";
$params[] = $this->path_transferred_meaning('%mod=alonepage&op=view#id='.$id.'%'); $params[] = $this->path_transferred_meaning('%mod=alonepage&op=view#id='.$id.'%');
$sid = 'a_'.$id;
}else{ }else{
$wheresql = " url like %s "; $wheresql = " url like %s ";
$params[] = $this->path_transferred_meaning('%mod=banner&op=index#id='.$id.'%'); $params[] = $this->path_transferred_meaning('%mod=banner&op=index#id='.$id.'%');
$sid = ($btype == 4) ? 'tb_'.$id:'b_'.$id;
} }
$i=0;
foreach(DB::fetch_all("select id from %t where $wheresql ",$params) as $v){ foreach(DB::fetch_all("select id from %t where $wheresql ",$params) as $v){
parent::delete($v['id']); if(parent::delete($v['id'])){
$this->delQRcodeBySid($sid);
$i++;
}
} }
$this->update_route(); $this->update_route();
return $i;
} }
////删除库的route规则 ////删除库的route规则
public function delete_by_appid($appid){ public function delete_by_appid($appid){
$params = [$this->_table,'%'.$appid.'%']; $params = [$this->_table,'%'.$appid.'%'];
$wheresql = " url like %s "; $wheresql = " url like %s ";
foreach(DB::fetch_all("select id from %t where $wheresql ",$params) as $v){ foreach(DB::fetch_all("select id from %t where $wheresql ",$params) as $v){
parent::delete($v['id']); parent::delete($v['id']);
$sid = 'vapp_'.$appid;
$this->delQRcodeBySid($sid);
} }
$this->update_route(); $this->update_route();
} }
public function update_route(){ public function update_route(){
$pathinoStatus = isset($_G['setting']['pathinfo']) ? $_G['setting']['pathinfo']:0; $pathinoStatus = isset($_G['setting']['pathinfo']) ? $_G['setting']['pathinfo']:0;
if(!$pathinoStatus) $pathinoStatus = C::t('setting')->fetch('pathinfo'); if(!$pathinoStatus) $pathinoStatus = C::t('setting')->fetch('pathinfo');
@@ -115,19 +127,25 @@ class table_pichome_route extends dzz_table
@file_put_contents($routefile,"<?php \t\n return ".var_export($data,true).";"); @file_put_contents($routefile,"<?php \t\n return ".var_export($data,true).";");
} }
public function feth_path_by_url($url){ public function feth_path_by_url($url){
//$url = $this->path_transferred_meaning($url); //$url = $this->path_transferred_meaning($url);
return DB::result_first("select path from %t where url = %s",array($this->_table,$url)); return DB::result_first("select path from %t where url = %s",array($this->_table,$url));
} }
public function delQRcodeBySid($sid){
$sidarr = explode('_',$sid);
$target='./qrcode/'.$sidarr[0].'/'.$sidarr[1].'.png';
@unlink(getglobal('setting/attachdir').$target);
}
public function getQRcodeBySid($url,$sid){ public function getQRcodeBySid($url,$sid){
$pathinoStatus = isset($_G['setting']['pathinfo']) ? $_G['setting']['pathinfo']:0; $pathinoStatus = isset($_G['setting']['pathinfo']) ? $_G['setting']['pathinfo']:0;
if(!$pathinoStatus) $pathinoStatus = C::t('setting')->fetch('pathinfo'); if(!$pathinoStatus) $pathinoStatus = C::t('setting')->fetch('pathinfo');
if($pathinoStatus && $path = C::t('pichome_route')->feth_path_by_url($url)){ if($pathinoStatus && $path = C::t('pichome_route')->feth_path_by_url($url)){
$url = $path; $url = $path;
} }
$url = getglobal('siteurl').$url;
$sidarr = explode('_',$sid);
//如果开启了短链接模式 //如果开启了短链接模式
$target='./qrcode/'.$sid[0].'/'.$sid.'.png'; $target='./qrcode/'.$sidarr[0].'/'.$sidarr[1].'.png';
$targetpath = dirname(getglobal('setting/attachdir').$target); $targetpath = dirname(getglobal('setting/attachdir').$target);
dmkdir($targetpath); dmkdir($targetpath);
if(@getimagesize(getglobal('setting/attachdir').$target)){ if(@getimagesize(getglobal('setting/attachdir').$target)){

View File

@@ -152,7 +152,6 @@ left join %t th on t.tid = th.tid and th.themeid = %d where t.pageid = %d order
$v['data'] = C::t('pichome_templatetagdata')->fetch_data_by_tidandtagtype($v['tid'], $v['tagtype']); $v['data'] = C::t('pichome_templatetagdata')->fetch_data_by_tidandtagtype($v['tid'], $v['tagtype']);
$tagdata[] = $v; $tagdata[] = $v;
} }
return $tagdata; return $tagdata;
} }

View File

@@ -59,6 +59,25 @@ class table_pichome_templatetagdata extends dzz_table
$setarr['tdata'] = $this->getcontentdata($setarr['tdata'],$olddata['tdata']); $setarr['tdata'] = $this->getcontentdata($setarr['tdata'],$olddata['tdata']);
break; break;
default : default :
$naids = [];
foreach($setarr['tdata'] as $v){
$naids[] = $v['aid'];
}
if($olddata){
$odata = unserialize($olddata['tdata']);
$oaids = [];
foreach($odata as $idata){
$oaids[] = $idata['aid'];
}
$delaids = array_diff($oaids,$naids);
foreach($delaids as $v){
C::t('attachment')->delete_by_aid($v['aid']);
}
$naids = array_diff($naids,$oaids);
if($naids) C::t('attachment')->addcopy_by_aid($naids);
}
$setarr['tdata'] = serialize($setarr['tdata']); $setarr['tdata'] = serialize($setarr['tdata']);
break; break;
@@ -72,6 +91,12 @@ class table_pichome_templatetagdata extends dzz_table
} }
} }
public function parserichtextdata($data){ public function parserichtextdata($data){
$pattern = "/(https?:\/\/)?\w+\.\w+\.\w+\.\w+?(:[0-9]+)?\/index\.php\?mod=io&amp;op=getfileStream&amp;path=(.+)/";
$data= preg_replace_callback($pattern,function($matchs){
return 'index.php?mod=io&op=getfileStream&path='.$matchs[3];
},$data);
$data= preg_replace_callback('/path=(\w+)&amp;aflag=(attach::\d+)/',function($matchs){ $data= preg_replace_callback('/path=(\w+)&amp;aflag=(attach::\d+)/',function($matchs){
if(isset($matchs[2])){ if(isset($matchs[2])){
@@ -93,7 +118,6 @@ class table_pichome_templatetagdata extends dzz_table
$v['tdata'] = unserialize($v['tdata']); $v['tdata'] = unserialize($v['tdata']);
foreach($v['tdata'] as $k=>$val){ foreach($v['tdata'] as $k=>$val){
//print_r($val);die;
if($val['aid']){ if($val['aid']){
$v['tdata'][$k]['imgurl'] = getglobal('siteurl').IO::getFileUri('attach::'.$val['aid']); $v['tdata'][$k]['imgurl'] = getglobal('siteurl').IO::getFileUri('attach::'.$val['aid']);
} }
@@ -131,6 +155,7 @@ class table_pichome_templatetagdata extends dzz_table
} }
public function getcontentdata($data,$odata){ public function getcontentdata($data,$odata){
global $naids; global $naids;
$data = str_replace(getglobal('siteurl'),'',$data);
$naids= []; $naids= [];
$data= preg_replace_callback('/path=(\w+)/',function($matchs){ $data= preg_replace_callback('/path=(\w+)/',function($matchs){
global $naids; global $naids;
@@ -170,4 +195,5 @@ class table_pichome_templatetagdata extends dzz_table
} }
return true; return true;
} }
} }

View File

@@ -135,6 +135,7 @@ class table_pichome_vapp extends dzz_table
$adminperm = 0; $adminperm = 0;
} }
if ($adminperm) return true; if ($adminperm) return true;
if ($perm == 'download' && (isset($_G['config']['pichomeclosedownload']) && $_G['config']['pichomeclosedownload'])) { if ($perm == 'download' && (isset($_G['config']['pichomeclosedownload']) && $_G['config']['pichomeclosedownload'])) {
return false; return false;
} }
@@ -143,7 +144,6 @@ class table_pichome_vapp extends dzz_table
return false; return false;
} }
if (!$permdata) return false; if (!$permdata) return false;
if ($permdata === '1') return true; if ($permdata === '1') return true;
$uorgids = []; $uorgids = [];
@@ -194,15 +194,16 @@ class table_pichome_vapp extends dzz_table
$downshare = array(); $downshare = array();
if ($appid) { if ($appid) {
$downshare = DB::fetch_first("select * from %t where isdelete < 1 and appid = %s", array($this->_table, $appid)); $downshare = DB::fetch_first("select * from %t where isdelete < 1 and appid = %s", array($this->_table, $appid));
$downshare['download'] = $this->getpermbypermdata($downshare['download'],$appid, 'download'); /* $downshare['download'] =$downshare['download'];
$downshare['share'] = $this->getpermbypermdata($downshare['share'], $appid,'share'); $downshare['share'] =$downshare['share'];
$downshare['view'] = $this->getpermbypermdata($downshare['view'],$appid); $downshare['view'] =$downshare['view'];*/
} else { } else {
foreach (DB::fetch_all("select * from %t where isdelete < 1", array($this->_table)) as $v) { foreach (DB::fetch_all("select * from %t where isdelete < 1", array($this->_table)) as $v) {
$v['download'] = $this->getpermbypermdata($v['download'],$v['appid'], 'download'); /* $v['download'] =$v['download'];
$v['share'] = $this->getpermbypermdata($v['share'], $v['appid'],'share'); $v['share'] = $v['share'];
$v['view'] = $this->getpermbypermdata($v['view'],$v['appid']); $v['view'] = $v['view'];*/
$downshare[$v['appid']] = $v; $downshare[$v['appid']] = $v;
} }
} }

View File

@@ -0,0 +1,61 @@
<?php
/*
* @copyright QiaoQiaoShiDai Internet Technology(Shanghai)Co.,Ltd
* @license https://www.oaooa.com/licenses/
*
* @link https://www.oaooa.com
* @author zyx(zyx@oaooa.com)
*/
if(!defined('IN_OAOOA')) {
exit('Access Denied');
}
class table_search_template extends dzz_table
{
public function __construct() {
$this->_table = 'search_template';
$this->_pk = 'tid';
/*$this->_pre_cache_key = 'search_template_';
$this->_cache_ttl = 0;*/
parent::__construct();
}
public function fetch_all_template(){
$data=array();
foreach(DB::fetch_all("select * from %t where 1 order by disp asc,dateline desc",array($this->_table)) as $value){
if($value['screen']){
$value['screen']=json_decode($value['screen'],true);
}else{
$value['screen']=array();
}
if($value['pagesetting']){
$value['pagesetting']=json_decode($value['pagesetting'],true);
if($value['pagesetting']['layout']) $value['layout']=$value['pagesetting']['layout'];
else{
$value['layout']='waterFall';
}
}else{
$value['pagesetting']=array();
$value['layout']='waterFall';
}
if($value['searchRange']){
$appids=explode(',',$value['searchRange']);
$appnames=array();
foreach($appids as $appid){
if(isset($apps[$appid])){
$appnames[]=$apps[$appid]['appname'];
}
}
$value['searchRange_names']=implode(',',$appnames);
}else{
$value['searchRange']=array();
$value['searchRange_names']='所有库';
}
$data[$value['tid']]=$value;
}
return $data;
}
}

View File

@@ -41,10 +41,17 @@ class table_video_record extends dzz_table
if ($returndata = DB::fetch_first("select * from %t where rid = %s order by `status` desc", array($this->_table, $rid))) { if ($returndata = DB::fetch_first("select * from %t where rid = %s order by `status` desc", array($this->_table, $rid))) {
return $returndata; return $returndata;
} else { } else {
/* $resourcesdata = C::t('pichome_resources')->fetch_data_by_rid($rid); return false;
$hookdata = ['appid'=>$resourcesdata['appid'],'rid'=>$rid,'ext'=>$resourcesdata['ext'],'isforce'=>1,'realpath'=>$resourcesdata['realpath']];
$return = Hook::listen('pichomeconvert',$hookdata,null,false,true);*/ }
}
public function fetch_by_aid($aid)
{
$aid = intval($aid);
if ($returndata = DB::fetch_first("select * from %t where aid = %d order by `status` desc", array($this->_table, $aid))) {
return $returndata;
} else {
return false; return false;
} }

View File

@@ -11,8 +11,8 @@ if(!defined('IN_OAOOA')) {
} }
if(!defined('CORE_VERSION')) { if(!defined('CORE_VERSION')) {
define('CORE_VERSION', '10.2.0'); define('CORE_VERSION', '10.2.0.2');
define('CORE_VERSION_LEVEL', 'Home'); define('CORE_VERSION_LEVEL', 'Home');
define('CORE_RELEASE', '20240130'); define('CORE_RELEASE', '20240308');
define('CORE_FIXBUG' , '10200000'); define('CORE_FIXBUG' , '10020200');
} }

View File

@@ -3,6 +3,5 @@
if (!defined('IN_OAOOA')) { if (!defined('IN_OAOOA')) {
exit('Access Denied'); exit('Access Denied');
} }
ignore_user_abort(true);
@set_time_limit(0); @set_time_limit(0);
dfsockopen(getglobal('localurl') . 'mod=misc?mod=convert', 0, '', '', false, '', 1); dfsockopen(getglobal('localurl') . 'mod=misc?mod=convert', 0, '', '', false, '', 1);

View File

@@ -3,6 +3,6 @@
if (!defined('IN_OAOOA')) { if (!defined('IN_OAOOA')) {
exit('Access Denied'); exit('Access Denied');
} }
ignore_user_abort(true);
@set_time_limit(0); @set_time_limit(0);
dfsockopen(getglobal('localurl') . 'misc.php?mod=deletevapp', 0, '', '', false, '', 1); dfsockopen(getglobal('localurl') . 'misc.php?mod=deletevapp', 0, '', '', false, '', 1);

View File

@@ -3,6 +3,6 @@
if (!defined('IN_OAOOA')) { if (!defined('IN_OAOOA')) {
exit('Access Denied'); exit('Access Denied');
} }
ignore_user_abort(true);
@set_time_limit(0); @set_time_limit(0);
dfsockopen(getglobal('localurl') . 'misc.php?mod=finalydelfile', 0, '', '', false, '', 1); dfsockopen(getglobal('localurl') . 'misc.php?mod=finalydelfile', 0, '', '', false, '', 1);

View File

@@ -2,6 +2,5 @@
if(!defined('IN_OAOOA')) { if(!defined('IN_OAOOA')) {
exit('Access Denied'); exit('Access Denied');
} }
ignore_user_abort(true);
@set_time_limit(0); @set_time_limit(0);
dfsockopen(getglobal('localurl'). 'mod=misc?mod=getinfo',0, '', '', false, '', 1); dfsockopen(getglobal('localurl'). 'mod=misc?mod=getinfo',0, '', '', false, '', 1);

View File

@@ -2,6 +2,6 @@
if(!defined('IN_OAOOA')) { if(!defined('IN_OAOOA')) {
exit('Access Denied'); exit('Access Denied');
} }
ignore_user_abort(true);
@set_time_limit(0); @set_time_limit(0);
dfsockopen(getglobal('localurl'). 'mod=misc?mod=getthumb',0, '', '', false, '', 1); dfsockopen(getglobal('localurl'). 'mod=misc?mod=getthumb',0, '', '', false, '', 1);

View File

@@ -2,7 +2,6 @@
if(!defined('IN_OAOOA')) { if(!defined('IN_OAOOA')) {
exit('Access Denied'); exit('Access Denied');
} }
ignore_user_abort(true);
@set_time_limit(0); @set_time_limit(0);
//获取需要执行计划任务的库 //获取需要执行计划任务的库
foreach(DB::fetch_all("select * from %t where isdelete = 0 and `type` != %d and (state = %d or state = %d) and cron = %d and isdelete < 1",array('pichome_vapp',3,0,4,1)) as $v){ foreach(DB::fetch_all("select * from %t where isdelete = 0 and `type` != %d and (state = %d or state = %d) and cron = %d and isdelete < 1",array('pichome_vapp',3,0,4,1)) as $v){
@@ -12,7 +11,7 @@ foreach(DB::fetch_all("select * from %t where isdelete = 0 and `type` != %d and
$corntime = $v['crontime']*60*60; $corntime = $v['crontime']*60*60;
if($corntime+$v['dateline'] <= TIMESTAMP ){ if($corntime+$v['dateline'] <= TIMESTAMP ){
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=initexport&appid=' . $appid, 0, '', '', false, '', 1); dfsockopen(getglobal('localurl') . 'misc.php?mod=initexport&appid=' . $appid, 0, '', '', false, '', 1);
} }
}else{ }else{
@@ -28,11 +27,10 @@ foreach(DB::fetch_all("select * from %t where isdelete = 0 and `type` != %d and
if (in_array($hour, $corntimes)) { if (in_array($hour, $corntimes)) {
$index = array_search($hour, $corntimes); $index = array_search($hour, $corntimes);
array_splice($corntimes, 0, $index + 1); array_splice($corntimes, 0, $index + 1);
} else {
$corntimes = array();
} }
if(in_array($currentHour, $corntimes)){ if(in_array($currentHour, $corntimes)){
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=initexport&appid=' . $appid, 0, '', '', false, '', 1); dfsockopen(getglobal('localurl') . 'misc.php?mod=initexport&appid=' . $appid, 0, '', '', false, '', 1);
} }
} }

View File

@@ -2,6 +2,6 @@
if(!defined('IN_OAOOA')) { if(!defined('IN_OAOOA')) {
exit('Access Denied'); exit('Access Denied');
} }
ignore_user_abort(true);
@set_time_limit(0); @set_time_limit(0);
dfsockopen(getglobal('localurl'). 'misc.php?mod=chkupdatethumb',0, '', '', false, '', 1); dfsockopen(getglobal('localurl'). 'misc.php?mod=chkupdatethumb',0, '', '', false, '', 1);

View File

@@ -2,6 +2,5 @@
if(!defined('IN_OAOOA')) { if(!defined('IN_OAOOA')) {
exit('Access Denied'); exit('Access Denied');
} }
ignore_user_abort(true);
@set_time_limit(0); @set_time_limit(0);
dfsockopen(getglobal('localurl'). 'mod=misc?mod=doupdatethumb',0, '', '', false, '', 1); dfsockopen(getglobal('localurl'). 'mod=misc?mod=doupdatethumb',0, '', '', false, '', 1);

View File

@@ -2,11 +2,10 @@
if(!defined('IN_OAOOA')) { if(!defined('IN_OAOOA')) {
exit('Access Denied'); exit('Access Denied');
} }
ignore_user_abort(true);
@set_time_limit(0); @set_time_limit(0);
//获取正在执行导入任务的库 //获取正在执行导入任务的库
foreach(DB::fetch_all("select * from %t where isdelete = 0 and `type` != %d and state != %d and state != %d ",array('pichome_vapp',3,0,4)) as $v){ foreach(DB::fetch_all("select * from %t where isdelete = 0 and `type` != %d and state =%d ",array('pichome_vapp',3,2)) as $v){
$appid = $v['appid']; $appid = $v['appid'];
//固定频率时 //固定频率时
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=exportfile&appid=' . $appid, 0, '', '', false, '', 1); dfsockopen(getglobal('localurl') . 'misc.php?mod=exportfile&appid=' . $appid, 0, '', '', false, '', 1);
} }

View File

@@ -910,7 +910,7 @@ $lang = array (
'profile_passwd_illegal'=>'Please fill in the password', 'profile_passwd_illegal'=>'Please fill in the password',
'register_email_verify' => '<p>Thank you for registering {sitename}</p><p>The system sent you an activation email. Go to the login email to activate your account.</p><p><a href="index.php?open=password">Re-receive verification email</a></p>', 'register_email_verify' => '<p>Thank you for registering {sitename}</p><p>The system sent you an activation email. Go to the login email to activate your account.</p><p><a href="index.php?open=password">Re-receive verification email</a></p>',
'register_manual_verify' => '<p>Thank you for your registration, the site has manually verified registered users, please wait for review</p>', 'register_manual_verify' => '<p>Thank you for your registration, the site has manually verified registered users, please wait for review</p>',
'register_succeed' => '<p>Thank you for signing up for {sitename} and will now be logged in as {usergroup}</p><p><a href="index.php?open=profile">Improve the data now</a></p>', 'register_succeed' => '<p>Thank you for signing up for {sitename} and will now be logged in as {usergroup}</p>',
'activate_illegal' => 'The ID you are using does not exist or you are not waiting for a verification member', 'activate_illegal' => 'The ID you are using does not exist or you are not waiting for a verification member',
'activate_succeed' => 'Hello, {username}, your account has been successfully activated and will now be transferred to the site homepage', 'activate_succeed' => 'Hello, {username}, your account has been successfully activated and will now be transferred to the site homepage',

View File

@@ -881,7 +881,7 @@ $lang = array (
'profile_illegal' => '格式不正确或为空', 'profile_illegal' => '格式不正确或为空',
'profile_nickname_protect' => '用户名包含被系统屏蔽的字符', 'profile_nickname_protect' => '用户名包含被系统屏蔽的字符',
'profile_username_protect' => '用户名包含被系统屏蔽的字符', 'profile_username_protect' => '用户名包含被系统屏蔽的字符',
'register_check_found' => '该用户名已注册,请更换用户名&nbsp;<a href="user.php?mod=login&action=login" onclick="try{_login.logging();}catch(e){return true}">登录</a>', 'register_check_found' => '该用户名已注册,请更换用户名',
'register_activation' => '用户名已存在', 'register_activation' => '用户名已存在',
'no_invitation_code' => '抱歉,邀请码为空请填写,没有邀请码不允许注册', 'no_invitation_code' => '抱歉,邀请码为空请填写,没有邀请码不允许注册',
'wrong_invitation_code' => '抱歉,邀请码错误,请重新填写,没有邀请码不允许注册', 'wrong_invitation_code' => '抱歉,邀请码错误,请重新填写,没有邀请码不允许注册',
@@ -911,7 +911,7 @@ $lang = array (
'profile_passwd_illegal'=>'请填写密码', 'profile_passwd_illegal'=>'请填写密码',
'register_email_verify' => '<p>感谢您注册 {sitename}</p><p>系统给您发送了一封激活邮件,快去登录邮箱激活账号吧</p><p><a href="index.php?open=password">重新接收验证邮件</a></p>', 'register_email_verify' => '<p>感谢您注册 {sitename}</p><p>系统给您发送了一封激活邮件,快去登录邮箱激活账号吧</p><p><a href="index.php?open=password">重新接收验证邮件</a></p>',
'register_manual_verify' => '<p>感谢您的注册,站点开启了人工验证注册用户,请等待审核</p>', 'register_manual_verify' => '<p>感谢您的注册,站点开启了人工验证注册用户,请等待审核</p>',
'register_succeed' => '<p>感谢您注册 {sitename},现在将以 {usergroup} 身份登录站点</p><p><a href="index.php?open=profile">现在去完善资料</a></p>', 'register_succeed' => '<p>感谢您注册 {sitename},现在将以 {usergroup} 身份登录站点</p>',
'activate_illegal' => '您所用的 ID 不存在或您不是等待验证成员', 'activate_illegal' => '您所用的 ID 不存在或您不是等待验证成员',
'activate_succeed' => '您好,{username},您的帐号已被成功激活,现在将转入站点首页', 'activate_succeed' => '您好,{username},您的帐号已被成功激活,现在将转入站点首页',

View File

@@ -49,7 +49,7 @@
data:[ data:[
{id:'systeminfo',name:'系统信息',url:'index.php?mod=systeminfo'}, {id:'systeminfo',name:'系统信息',url:'index.php?mod=systeminfo'},
{id:'library',name:'库管理',url:'index.php?mod=pichome&op=library'}, {id:'library',name:'库管理',url:'index.php?mod=pichome&op=library'},
/* {id:'tab',name:'专辑设置',url:'index.php?mod=tab&op=admin'},*/ // {id:'tab',name:'专辑设置',url:'index.php?mod=tab&op=admin'},
{id:'alonepage',name:'单页管理',url:'index.php?mod=alonepage'}, {id:'alonepage',name:'单页管理',url:'index.php?mod=alonepage'},
{id:'banner',name:'栏目管理',url:'index.php?mod=banner&op=admin'}, {id:'banner',name:'栏目管理',url:'index.php?mod=banner&op=admin'},
{id:'manage',name:'管理工具',url:'index.php?mod=manage'}, {id:'manage',name:'管理工具',url:'index.php?mod=manage'},

View File

@@ -1,6 +1,6 @@
<el-header class="page-header" height="60px"> <el-header class="page-header" height="60px">
<a href="{$_G[siteurl]}" class="h-left" style="text-decoration: none;"> <a href="{$_G[siteurl]}" class="h-left" style="text-decoration: none;">
<el-image class="logo" src="data/attachment/sitelogo/sitelogo.png?VjP" fit="contain"> <el-image class="logo" src="data/attachment/sitelogo/sitelogo.png?{VERHASH}" fit="contain">
<template #error><div class="el-image__placeholder"></div></template> <template #error><div class="el-image__placeholder"></div></template>
</el-image> </el-image>
<el-link :underline="false" href="$_G['siteurl']"><el-text tag="b" size="large" style="color:var(--el-text-color-primary)">{eval echo $appname?$appname:$_G['setting'][sitename]}</el-text></el-link> <el-link :underline="false" href="$_G['siteurl']"><el-text tag="b" size="large" style="color:var(--el-text-color-primary)">{eval echo $appname?$appname:$_G['setting'][sitename]}</el-text></el-link>

View File

@@ -20,7 +20,7 @@
<script type="text/javascript" src="static/vue/vue@3/vue.prod.js?{VERHASH}"></script> <script type="text/javascript" src="static/vue/vue@3/vue.prod.js?{VERHASH}"></script>
<script type="text/javascript" src="static/element/Element-Plus/ElementPlus.js?{VERHASH}"></script> <script type="text/javascript" src="static/element/Element-Plus/ElementPlus.min.js?{VERHASH}"></script>
<script type="text/javascript" src="static/element/Element-Plus/zhCn.js?{VERHASH}"></script> <script type="text/javascript" src="static/element/Element-Plus/zhCn.js?{VERHASH}"></script>
<script type="text/javascript" src="static/js/qs.min.js?{VERHASH}"></script> <script type="text/javascript" src="static/js/qs.min.js?{VERHASH}"></script>

View File

@@ -10,7 +10,9 @@
</div> </div>
</el-space> </el-space>
<div class="uedit" > <div class="uedit" >
<!--{if $_GET['mod'] != 'my'}-->
<el-link href="user.php?mod=my&op=profile"><el-icon :size="20"><Edit /></el-icon></el-link> <el-link href="user.php?mod=my&op=profile"><el-icon :size="20"><Edit /></el-icon></el-link>
<!--{/if}-->
</div> </div>
<div class="unav" style="height:58px"> <div class="unav" style="height:58px">
<el-menu <el-menu

24
cron.php Normal file
View File

@@ -0,0 +1,24 @@
<?php
/*
* @copyright Leyun internet Technology(Shanghai)Co.,Ltd
* @license http://www.dzzoffice.com/licenses/license.txt
* @package DzzOffice
* @link http://www.dzzoffice.com
* @author zyx(zyx@dzz.cc)
*/
//计划任务触发程序
//如果这个程序运行可以修改config文件($_config['remote']['cron'] = 1),正常的访问不运行计划任务;
// echo '* * * * php cron.php >>/dev/null 2>$1' > /etc/crontab
// crontab cron.txt
define('APPTYPEID', 200);
define('CURSCRIPT', 'cron');
define('DZZSCRIPT', 'index.php');
require __DIR__.'/core/coreBase.php';
$dzz = C::app();
$dzz->init_user=false;
$dzz->init_session=false;
$dzz->init_cron=false;
$dzz->init_misc=false;
$dzz->init();
dzz_cron::runcron();
exit('success');

View File

@@ -80,7 +80,8 @@ if($do == 'addpage'){//新建单页
}elseif($do == 'geturlqrcode'){//获取链接二维码 }elseif($do == 'geturlqrcode'){//获取链接二维码
$id = isset($_GET['id']) ? intval($_GET['id']) : ''; $id = isset($_GET['id']) ? intval($_GET['id']) : '';
$url = 'index.php?mod=alonepage&op=view#id='.$id; $url = 'index.php?mod=alonepage&op=view#id='.$id;
$qrcode = C::t('pichome_route')->getQRcodeBySid($url,$id); $sid = 'a_'.$id;
$qrcode = C::t('pichome_route')->getQRcodeBySid($url,$sid);
exit(json_encode(['success'=>true,'qrcode'=>$qrcode])); exit(json_encode(['success'=>true,'qrcode'=>$qrcode]));
}elseif($do == 'sortpage'){//单页排序 }elseif($do == 'sortpage'){//单页排序
$ids = isset($_GET['ids']) ? trim($_GET['ids']):''; $ids = isset($_GET['ids']) ? trim($_GET['ids']):'';
@@ -101,6 +102,7 @@ if($do == 'addpage'){//新建单页
$page = C::t('pichome_templatepage')->fetch($id); $page = C::t('pichome_templatepage')->fetch($id);
if(!$page) exit(json_encode(['success'=>false,'msg'=>'单页不存在'])); if(!$page) exit(json_encode(['success'=>false,'msg'=>'单页不存在']));
$pagedata = $_GET['data']; $pagedata = $_GET['data'];
$pagetag = [ $pagetag = [
'tid'=>$pagedata['tid'] ? intval($pagedata['tid']):0, 'tid'=>$pagedata['tid'] ? intval($pagedata['tid']):0,
'tagtype'=>$pagedata['type'], 'tagtype'=>$pagedata['type'],
@@ -220,15 +222,16 @@ if($do == 'addpage'){//新建单页
exit(json_encode(['success'=>true,'data'=>$returndata,'themeid'=>$themeid])); exit(json_encode(['success'=>true,'data'=>$returndata,'themeid'=>$themeid]));
}elseif($do == 'typecollection'){//获取ku,单页,栏目,专辑 }elseif($do == 'typecollection'){//获取ku,单页,栏目,专辑
$library = array(); $library = array();
if($_G['adminid'] == 1){
$library = DB::fetch_all("select * from %t where isdelete = 0 order by `disp` asc,dateline desc", array('pichome_vapp')); $library = DB::fetch_all("select * from %t where isdelete = 0 order by `disp` asc,dateline desc", array('pichome_vapp'));
}else{
$library = DB::fetch_all("select v.* from %t vm left join %t v on v.appid = vm.appid where vm.uid = %d and v.isdelete = 0 order by v.disp", array('pichome_vappmember','pichome_vapp',$uid));
}
$alonepage = DB::fetch_all("select * from %t where 1 order by disp asc,dateline asc ",['pichome_templatepage']); $alonepage = DB::fetch_all("select * from %t where 1 order by disp asc,dateline asc ",['pichome_templatepage']);
$banner = C::t('pichome_banner')->getbannerlist(); $banner = C::t('pichome_banner')->getbannerlist(0,1);
$search = array();
$search[] = array('id'=> '0','bannername'=> '全部');
foreach($banner['top'] as $v){
if($v['btype'] == 0 || $v['btype'] == 4){
$search[] = $v;
}
}
$tabstatus = 0; $tabstatus = 0;
$tabgroupdata = []; $tabgroupdata = [];
Hook::listen('checktab', $tabstatus); Hook::listen('checktab', $tabstatus);
@@ -240,7 +243,7 @@ if($do == 'addpage'){//新建单页
unset($tabgroupdata[$k]); unset($tabgroupdata[$k]);
} }
} }
exit(json_encode(array('tab' => $tabgroupdata,'library' => $library,'alonepage'=>$alonepage,'banner'=>$banner['top']))); exit(json_encode(array('tab' => $tabgroupdata,'library' => $library,'alonepage'=>$alonepage,'banner'=>$banner['top'],'search'=>$search)));
}elseif($do == 'getpagecontent'){//获取单页内容 }elseif($do == 'getpagecontent'){//获取单页内容
$id = isset($_GET['id']) ? intval($_GET['id']):0; $id = isset($_GET['id']) ? intval($_GET['id']):0;

View File

@@ -246,3 +246,18 @@
.right-type-box .right-type-li .el-icon { .right-type-box .right-type-li .el-icon {
margin-right: 6px; margin-right: 6px;
} }
.search_rec-uploader .el-upload {
overflow: unset;
}
.search_rec-uploader .el-upload .delete {
position: absolute;
right: -10px;
top: -10px;
font-size: 25px;
color: var(--el-text-color-regular);
display: none;
}
.search_rec-uploader .el-upload:hover .delete {
display: block;
}

View File

@@ -72,6 +72,7 @@ const Tmpdb_text = {
<el-option label="库" value="1"></el-option> <el-option label="库" value="1"></el-option>
<el-option label="单页" value="2"></el-option> <el-option label="单页" value="2"></el-option>
<el-option label="栏目" value="3"></el-option> <el-option label="栏目" value="3"></el-option>
<el-option label="专辑" value="4"></el-option>
</el-select> </el-select>
<template v-if="parseInt(model[0].link) == 0"> <template v-if="parseInt(model[0].link) == 0">
<el-input v-model="model[0].linkval"></el-input> <el-input v-model="model[0].linkval"></el-input>
@@ -86,6 +87,11 @@ const Tmpdb_text = {
<el-option v-for="item in typecollection.alonepage" :label="item.pagename" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in typecollection.alonepage" :label="item.pagename" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</template> </template>
<template v-else-if="parseInt(model[0].link) == 4">
<el-select v-model="model[0].linkval" style="width: 100%">
<el-option v-for="item in typecollection.tab" :label="item.name" :value="item.gid" :key="item.gid"></el-option>
</el-select>
</template>
<template v-else-if="parseInt(model[0].link) == 3"> <template v-else-if="parseInt(model[0].link) == 3">
<el-cascader <el-cascader
style="width: 100%" style="width: 100%"

View File

@@ -190,6 +190,7 @@ const Tmpfile_rec = {
<el-option label="库" value="1"></el-option> <el-option label="库" value="1"></el-option>
<el-option label="单页" value="2"></el-option> <el-option label="单页" value="2"></el-option>
<el-option label="栏目" value="3"></el-option> <el-option label="栏目" value="3"></el-option>
<el-option label="专辑" value="4"></el-option>
</el-select> </el-select>
<template v-if="parseInt(item.data[0].link) == 0"> <template v-if="parseInt(item.data[0].link) == 0">
<el-input v-model="item.data[0].linkval"></el-input> <el-input v-model="item.data[0].linkval"></el-input>
@@ -204,6 +205,11 @@ const Tmpfile_rec = {
<el-option v-for="item in typecollection.alonepage" :label="item.pagename" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in typecollection.alonepage" :label="item.pagename" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</template> </template>
<template v-else-if="parseInt(item.row.link) == 4">
<el-select v-model="item.data[0].linkval" style="width: 100%">
<el-option v-for="item in typecollection.tab" :label="item.name" :value="item.gid" :key="item.gid"></el-option>
</el-select>
</template>
<template v-else-if="parseInt(item.data[0].link) == 3"> <template v-else-if="parseInt(item.data[0].link) == 3">
<el-cascader <el-cascader
style="width: 100%" style="width: 100%"

View File

@@ -0,0 +1,156 @@
const Tmpsearch_rec = {
props:{
model:{
required:true,
type: Object,
default:{},
},
field:{
required:true,
type: Object,
default:{},
},
ParenIndex:{
required:true,
type: Number,
default:0,
},
typecollection:{
required:true,
type: Object,
default:{},
}
},
template:`
<div >
<el-form label-width="120px" label-suffix=":">
<el-form-item label="LOGO">
<el-upload
class="avatar-uploader search_rec-uploader"
style="overflow: unset;"
action="index.php?mod=alonepage&op=alonepageinterface&do=upload"
:show-file-list="false"
accept="image/gif,image/png,image/jpg,image/jpeg,image/svg"
name="files"
:on-success="handleUploadSucess">
<el-image
v-if="model.data[0].data[0].img"
class="avatarimg"
fit="contain"
:src="model.data[0].data[0].img"
style="max-width:120px;max-height:120px;"></el-image>
<el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
<el-icon class="delete" @click.stop="deleteimage" v-if="model.data[0].data[0].img"><Circle-Close-Filled /></el-icon>
</el-upload>
</el-form-item>
<el-form-item label="标题">
<el-input v-model="model.data[0].data[0].title" style="width:50%;" clearable />
</el-form-item>
<el-form-item label="描述">
<el-input v-model="model.data[0].data[0].desc" style="width:50%;" clearable />
</el-form-item>
<el-form-item label="搜索分类">
<el-select
v-model="model.data[0].data[0].searchclassify"
multiple
style="width: 50%"
@change="searchclassifyChange">
<el-option
v-for="item in typecollection.search"
:label="item.bannername"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="默认分类">
<el-select
style="width:50%;"
v-model="model.data[0].data[0].defaultclassify">
<el-option
v-for="item in model.data[0].data[0].hotsValue"
:label="item.bannername"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="热词设置">
<div style="width:50%;">
<el-radio-group v-model="model.data[0].data[0].hots">
<el-radio :label="0" border>自动获取</el-radio>
<el-radio :label="1" border>手动设置</el-radio>
</el-radio-group>
<div
style="padding-top: 18px;"
v-if="model.data[0].data[0].hots == 1 && model.data[0].data[0].hotsValue.length">
<el-form-item
style="margin-bottom: 18px"
v-for="item in model.data[0].data[0].hotsValue"
:label="item.bannername">
<el-input v-model="item.value" placeholder="例标签1,标签2" />
</el-form-item>
</div>
</div>
</el-form-item>
</el-form>
</div>
`,
setup(props,context){
function handleUploadSucess(response, file, fileList){//上传成功
if(response.files && response.files.length){
let files = response.files[0];
props.model.data[0].data[0].aid = files.data.aid;
props.model.data[0].data[0].img = files.data.img;
}
};
function searchclassifyChange(data){
let datas = [];
if(data.length){
for (let index = 0; index < data.length; index++) {
const element = data[index];
for (let findex = 0; findex < props.typecollection.search.length; findex++) {
const felement = props.typecollection.search[findex];
if(element == felement.id){
datas.push({
id: felement.id,
icon: felement.icon || '',
bannername: felement.bannername,
btype: felement.btype || '',
bdata: felement.bdata || '',
realurl: felement.realurl || '',
url: felement.url || '',
value:''
});
}
}
}
datas.forEach(element => {
let curr = props.model.data[0].data[0].hotsValue.find(function(current){
return current.id == element.id;
})
if(curr){
element.value = curr.value;
}
});
props.model.data[0].data[0].hotsValue = datas;
let xindex = data.indexOf(props.model.data[0].data[0].defaultclassify);
if(xindex < 0){
props.model.data[0].data[0].defaultclassify = data[0]+'';
}
}else{
props.model.data[0].data[0].defaultclassify = ''
props.model.data[0].data[0].hotsValue = [];
}
}
function deleteimage(){
props.model.data[0].data[0].aid = 0;
props.model.data[0].data[0].img = '';
}
return {
handleUploadSucess,
searchclassifyChange,
deleteimage
}
}
}

View File

@@ -129,6 +129,7 @@ const Tmptab_rec = {
<el-option label="库" value="1"></el-option> <el-option label="库" value="1"></el-option>
<el-option label="单页" value="2"></el-option> <el-option label="单页" value="2"></el-option>
<el-option label="栏目" value="3"></el-option> <el-option label="栏目" value="3"></el-option>
<el-option label="专辑" value="4"></el-option>
</el-select> </el-select>
<template v-if="parseInt(item.data[0].link) == 0"> <template v-if="parseInt(item.data[0].link) == 0">
<el-input v-model="item.data[0].linkval"></el-input> <el-input v-model="item.data[0].linkval"></el-input>
@@ -143,6 +144,11 @@ const Tmptab_rec = {
<el-option v-for="item in typecollection.alonepage" :label="item.pagename" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in typecollection.alonepage" :label="item.pagename" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</template> </template>
<template v-else-if="parseInt(item.data[0].link) == 4">
<el-select v-model="item.data[0].linkval" style="width: 100%">
<el-option v-for="item in typecollection.tab" :label="item.name" :value="item.gid" :key="item.gid"></el-option>
</el-select>
</template>
<template v-else-if="parseInt(item.data[0].link) == 3"> <template v-else-if="parseInt(item.data[0].link) == 3">
<el-cascader <el-cascader
style="width: 100%" style="width: 100%"

View File

@@ -35,7 +35,8 @@
<el-input <el-input
v-model="SettingForm.address" v-model="SettingForm.address"
:disabled="parseFloat(SettingDialog.pathinfo)?false:true" :disabled="parseFloat(SettingDialog.pathinfo)?false:true"
@input="SettingEditStatus"> @input="SettingAddressInput"
maxlength="30">
<template #prepend>{$_G['siteurl']}</template> <template #prepend>{$_G['siteurl']}</template>
</el-input> </el-input>
<div style="white-space: nowrap;margin-left: 12px;"> <div style="white-space: nowrap;margin-left: 12px;">
@@ -102,15 +103,26 @@
SettingQrcode:{ SettingQrcode:{
isqrcode:false, isqrcode:false,
qrcodeurl:'' qrcodeurl:''
} },
SettingAddressOld:''
} }
}, },
methods:{ methods:{
SettingAddressInput(value){
const regex = /^[a-zA-Z_0-9]+$/;
if (!regex.test(value)) {
this.SettingForm.address = this.SettingAddressOld;
}else{
this.SettingAddressOld = value;
this.SettingEditStatus();
}
},
async SettingGetData(){ async SettingGetData(){
if(!this.SettingForm.id)return false; if(!this.SettingForm.id)return false;
const {data: res} = await axios.post(BasicUrl+'addpage',{ const {data: res} = await axios.post(BasicUrl+'addpage',{
id:this.SettingForm.id id:this.SettingForm.id
}); });
this.SettingAddressOld = res.data.url || '';
this.SettingForm.address = res.data.url || ''; this.SettingForm.address = res.data.url || '';
}, },
SettingEightClosed(){ SettingEightClosed(){

View File

@@ -277,6 +277,32 @@
} }
] ]
}, },
search_rec:{
loading:false,
tid:0,//块id
key:'',
type:'search_rec',//块类型
title:'搜索',//块名称
style:{style:'',size:''},//样式
data:[
{
tdid:0,
data:[
{
key:0,
img:'',
aid:0,
title:'',
desc:'',
searchclassify:[],
defaultclassify: '',
hots: 0,
hotsValue:[]
},
]
}
]
},
} }
} }
}, },
@@ -354,6 +380,7 @@
switch(NewData.type){ switch(NewData.type){
case 'slide': case 'slide':
case 'link': case 'link':
case 'search_rec':
case 'contact': case 'contact':
case 'banner': case 'banner':
if(NewData.data[0].data && NewData.data[0].data.length){ if(NewData.data[0].data && NewData.data[0].data.length){
@@ -399,6 +426,7 @@
case 'slide': case 'slide':
case 'link': case 'link':
case 'contact': case 'contact':
case 'search_rec':
case 'banner': case 'banner':
if(data.data[0]){ if(data.data[0]){
data.data[0].tdid = res.data.data[0].tdid; data.data[0].tdid = res.data.data[0].tdid;

View File

@@ -40,7 +40,8 @@
// {name:'矩行推荐',flag:'rectangle_rec'}, // {name:'矩行推荐',flag:'rectangle_rec'},
{name:'横幅广告',flag:'banner'}, {name:'横幅广告',flag:'banner'},
{name:'库',flag:'db_ids'}, {name:'库',flag:'db_ids'},
/*{name:'专辑推荐',flag:'tab_rec'},*/ // {name:'专辑推荐',flag:'tab_rec'},
{name:'搜索',flag:'search_rec'},
], ],
rightdb_idsStatus:false rightdb_idsStatus:false
} }

View File

@@ -1,11 +1,11 @@
<div v-if="MainStyle[item.type]"> <div v-if="MainStyle[item.type]">
<el-text>样式:</el-text> <el-text>样式:</el-text>
<el-select v-model="item.style.style" style="width: 130px;margin-right: 12px;"> <el-select v-model="item.style.style" style="width: 150px;margin-right: 12px;">
<el-option v-for="fitem in MainStyle[item.type]" :key="fitem.value" :label="fitem.title" :value="fitem.value"></el-option> <el-option v-for="fitem in MainStyle[item.type]" :key="fitem.value" :label="fitem.title" :value="fitem.value"></el-option>
</el-select> </el-select>
<template v-if="MainStyle[item.type][item.style.style] && MainStyle[item.type][item.style.style].size && MainStyle[item.type][item.style.style]['size'].length"> <template v-if="MainStyle[item.type][item.style.style] && MainStyle[item.type][item.style.style].size && MainStyle[item.type][item.style.style]['size'].length">
<el-text>尺寸:</el-text> <el-text>尺寸:</el-text>
<el-select v-if="MainStyle[item.type] && MainStyle[item.type][item.style.style]" v-model="item.style.size" style="width: 130px;"> <el-select v-if="MainStyle[item.type] && MainStyle[item.type][item.style.style]" v-model="item.style.size" style="width: 150px;">
<el-option v-for="fitem in MainStyle[item.type][item.style.style]['size']" :label="fitem.title" :value="fitem.value"></el-option> <el-option v-for="fitem in MainStyle[item.type][item.style.style]['size']" :label="fitem.title" :value="fitem.value"></el-option>
</el-select> </el-select>
</template> </template>

View File

@@ -1,5 +1,5 @@
<a href="{$_G[siteurl]}" class="h-left" style="text-decoration: none;"> <a href="{$_G[siteurl]}" class="h-left" style="text-decoration: none;">
<el-image class="logo" src="data/attachment/sitelogo/sitelogo.png?VjP" fit="contain"> <el-image class="logo" src="data/attachment/sitelogo/sitelogo.png?{VERHASH}" fit="contain">
<template #error><div class="el-image__placeholder"></div></template> <template #error><div class="el-image__placeholder"></div></template>
</el-image> </el-image>
<el-text tag="b" size="large" style="color:var(--el-text-color-primary);white-space: nowrap;">{$_G[setting][sitename]}</el-text> <el-text tag="b" size="large" style="color:var(--el-text-color-primary);white-space: nowrap;">{$_G[setting][sitename]}</el-text>

View File

@@ -1,6 +1,6 @@
<div class="h-left"> <div class="h-left">
<a href="{$_G[siteurl]}" style="margin-right: 10px;width: 25px;height: 25px;"> <a href="{$_G[siteurl]}" style="margin-right: 10px;width: 25px;height: 25px;">
<el-image class="logo" src="data/attachment/sitelogo/sitelogo.png?VjP" fit="contain" style="width: 100%;height: 100%;"> <el-image class="logo" src="data/attachment/sitelogo/sitelogo.png?{VERHASH}" fit="contain" style="width: 100%;height: 100%;">
<template #error><div class="el-image__placeholder"></div></template> <template #error><div class="el-image__placeholder"></div></template>
</el-image> </el-image>
</a> </a>

View File

@@ -14,6 +14,7 @@
<script type="text/javascript" src="{MOD_PATH}/template/assets/js/db_ids.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/template/assets/js/db_ids.js?{VERHASH}"></script>
<script type="text/javascript" src="{MOD_PATH}/template/assets/js/banner.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/template/assets/js/banner.js?{VERHASH}"></script>
<script type="text/javascript" src="{MOD_PATH}/template/assets/js/tab.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/template/assets/js/tab.js?{VERHASH}"></script>
<script type="text/javascript" src="{MOD_PATH}/template/assets/js/search_rec.js?{VERHASH}"></script>
<script> <script>
const BasicUrl = MOD_URL+'&op=alonepageinterface&do='; const BasicUrl = MOD_URL+'&op=alonepageinterface&do=';
function AxiosUrl(val,param,type){ function AxiosUrl(val,param,type){
@@ -50,7 +51,8 @@
library:[], library:[],
alonepage:[], alonepage:[],
banner:[], banner:[],
tab:[] tab:[],
search:[]
}, },
} }
}, },
@@ -97,6 +99,7 @@
alonepage:res.alonepage || [], alonepage:res.alonepage || [],
banner:res.banner || [], banner:res.banner || [],
tab:res.tab || [], tab:res.tab || [],
search:res.search || [],
} }
}, },
MainHandlerContentValue(item){ MainHandlerContentValue(item){
@@ -109,6 +112,34 @@
data:[] data:[]
}; };
switch(item.type){ switch(item.type){
case 'search_rec':
if(item.data && item.data.length){
let fstr = {
tdid:item.data[0].tdid,
data:[]
}
if(item.data[0].tdata && item.data[0].tdata.length){
for (let index = 0; index < item.data[0].tdata.length; index++) {
let fitem = item.data[0].tdata[index];
fstr.data.push(
{
key:0,
img:fitem.imgurl || '',
aid:fitem.aid || 0,
title:fitem.title || '',
desc:fitem.desc || '',
searchclassify:fitem.searchclassify || [],
defaultclassify:fitem.defaultclassify || '',
hots:parseInt(fitem.hots) || 0,
hotsValue:fitem.hotsValue || [],
},
)
}
}
str.data.push(fstr);
}
break;
case 'slide': case 'slide':
if(item.data && item.data.length){ if(item.data && item.data.length){
let fstr = { let fstr = {
@@ -122,7 +153,7 @@
{ {
key:0, key:0,
url:fitem.imgurl || '', url:fitem.imgurl || '',
img:fitem.img || '', img:fitem.imgurl || '',
aid:fitem.aid || 0, aid:fitem.aid || 0,
link:fitem.link || '', link:fitem.link || '',
linkval:fitem.linkval || '', linkval:fitem.linkval || '',
@@ -147,7 +178,7 @@
{ {
key:0, key:0,
url:fitem.imgurl || '', url:fitem.imgurl || '',
img:fitem.img || '', img:fitem.imgurl || '',
aid:fitem.aid || 0, aid:fitem.aid || 0,
link:fitem.link || '0', link:fitem.link || '0',
linkval:fitem.linkval || '', linkval:fitem.linkval || '',
@@ -175,7 +206,7 @@
key:0, key:0,
title:ditem.title || '', title:ditem.title || '',
url:ditem.imgurl || '', url:ditem.imgurl || '',
img:ditem.img || '', img:ditem.imgurl || '',
aid:ditem.aid || 0, aid:ditem.aid || 0,
link:ditem.link || '0', link:ditem.link || '0',
linkval:ditem.linkval || '', linkval:ditem.linkval || '',
@@ -346,7 +377,7 @@
{ {
key:0, key:0,
aid:fitem.aid || 0, aid:fitem.aid || 0,
img:fitem.img || '', img:fitem.imgurl || '',
title:fitem.title || '', title:fitem.title || '',
message:fitem.message || '', message:fitem.message || '',
link:fitem.link || '', link:fitem.link || '',
@@ -374,7 +405,7 @@
{ {
key:0, key:0,
title:fitem.title || '', title:fitem.title || '',
img:fitem.img || '', img:fitem.imgurl || '',
aid:fitem.aid || 0, aid:fitem.aid || 0,
}, },
) )
@@ -427,6 +458,7 @@
Tmpdb_ids, Tmpdb_ids,
Tmpbanner, Tmpbanner,
Tmptab_rec, Tmptab_rec,
Tmpsearch_rec
} }
}); });
dzzoffice.use(ElementPlus, { dzzoffice.use(ElementPlus, {

View File

@@ -25,12 +25,12 @@ if ($do == 'gettagdata') {//获取标签位文件列表数据
$cachename = 'templatetagdata_'.$tdid; $cachename = 'templatetagdata_'.$tdid;
$processname = 'templatetagdatalock_'.$tdid; $processname = 'templatetagdatalock_'.$tdid;
$page = isset($_GET['page']) ? intval($_GET['page']) : 1; $page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$perpage = isset($_GET['perpage']) ? intval($_GET['perpage']) : 60; $perpage = isset($_GET['perpage']) ? intval($_GET['perpage']) : 200;
if($tagtype == 'db_ids' && $page == 1 && $limitnum && $perpage > $limitnum) $perpage = $limitnum; if($tagtype == 'db_ids' && $page == 1 && $limitnum && $perpage > $limitnum) $perpage = $limitnum;
if($tagtype == 'db_ids' && $page > 1){ if($tagtype == 'db_ids' && $page > 1){
$count =($page - 1) * $perpage; $count =($page - 1) * $perpage;
if($count > $limitnum) $perpage = 0; if($limitnum && $count > $limitnum) $perpage = 0;
elseif(($count+$perpage) > $limitnum){ elseif( $limitnum && (($count+$perpage) > $limitnum)){
$perpage = (($limitnum - $count) < 0) ? 0:intval($limitnum - $count); $perpage = (($limitnum - $count) < 0) ? 0:intval($limitnum - $count);
} }
} }
@@ -118,6 +118,7 @@ if ($do == 'gettagdata') {//获取标签位文件列表数据
if ($para) $params = array_merge($params, $para); if ($para) $params = array_merge($params, $para);
$count = DB::result_first("select $countsql $sql where $wheresql ", $params); $count = DB::result_first("select $countsql $sql where $wheresql ", $params);
$rids = []; $rids = [];
foreach (DB::fetch_all(" select $selectsql $sql where $wheresql group by r.rid order by $ordersql $limitsql", $params) as $value) { foreach (DB::fetch_all(" select $selectsql $sql where $wheresql group by r.rid order by $ordersql $limitsql", $params) as $value) {
$rids[] = $value['rid']; $rids[] = $value['rid'];
} }
@@ -131,10 +132,9 @@ if ($do == 'gettagdata') {//获取标签位文件列表数据
} }
} }
if (!empty($rids)) { if (!empty($rids)) {
//if ($tagval['ftype']) $data = C::t('pichome_resources')->smartdata_getdatasbyrids_sid($smid, $rids); $data = C::t('pichome_resources')->getdatasbyrids($rids,1);
//else
$data = C::t('pichome_resources')->getdatasbyrids($rids);
} }
$next = true; $next = true;
//获取已查询总数 //获取已查询总数
if (count($rids) >= $perpage) { if (count($rids) >= $perpage) {
@@ -168,7 +168,7 @@ if ($do == 'gettagdata') {//获取标签位文件列表数据
$processname = 'templatetagdatalock_'.$tdid; $processname = 'templatetagdatalock_'.$tdid;
$page = isset($_GET['page']) ? intval($_GET['page']) : 1; $page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$perpage = isset($_GET['perpage']) ? intval($_GET['perpage']) : 100; $perpage = isset($_GET['perpage']) ? intval($_GET['perpage']) : 100;
if($limitnum && $perpage > $limit) $perpage = $limitnum; if($limitnum && $perpage > $limitnum) $perpage = $limitnum;
$start = ($page - 1) * $perpage; $start = ($page - 1) * $perpage;
$limitsql = "limit $start," . $perpage; $limitsql = "limit $start," . $perpage;
$tagval = $tagval[0]; $tagval = $tagval[0];
@@ -253,69 +253,7 @@ if ($do == 'gettagdata') {//获取标签位文件列表数据
) )
); );
} }
/* elseif ($tagtype == 'picture_rec') {//图组推荐,
$tagval = unserialize($tagdata['tdata']);
$tagval = $tagval[0];
$limitnum = intval($tagval['num']);
$sql = " from %t sd left join %t f on sd.fid = f.fid ";
$selectsql = " f.* ";
$params = ['pichome_sourcesdata', 'pichome_folder'];
$wheresql = " sd.sid in(%n) and r.isdelete < 1 ";
$para[] = $sids;
if ($tagval['type'] == 1) {//最新推荐
$ordersql = ' f.dateline desc ';
} elseif ($tagval['type'] == 2) {//热门推荐
$sql .= ' left join %t v on r.rid=v.idval and v.idtype = 0 ';
$selectsql .= " ,v.nums num ";
$params[] = 'views';
$ordersql = ' num desc ,f.dateline desc ';
} elseif ($tagval['type'] == 3) {//标签推荐
//获取标签id
$tagnames = explode(',', $tagval['value']);
$whereorsql = [];
foreach (DB::fetch_all("select tid from %t where tagname in(%n)", ['pichome_tag', $tagnames]) as $v) {
$whereorsql[] = ' find_in_set(%d,f.tag) ';
$para[] = $v;
}
$wheresql .= ' and (' . implode(' or ', $whereorsql) . ')';
$ordersql = ' f.dateline desc ';
}
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$perpage = isset($_GET['perpage']) ? intval($_GET['perpage']) : 30;
if($limitnum && $perpage > $limitnum) $perpage = $limitnum;
$start = ($page - 1) * $perpage;
$limitsql = "limit $start," . $perpage;
if($para) $params = array_merge($params,$para);
foreach (DB::fetch_all(" select $selectsql $sql where $wheresql group by r.rid order by $ordersql $limitsql", $params) as $value) {
$data[] = $value;
}
$next = true;
//获取已查询总数
if(count($data) >= $perpage){
$total = $start + $perpage * 2 - 1;
if (!$limitnum || $total <= $limitnum) {
$next = true;
}else{
$next = false;
}
}else{
$total = $start + count($data);
$next = false;
}
$return = array(
'tdid' => $tdid,
'next' => $next,
'data' => $data ? $data : array(),
'param' => array(
'page' => $page,
'perpage' => $perpage,
)
);
}*/
} }
exit(json_encode(['success' => true, 'data' => $return])); exit(json_encode(['success' => true, 'data' => $return]));
} elseif ($do == 'getdata') { } elseif ($do == 'getdata') {

View File

@@ -20,17 +20,10 @@ if ($do == 'filelist') {
$params = ['pichome_resources']; $params = ['pichome_resources'];
$havingsql = ''; $havingsql = '';
$havingparams = []; $havingparams = [];
$appid = isset($_GET['appid']) ? trim($_GET['appid']) : '';
$page = isset($_GET['page']) ? intval($_GET['page']) : 1; $page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$perpage = isset($_GET['perpage']) ? intval($_GET['perpage']) : 30; $perpage = isset($_GET['perpage']) ? intval($_GET['perpage']) : 30;
$ismusic = isset($_GET['ismusic']) ? intval($_GET['ismusic']) : 0;
if($ismusic){
$wheresql .= ' and r.ext in(%n) ';
$para[] = ['mp3','ogg','wav','wmv','flac','aac','asf','aiff','au','mid','ra','rma'];
}
$start = ($page - 1) * $perpage; $start = ($page - 1) * $perpage;
$limitsql = "limit $start," . $perpage; $limitsql = "limit $start," . $perpage;
if (!isset($_GET['order'])) { if (!isset($_GET['order'])) {
//获取用户默认排序方式 //获取用户默认排序方式
$sortdata = C::t('user_setting')->fetch_by_skey('pichomesortfileds'); $sortdata = C::t('user_setting')->fetch_by_skey('pichomesortfileds');
@@ -50,64 +43,28 @@ if ($do == 'filelist') {
$orderarr = []; $orderarr = [];
$orderparams = []; $orderparams = [];
$bid = isset($_GET['bid']) ? intval($_GET['bid']):0;
$bannerdata = C::t('pichome_banner')->fetch($bid);
$gappid = isset($_GET['appid']) ? [trim($_GET['appid'])] : [];
//获取有权限访问的库 $appid = isset($_GET['appid']) ? [trim($_GET['appid'])] : [-1];
$vappids = [];
//如果是搜索所有栏目
if(isset($_GET['all']) && $_GET['all']){
foreach(DB::fetch_all("select bdata from %t where btype = 0 and isshow = 1",array('pichome_banner')) as $v){
$gappid[] = $v['bdata'];
}
}
//获取有权限访问的库
$vappids = [];
$gids = [];
if($bannerdata && $bannerdata['btype'] == 5){
//获取所有的专辑和库栏目
foreach(DB::fetch_all("select bdata,btype from %t where (btype = 0 or btype = 4) and isshow = 1",array('pichome_banner')) as $v){
if($v['btype'] == 0)$gappid[] = trim($v['bdata']);
elseif($v['btype'] == 4) $gids[] = intval($v['bdata']);
}
}
//库权限判断部分 //库权限判断部分
foreach (DB::fetch_all("select appid,path,view,type from %t where isdelete = 0", array('pichome_vapp')) as $v) { foreach (DB::fetch_all("select appid,path,view,type from %t where isdelete = 0 and appid in(%n)", array('pichome_vapp',$appid)) as $v) {
if ($v['type'] != 3 && !IO::checkfileexists($v['path'],1)) { if ($v['type'] != 3 && !IO::checkfileexists($v['path'],1)) {
continue; continue;
} }
if (C::t('pichome_vapp')->getpermbypermdata($v['view'],$v['appid'])) { if (C::t('pichome_vapp')->getpermbypermdata($v['view'],$v['appid'])) {
$vappids[] = $v['appid']; $vappids[] = $v['appid'];
} }
} }
if(!is_array($appid)) $appid = (array)$appid;
if($gappid){
$appid = array_intersect($vappids,$gappid);
}elseif($appid){
$appid = array_intersect($vappids,$appid);
}
$whererangesql = []; $whererangesql = [];
//库栏目条件 //库栏目条件
if ($appid) { if ($vappids) {
$whererangesql[]= ' r.appid in(%n)'; $whererangesql[]= ' r.appid in(%n)';
$para[] = $appid; $para[] = $vappids;
}else{ }else{
$whererangesql[]= ' 0 '; $whererangesql[]= ' 0 ';
} }
if($gids){
if(!in_array('pichome_resourcestab',$params)){
$sql .= " left join %t rb on rb.rid = r.rid ";
$params[] = 'pichome_resourcestab';
}
$whererangesql[] = ' ( rb.gid in(%n) and !isnull(rb.tid) ) ';
$para[] = $gids;
}
if($whererangesql){ if($whererangesql){
$wheresql .= ' and ('.implode(' OR ',$whererangesql).') '; $wheresql .= ' and ('.implode(' OR ',$whererangesql).') ';
} }
@@ -145,11 +102,11 @@ if ($do == 'filelist') {
} else { } else {
if (in_array('not', $fidarr)) { if (in_array('not', $fidarr)) {
$nindex = array_search('not', $fidarr); $nindex = array_search('not', $fidarr);
unset($fids[$nindex]); unset($fidarr[$nindex]);
$wheresql .= ' and (fr.fid in(%n) or ISNULL(fr.fid))'; $wheresql .= ' and (fr.fid in(%n) or ISNULL(fr.fid))';
}elseif(in_array('notclassify', $fidarr)) { }elseif(in_array('notclassify', $fidarr)) {
$nindex = array_search('notclassify', $fidarr); $nindex = array_search('notclassify', $fidarr);
unset($fids[$nindex]); unset($fidarr[$nindex]);
$wheresql .= ' and (fr.fid in(%n) or ISNULL(fr.fid))'; $wheresql .= ' and (fr.fid in(%n) or ISNULL(fr.fid))';
} else { } else {
$wheresql .= ' and fr.fid in(%n)'; $wheresql .= ' and fr.fid in(%n)';
@@ -562,9 +519,9 @@ if ($do == 'filelist') {
$orderarr[] = " r.rid " . $asc; $orderarr[] = " r.rid " . $asc;
$ordersql = implode(',', $orderarr); $ordersql = implode(',', $orderarr);
if (!empty($para)) $params = array_merge($params, $para); if (!empty($para)) $params = array_merge($params, $para);
// $time = microtime(true);
$counttotal = DB::result_first(" select count(distinct r.rid) as filenum $sql where $wheresql ", $params); $counttotal = DB::result_first(" select count(distinct r.rid) as filenum $sql where $wheresql ", $params);
if($fids || isset($_GET['color']) || $gids || $order = 9){ if($fids || isset($_GET['color']) || $order = 9){
$groupby = ' group by r.rid'; $groupby = ' group by r.rid';
}else{ }else{
$groupby=''; $groupby='';
@@ -577,29 +534,11 @@ if ($do == 'filelist') {
$rids[] = $value['rid']; $rids[] = $value['rid'];
} }
/* //增加统计关键词次数
if($rids && $keyword){
$statskeywords = array();
$arr1 = explode('+', $keyword);
foreach($arr1 as $value1){
$arr2 = explode(' ', $value1);
foreach($arr2 as $kval){
if($bannerdata && $bannerdata['btype'] == 5){
addKeywordStats($kval);
}else{
addVappkeywordStats($kval,$_GET['appid']);
}
}
}
}*/
// $time1 = microtime(true);
// echo $time1 - $time;
// die;
$data = array(); $data = array();
if (!empty($rids)) $data = C::t('pichome_resources')->getdatasbyrids($rids); if (!empty($rids)) $data = C::t('pichome_resources')->getdatasbyrids($rids);
// print_r($data);die;
if (count($rids) >= $perpage) { if (count($rids) >= $perpage) {
$next = true; $next = true;
} else { } else {

View File

@@ -15,22 +15,18 @@ if ($do == 'addsearch') {//增加关键词搜索次数
$gid = isset($_GET['gid']) ? intval($_GET['gid']) : ''; $gid = isset($_GET['gid']) ? intval($_GET['gid']) : '';
$bid = isset($_GET['bid']) ? intval($_GET['bid']) : ''; $bid = isset($_GET['bid']) ? intval($_GET['bid']) : '';
if (!$keyword) exit(json_encode(array('success'=>false))); if (!$keyword) exit(json_encode(array('success'=>false)));
$bannerdata = [];
if($bid) $bannerdata = C::t('pichome_banner')->fetch($bid);
// C::t('pichome_searchrecent')->add_search($keyword, $appid, $ktype,$gid);
//增加统计关键词次数 //增加统计关键词次数
$arr1 = explode('+', $keyword); $arr1 = explode('+', $keyword);
foreach($arr1 as $value1){ foreach($arr1 as $value1){
$arr2 = explode(' ', $value1); $arr2 = explode(' ', $value1);
foreach($arr2 as $kval){ foreach($arr2 as $kval){
if($bannerdata && $bannerdata['btype'] == 5){ if($appid){
addKeywordStats($kval);
}elseif($appid){
addVappkeywordStats($kval,$appid); addVappkeywordStats($kval,$appid);
}elseif($gid){ }elseif($gid){
addTabgroupkeywordStats($kval,$gid); addTabgroupkeywordStats($kval,$gid);
}else{
addKeywordStats($kval);
} }
} }
} }
@@ -42,11 +38,11 @@ if ($do == 'addsearch') {//增加关键词搜索次数
$page = isset($_GET['page']) ? intval($_GET['page']):1; $page = isset($_GET['page']) ? intval($_GET['page']):1;
$perpage = isset($_GET['perpage']) ? intval($_GET['perpage']):10; $perpage = isset($_GET['perpage']) ? intval($_GET['perpage']):10;
if($gid){ if($gid){
$cachename = 'PICHOMESEARCHHOTKEYWORD_TABGROUP'.$gid; $cachename = 'PICHOMESEARCHHOTKEYWORD_TABGROUP'.$gid.'_'.$page;
} elseif($appid){ } elseif($appid){
$cachename = 'PICHOMESEARCHHOTKEYWORD_VAPP'.$appid; $cachename = 'PICHOMESEARCHHOTKEYWORD_VAPP'.$appid.'_'.$page;
}else{ }else{
$cachename = 'PICHOMESEARCHHOTKEYWORD'; $cachename = 'PICHOMESEARCHHOTKEYWORD_'.$page;
} }
$hotdatas = false; $hotdatas = false;
$hotdatas = C::t('cache')->fetch_cachedata_by_cachename($cachename,$cachetime); $hotdatas = C::t('cache')->fetch_cachedata_by_cachename($cachename,$cachetime);
@@ -75,6 +71,14 @@ if ($do == 'addsearch') {//增加关键词搜索次数
$folderdatanum = C::t('pichome_folder')->fetch_folder_by_appid_pfid($appid,$pfids); $folderdatanum = C::t('pichome_folder')->fetch_folder_by_appid_pfid($appid,$pfids);
} }
exit(json_encode(array( 'folderdatanum' => $folderdatanum))); exit(json_encode(array( 'folderdatanum' => $folderdatanum)));
}elseif($do == 'getleftnum'){//获取左侧文件数
$appid = isset($_GET['appid']) ? trim($_GET['appid']):'';
$data = ['all'=>0,'nocat'=>0];
$data['nocat'] = DB::result_first("select count(rid) as num from %t
where appid = % and isdelete < 1 and (isnull(fids) or fids='')",array('pichome_resources',$appid));
$data['all'] = DB::result_first("select count(rid) as num from %t
where appid = % and isdelete < 1",array('pichome_resources',$appid));
exit(json_encode(['success'=>true,'data'=>$data]));
}elseif($do == 'searchfolderbyname'){ }elseif($do == 'searchfolderbyname'){
$appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; $appid = isset($_GET['appid']) ? trim($_GET['appid']) : '';
$keyword = isset($_GET['keyword']) ? trim($_GET['keyword']):''; $keyword = isset($_GET['keyword']) ? trim($_GET['keyword']):'';
@@ -95,7 +99,7 @@ elseif ($do == 'searchmenu_num') {
$cid = isset($_GET['cid']) ? trim($_GET['cid']) : ''; $cid = isset($_GET['cid']) ? trim($_GET['cid']) : '';
$tagkeyword = isset($_GET['tagkeyword']) ? htmlspecialchars($_GET['tagkeyword']) : ''; $tagkeyword = isset($_GET['tagkeyword']) ? htmlspecialchars($_GET['tagkeyword']) : '';
$skey = isset($_GET['skey']) ? trim($_GET['skey']) : ''; $skey = isset($_GET['skey']) ? trim($_GET['skey']) : '';
// $wheresql = " 1 ";
$para = []; $para = [];
if ($skey == 'tag') { if ($skey == 'tag') {
$sql = " %t rt left join %t r on rt.rid=r.rid "; $sql = " %t rt left join %t r on rt.rid=r.rid ";
@@ -121,61 +125,29 @@ elseif ($do == 'searchmenu_num') {
if(!is_array($appid)) $appid = (array)$appid; if(!is_array($appid)) $appid = (array)$appid;
$fids = isset($_GET['fids']) ? trim($_GET['fids']) : ''; $fids = isset($_GET['fids']) ? trim($_GET['fids']) : '';
$bid = isset($_GET['bid']) ? intval($_GET['bid']):0;
$bannerdata = C::t('pichome_banner')->fetch($bid);
$gappid = isset($_GET['appid']) ? [trim($_GET['appid'])] : [];
//获取有权限访问的库
$vappids = [];
//如果是搜索所有栏目
if(isset($_GET['all']) && $_GET['all']){
foreach(DB::fetch_all("select bdata from %t where btype = 0 and isshow = 1",array('pichome_banner')) as $v){ $appid = isset($_GET['appid']) ? [trim($_GET['appid'])] : [-1];
$gappid[] = $v['bdata'];
}
}
//获取有权限访问的库
$vappids = [];
$gids = [];
if($bannerdata && $bannerdata['btype'] == 5){
//获取所有的专辑和库栏目
foreach(DB::fetch_all("select bdata,btype from %t where (btype = 0 or btype = 4) and isshow = 1",array('pichome_banner')) as $v){
if($v['btype'] == 0)$gappid[] = trim($v['bdata']);
elseif($v['btype'] == 4) $gids[] = intval($v['bdata']);
}
}
//库权限判断部分 //库权限判断部分
foreach (DB::fetch_all("select appid,path,view,type from %t where isdelete = 0", array('pichome_vapp')) as $v) { foreach (DB::fetch_all("select appid,path,view,type from %t where isdelete = 0 and appid in(%n)", array('pichome_vapp',$appid)) as $v) {
if ($v['type'] != 3 && !IO::checkfileexists($v['path'],1)) { if ($v['type'] != 3 && !IO::checkfileexists($v['path'],1)) {
continue; continue;
} }
if (C::t('pichome_vapp')->getpermbypermdata($v['view'],$v['appid'])) { if (C::t('pichome_vapp')->getpermbypermdata($v['view'],$v['appid'])) {
$vappids[] = $v['appid']; $vappids[] = $v['appid'];
} }
}
}
if(!is_array($appid)) $appid = (array)$appid;
if($gappid){
$appid = array_intersect($vappids,$gappid);
}elseif($appid){
$appid = array_intersect($vappids,$appid);
}
$whererangesql = []; $whererangesql = [];
//库栏目条件 //库栏目条件
if ($appid) { if ($vappids) {
$whererangesql[]= ' r.appid in(%n)'; $whererangesql[]= ' r.appid in(%n)';
$para[] = $appid; $para[] = $vappids;
}else{ }else{
$whererangesql[]= ' 0 '; $whererangesql[]= ' 0 ';
} }
if($gids){
if(!in_array('pichome_resourcestab',$params)){
$sql .= " left join %t rb on rb.rid = r.rid ";
$params[] = 'pichome_resourcestab';
}
$whererangesql[] = ' ( rb.gid in(%n) and !isnull(rb.tid) ) ';
$para[] = $gids;
}
if($whererangesql){ if($whererangesql){
$wheresql .= ' and ('.implode(' OR ',$whererangesql).') '; $wheresql .= ' and ('.implode(' OR ',$whererangesql).') ';
} }
@@ -210,11 +182,11 @@ elseif ($do == 'searchmenu_num') {
} else { } else {
if (in_array('not', $fidarr)) { if (in_array('not', $fidarr)) {
$nindex = array_search('not', $fidarr); $nindex = array_search('not', $fidarr);
unset($fids[$nindex]); unset($fidarr[$nindex]);
$wheresql .= ' and (fr.fid in(%n) or ISNULL(fr.fid))'; $wheresql .= ' and (fr.fid in(%n) or ISNULL(fr.fid))';
}elseif(in_array('notclassify', $fidarr)) { }elseif(in_array('notclassify', $fidarr)) {
$nindex = array_search('notclassify', $fidarr); $nindex = array_search('notclassify', $fidarr);
unset($fids[$nindex]); unset($fidarr[$nindex]);
$wheresql .= ' and (fr.fid in(%n) or ISNULL(fr.fid))'; $wheresql .= ' and (fr.fid in(%n) or ISNULL(fr.fid))';
} else { } else {
$wheresql .= ' and fr.fid in(%n)'; $wheresql .= ' and fr.fid in(%n)';
@@ -651,7 +623,7 @@ elseif ($do == 'searchmenu_num') {
$params[] = 'pichome_tag'; $params[] = 'pichome_tag';
if(!empty($preparams)) $params = array_merge($preparams,$params); if(!empty($preparams)) $params = array_merge($preparams,$params);
if (!empty($para)) $params = array_merge($params, $para); if (!empty($para)) $params = array_merge($params, $para);
if(!empty($havingparams)) $params = array_merge($params,$havingparams); if(!empty($havingpara)) $params = array_merge($params,$havingpara);
if($presql) $presql = "distinct rt.tid,t1.tagname,$presql"; if($presql) $presql = "distinct rt.tid,t1.tagname,$presql";
else $presql = "distinct rt.tid,t1.tagname"; else $presql = "distinct rt.tid,t1.tagname";
foreach (DB::fetch_all("select $presql from $sql where $wheresql $havingsql $pagelimit", $params) as $v){ foreach (DB::fetch_all("select $presql from $sql where $wheresql $havingsql $pagelimit", $params) as $v){
@@ -661,7 +633,7 @@ elseif ($do == 'searchmenu_num') {
$fparams = $params; $fparams = $params;
if(!empty($preparams)) $params = array_merge($preparams,$params); if(!empty($preparams)) $params = array_merge($preparams,$params);
if (!empty($para)) $params = array_merge($params, $para); if (!empty($para)) $params = array_merge($params, $para);
if(!empty($havingparams)) $params = array_merge($params,$havingparams); if(!empty($havingpara)) $params = array_merge($params,$havingpara);
if($presql) $presql = "distinct rt.tid,$presql"; if($presql) $presql = "distinct rt.tid,$presql";
else $presql = 'distinct rt.tid'; else $presql = 'distinct rt.tid';
foreach (DB::fetch_all("select $presql from $sql where $wheresql $havingsql $pagelimit", $params) as $v){ foreach (DB::fetch_all("select $presql from $sql where $wheresql $havingsql $pagelimit", $params) as $v){
@@ -730,7 +702,7 @@ elseif ($do == 'searchmenu_num') {
if (!empty($para)) $params = array_merge($params, $para); if (!empty($para)) $params = array_merge($params, $para);
if (!empty($preparams)) $shapeparams = array_merge($preparams, $params); if (!empty($preparams)) $shapeparams = array_merge($preparams, $params);
if(!empty($havingsql)) $shapeparams = array_merge($shapeparams,$havingparams); if(!empty($havingsql)) $shapeparams = array_merge($shapeparams,$havingpara);
foreach (DB::fetch_all("select $presql FROM $sql where $wheresql $havingsql", $shapeparams) as $value) { foreach (DB::fetch_all("select $presql FROM $sql where $wheresql $havingsql", $shapeparams) as $value) {
if (!isset($data[$value['shapedata']]) && $shapedataarr[$value['shapedata']]['val']) { if (!isset($data[$value['shapedata']]) && $shapedataarr[$value['shapedata']]['val']) {
@@ -796,7 +768,7 @@ elseif ($do == 'searchmenu_num') {
//类型统计 //类型统计
if (!empty($para)) $params = array_merge($params, $para); if (!empty($para)) $params = array_merge($params, $para);
if (!empty($preparams)) $params = array_merge($preparams, $params); if (!empty($preparams)) $params = array_merge($preparams, $params);
if(!empty($havingsql)) $params = array_merge($params,$havingparams); if(!empty($havingsql)) $params = array_merge($params,$havingpara);
$pselsql = ($presql) ? "distinct r.rid,r.ext,$presql":"distinct r.rid,r.ext"; $pselsql = ($presql) ? "distinct r.rid,r.ext,$presql":"distinct r.rid,r.ext";
$datas = DB::fetch_all("select $pselsql from $sql where $wheresql group by r.rid $havingsql", $params); $datas = DB::fetch_all("select $pselsql from $sql where $wheresql group by r.rid $havingsql", $params);
@@ -1002,42 +974,27 @@ elseif ($do == 'search_menu') {
} }
$fids = isset($_GET['fids']) ? trim($_GET['fids']) : ''; $fids = isset($_GET['fids']) ? trim($_GET['fids']) : '';
if(!is_array($appid)) $appid = (array)$appid; $appid = isset($_GET['appid']) ? [trim($_GET['appid'])] : [];
//获取有权限访问的库 //库权限判断部分
$vappids = []; foreach (DB::fetch_all("select appid,path,view,type from %t where isdelete = 0 and appid in(%n)", array('pichome_vapp',$appid)) as $v) {
foreach (DB::fetch_all("select appid,path,view,type from %t where isdelete = 0", array('pichome_vapp')) as $v) {
if ($v['type'] != 3 && !IO::checkfileexists($v['path'],1)) { if ($v['type'] != 3 && !IO::checkfileexists($v['path'],1)) {
continue; continue;
} }
if (C::t('pichome_vapp')->getpermbypermdata($v['view'],$v['appid'])) { if (C::t('pichome_vapp')->getpermbypermdata($v['view'],$v['appid'])) {
$vappids[] = $v['appid']; $vappids[] = $v['appid'];
} }
}
if(!empty($appid)){
$appid = array_intersect($vappids,$appid);
}else{
$appid = $vappids;
} }
if(empty($vappids)){ $whererangesql = [];
$wheresql .= ' and 0'; //库栏目条件
}
else{
if ($appid) { if ($appid) {
$wheresql .= ' and r.appid in(%n) '; $whererangesql[]= ' r.appid in(%n)';
$para[] = $appid;
/* if(!$fids && !$hassub){
$sql .= " LEFT JOIN %t fr on fr.rid = r.rid ";
$params[] = 'pichome_folderresources';
$wheresql .= ' and ISNULL(fr.fid)';
}*/
}else{
$wheresql .= ' and r.appid in(%n)';
$para[] = $vappids; $para[] = $vappids;
}else{
$whererangesql[]= ' 0 ';
} }
if($whererangesql){
$wheresql .= ' and ('.implode(' OR ',$whererangesql).') ';
} }
if ($fids) { if ($fids) {
if ($fids == 'not' || $fids == 'notclassify') { if ($fids == 'not' || $fids == 'notclassify') {
@@ -1069,11 +1026,11 @@ elseif ($do == 'search_menu') {
} else { } else {
if (in_array('not', $fidarr)) { if (in_array('not', $fidarr)) {
$nindex = array_search('not', $fidarr); $nindex = array_search('not', $fidarr);
unset($fids[$nindex]); unset($fidarr[$nindex]);
$wheresql .= ' and (fr.fid in(%n) or ISNULL(fr.fid))'; $wheresql .= ' and (fr.fid in(%n) or ISNULL(fr.fid))';
}elseif(in_array('notclassify', $fidarr)) { }elseif(in_array('notclassify', $fidarr)) {
$nindex = array_search('notclassify', $fidarr); $nindex = array_search('notclassify', $fidarr);
unset($fids[$nindex]); unset($fidarr[$nindex]);
$wheresql .= ' and (fr.fid in(%n) or ISNULL(fr.fid))'; $wheresql .= ' and (fr.fid in(%n) or ISNULL(fr.fid))';
} else { } else {
$wheresql .= ' and fr.fid in(%n)'; $wheresql .= ' and fr.fid in(%n)';
@@ -1612,7 +1569,7 @@ elseif($do == 'getpagesetting'){
}*/ }*/
if ($appid) { if ($appid) {
$filter = DB::fetch_first("select screen from %t where appid=%s ", array('pichome_vapp', $appid)); $filter = DB::fetch_first("select screen from %t where appid=%s ", array('pichome_vapp', $appid));
array_unshift($pichomefilterfileds,array('key'=>'classify','text'=>'分类','checked'=>1)); // array_unshift($pichomefilterfileds,array('key'=>'classify','text'=>'分类','checked'=>1));
$filter = $filter['screen'] ? unserialize($filter['screen']):$pichomefilterfileds; $filter = $filter['screen'] ? unserialize($filter['screen']):$pichomefilterfileds;
// print_r($filter);die; // print_r($filter);die;
foreach ($filter as $k => $v) { foreach ($filter as $k => $v) {

View File

@@ -41,7 +41,7 @@ if($do == 'addbanner'){//新建栏目
$url = 'index.php?mod=banner&op=index#id='.$setarr['bdata']; $url = 'index.php?mod=banner&op=index#id='.$setarr['bdata'];
} }
$shorturl = C::t('pichome_route')->update_path_by_url($url,$address); if($setarr['btype'] != 3)$shorturl = C::t('pichome_route')->update_path_by_url($url,$address);
if($setting['pathinfo'] && $shorturl) $setarr['url']=$shorturl; if($setting['pathinfo'] && $shorturl) $setarr['url']=$shorturl;
else $setarr['url']=$url; else $setarr['url']=$url;
} }
@@ -108,7 +108,7 @@ if($do == 'addbanner'){//新建栏目
}else{ }else{
$url = 'index.php?mod=banner&op=index#id='.$setarr['bdata']; $url = 'index.php?mod=banner&op=index#id='.$setarr['bdata'];
} }
if($setting['pathinfo']){ if($setting['pathinfo'] && $setarr['btype'] != 3){
$setarr['url'] = C::t('pichome_route')->update_path_by_url($url,$address); $setarr['url'] = C::t('pichome_route')->update_path_by_url($url,$address);
}else{ }else{
$setarr['url']=$url; $setarr['url']=$url;
@@ -123,7 +123,7 @@ if($do == 'addbanner'){//新建栏目
}else{ }else{
$url = 'index.php?mod=banner&op=index#id='.$data['bdata']; $url = 'index.php?mod=banner&op=index#id='.$data['bdata'];
} }
if($setting['pathinfo']) $path = C::t('pichome_route')->feth_path_by_url($url); if($setting['pathinfo'] && $setarr['btype'] != 3) $path = C::t('pichome_route')->feth_path_by_url($url);
else $path = ''; else $path = '';
if($path){ if($path){
$data['url'] = $path; $data['url'] = $path;
@@ -182,13 +182,16 @@ if($do == 'addbanner'){//新建栏目
$bdata = C::t('pichome_banner')->fetch($id); $bdata = C::t('pichome_banner')->fetch($id);
if($bdata['btype'] == 3){ if($bdata['btype'] == 3){
$url = $bdata['bdata']; $url = $bdata['bdata'];
$sid = 'link_'.md5($url);
}elseif($bdata['btype'] == 4){ }elseif($bdata['btype'] == 4){
$url = 'index.php?mod=banner&op=index#id=tb_'.$bdata['bdata']; $url = 'index.php?mod=banner&op=index#id=tb_'.$bdata['bdata'];
$sid = 'tb_'.$bdata['bdata'];
}else{ }else{
$url = 'index.php?mod=banner&op=index#id='.$bdata['bdata']; $url = 'index.php?mod=banner&op=index#id='.$bdata['bdata'];
$sid = 'b_'.$bdata['bdata'];
} }
//$url = 'index.php?mod=banner&op=index#id='.$id; //$url = 'index.php?mod=banner&op=index#id='.$id;
$qrcode = C::t('pichome_route')->getQRcodeBySid($url,$id); $qrcode = C::t('pichome_route')->getQRcodeBySid($url,$sid);
exit(json_encode(['success'=>true,'qrcode'=>$qrcode])); exit(json_encode(['success'=>true,'qrcode'=>$qrcode]));
}elseif($do == 'gettabdata'){//获取标签组 }elseif($do == 'gettabdata'){//获取标签组
$tabgroupdata = []; $tabgroupdata = [];

View File

@@ -1,5 +1,5 @@
.information-box { .information-box {
margin-top: 35px; margin-top: 20px;
} }
.information-box .message-header { .information-box .message-header {
display: -webkit-box; display: -webkit-box;
@@ -7,7 +7,7 @@
display: flex; display: flex;
padding: 20px; padding: 20px;
padding-bottom: 0; padding-bottom: 0;
background: #F7F7F7; background: var(--el-bg-color);
} }
.information-box .message-header .img-box { .information-box .message-header .img-box {
margin-bottom: 20px; margin-bottom: 20px;
@@ -40,8 +40,8 @@
-webkit-box-flex: 1; -webkit-box-flex: 1;
-ms-flex: 1; -ms-flex: 1;
flex: 1; flex: 1;
padding: 0 50px; padding-right: 20px;
padding-bottom: 57px; padding-bottom: 20px;
} }
.information-box .message-header .descriptions .header-title { .information-box .message-header .descriptions .header-title {
font-weight: 700; font-weight: 700;
@@ -56,42 +56,47 @@
display: -webkit-inline-box; display: -webkit-inline-box;
display: -ms-inline-flexbox; display: -ms-inline-flexbox;
display: inline-flex; display: inline-flex;
width: 50%; width: 100%;
padding: 8px 11px; padding: 8px 11px;
} }
.information-box .message-header .descriptions ul li .title { .information-box .message-header .descriptions ul li .title {
line-height: 23px; line-height: 23px;
white-space: nowrap; white-space: nowrap;
width: 80px;
min-width: 80px;
overflow: hidden;
text-overflow: ellipsis;
} }
.information-box .message-header .descriptions ul li .content { .information-box .message-header .descriptions ul li .content {
margin-left: 8px; margin-left: 8px;
line-height: 23px; line-height: 23px;
} }
.information-box .menu-box { .information-box .menu-box {
position: absolute;
bottom: 0;
left: 20px;
width: 100%; width: 100%;
display: -webkit-box; display: -webkit-box;
display: -ms-flexbox; display: -ms-flexbox;
display: flex; display: flex;
width: calc(100% - 40px); -webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
background: var(--el-bg-color);
border-top: var(--el-border);
padding: 10px 20px;
} }
.information-box .menu-box .el-menu { .information-box .menu-box .el-menu {
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
border-color: var(--el-color-primary);
padding-left: 275px;
-webkit-box-flex: 1; -webkit-box-flex: 1;
-ms-flex: 1; -ms-flex: 1;
flex: 1; flex: 1;
padding-right: 340px; padding-right: 20px;
overflow: hidden; overflow: hidden;
--el-menu-bg-color: transparent; --el-menu-bg-color: transparent;
border-bottom: 0;
height: 40px;
} }
.information-box .menu-box .el-menu .el-menu-item { .information-box .menu-box .el-menu .el-menu-item {
border: 0; border: 0;
margin-right: 4px;
border-radius: var(--el-border-radius-base);
} }
.information-box .menu-box .el-menu .el-menu-item.is-active { .information-box .menu-box .el-menu .el-menu-item.is-active {
color: #FFFFFF !important; color: #FFFFFF !important;
@@ -100,11 +105,6 @@
.information-box .menu-box .el-input { .information-box .menu-box .el-input {
width: 300px; width: 300px;
height: var(--el-input-height); height: var(--el-input-height);
position: absolute;
right: 20px;
bottom: 0;
top: 0;
margin: auto 0;
} }
.information-box .layout-box:last-child { .information-box .layout-box:last-child {
padding-bottom: 30px; padding-bottom: 30px;

View File

@@ -39,14 +39,15 @@
<el-form-item label="名称" prop="bannername"> <el-form-item label="名称" prop="bannername">
<el-input style="width: 50%;" v-model="DialogData.bannername" ></el-input> <el-input style="width: 50%;" v-model="DialogData.bannername" ></el-input>
</el-form-item> </el-form-item>
<template v-if="DialogData.types!='add'"> <template v-if="DialogData.types!='add' && DialogData.type != 3">
<el-form-item label="访问地址"> <el-form-item label="访问地址">
<div style="display: flex;flex: 1;"> <div style="display: flex;flex: 1;">
<el-input <el-input
style="max-width: 50%;" style="max-width: 50%;"
v-model="DialogData.address" v-model="DialogData.address"
:disabled="parseFloat(DialogData.pathinfo)?false:true" :disabled="parseFloat(DialogData.pathinfo)?false:true"
@input="SettingEditStatus"> @input="SettingAddressInput"
maxlength="30">
<template #prepend>{$_G['siteurl']}</template> <template #prepend>{$_G['siteurl']}</template>
</el-input> </el-input>
<div style="white-space: nowrap;margin-left: 12px;"> <div style="white-space: nowrap;margin-left: 12px;">
@@ -100,7 +101,7 @@
</el-form-item> </el-form-item>
<el-form-item label="数据来源" prop="value" v-if="DialogData.type != 5"> <el-form-item label="数据来源" prop="value" v-if="DialogData.type != 5">
<template v-if="DialogData.type == 3"> <template v-if="DialogData.type == 3">
<el-input style="width: 50%;" v-model="DialogData.value" ></el-input> <el-input style="width: 50%;" v-model="DialogData.value" @input="SettingLinkInput"></el-input>
</template> </template>
<template v-else> <template v-else>
<el-select style="width: 50%;" v-model="DialogData.value" @change="OperationValue" :disabled="DialogData.notallowedit"> <el-select style="width: 50%;" v-model="DialogData.value" @change="OperationValue" :disabled="DialogData.notallowedit">
@@ -183,10 +184,26 @@
SettingQrcode:{ SettingQrcode:{
isqrcode:false, isqrcode:false,
qrcodeurl:'' qrcodeurl:''
} },
SettingAddressOld:'',
} }
}, },
methods:{ methods:{
SettingAddressInput(value){
const regex = /^[a-zA-Z_0-9]+$/;
if (!regex.test(value)) {
this.DialogData.address = this.SettingAddressOld;
}else{
this.SettingAddressOld = value;
}
},
SettingLinkInput(value){
let re = /[\u4e00-\u9fa5]/g; // 匹配任何中文字符
if (re.test(value)) {
// 如果输入中包含中文字符,将其值设置为上一个有效的值
this.DialogData.value = this.DialogData.value.replace(re, '');
}
},
OperationAddNew(type){ OperationAddNew(type){
this.DialogData.direction = type; this.DialogData.direction = type;
this.DialogData.visible=true; this.DialogData.visible=true;
@@ -299,6 +316,7 @@
self.DialogData.type = parseInt(res.data.btype); self.DialogData.type = parseInt(res.data.btype);
self.DialogData.isshow = parseInt(res.data.isshow); self.DialogData.isshow = parseInt(res.data.isshow);
self.DialogData.address = res.data.url; self.DialogData.address = res.data.url;
self.SettingAddressOld = res.data.url;
self.DialogData.value = res.data.bdata; self.DialogData.value = res.data.bdata;
self.DialogData.notallowedit = parseFloat(res.data.notallowedit); self.DialogData.notallowedit = parseFloat(res.data.notallowedit);
self.OperationGetTypes(); self.OperationGetTypes();

View File

@@ -1,13 +1,56 @@
<div class="container" style="display: flex;justify-content: end;align-items: center;margin-top: 20px;margin-bottom: 12px;">
<el-dropdown @command="handleLayoutType">
<el-button text style="outline: none;">
<template v-if="bannerData.banner.audio.layout=='waterFall'">瀑布流</template>
<template v-else-if="bannerData.banner.audio.layout=='rowGrid'">自适应</template>
<template v-else-if="bannerData.banner.audio.layout=='imageList'">网格</template>
<template v-else>列表</template>
<el-icon class="el-icon--right">
<arrow-down />
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item
command="waterFall"
:style="{color:bannerData.banner.audio.layout=='waterFall'?'var(--el-color-primary)':''}">
<el-icon><Check v-if="bannerData.banner.audio.layout=='waterFall'" /></el-icon>
瀑布流
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.audio.layout=='rowGrid'?'var(--el-color-primary)':''}"
command="rowGrid">
<el-icon><Check v-if="bannerData.banner.audio.layout=='rowGrid'" /></el-icon>
自适应
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.audio.layout=='imageList'?'var(--el-color-primary)':''}"
command="imageList">
<el-icon><Check v-if="bannerData.banner.audio.layout=='imageList'" /></el-icon>
网格
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.audio.layout=='tabodd'?'var(--el-color-primary)':''}"
command="tabodd">
<el-icon><Check v-if="bannerData.banner.audio.layout=='tabodd'" /></el-icon>
列表
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
<div class="container" style="position: relative;margin-top: 10px;">
<Image-Layout <Image-Layout
ref="RefImageLayoutaudio" ref="RefImageLayoutaudio"
:props="{click:true}" :props="{click:true}"
@returnparam="Imagereturnparam" @returnparam="Imagereturnparam"
:layout="bannerData.banner.audio.layout" :layout="bannerData.banner.audio.layout"
:windowresize="false"
:urlparam="bannerData.ImageLayout.urlparam" :urlparam="bannerData.ImageLayout.urlparam"
@click="ImageDetails" @click="ImageDetails"
:showmessage="bannerData.ImageLayout.showmessage" :showmessage="bannerData.ImageLayout.showmessage"
:url="bannerData.ImageLayout.url" :url="bannerData.ImageLayout.url"
:scrollref="scrollref" :scrollref="scrollref"
:parentbox="bannerData.ImageLayout.parentbox"> :parentbox="bannerData.ImageLayout.parentbox"
:ischecked="false">
</Image-Layout> </Image-Layout>
</div>

View File

@@ -1,13 +1,57 @@
<div class="container" style="display: flex;justify-content: end;align-items: center;margin-top: 20px;margin-bottom: 12px;">
<el-dropdown @command="handleLayoutType">
<el-button text style="outline: none;">
<template v-if="bannerData.banner.document.layout=='waterFall'">瀑布流</template>
<template v-else-if="bannerData.banner.document.layout=='rowGrid'">自适应</template>
<template v-else-if="bannerData.banner.document.layout=='imageList'">网格</template>
<template v-else>列表</template>
<el-icon class="el-icon--right">
<arrow-down />
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item
command="waterFall"
:style="{color:bannerData.banner.document.layout=='waterFall'?'var(--el-color-primary)':''}">
<el-icon><Check v-if="bannerData.banner.document.layout=='waterFall'" /></el-icon>
瀑布流
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.document.layout=='rowGrid'?'var(--el-color-primary)':''}"
command="rowGrid">
<el-icon><Check v-if="bannerData.banner.document.layout=='rowGrid'" /></el-icon>
自适应
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.document.layout=='imageList'?'var(--el-color-primary)':''}"
command="imageList">
<el-icon><Check v-if="bannerData.banner.document.layout=='imageList'" /></el-icon>
网格
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.document.layout=='tabodd'?'var(--el-color-primary)':''}"
command="tabodd">
<el-icon><Check v-if="bannerData.banner.document.layout=='tabodd'" /></el-icon>
列表
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
<div class="container" style="position: relative;margin-top: 10px;">
<Image-Layout <Image-Layout
ref="RefImageLayoutdocument" ref="RefImageLayoutdocument"
:props="{click:true}" :props="{click:true}"
:layout="bannerData.banner.document.layout" :layout="bannerData.banner.document.layout"
:windowresize="false"
@returnparam="Imagereturnparam" @returnparam="Imagereturnparam"
:urlparam="bannerData.ImageLayout.urlparam" :urlparam="bannerData.ImageLayout.urlparam"
@click="ImageDetails" @click="ImageDetails"
:showmessage="bannerData.ImageLayout.showmessage" :showmessage="bannerData.ImageLayout.showmessage"
:url="bannerData.ImageLayout.url" :url="bannerData.ImageLayout.url"
:scrollref="scrollref" :scrollref="scrollref"
:parentbox="bannerData.ImageLayout.parentbox"> :parentbox="bannerData.ImageLayout.parentbox"
:ischecked="false">
</Image-Layout> </Image-Layout>
</div>

View File

@@ -0,0 +1,115 @@
<a href="{$_G[siteurl]}" class="h-left" style="text-decoration: none;">
<el-image class="logo" src="data/attachment/sitelogo/sitelogo.png?{VERHASH}" fit="contain">
<template #error><div class="el-image__placeholder"></div></template>
</el-image>
<el-text tag="b" size="large" style="color:var(--el-text-color-primary);white-space: nowrap;">{$_G[setting][sitename]}</el-text>
</a>
<div class="h-center" style="overflow: hidden;">
<div style="width: 100%;margin-bottom: -5px;height: 100%;overflow: hidden;">
<el-menu
class="dzz-menu"
:default-active="bannerData.active"
mode="horizontal"
style="border:0;height: 100%;">
<template v-for="item in bannerData.data.top">
<template v-if="item.children && item.children.length">
<el-sub-menu
:index="item.id"
:class="{'is-active':bannerData.active==item.id}">
<template #title>
<el-image v-if="item.icon" class="icon" :src="item.icon" fit="cover">
<template #error><div class="el-image__placeholder"></div></template>
</el-image>
{{item.bannername}}
<div class="title-text" @click.stop="handleSelect(item)"></div>
</template>
<menuitem
:datalist="item.children"
@handleselect="handleSelect"
:active="bannerData.active"></menuitem>
</el-sub-menu>
</template>
<template v-else>
<el-menu-item :index="item.id" :disabled="parseInt(item.btype) == 3">
<template #title>
<el-image v-if="item.icon" class="icon" :src="item.icon" fit="cover">
<template #error><div class="el-image__placeholder"></div></template>
</el-image>
{{item.bannername}}
<div class="title-text" @click.stop="handleSelect(item)"></div>
</template>
</el-menu-item>
</template>
</template>
</el-menu>
</div>
</div>
<div class="h-right">
<el-tooltip content="切换页面配色" placement="bottom">
<el-button
text
:icon="DocumentThemeColor=='light'?'Sunny':'Moon'"
style="font-size: var(--el-font-size-extra-large);"
circle
size="large"
@click="DocumentThemeChange">
</el-button>
</el-tooltip>
<comavatar
:level="parseInt($_G[pichomelevel])"
iscollect="<!--{if defined('PICHOME_LIENCE') && (!$_G[config][pichomeclosecollect] || $_G[adminid])}--><!--{/if}-->"
:adminid="parseInt($_G[adminid])"
PICHOME_LIENCE="<!--{if defined('PICHOME_LIENCE')}--><!--{/if}-->"
:uid="parseInt($_G[uid])"
upgrade="<!--{if $_G['setting']['upgrade']}--><!--{/if}-->"
version="$_G[setting][version]"
formhash="{FORMHASH}">
<el-avatar size="40">
{eval echo avatar_block($_G[uid]);}
</el-avatar>
</comavatar>
</div>
<script>
const HeaderMixins = {
data(){
return {
headerdrawer_m:false,
headerkeyword:'',
fheaderkeyword:'',
Screenshow:true,
imagereload:false,
HeaderRightBtnShow:{
display:[],//显示内容
other:'btime',//显示内容其它
order:'btime',//排序方式
sort:'desc',//升序、降序
layout:'waterFall'//图片布局方式
},
HeaderActive:''
}
},
methods:{
handleSelect(data){
if(data.url){
window.location.href = data.url;
}else{
window.location.href = data.realurl;
}
setTimeout(() => {
window.location.reload();
}, 300);
},
DocumentThemeChange(){
console.log(11111);
if(this.DocumentThemeColor=='light'){
this.DocumentThemeColor='dark';
localStorage.setItem('theme','dark');
}else{
this.DocumentThemeColor='light';
localStorage.setItem('theme','light');
}
},
},
}
</script>

View File

@@ -1,13 +1,56 @@
<div class="container" style="display: flex;justify-content: end;align-items: center;margin-top: 20px;margin-bottom: 12px;">
<el-dropdown @command="handleLayoutType">
<el-button text style="outline: none;">
<template v-if="bannerData.banner.image.layout=='waterFall'">瀑布流</template>
<template v-else-if="bannerData.banner.image.layout=='rowGrid'">自适应</template>
<template v-else-if="bannerData.banner.image.layout=='imageList'">网格</template>
<template v-else>列表</template>
<el-icon class="el-icon--right">
<arrow-down />
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item
command="waterFall"
:style="{color:bannerData.banner.image.layout=='waterFall'?'var(--el-color-primary)':''}">
<el-icon><Check v-if="bannerData.banner.image.layout=='waterFall'" /></el-icon>
瀑布流
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.image.layout=='rowGrid'?'var(--el-color-primary)':''}"
command="rowGrid">
<el-icon><Check v-if="bannerData.banner.image.layout=='rowGrid'" /></el-icon>
自适应
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.image.layout=='imageList'?'var(--el-color-primary)':''}"
command="imageList">
<el-icon><Check v-if="bannerData.banner.image.layout=='imageList'" /></el-icon>
网格
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.image.layout=='tabodd'?'var(--el-color-primary)':''}"
command="tabodd">
<el-icon><Check v-if="bannerData.banner.image.layout=='tabodd'" /></el-icon>
列表
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
<div class="container" style="position: relative;margin-top: 10px;">
<Image-Layout <Image-Layout
ref="RefImageLayoutimage" ref="RefImageLayoutimage"
:props="{click:true}" :props="{click:true}"
@returnparam="Imagereturnparam" @returnparam="Imagereturnparam"
:layout="bannerData.banner.image.layout" :layout="bannerData.banner.image.layout"
:windowresize="false"
:urlparam="bannerData.ImageLayout.urlparam" :urlparam="bannerData.ImageLayout.urlparam"
@click="ImageDetails" @click="ImageDetails"
:showmessage="bannerData.ImageLayout.showmessage" :showmessage="bannerData.ImageLayout.showmessage"
:url="bannerData.ImageLayout.url" :url="bannerData.ImageLayout.url"
:scrollref="scrollref" :scrollref="scrollref"
:parentbox="bannerData.ImageLayout.parentbox"> :parentbox="bannerData.ImageLayout.parentbox"
:ischecked="false">
</Image-Layout> </Image-Layout>
</div>

View File

@@ -1,12 +1,12 @@
<div class="information-box"> <div class="information-box">
<div class="w1440" style="position: relative;margin-top: 0;"> <div class="container"
style="
position: relative;
margin-top: 0;
border: var(--el-border);
border-radius: 8px;
overflow: hidden;">
<div class="message-header"> <div class="message-header">
<div class="img-box">
<el-image :class="'image_'+bannerData.icotype" :src="bannerData.icon" fit="cover" >
<template #error><div class="el-image__placeholder" style="background: #FFFFFF;"></div></template>
<template #placeholder><div class="el-image__placeholder" style="background: #FFFFFF;"></div></template>
</el-image>
</div>
<div class="descriptions" style="--el-fill-color-blank: #F7F7F7;"> <div class="descriptions" style="--el-fill-color-blank: #F7F7F7;">
<!-- <el-descriptions <!-- <el-descriptions
:title="bannerData.title" :title="bannerData.title"
@@ -33,6 +33,13 @@
</li> </li>
</ul> </ul>
</div> </div>
<div class="img-box">
<el-image :class="'image_'+bannerData.icotype" :src="bannerData.icon" fit="cover" >
<template #error><div class="el-image__placeholder"></div></template>
<template #placeholder><div class="el-image__placeholder"></div></template>
</el-image>
</div>
</div> </div>
<div class="menu-box"> <div class="menu-box">
@@ -56,21 +63,27 @@
</el-input> </el-input>
</div> </div>
</div> </div>
<div class="w1440" style="position: relative;" v-if="bannerData.banneractive == 'all' || bannerData.banneractive == 'search'"> <div class="container" style="margin-top: 20px;" v-if="bannerData.banneractive == 'all' || bannerData.banneractive == 'search'">
<div class="tag-box"> <div class="tag-box">
<template v-for="tag in bannerData.tags"> <template v-for="tag in bannerData.tags">
<el-check-tag :checked="tagactive == tag.tid" style="margin-left: 12px;font-weight: 500;" disable-transitions @change="tagserach(tag)"> <el-check-tag
:checked="tagactive == tag.tid"
style="margin-right: 12px;font-weight: 500;border: var(--el-border);margin-bottom: 5px;"
disable-transitions
@change="tagserach(tag)"
:style="{background: tagactive != tag.tid?'var(--el-bg-color)':''}">
{{ tag.tagname }}{{tag.num}} {{ tag.tagname }}{{tag.num}}
</el-check-tag> </el-check-tag>
</template> </template>
</div> </div>
</div> </div>
<div ref="parentbox">
<template v-if="bannerData.banneractive == 'all'"> <template v-if="bannerData.banneractive == 'all'">
<div class="w1440" style="position: relative;"> <div class="container" style="position: relative;">
<template v-for="item in bannerData.AllData"> <template v-for="item in bannerData.AllData">
<div v-if="item.data.length" class="layout-box"> <div v-if="item.data.length" class="layout-box">
<div class="top-header"> <div class="top-header" style="margin-top: 20px;">
<el-text tag="b" size="large">{{ item.name }}</el-text> <el-text tag="b" size="large">{{ item.name }}</el-text>
<el-button plain @click="handleBannerSelect(item.flag)"> <el-button plain @click="handleBannerSelect(item.flag)">
更多<el-icon><Arrow-Right /></el-icon> 更多<el-icon><Arrow-Right /></el-icon>
@@ -78,7 +91,6 @@
</div> </div>
<Image-Layoutlimit <Image-Layoutlimit
v-if="!item.loading" v-if="!item.loading"
:windowresize="false"
:data="item.data" :data="item.data"
:layout="item.layout" :layout="item.layout"
:rows="1" :rows="1"
@@ -89,312 +101,24 @@
</div> </div>
</template> </template>
<template v-else-if="bannerData.banneractive == 'image'"> <template v-else-if="bannerData.banneractive == 'image'">
<div class="w1440" style="display: flex;justify-content: end;align-items: center;"> <!--{template components/information/image}-->
<el-dropdown @command="handleLayoutType">
<el-button text style="outline: none;">
<template v-if="bannerData.banner.image.layout=='waterFall'">瀑布流</template>
<template v-else-if="bannerData.banner.image.layout=='rowGrid'">自适应</template>
<template v-else-if="bannerData.banner.image.layout=='imageList'">网格</template>
<template v-else>列表</template>
<el-icon class="el-icon--right">
<arrow-down />
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item
command="waterFall"
:style="{color:bannerData.banner.image.layout=='waterFall'?'var(--el-color-primary)':''}">
<el-icon><Check v-if="bannerData.banner.image.layout=='waterFall'" /></el-icon>
瀑布流
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.image.layout=='rowGrid'?'var(--el-color-primary)':''}"
command="rowGrid">
<el-icon><Check v-if="bannerData.banner.image.layout=='rowGrid'" /></el-icon>
自适应
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.image.layout=='imageList'?'var(--el-color-primary)':''}"
command="imageList">
<el-icon><Check v-if="bannerData.banner.image.layout=='imageList'" /></el-icon>
网格
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.image.layout=='tabodd'?'var(--el-color-primary)':''}"
command="tabodd">
<el-icon><Check v-if="bannerData.banner.image.layout=='tabodd'" /></el-icon>
列表
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
<div class="w1440" style="position: relative;margin-top: 10px;" ref="parentbox">
<Image-Layout
ref="RefImageLayoutimage"
:props="{click:true}"
@returnparam="Imagereturnparam"
:layout="bannerData.banner.image.layout"
:windowresize="false"
:urlparam="bannerData.ImageLayout.urlparam"
@click="ImageDetails"
:showmessage="bannerData.ImageLayout.showmessage"
:url="bannerData.ImageLayout.url"
:scrollref="scrollref"
:parentbox="bannerData.ImageLayout.parentbox">
</Image-Layout>
</div>
</template> </template>
<template v-else-if="bannerData.banneractive == 'video'"> <template v-else-if="bannerData.banneractive == 'video'">
<div class="w1440" style="display: flex;justify-content: end;align-items: center;"> <!--{template components/information/video}-->
<el-dropdown @command="handleLayoutType">
<el-button text style="outline: none;">
<template v-if="bannerData.banner.video.layout=='waterFall'">瀑布流</template>
<template v-else-if="bannerData.banner.video.layout=='rowGrid'">自适应</template>
<template v-else-if="bannerData.banner.video.layout=='imageList'">网格</template>
<template v-else>列表</template>
<el-icon class="el-icon--right">
<arrow-down />
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item
command="waterFall"
:style="{color:bannerData.banner.video.layout=='waterFall'?'var(--el-color-primary)':''}">
<el-icon><Check v-if="bannerData.banner.video.layout=='waterFall'" /></el-icon>
瀑布流
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.video.layout=='rowGrid'?'var(--el-color-primary)':''}"
command="rowGrid">
<el-icon><Check v-if="bannerData.banner.video.layout=='rowGrid'" /></el-icon>
自适应
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.video.layout=='imageList'?'var(--el-color-primary)':''}"
command="imageList">
<el-icon><Check v-if="bannerData.banner.video.layout=='imageList'" /></el-icon>
网格
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.video.layout=='tabodd'?'var(--el-color-primary)':''}"
command="tabodd">
<el-icon><Check v-if="bannerData.banner.video.layout=='tabodd'" /></el-icon>
列表
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
<div class="w1440" style="position: relative;margin-top: 10px;" ref="parentbox">
<Image-Layout
ref="RefImageLayoutvideo"
:props="{click:true}"
@returnparam="Imagereturnparam"
:layout="bannerData.banner.video.layout"
:windowresize="false"
:urlparam="bannerData.ImageLayout.urlparam"
@click="ImageDetails"
:showmessage="bannerData.ImageLayout.showmessage"
:url="bannerData.ImageLayout.url"
:scrollref="scrollref"
:parentbox="bannerData.ImageLayout.parentbox">
</Image-Layout>
</div>
</template> </template>
<template v-else-if="bannerData.banneractive == 'audio'"> <template v-else-if="bannerData.banneractive == 'audio'">
<div class="w1440" style="display: flex;justify-content: end;align-items: center;"> <!--{template components/information/audio}-->
<el-dropdown @command="handleLayoutType">
<el-button text style="outline: none;">
<template v-if="bannerData.banner.audio.layout=='waterFall'">瀑布流</template>
<template v-else-if="bannerData.banner.audio.layout=='rowGrid'">自适应</template>
<template v-else-if="bannerData.banner.audio.layout=='imageList'">网格</template>
<template v-else>列表</template>
<el-icon class="el-icon--right">
<arrow-down />
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item
command="waterFall"
:style="{color:bannerData.banner.audio.layout=='waterFall'?'var(--el-color-primary)':''}">
<el-icon><Check v-if="bannerData.banner.audio.layout=='waterFall'" /></el-icon>
瀑布流
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.audio.layout=='rowGrid'?'var(--el-color-primary)':''}"
command="rowGrid">
<el-icon><Check v-if="bannerData.banner.audio.layout=='rowGrid'" /></el-icon>
自适应
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.audio.layout=='imageList'?'var(--el-color-primary)':''}"
command="imageList">
<el-icon><Check v-if="bannerData.banner.audio.layout=='imageList'" /></el-icon>
网格
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.audio.layout=='tabodd'?'var(--el-color-primary)':''}"
command="tabodd">
<el-icon><Check v-if="bannerData.banner.audio.layout=='tabodd'" /></el-icon>
列表
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
<div class="w1440" style="position: relative;margin-top: 10px;" ref="parentbox">
<Image-Layout
ref="RefImageLayoutaudio"
:props="{click:true}"
@returnparam="Imagereturnparam"
:layout="bannerData.banner.audio.layout"
:windowresize="false"
:urlparam="bannerData.ImageLayout.urlparam"
@click="ImageDetails"
:showmessage="bannerData.ImageLayout.showmessage"
:url="bannerData.ImageLayout.url"
:scrollref="scrollref"
:parentbox="bannerData.ImageLayout.parentbox">
</Image-Layout>
</div>
</template> </template>
<template v-else-if="bannerData.banneractive == 'document'"> <template v-else-if="bannerData.banneractive == 'document'">
<div class="w1440" style="display: flex;justify-content: end;align-items: center;"> <!--{template components/information/document}-->
<el-dropdown @command="handleLayoutType">
<el-button text style="outline: none;">
<template v-if="bannerData.banner.document.layout=='waterFall'">瀑布流</template>
<template v-else-if="bannerData.banner.document.layout=='rowGrid'">自适应</template>
<template v-else-if="bannerData.banner.document.layout=='imageList'">网格</template>
<template v-else>列表</template>
<el-icon class="el-icon--right">
<arrow-down />
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item
command="waterFall"
:style="{color:bannerData.banner.document.layout=='waterFall'?'var(--el-color-primary)':''}">
<el-icon><Check v-if="bannerData.banner.document.layout=='waterFall'" /></el-icon>
瀑布流
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.document.layout=='rowGrid'?'var(--el-color-primary)':''}"
command="rowGrid">
<el-icon><Check v-if="bannerData.banner.document.layout=='rowGrid'" /></el-icon>
自适应
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.document.layout=='imageList'?'var(--el-color-primary)':''}"
command="imageList">
<el-icon><Check v-if="bannerData.banner.document.layout=='imageList'" /></el-icon>
网格
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.document.layout=='tabodd'?'var(--el-color-primary)':''}"
command="tabodd">
<el-icon><Check v-if="bannerData.banner.document.layout=='tabodd'" /></el-icon>
列表
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
<div class="w1440" style="position: relative;margin-top: 10px;" ref="parentbox">
<Image-Layout
ref="RefImageLayoutdocument"
:props="{click:true}"
:layout="bannerData.banner.document.layout"
:windowresize="false"
@returnparam="Imagereturnparam"
:urlparam="bannerData.ImageLayout.urlparam"
@click="ImageDetails"
:showmessage="bannerData.ImageLayout.showmessage"
:url="bannerData.ImageLayout.url"
:scrollref="scrollref"
:parentbox="bannerData.ImageLayout.parentbox">
</Image-Layout>
</div>
</template> </template>
<template v-else-if="bannerData.banneractive == 'other'"> <template v-else-if="bannerData.banneractive == 'other'">
<div class="w1440" style="display: flex;justify-content: end;align-items: center;"> <!--{template components/information/other}-->
<el-dropdown @command="handleLayoutType">
<el-button text style="outline: none;">
<template v-if="bannerData.banner.other.layout=='waterFall'">瀑布流</template>
<template v-else-if="bannerData.banner.other.layout=='rowGrid'">自适应</template>
<template v-else-if="bannerData.banner.other.layout=='imageList'">网格</template>
<template v-else>列表</template>
<el-icon class="el-icon--right">
<arrow-down />
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item
command="waterFall"
:style="{color:bannerData.banner.other.layout=='waterFall'?'var(--el-color-primary)':''}">
<el-icon><Check v-if="bannerData.banner.other.layout=='waterFall'" /></el-icon>
瀑布流
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.other.layout=='rowGrid'?'var(--el-color-primary)':''}"
command="rowGrid">
<el-icon><Check v-if="bannerData.banner.other.layout=='rowGrid'" /></el-icon>
自适应
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.other.layout=='imageList'?'var(--el-color-primary)':''}"
command="imageList">
<el-icon><Check v-if="bannerData.banner.other.layout=='imageList'" /></el-icon>
网格
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.other.layout=='tabodd'?'var(--el-color-primary)':''}"
command="tabodd">
<el-icon><Check v-if="bannerData.banner.other.layout=='tabodd'" /></el-icon>
列表
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
<div class="w1440" style="position: relative;margin-top: 10px;" ref="parentbox">
<Image-Layout
ref="RefImageLayoutother"
:props="{click:true}"
@returnparam="Imagereturnparam"
:layout="bannerData.banner.other.layout"
:windowresize="false"
:urlparam="bannerData.ImageLayout.urlparam"
@click="ImageDetails"
:showmessage="bannerData.ImageLayout.showmessage"
:url="bannerData.ImageLayout.url"
:scrollref="scrollref"
:parentbox="bannerData.ImageLayout.parentbox">
</Image-Layout>
</div>
</template> </template>
<template v-else-if="bannerData.banneractive == 'search'"> <template v-else-if="bannerData.banneractive == 'search'">
<div class="w1440" style="position: relative;margin-top: 10px;" ref="parentbox"> <!--{template components/information/search}-->
<Image-Layout
ref="RefImageLayoutsearch"
:props="{click:true}"
layout="imageList"
:windowresize="false"
@returnparam="Imagereturnparam"
:urlparam="bannerData.ImageLayout.urlparam"
@click="ImageDetails"
:showmessage="bannerData.ImageLayout.showmessage"
:url="bannerData.ImageLayout.url"
:scrollref="scrollref"
:parentbox="bannerData.ImageLayout.parentbox">
</Image-Layout>
</div>
</template> </template>
</div> </div>
</div>

View File

@@ -1,13 +1,56 @@
<div class="container" style="display: flex;justify-content: end;align-items: center;margin-top: 20px;margin-bottom: 12px;">
<el-dropdown @command="handleLayoutType">
<el-button text style="outline: none;">
<template v-if="bannerData.banner.other.layout=='waterFall'">瀑布流</template>
<template v-else-if="bannerData.banner.other.layout=='rowGrid'">自适应</template>
<template v-else-if="bannerData.banner.other.layout=='imageList'">网格</template>
<template v-else>列表</template>
<el-icon class="el-icon--right">
<arrow-down />
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item
command="waterFall"
:style="{color:bannerData.banner.other.layout=='waterFall'?'var(--el-color-primary)':''}">
<el-icon><Check v-if="bannerData.banner.other.layout=='waterFall'" /></el-icon>
瀑布流
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.other.layout=='rowGrid'?'var(--el-color-primary)':''}"
command="rowGrid">
<el-icon><Check v-if="bannerData.banner.other.layout=='rowGrid'" /></el-icon>
自适应
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.other.layout=='imageList'?'var(--el-color-primary)':''}"
command="imageList">
<el-icon><Check v-if="bannerData.banner.other.layout=='imageList'" /></el-icon>
网格
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.other.layout=='tabodd'?'var(--el-color-primary)':''}"
command="tabodd">
<el-icon><Check v-if="bannerData.banner.other.layout=='tabodd'" /></el-icon>
列表
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
<div class="container" style="position: relative;margin-top: 10px;">
<Image-Layout <Image-Layout
ref="RefImageLayoutother" ref="RefImageLayoutother"
:props="{click:true}" :props="{click:true}"
@returnparam="Imagereturnparam" @returnparam="Imagereturnparam"
:layout="bannerData.banner.other.layout" :layout="bannerData.banner.other.layout"
:windowresize="false"
:urlparam="bannerData.ImageLayout.urlparam" :urlparam="bannerData.ImageLayout.urlparam"
@click="ImageDetails" @click="ImageDetails"
:showmessage="bannerData.ImageLayout.showmessage" :showmessage="bannerData.ImageLayout.showmessage"
:url="bannerData.ImageLayout.url" :url="bannerData.ImageLayout.url"
:scrollref="scrollref" :scrollref="scrollref"
:parentbox="bannerData.ImageLayout.parentbox"> :parentbox="bannerData.ImageLayout.parentbox"
:ischecked="false">
</Image-Layout> </Image-Layout>
</div>

View File

@@ -1,15 +1,15 @@
<div class="w1440" style="position: relative;margin-top: 10px;" ref="parentbox"> <div class="container" style="position: relative;margin-top: 10px;">
<Image-Layout <Image-Layout
ref="RefImageLayoutsearch" ref="RefImageLayoutsearch"
:props="{click:true}" :props="{click:true}"
layout="imageList" layout="imageList"
:windowresize="false"
@returnparam="Imagereturnparam" @returnparam="Imagereturnparam"
:urlparam="bannerData.ImageLayout.urlparam" :urlparam="bannerData.ImageLayout.urlparam"
@click="ImageDetails" @click="ImageDetails"
:showmessage="bannerData.ImageLayout.showmessage" :showmessage="bannerData.ImageLayout.showmessage"
:url="bannerData.ImageLayout.url" :url="bannerData.ImageLayout.url"
:scrollref="scrollref" :scrollref="scrollref"
:parentbox="bannerData.ImageLayout.parentbox"> :parentbox="bannerData.ImageLayout.parentbox"
:ischecked="false">
</Image-Layout> </Image-Layout>
</div> </div>

View File

@@ -1,13 +1,57 @@
<div class="container" style="display: flex;justify-content: end;align-items: center;margin-top: 20px;margin-bottom: 12px;">
<el-dropdown @command="handleLayoutType">
<el-button text style="outline: none;">
<template v-if="bannerData.banner.video.layout=='waterFall'">瀑布流</template>
<template v-else-if="bannerData.banner.video.layout=='rowGrid'">自适应</template>
<template v-else-if="bannerData.banner.video.layout=='imageList'">网格</template>
<template v-else>列表</template>
<el-icon class="el-icon--right">
<arrow-down />
</el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item
command="waterFall"
:style="{color:bannerData.banner.video.layout=='waterFall'?'var(--el-color-primary)':''}">
<el-icon><Check v-if="bannerData.banner.video.layout=='waterFall'" /></el-icon>
瀑布流
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.video.layout=='rowGrid'?'var(--el-color-primary)':''}"
command="rowGrid">
<el-icon><Check v-if="bannerData.banner.video.layout=='rowGrid'" /></el-icon>
自适应
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.video.layout=='imageList'?'var(--el-color-primary)':''}"
command="imageList">
<el-icon><Check v-if="bannerData.banner.video.layout=='imageList'" /></el-icon>
网格
</el-dropdown-item>
<el-dropdown-item
:style="{color:bannerData.banner.video.layout=='tabodd'?'var(--el-color-primary)':''}"
command="tabodd">
<el-icon><Check v-if="bannerData.banner.video.layout=='tabodd'" /></el-icon>
列表
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
<div class="container" style="position: relative;margin-top: 10px;">
<Image-Layout <Image-Layout
ref="RefImageLayoutvideo" ref="RefImageLayoutvideo"
:props="{click:true}" :props="{click:true}"
@returnparam="Imagereturnparam" @returnparam="Imagereturnparam"
:layout="bannerData.banner.video.layout" :layout="bannerData.banner.video.layout"
:windowresize="false"
:urlparam="bannerData.ImageLayout.urlparam" :urlparam="bannerData.ImageLayout.urlparam"
@click="ImageDetails" @click="ImageDetails"
:showmessage="bannerData.ImageLayout.showmessage" :showmessage="bannerData.ImageLayout.showmessage"
:url="bannerData.ImageLayout.url" :url="bannerData.ImageLayout.url"
:scrollref="scrollref" :scrollref="scrollref"
:parentbox="bannerData.ImageLayout.parentbox"> :parentbox="bannerData.ImageLayout.parentbox"
:ischecked="false">
</Image-Layout> </Image-Layout>
</div>

View File

@@ -3,15 +3,20 @@
cursor: pointer; cursor: pointer;
} }
.imagtablelayout.imagtable-content { #main_scrollbar.page {
cursor: pointer; padding: 0;
} }
.page-header { .page-header {
padding: 0 10px; padding: 0 10px;
} }
.page-footer {
margin-top: 20px;
}
.banner-module { .banner-module {
padding: 0 10px;
margin-top: 20px; margin-top: 20px;
} }
.banner-module.back { .banner-module.back {
@@ -30,7 +35,6 @@
.banner-module .el-tabs--border-card { .banner-module .el-tabs--border-card {
border-radius: 8px; border-radius: 8px;
overflow: hidden; overflow: hidden;
min-height: 200px;
} }
.banner-module .el-tabs--border-card.el-tabs--left { .banner-module .el-tabs--border-card.el-tabs--left {
display: -webkit-box; display: -webkit-box;
@@ -93,14 +97,6 @@
} }
.banner-module .banner-head .banner-mod-title .banner-filter-tab .tab-tag { .banner-module .banner-head .banner-mod-title .banner-filter-tab .tab-tag {
border: 0; border: 0;
background: transparent;
}
.banner-module .banner-head .banner-mod-title .banner-filter-tab .tab-tag:hover {
background-color: var(--el-fill-color);
}
.banner-module .banner-head .banner-mod-title .banner-filter-tab .tab-tag.is-has-bg {
background-color: var(--el-color-primary-light-9);
--el-button-text-color: var(--el-color-primary);
} }
.banner-module .banner-head .num-page-wrap { .banner-module .banner-head .num-page-wrap {
display: -webkit-box; display: -webkit-box;
@@ -286,7 +282,7 @@
width: 50px; width: 50px;
height: 50px; height: 50px;
background-image: var(--imgurl); background-image: var(--imgurl);
background-size: 50px 50px; background-size: contain;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;
display: inline-block; display: inline-block;
@@ -378,9 +374,9 @@
} }
.page-footer { .page-footer {
padding: 0px 20px; padding: 20px;
margin: 30px 0; border-top: var(--el-border);
margin-bottom: 20px; background: var(--el-bg-color);
} }
.page-footer .dzz-menu .el-menu-item { .page-footer .dzz-menu .el-menu-item {
font-size: 14px; font-size: 14px;
@@ -403,6 +399,7 @@
width: 100%; width: 100%;
height: 100%; height: 100%;
border-radius: 8px; border-radius: 8px;
border: var(--el-border);
} }
.manual_rec-box .manual_rec-wrap .el-image .el-image__inner { .manual_rec-box .manual_rec-wrap .el-image .el-image__inner {
-webkit-transition: all 0.4s; -webkit-transition: all 0.4s;
@@ -418,6 +415,178 @@
height: 100%; height: 100%;
} }
.dark .search_rec {
background: #343B45;
}
.dark .search_rec .el-input__wrapper, .dark .search_rec .el-input-group__prepend {
background-color: rgba(0, 0, 0, 0.1);
}
.dark .search_rec .hot button {
background-color: rgba(0, 0, 0, 0.1);
}
.search_rec-dropdown.is-active {
color: var(--el-color-primary);
}
.search_rec {
border-radius: 10px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
background: #EBF2FA;
}
.search_rec.style1 {
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
padding: 40px 0;
}
.search_rec.style2 {
-webkit-box-align: start;
-ms-flex-align: start;
align-items: start;
padding: 30px;
}
.search_rec.style3 {
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
background: transparent;
padding: 40px 0;
}
.search_rec.style4 {
background: transparent;
-webkit-box-align: start;
-ms-flex-align: start;
align-items: start;
padding: 30px 0;
}
.search_rec .el-image {
max-width: 500px;
max-height: 360px;
margin-bottom: 20px;
}
.search_rec .el-image .el-image__inner {
max-width: 500px;
max-height: 360px;
}
.search_rec .title {
font-size: 53px;
font-weight: 700;
margin-bottom: 12px;
color: var(--el-text-color-primary);
-ms-flex-item-align: auto;
align-self: auto;
}
.search_rec .desc {
font-size: var(--el-font-size-medium);
line-height: 1.6;
margin-bottom: 28px;
max-width: 400px;
-ms-flex-item-align: auto;
align-self: auto;
letter-spacing: 0.1rem;
}
.search_rec .input {
width: 780px;
max-width: 100%;
}
.search_rec .input .el-input-group__prepend {
-webkit-box-shadow: none;
box-shadow: none;
border: var(--el-border);
border-right: 0;
padding: 0px;
}
.search_rec .input .el-input-group__prepend .el-dropdown .el-dropdown-link {
height: 60px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
cursor: pointer;
padding-left: 20px;
padding-right: 5px;
}
.search_rec .input .el-input-group__prepend .el-dropdown .el-dropdown-link .el-icon {
margin-left: 16px;
}
.search_rec .input .el-input__wrapper {
-webkit-box-shadow: none;
box-shadow: none;
border-top: var(--el-border);
border-bottom: var(--el-border);
}
.search_rec .input .el-input-group__append {
-webkit-box-shadow: none;
box-shadow: none;
}
.search_rec .input .el-input-group__append .el-button {
color: var(--el-button-text-color);
background-color: var(--el-button-bg-color);
border-color: var(--el-button-border-color);
border-top-left-radius: 0;
border-bottom-left-radius: 0;
height: 62px;
width: 100px;
font-size: 30px;
font-weight: 700;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
.search_rec .hot {
margin-top: 20px;
}
@media (max-width: 767px) {
.banner-module:first-child {
margin-top: 10px;
}
.search_rec {
padding: 20px 10px;
}
.search_rec.style1, .search_rec.style2, .search_rec.style3, .search_rec.style4 {
padding: 20px 10px;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.search_rec .el-image {
width: 100px;
height: 100px;
}
.search_rec .title {
font-size: 25px;
}
.search_rec .input {
width: 100%;
}
.search_rec .input .el-input-group__prepend .el-dropdown .el-dropdown-link {
height: 36px;
}
.search_rec .input .el-input-group__append .el-button {
height: 38px;
width: auto;
font-size: var(--el-font-size-base);
}
}
.manual_rec-box .manual_rec-item { .manual_rec-box .manual_rec-item {
width: 266px; width: 266px;
min-width: 266px; min-width: 266px;
@@ -1559,65 +1728,6 @@
height: 172.5px !important; height: 172.5px !important;
} }
} }
.menu-hamburger {
width: 20px;
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
height: 40px;
background: none;
border: none;
cursor: pointer;
margin-right: 0.5rem;
}
.menu-hamburger > span {
background-color: var(--el-text-color-primary);
border-radius: 10px;
height: 2px;
margin: 2px 0;
-webkit-transition: var(--el-transition-all);
transition: var(--el-transition-all);
width: 100%;
}
.menu-hamburger > span.hamburger-1 {
width: 50%;
}
.menu-hamburger > span.hamburger-3 {
width: 75%;
}
.menu-hamburger.active .hamburger-1 {
-webkit-transform-origin: bottom;
transform-origin: bottom;
-webkit-transform: rotate(45deg) translate(13px);
transform: rotate(45deg) translate(13px);
}
.menu-hamburger.active .hamburger-2 {
-webkit-transform-origin: top;
transform-origin: top;
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
}
.menu-hamburger.active .hamburger-3 {
-webkit-transform-origin: bottom;
transform-origin: bottom;
width: 50%;
-webkit-transform: translate(2px, -10px) rotate(45deg);
transform: translate(2px, -10px) rotate(45deg);
}
.m-header-munu { .m-header-munu {
background-color: transparent; background-color: transparent;
-webkit-box-shadow: none; -webkit-box-shadow: none;

View File

@@ -1,5 +1,5 @@
<a href="{$_G[siteurl]}" class="h-left" style="text-decoration: none;"> <a href="{$_G[siteurl]}" class="h-left" style="text-decoration: none;">
<el-image class="logo" src="data/attachment/sitelogo/sitelogo.png?VjP" fit="contain"> <el-image class="logo" src="data/attachment/sitelogo/sitelogo.png?{VERHASH}" fit="contain">
<template #error><div class="el-image__placeholder"></div></template> <template #error><div class="el-image__placeholder"></div></template>
</el-image> </el-image>
<el-text tag="b" size="large" style="color:var(--el-text-color-primary);white-space: nowrap;">{$_G[setting][sitename]}</el-text> <el-text tag="b" size="large" style="color:var(--el-text-color-primary);white-space: nowrap;">{$_G[setting][sitename]}</el-text>
@@ -45,7 +45,7 @@
</div> </div>
<el-autocomplete <el-autocomplete
ref="headerkeyword" ref="headerkeyword"
v-if="PageType == 'ku'" v-if="PageType == 'ku' || PageType == 'tab'"
style="width: 300px;min-width: 300px;" style="width: 300px;min-width: 300px;"
v-model="fheaderkeyword" v-model="fheaderkeyword"
:fetch-suggestions="querySearch" :fetch-suggestions="querySearch"
@@ -58,6 +58,18 @@
</el-autocomplete> </el-autocomplete>
</div> </div>
<div class="h-right"> <div class="h-right">
<!--{if count($collectdata)}-->
<el-dropdown @command="handleCollectCommand">
<el-button type="primary" style="margin-right: 6px;" icon="Upload">归档文件</el-button>
<template #dropdown>
<el-dropdown-menu>
<!--{loop $collectdata $key $val}-->
<el-dropdown-item command="$val[url]">$val[name]</el-dropdown-item>
<!--{/loop}-->
</el-dropdown-menu>
</template>
</el-dropdown>
<!--{/if}-->
<el-tooltip content="切换页面配色" placement="bottom"> <el-tooltip content="切换页面配色" placement="bottom">
<el-button <el-button
text text
@@ -68,7 +80,7 @@
@click="DocumentThemeChange"> @click="DocumentThemeChange">
</el-button> </el-button>
</el-tooltip> </el-tooltip>
<template v-if="PageType != 'page'"> <template v-if="PageType != 'page' && PageType != 'tab'">
<el-tooltip :content="Screenshow?'隐藏筛选':'显示筛选'" placement="bottom"> <el-tooltip :content="Screenshow?'隐藏筛选':'显示筛选'" placement="bottom">
<el-button <el-button
text text
@@ -81,7 +93,7 @@
</el-button> </el-button>
</el-tooltip> </el-tooltip>
</template> </template>
<template v-if="PageType != 'page'"> <template v-if="PageType != 'page' && PageType != 'tab'">
<el-popover <el-popover
placement="bottom" placement="bottom"
trigger="click" trigger="click"
@@ -142,6 +154,15 @@
cb([]) cb([])
}, },
handleSelect(data){ handleSelect(data){
let self = this;
if(parseInt(data.btype) == 3){
if(data.realurl){
window.open(data.realurl)
}else{
self.$message.error('没有链接地址');
}
return false;
}
if(data.url){ if(data.url){
window.location.href = data.url; window.location.href = data.url;
}else{ }else{
@@ -216,9 +237,12 @@
} }
}, },
handleCollectCommand(val){
window.open(val);
},
headerkeywordInput(){ headerkeywordInput(){
this.headerkeyword = JSON.parse(JSON.stringify(this.fheaderkeyword)); this.headerkeyword = JSON.parse(JSON.stringify(this.fheaderkeyword));
if(this.PageType != 'ku'){ if(this.PageType != 'ku' && this.PageType != 'tab'){
this.bannerData.active = 0; this.bannerData.active = 0;
this.ContentData = []; this.ContentData = [];
this.PageType = 'search'; this.PageType = 'search';

View File

@@ -1,6 +1,6 @@
<div class="h-left"> <div class="h-left">
<a href="{$_G[siteurl]}" style="margin-right: 10px;width: 25px;height: 25px;"> <a href="{$_G[siteurl]}" style="margin-right: 10px;width: 25px;height: 25px;">
<el-image class="logo" src="data/attachment/sitelogo/sitelogo.png?VjP" fit="contain" style="width: 100%;height: 100%;"> <el-image class="logo" src="data/attachment/sitelogo/sitelogo.png?{VERHASH}" fit="contain" style="width: 100%;height: 100%;">
<template #error><div class="el-image__placeholder"></div></template> <template #error><div class="el-image__placeholder"></div></template>
</el-image> </el-image>
</a> </a>

View File

@@ -48,15 +48,8 @@
<!--{template common/container/pc/header_end}--> <!--{template common/container/pc/header_end}-->
<div id="dzzoffice"> <div id="dzzoffice">
<el-container> <el-container>
<el-header v-if="ispc" class="page-header" height="60px"> <el-header v-if="ispc" class="page-header" height="60px" :class="{ku:PageType == 'ku' || PageType == 'search'}">
<div class="p">
<div
class="page-header"
:class="{ku:PageType == 'ku' || PageType == 'search'}"
style="margin: 0px auto;height: 100%;border: 0;padding: 0;">
<!--{template fashion/pc/components/header}--> <!--{template fashion/pc/components/header}-->
</div>
</div>
</el-header> </el-header>
<el-container class="page-main is-vertical"> <el-container class="page-main is-vertical">
<!-- <el-scrollbar <!-- <el-scrollbar
@@ -78,11 +71,7 @@
<!-- </el-scrollbar> --> <!-- </el-scrollbar> -->
</el-container> </el-container>
<el-header v-if="!ispc" class="page-header" height="50px" style="border:0;border-top: var(--el-border);"> <el-header v-if="!ispc" class="page-header" height="50px" style="border:0;border-top: var(--el-border);">
<div class="m-page-header m">
<div class="page-header" style="height: 100%;width: 100%;border: 0;padding: 0;">
<!--{template fashion/pc/components/header_m}--> <!--{template fashion/pc/components/header_m}-->
</div>
</div>
</el-header> </el-header>
</el-container> </el-container>
</div> </div>
@@ -172,7 +161,7 @@
this.fheaderkeyword = keyword; this.fheaderkeyword = keyword;
} }
let btype = parseInt(this.bannerData.item.btype); let btype = parseInt(this.bannerData.item.btype);
if(this.headerkeyword && btype != 0){ if(this.headerkeyword && btype != 0 && btype != 4){
this.bannerData.active = 0; this.bannerData.active = 0;
this.ContentData = []; this.ContentData = [];
this.PageType = 'search'; this.PageType = 'search';
@@ -184,6 +173,9 @@
}else if(btype == 1){//智能数据 }else if(btype == 1){//智能数据
this.ContentData = []; this.ContentData = [];
this.PageType = 'sources'; this.PageType = 'sources';
}else if(btype == 4){//专辑
this.ContentData = [];
this.PageType = 'tab';
}else if(btype == 2){//单页 }else if(btype == 2){//单页
this.ContentData = []; this.ContentData = [];
this.PageType = 'page'; this.PageType = 'page';
@@ -240,8 +232,19 @@
<!--{/if}--> <!--{/if}-->
}else{ }else{
if(this.bannerData.data && this.bannerData.data.top && this.bannerData.data.top.length){ if(this.bannerData.data && this.bannerData.data.top && this.bannerData.data.top.length){
if(parseInt(this.bannerData.data.top[0].btype) == 3){
for (let index = 0; index < this.bannerData.data.top.length; index++) {
const element = this.bannerData.data.top[index];
if(parseInt(element.btype) != 3){
this.banncomplete(element);
break;
}
}
}else{
this.banncomplete(this.bannerData.data.top[0]); this.banncomplete(this.bannerData.data.top[0]);
} }
}
} }
}, },
clearkeyword(){ clearkeyword(){
@@ -305,6 +308,7 @@
if(parseInt(showscreen) > -1){ if(parseInt(showscreen) > -1){
this.Screenshow = parseInt(showscreen)?true:false; this.Screenshow = parseInt(showscreen)?true:false;
} }
window.addEventListener("resize", this.handleIsPc)
// this.scrollref = self.$refs.scrollref; // this.scrollref = self.$refs.scrollref;
}, },
components:{ components:{

View File

@@ -56,6 +56,34 @@
</item> </item>
</item> </item>
</item>
<!-- 搜索 -->
<item id="search_rec">
<!-- 样式1 -->
<item id="style1">
<item id="title"><![CDATA[简洁边框中对齐]]></item>
<item id="default"><![CDATA[true]]></item>
<item id="value"><![CDATA[style1]]></item>
</item>
<!-- 样式2 -->
<item id="style2">
<item id="title"><![CDATA[简洁边框左对齐]]></item>
<item id="default"><![CDATA[false]]></item>
<item id="value"><![CDATA[style2]]></item>
</item>
<!-- 样式3 -->
<item id="style3">
<item id="title"><![CDATA[无边框中对齐]]></item>
<item id="default"><![CDATA[false]]></item>
<item id="value"><![CDATA[style3]]></item>
</item>
<!-- 样式4 -->
<item id="style4">
<item id="title"><![CDATA[无边框左对齐]]></item>
<item id="default"><![CDATA[false]]></item>
<item id="value"><![CDATA[style4]]></item>
</item>
</item> </item>
<!-- 富文本 --> <!-- 富文本 -->
<item id="rich_text"> <item id="rich_text">

View File

@@ -1,13 +1,14 @@
<!--{template common/container/pc/header_start}--> <!--{template common/container/pc/header_start}-->
<link rel="stylesheet" href="{MOD_PATH}/template/red/assets/css/root_red.css?{VERHASH}"> <link rel="stylesheet" href="static/scss/default/index.css?{VERHASH}">
<!-- <link rel="stylesheet" href="static/scss/default/index.css?{VERHASH}"> -->
<link rel="stylesheet" href="{MOD_PATH}/template/red/assets/css/index.css?{VERHASH}">
<link rel="stylesheet" href="{MOD_PATH}/template/asstes/css/information.css?{VERHASH}"> <link rel="stylesheet" href="{MOD_PATH}/template/asstes/css/information.css?{VERHASH}">
<script type="text/javascript" src="static/vue_components/ImageLayoutlimit/index.js?{VERHASH}"></script> <script type="text/javascript" src="{MOD_PATH}/template/fashion/pc/assets/js/menu.js?{VERHASH}"></script>
<script type="text/javascript" src="static/vue_components/ImageLayout/index.js?{VERHASH}"></script> <script type="text/javascript" src="static/vue_components/ImageLayout/index.js?{VERHASH}"></script>
<script type="text/javascript" src="static/vue_components/collectdialog/index.js?{VERHASH}"></script>
<script type="text/javascript" src="{MOD_PATH}/template/red/assets/js/menu.js?{VERHASH}"></script>
<link rel="stylesheet" type="text/css" href="static/scss/layout.css?{VERHASH}"/> <link rel="stylesheet" type="text/css" href="static/scss/layout.css?{VERHASH}"/>
<script type="text/javascript" src="static/vue_components/HeaderSort/index.js?{VERHASH}"></script>
<script type="text/javascript" src="static/vue_components/ImageLayoutlimit/index.js?{VERHASH}"></script>
<link rel="stylesheet" href="{MOD_PATH}/template/fashion/pc/assets/css/index.css?{VERHASH}">
<script type="text/javascript" src="static/vue_components/collectdialog/index.js?{VERHASH}"></script>
<script> <script>
function debounce(fun, delay) { function debounce(fun, delay) {
var time; var time;
@@ -51,51 +52,14 @@
} }
</style> </style>
<!--{template common/container/pc/header_end}--> <!--{template common/container/pc/header_end}-->
<div id="dzzoffice" class="dzz-container"> <div id="dzzoffice">
<el-scrollbar class="affix-container" id="main_scrollbar" ref="scrollref"> <el-container>
<el-backtop target="#main_scrollbar>.el-scrollbar__wrap" :right="20" :bottom="20"></el-backtop> <el-header class="page-header" height="60px">
<el-container style="height: auto;"> <!--{template components/information/header}-->
<el-header height="200px" style="background: var(--dzz-background);padding:0;">
<!--{template red/components/header/index}-->
</el-header> </el-header>
<el-header v-if="bannerData.ChildData.length" style="height: 60px;background: var(--el-color-primary);padding: 0;"> <el-container class="page-main is-vertical dzz-container">
<div class="page-header w1440" style="margin-top: 0;padding: 0;"> <el-scrollbar id="main_scrollbar" ref="scrollref" @scroll="handleScroll">
<el-menu <div class="container" style="display: flex;align-items: center;padding-top: 20px;">
class="dzz-menu dzz-default-menu"
:default-active="bannerData.ChildActive"
mode="horizontal"
style="border:0;height: 100%;width: 100%;"
@select="handleSelect">
<template v-for="item in bannerData.ChildData">
<template v-if="item.children && item.children.length">
<el-sub-menu
:index="item.id"
:class="{'is-active':bannerData.ChildActive==item.id}"
popper-class="dzz-sub-menu">
<template #title>
<div class="title">{{item.bannername}}</div>
<div class="title-text" @click.stop="handleSelect(item)"></div>
</template>
<menuitem
:datalist="item.children"
@handleselect="handleSelect"
:active="bannerData.ChildActive"></menuitem>
</el-sub-menu>
</template>
<template v-else>
<el-menu-item :index="item.id" :disabled="parseInt(item.btype) == 3">
<template #title>
<div class="title">{{item.bannername}}</div>
<div class="title-text" @click.stop="handleSelect(item)"></div>
</template>
</el-menu-item>
</template>
</template>
</el-menu>
</div>
</el-header>
<el-container class="is-vertical">
<div class="w1440" style="display: flex;align-items: center;">
<el-icon><Location /></el-icon> <el-icon><Location /></el-icon>
<el-text tag="b" style="margin-left: 6px;">您得位置:</el-text> <el-text tag="b" style="margin-left: 6px;">您得位置:</el-text>
<el-breadcrumb separator-icon="Arrow-Right"> <el-breadcrumb separator-icon="Arrow-Right">
@@ -109,6 +73,7 @@
</el-breadcrumb-item> </el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
</div> </div>
<!--{template components/information/message}--> <!--{template components/information/message}-->
<div style="background: #EBEBEB;border-top: 2px solid var(--el-color-primary);"> <div style="background: #EBEBEB;border-top: 2px solid var(--el-color-primary);">
<div class="page-footer"> <div class="page-footer">
@@ -116,7 +81,7 @@
class="dzz-menu dzz-footer-menu" class="dzz-menu dzz-footer-menu"
:default-active="active" :default-active="active"
mode="horizontal" mode="horizontal"
style="border:0;height: 100%;justify-content: center;" style="border: 0px;height: 100%;justify-content: center;margin-bottom: 10px;"
@select="handleSelect"> @select="handleSelect">
<template v-for="item in headeralldata.data"> <template v-for="item in headeralldata.data">
<template v-if="item.children && item.children.length"> <template v-if="item.children && item.children.length">
@@ -147,14 +112,15 @@
<el-text <el-text
v-if="headeralldata.message.sitebeiantxt || headeralldata.message.sitebeian" v-if="headeralldata.message.sitebeiantxt || headeralldata.message.sitebeian"
tag="p" tag="p"
style="display: flex;align-items: center;justify-content: center;margin-top: 20px;color: var(--el-text-color-primary);">{{headeralldata.message.sitebeiantxt}} <el-link href="https://beian.miit.gov.cn/" target="_blank" style="color: var(--el-text-color-primary);">{{headeralldata.message.sitebeian}}</el-link> style="display: flex;align-items: center;justify-content: center;margin-top: 20px;">{{headeralldata.message.sitebeiantxt}}
<el-link href="https://beian.miit.gov.cn/" target="_blank" style="margin-left: 8px;">{{headeralldata.message.sitebeian}}</el-link>
</el-text> </el-text>
</div> </div>
</div> </div>
</el-container>
</el-container>
</el-scrollbar> </el-scrollbar>
</el-container>
</el-container>
</div> </div>
<script> <script>
const { createApp, reactive, toRefs, toRef, ref, onMounted, nextTick, watch, computed, onBeforeUpdate } = Vue; const { createApp, reactive, toRefs, toRef, ref, onMounted, nextTick, watch, computed, onBeforeUpdate } = Vue;
@@ -213,15 +179,22 @@
breadcrumb:[], breadcrumb:[],
tabkeyword:'', tabkeyword:'',
ImageDataIframe:'', ImageDataIframe:'',
template:3, template:2,
tyttvalue:[], tyttvalue:[],
tyttvalue1:'' tyttvalue1:'',
DocumentThemeColor:'',
} }
}, },
mixins:[HeaderMixins], mixins:[HeaderMixins],
created(){ created(){
let self = this; let self = this;
document.querySelector('html').className = 'red'; //主题颜色
let theme = localStorage.getItem('theme');
if(theme){
this.DocumentThemeColor=theme;
}else{
this.DocumentThemeColor = 'light'
}
let keyword = this.GetUrlParam('keyword'); let keyword = this.GetUrlParam('keyword');
let tid = this.GetUrlParam('tid'); let tid = this.GetUrlParam('tid');
let ftype = this.GetUrlParam('type'); let ftype = this.GetUrlParam('type');
@@ -281,7 +254,13 @@
} }
}, },
watch:{ watch:{
DocumentThemeColor:{
handler(newval){
document.querySelector('html').className = newval;
},
deep:true,
// immediate:true
}
}, },
methods:{ methods:{
async GetData(){ async GetData(){
@@ -415,11 +394,11 @@
hash.push('tid='+this.tagactive) hash.push('tid='+this.tagactive)
} }
this.bannerData.ImageLayout.url = 'index.php?mod=banner&op=information&do=getfilelist'; this.bannerData.ImageLayout.url = 'index.php?mod=banner&op=information&do=getfilelist';
this.bannerData.ImageLayout.parentbox = self.$refs.parentbox;
hash = hash.join('&'); hash = hash.join('&');
location.hash = hash; location.hash = hash;
self.$nextTick(function(){ self.$nextTick(function(){
switch(type){ switch(type){
case 'image': case 'image':
@@ -445,6 +424,30 @@
}, },
ImageDetails(){ ImageDetails(){
},
handleScroll(){
let self = this;
let type = this.bannerData.banneractive;
switch(type){
case 'image':
self.$refs.RefImageLayoutimage.HandleElScrollbar();
break;
case 'video':
self.$refs.RefImageLayoutvideo.HandleElScrollbar();
break;
case 'audio':
self.$refs.RefImageLayoutaudio.HandleElScrollbar();
break;
case 'document':
self.$refs.RefImageLayoutdocument.HandleElScrollbar();
break;
case 'other':
self.$refs.RefImageLayoutother.HandleElScrollbar();
break;
case 'search':
self.$refs.RefImageLayoutsearch.HandleElScrollbar();
break;
}
}, },
handleLayoutType(type){ handleLayoutType(type){
this.bannerData.banner[this.bannerData.banneractive].layout = type; this.bannerData.banner[this.bannerData.banneractive].layout = type;
@@ -516,7 +519,8 @@
}, },
mounted(){ mounted(){
const self = this; const self = this;
this.scrollref = self.$refs.scrollref self.scrollref = self.$refs.scrollref;
self.bannerData.ImageLayout.parentbox = self.$refs.parentbox;
} }
}); });

View File

@@ -176,7 +176,6 @@
}, },
mixins:[HeaderMixin], mixins:[HeaderMixin],
created(){ created(){
console.log(111111);
document.querySelector('html').className = 'red'; document.querySelector('html').className = 'red';
}, },
watch:{ watch:{

View File

@@ -358,7 +358,7 @@ class billfishxport
$attrdata['desc'] = $v['note']; $attrdata['desc'] = $v['note'];
$attrdata['link'] = $v['origin']; $attrdata['link'] = $v['origin'];
//将名字记入搜索字段 //将名字记入搜索字段
$attrdata['searchval'] = $setarr['name'] . $attrdata['desc'] . $attrdata['link']; $attrdata['searchval'] = $setarr['name'] . getstr($attrdata['desc'],255) . $attrdata['link'];
//处理目录数据 //处理目录数据
if ($folderdata) { if ($folderdata) {
$fid = $folderdata['fid']; $fid = $folderdata['fid'];
@@ -450,9 +450,17 @@ class billfishxport
$colorarr = explode('|',$colorstr); $colorarr = explode('|',$colorstr);
foreach($colorarr as $colorval){ foreach($colorarr as $colorval){
$tmpcolor = explode(',',$colorval); $tmpcolor = explode(',',$colorval);
if($tmpcolor[0] > 0){
$intcolor = $tmpcolor[1]; $intcolor = $tmpcolor[1];
//获取颜色十六进制值
$colorhex = $this->dec2hex($intcolor);
$colorhexarr = str_split($colorhex,2);
array_shift($colorhexarr);
$colorhexarr = array_reverse($colorhexarr);
$colorhex = implode('',$colorhexarr);
//获取整型颜色值
$intcolor = hexdec($colorhex);
$intcolorsarr[] = $intcolor; $intcolorsarr[] = $intcolor;
$colorhex = dechex($intcolor);
$rgbcolor = hex2rgb($colorhex); $rgbcolor = hex2rgb($colorhex);
//$rgbarr = [$rgbcolor['r'],$rgbcolor['g'],$rgbcolor['b']]; //$rgbarr = [$rgbcolor['r'],$rgbcolor['g'],$rgbcolor['b']];
// $color = new Color($rgbarr); // $color = new Color($rgbarr);
@@ -465,6 +473,8 @@ class billfishxport
'b' => $rgbcolor['b'], 'b' => $rgbcolor['b'],
'p' => $p 'p' => $p
]; ];
}
C::t('pichome_palette')->insert($colorarr); C::t('pichome_palette')->insert($colorarr);
} }
$isgray = $this->isgray($intcolorsarr); $isgray = $this->isgray($intcolorsarr);
@@ -549,6 +559,30 @@ class billfishxport
return array('success' => true); return array('success' => true);
} }
public function dec2hex($number)
{
$i = 0;
$hex = array();
while($i < 8) {
if($number == 0) {
array_push($hex, '0');
}
else {
array_push($hex, dechex(bcmod($number, '16')));
$number = bcdiv($number, '16', 0);
}
$i++;
}
krsort($hex);
return implode($hex);
}
public function export($force = false) public function export($force = false)
{ {
//开始页数 //开始页数
@@ -657,7 +691,7 @@ class billfishxport
$attrdata['desc'] = $v['note']; $attrdata['desc'] = $v['note'];
$attrdata['link'] = $v['origin']; $attrdata['link'] = $v['origin'];
//将名字记入搜索字段 //将名字记入搜索字段
$attrdata['searchval'] = $setarr['name'] . $attrdata['desc'] . $attrdata['link']; $attrdata['searchval'] = $setarr['name'] . getstr($attrdata['desc'],255) . $attrdata['link'];
//处理目录数据 //处理目录数据
if ($folderdata) { if ($folderdata) {
$fid = $folderdata['fid']; $fid = $folderdata['fid'];
@@ -987,7 +1021,7 @@ class billfishxport
$attrdata['desc'] = $v['note']; $attrdata['desc'] = $v['note'];
$attrdata['link'] = $v['origin']; $attrdata['link'] = $v['origin'];
//将名字记入搜索字段 //将名字记入搜索字段
$attrdata['searchval'] = $setarr['name'] . $attrdata['desc'] . $attrdata['link']; $attrdata['searchval'] = $setarr['name'] . getstr($attrdata['desc'],255) . $attrdata['link'];
//处理目录数据 //处理目录数据
if ($folderdata) { if ($folderdata) {
//处理目录数据 //处理目录数据

View File

@@ -15,7 +15,9 @@
type: 'success' type: 'success'
}); });
document.getElementById('copyInput').remove(); document.getElementById('copyInput').remove();
}; };
</script> </script>
<style> <style>
body{ body{
@@ -439,6 +441,7 @@
self.ImgParam.iswait = false; self.ImgParam.iswait = false;
self.HtmlLoading = false; self.HtmlLoading = false;
}); });
window.parent.document.querySelector('.Details-Iframe').lastChild.style.opacity = "";
<!--{else}--> <!--{else}-->
window.onhashchange = function(){ window.onhashchange = function(){
if(self.DocumentBack){ if(self.DocumentBack){

View File

@@ -40,6 +40,7 @@ class eagleexport
0x80cbc4, 0x8c9eff, 0xffeb3b, 0xffe57f, 0xfff59d, 0xff7043, 0x80cbc4, 0x8c9eff, 0xffeb3b, 0xffe57f, 0xfff59d, 0xff7043,
0x1976d2, 0x5c6bc0, 0x64dd17, 0xffd600 0x1976d2, 0x5c6bc0, 0x64dd17, 0xffd600
]; ];
public function __construct($data = array()) public function __construct($data = array())
{ {
if (strpos($data['path'], ':') === false) { if (strpos($data['path'], ':') === false) {
@@ -145,11 +146,25 @@ class eagleexport
return true; return true;
} }
//读取云存储数据
public function readcloudDirdata($thandle,$path, $nextmarker = '',$by = 'time',$order = 'DESC', $limit = 1000, $force = 0){
$prepatharr = explode(':',$path);
$prepath = $prepatharr[2]; //读取云存储数据
public function readcloudDirdata($path, $force = 0)
{
$prepatharr = explode(':', $path);
//获取mtime.json
$mtimejsonfile = $this->path . '/mtime.json';
$mtimedata = file_get_contents(IO::getStream($mtimejsonfile));
if ($mtimedata) {
$vappmtimedata = json_decode($mtimedata, true);
unset($mtimedata);
$this->filenum = $vappmtimedata['all'];
unset($vappmtimedata);
} else {
return array('error' => '信息获取失败');
}
/* $prepath = $prepatharr[2];
$returndata = IO::getFolderlist($path,$nextmarker,$by,$order,$limit,$force); $returndata = IO::getFolderlist($path,$nextmarker,$by,$order,$limit,$force);
if($returndata['error']){ if($returndata['error']){
return array('error'=>$returndata['error']); return array('error'=>$returndata['error']);
@@ -164,24 +179,29 @@ class eagleexport
} }
} }
} }
runlog('aaaaeagle',print_r($returndata,true));
if($returndata['IsTruncated']){ if($returndata['IsTruncated']){
$this->readcloudDirdata($thandle,$path,$returndata['NextMarker'],$by,$order,$limit,$force); $istruncated = $returndata['NextMarker'];
unset($returndata);
$this->readcloudDirdata($thandle,$path,$istruncated,$by,$order,$limit,$force);
}else{ }else{
return array('success'=>true); return array('success'=>true);
} }*/
} }
//读取本地目录数据 //读取本地目录数据
public function readLocalDirdata($thandle,$path){ public function readLocalDirdata($thandle, $path)
{
if ($dch = opendir($path)) { if ($dch = opendir($path)) {
while (($file = readdir($dch)) != false) { while (($file = readdir($dch)) != false) {
if (dzz_process::getlocked($this->processname)) exit('vapp isdeleted'); if (dzz_process::getlocked($this->processname)) exit('vapp isdeleted');
if ($file != '.' && $file != '..') { if ($file != '.' && $file != '..') {
$filePath = $path . '/' . $file; $filePath = $path . '/' . $file;
if (is_dir($filePath) && IO::checkfileexists($filePath . '/metadata.json')) { //if (is_dir($filePath) && IO::checkfileexists($filePath . '/metadata.json')) {
$this->filenum++; $this->filenum++;
fwrite($thandle, $file . "\n"); fwrite($thandle, $file . "\n");
} // }
unset($filePath); unset($filePath);
unset($file); unset($file);
} }
@@ -193,18 +213,21 @@ class eagleexport
} }
//生成记录文件 //生成记录文件
public function createReadTxt($readtxt){ public function createReadTxt($readtxt)
{
$filedir = ($this->iscloud) ? $this->path . '/images' : $this->path . BS . 'images'; $filedir = ($this->iscloud) ? $this->path . '/images' : $this->path . BS . 'images';
$this->filenum = 0; $this->filenum = 0;
$thandle = fopen($readtxt, 'w+');
if ($this->iscloud) { if ($this->iscloud) {
$readreturn = $this->readcloudDirdata($thandle,$filedir); $readreturn = $this->readcloudDirdata($filedir);
} else { } else {
$thandle = fopen($readtxt, 'w+');
$readreturn = $this->readLocalDirdata($thandle, $filedir); $readreturn = $this->readLocalDirdata($thandle, $filedir);
}
fclose($thandle); fclose($thandle);
}
if ($readreturn['error']) { if ($readreturn['error']) {
C::t('pichome_vapp')->update($this->appid, array('state' => -1)); C::t('pichome_vapp')->update($this->appid, array('state' => 0));
return array('error' => $readreturn['error']); return array('error' => $readreturn['error']);
} }
$this->initFoldertag(); $this->initFoldertag();
@@ -272,6 +295,9 @@ class eagleexport
public function execExport($force = false) public function execExport($force = false)
{ {
if ($this->iscloud) {
return $this->execExportCloud($force);
} else {
$filedir = ($this->iscloud) ? $this->path . '/images' : $this->path . BS . 'images'; $filedir = ($this->iscloud) ? $this->path . '/images' : $this->path . BS . 'images';
$readtxt = $this->readtxt . 'eagleexport' . md5($this->path) . '.txt'; $readtxt = $this->readtxt . 'eagleexport' . md5($this->path) . '.txt';
if (filesize($readtxt) == 0) { if (filesize($readtxt) == 0) {
@@ -330,8 +356,7 @@ class eagleexport
//如果是删除状态,并且已有数据则执行删除 //如果是删除状态,并且已有数据则执行删除
if ($filemetadata['isDeleted']) { if ($filemetadata['isDeleted']) {
if ($rid) C::t('pichome_resources')->delete_by_rid($rid); if ($rid) C::t('pichome_resources')->delete_by_rid($rid);
} } else {
else {
//如果不是新生成rid //如果不是新生成rid
if ($rid) { if ($rid) {
$data = C::t('pichome_resources')->fetch($rid); $data = C::t('pichome_resources')->fetch($rid);
@@ -360,8 +385,7 @@ class eagleexport
} }
if ($haspassword) { if ($haspassword) {
C::t('pichome_resources')->delete_by_rid($rid); C::t('pichome_resources')->delete_by_rid($rid);
} } else {
else{
//如果mtime发生变化则删除原数据重新导入 //如果mtime发生变化则删除原数据重新导入
if ($data['mtime'] < $filemetadata['mtime']) { if ($data['mtime'] < $filemetadata['mtime']) {
C::t('pichome_resources')->delete_by_rid($rid); C::t('pichome_resources')->delete_by_rid($rid);
@@ -378,8 +402,7 @@ class eagleexport
$filemetadata['level'] = $currentperm; $filemetadata['level'] = $currentperm;
$this->exportfile($id, $filemetadata); $this->exportfile($id, $filemetadata);
unset($filemetadata); unset($filemetadata);
} } else {
else {
//信息表数据记录 //信息表数据记录
$setarr = ['appid' => $this->appid]; $setarr = ['appid' => $this->appid];
$setarr['searchval'] = $filemetadata['name']; $setarr['searchval'] = $filemetadata['name'];
@@ -497,7 +520,7 @@ class eagleexport
$setarr['link'] = $filemetadata['url'] ? trim($filemetadata['url']) : ''; $setarr['link'] = $filemetadata['url'] ? trim($filemetadata['url']) : '';
//描述数据 //描述数据
$setarr['desc'] = $filemetadata['annotation'] ? $filemetadata['annotation'] : ''; $setarr['desc'] = $filemetadata['annotation'] ? $filemetadata['annotation'] : '';
$setarr['searchval'] .= $setarr['desc'] . $setarr['link']; $setarr['searchval'] .= getstr($setarr['desc'],255) . $setarr['link'];
if ($filemetadata['duration']) $setarr['duration'] = number_format($filemetadata['duration'], 2); if ($filemetadata['duration']) $setarr['duration'] = number_format($filemetadata['duration'], 2);
$setarr['rid'] = $rid; $setarr['rid'] = $rid;
C::t('pichome_resources_attr')->insert($setarr); C::t('pichome_resources_attr')->insert($setarr);
@@ -508,8 +531,7 @@ class eagleexport
} }
} } else {
else{
if (!$rdata) { if (!$rdata) {
$setarr = [ $setarr = [
'appid' => $this->appid, 'appid' => $this->appid,
@@ -521,8 +543,7 @@ class eagleexport
} }
} }
} } else {
else {
$realfolderdata = []; $realfolderdata = [];
if (!empty($filemetadata['folders'])) { if (!empty($filemetadata['folders'])) {
$realfolderdata = C::t('#eagle#eagle_folderrecord')->fetch_fid_by_efid($filemetadata['folders'], $this->appid); $realfolderdata = C::t('#eagle#eagle_folderrecord')->fetch_fid_by_efid($filemetadata['folders'], $this->appid);
@@ -595,7 +616,320 @@ class eagleexport
} }
return array('success' => true); return array('success' => true);
}
}
public function execExportCloud($force = false)
{
$filedir = $this->path . '/images';
$prepatharr = explode(':', $filedir);
$prepath = $prepatharr[2];
if ($this->exportstatus == 2) {
$nextmarker = $this->lastid ? $this->lastid : '';
$returndata = IO::getFolderlist($filedir, $nextmarker, 'time', 'DESC', $this->onceexportnum);
if ($returndata['error']) {
return array('error' => $returndata['error']);
} else {
$i = 0;
foreach ($returndata['folder'] as $v) {
if (dzz_process::getlocked($this->processname)) exit('vapp isdeleted');
$v = str_replace($prepath, '', $v);
$v = trim($v, '/');
if (dzz_process::getlocked($this->processname)) exit('vapp isdeleted');
$file = $v;
$file = trim($file);
$filePath = $filedir . '/' . $file;
$id = trim(str_replace('.info', '', $file));
//文件路径
$tmppath = $filePath;
unset($filePath);
//文件信息文件路径
$metadatajsonfile = ($this->iscloud) ? $tmppath . '/metadata.json' : $tmppath . BS . 'metadata.json';
//尝试获取记录表记录
$rdata = C::t('#eagle#eagle_record')->fetch_by_eid($id, $this->appid);
$rid = '';
if (!isset($rdata['rid'])) {
$orid = $id . $this->appid;//原来rid格式
if ($lastdate = DB::result_first("select lastdate from %t where rid = %s", array('pichome_resources', $orid))) {
$rid = $orid;
}
} else {
$rid = $rdata['rid'];
$lastdate = $rdata['dateline'];
}
//判断是否含有数据信息文件
if (IO::checkfileexists($metadatajsonfile)) {
$metadatajsonfileinfo = IO::getMeta($metadatajsonfile);
$flastdate = $metadatajsonfileinfo['dateline'];
$metadata = file_get_contents(IO::getStream($metadatajsonfile));
$filemetadata = json_decode($metadata, true);
//如果是删除状态,并且已有数据则执行删除
if ($filemetadata['isDeleted']) {
if ($rid) C::t('pichome_resources')->delete_by_rid($rid);
} else {
//如果不是新生成rid
if ($rid) {
$data = C::t('pichome_resources')->fetch($rid);
//判断最后更新时间
if ($force || $lastdate < $flastdate) {
$filemetadataname = ($this->iscloud) ? $filemetadata['name'] : $this->getFileRealFileName($tmppath, $filemetadata['name'], $filemetadata['ext']);
//文件名称
$filename = $filemetadataname . '.' . $filemetadata['ext'];
//缩略图名称
$thumbname = $filemetadataname . '_thumbnail.png';
//文件路径
$file = ($this->iscloud) ? $tmppath . '/' . $filename : $tmppath . BS . $filename;
//缩略图路径
$thumbfile = ($this->iscloud) ? $tmppath . '/' . $thumbname : $tmppath . BS . $thumbname;
$realfolderdata = [];
if (!empty($filemetadata['folders'])) {
$realfolderdata = C::t('#eagle#eagle_folderrecord')->fetch_fid_by_efid($filemetadata['folders'], $this->appid);
}
$currentperm = (!empty($realfolderdata)) ? max($realfolderdata) : $this->defaultperm;
$realfids = array_keys($realfolderdata);
$haspassword = false;
if (!empty($realfids)) {
//如果目录含有密码则不导入数据直接跳过
$haspassword = C::t('pichome_folder')->check_haspasswrod($realfids, $this->appid);
}
if ($haspassword) {
C::t('pichome_resources')->delete_by_rid($rid);
} else {
//如果mtime发生变化则删除原数据重新导入
if ($data['mtime'] < $filemetadata['mtime']) {
C::t('pichome_resources')->delete_by_rid($rid);
$filemetadata['rid'] = $this->createrid();
$filemetadata['filename'] = $filemetadata['name'];
$filemetadata['file'] = $file;
$filemetadata['thumbfile'] = $thumbfile;
$filemetadata['rid'] = $rid;
$filemetadata['mtime'] = $filemetadata['mtime'] ? $filemetadata['mtime'] : $filemetadata['modificationTime'];
$filemetadata['btime'] = $filemetadata['btime'] ? $filemetadata['btime'] : $filemetadata['modificationTime'];
$filemetadata['dateline'] = $filemetadata['lastModified'];
$filemetadata['lastdate'] = $flastdate;
$filemetadata['folders'] = $realfids;
$filemetadata['level'] = $currentperm;
$this->exportfile($id, $filemetadata);
unset($filemetadata);
} else {
//信息表数据记录
$setarr = ['appid' => $this->appid];
$setarr['searchval'] = $filemetadata['name'];
//查询原数据中的属性信息
$attrdata = C::t('pichome_resources_attr')->fetch($rid);
$filename = $filemetadata['name'] . '.' . $filemetadata['ext'];
//检查reources数据变化
$resourcesarr = [
'name' => $filename,
'dateline' => $filemetadata['lastModified'],
'isdelete' => $filemetadata['isDeleted'],
'grade' => $filemetadata['star'] ? intval($filemetadata['star']) : 0,
'lastdate' => $flastdate,
'width' => $filemetadata['width'] ? $filemetadata['width'] : 0,
'height' => $filemetadata['height'] ? $filemetadata['height'] : 0,
'appid' => $this->appid,
'level' => $currentperm,
'fids' => implode(',', $realfids)
];
$file = str_replace('/', BS, $file);
$attachment = str_replace($this->path . BS, '', $file);
$path = str_replace('/', BS, $attachment);
$thumb = IO::checkfileexists($thumbfile) ? 1 : 0;
$thumbfile = str_replace(array(DZZ_ROOT, BS), array('', '/'), $thumbfile);
$setarr['path'] = $path;
$resourcesarr['hasthumb'] = $thumb;
$resourcesarr['rid'] = $rid;
if (C::t('#eagle#eagle_record')->insert_data($id, $resourcesarr)) {
//缩略图数据
/* $thumbrecorddata = [
'rid'=>$rid,
'ext'=>$filemetadata['ext']
];
if($thumb){
$imgdata = @getimagesize($filemetadata['thumbfile']);
$swidth = isset($imgdata[0]) ? $imgdata[0] : 0;
$sheight = isset($imgdata[1]) ? $imgdata[1] : 0;
$thumbrecorddata['spath'] = $filemetadata['thumbfile'];
$thumbrecorddata['sstatus'] = 1;
$thumbrecorddata['swidth'] = $swidth;
$thumbrecorddata['sheight'] = $sheight;
}
C::t('thumb_record')->insert_data($thumbrecorddata);*/
//检查标签变化
//标签数据
$tags = $filemetadata['tags'];
$setarr['searchval'] .= implode('', $tags);
//现有标签
$tagids = [];
//原有标签
$oldtids = [];
if ($attrdata['tag']) $oldtids = explode(',', $attrdata['tag']);
if (!empty($tags)) {
$tagids = $this->addtag($tags);
$setarr['tag'] = implode(',', $tagids);
}
$addtags = array_diff($tagids, $oldtids);
$deltags = array_diff($oldtids, $tagids);
if (!empty($deltags)) C::t('pichome_resourcestag')->delete_by_ridtid($rid, $deltags);
foreach ($addtags as $tid) {
$rtag = ['appid' => $this->appid, 'rid' => $rid, 'tid' => $tid];
C::t('pichome_resourcestag')->insert($rtag);
}
//检查标注变化
if (isset($filemetadata['comments'])) {
$cids = [];
foreach ($filemetadata['comments'] as $commentval) {
$tcommentval['id'] = $commentval['id'] . $this->appid;
$tcommentval['appid'] = $this->appid;
$tcommentval['rid'] = $rid;
$tcommentval['x'] = number_format($commentval['x'], 2);
$tcommentval['y'] = number_format($commentval['y'], 2);
$tcommentval['width'] = $commentval['width'];
$tcommentval['height'] = $commentval['height'];
$tcommentval['annotation'] = $commentval['annotation'];
$tcommentval['lastModified'] = $commentval['lastModified'];
try {
C::t('pichome_comments')->insert($tcommentval);
$setarr['searchval'] .= $tcommentval['annotation'];
} catch (Exception $e) {
}
$cids[] = $tcommentval['id'];
unset($tcommentval);
}
$ocids = C::t('pichome_comments')->fetch_id_by_rid($rid);
$delcids = array_diff($ocids, $cids);
if (!empty($delcids)) C::t('pichome_comments')->delete($delcids);
} else {
C::t('pichome_comments')->delete_by_rid($rid);
}
$rfids = [];
$orfids = C::t('pichome_folderresources')->fetch_id_by_rid($rid);
C::t('pichome_folderresources')->delete($orfids);
$setarr['searchval'] .= $resourcesarr['name'];
//检查目录变化
foreach ($realfids as $fv) {
$fid = $fv;
if (!C::t('pichome_folder')->check_password_byfid($fid)) {
$frsetarr = ['appid' => $this->appid, 'rid' => $rid, 'fid' => $fid];
C::t('pichome_folderresources')->insert($frsetarr);
// $fids[] = $fid;
}
}
//尝试更新属性表数据
$setarr['link'] = $filemetadata['url'] ? trim($filemetadata['url']) : '';
//描述数据
$setarr['desc'] = $filemetadata['annotation'] ? $filemetadata['annotation'] : '';
$setarr['searchval'] .= getstr($setarr['desc'],255) . $setarr['link'];
if ($filemetadata['duration']) $setarr['duration'] = number_format($filemetadata['duration'], 2);
$setarr['rid'] = $rid;
C::t('pichome_resources_attr')->insert($setarr);
unset($filemetadata);
unset($setarr);
}
}
}
} else {
if (!$rdata) {
$setarr = [
'appid' => $this->appid,
'rid' => $rid,
'eid' => $id,
'dateline' => $flastdate
];
C::t('#eagle#eagle_record')->insert($setarr);
}
}
} else {
$realfolderdata = [];
if (!empty($filemetadata['folders'])) {
$realfolderdata = C::t('#eagle#eagle_folderrecord')->fetch_fid_by_efid($filemetadata['folders'], $this->appid);
}
$currentperm = (!empty($realfolderdata)) ? max($realfolderdata) : $this->defaultperm;
$realfids = array_keys($realfolderdata);
if (!empty($realfids)) {
//如果目录含有密码则不导入数据直接跳过
$haspassword = C::t('pichome_folder')->check_haspasswrod($realfids, $this->appid);
} else {
$haspassword = false;
}
if (!$haspassword) {
$filemetadataname = ($this->iscloud) ? $filemetadata['name'] : $this->getFileRealFileName($tmppath, $filemetadata['name'], $filemetadata['ext']);
$filename = $filemetadataname . '.' . $filemetadata['ext'];
$thumbname = $filemetadataname . '_thumbnail.png';
$file = ($this->iscloud) ? $tmppath . '/' . $filename : $tmppath . BS . $filename;
$thumbfile = ($this->iscloud) ? $tmppath . '/' . $thumbname : $tmppath . BS . $thumbname;
$filemetadata['filename'] = $filemetadata['name'];
$filemetadata['file'] = $file;
unset($file);
$filemetadata['thumbfile'] = $thumbfile;
$filemetadata['folders'] = $realfids;
$filemetadata['level'] = $currentperm;
unset($thumbfile);
$filemetadata['rid'] = $this->createrid();
$filemetadata['mtime'] = $filemetadata['mtime'] ? $filemetadata['mtime'] : $filemetadata['modificationTime'];
$filemetadata['btime'] = $filemetadata['btime'] ? $filemetadata['btime'] : $filemetadata['modificationTime'];
$filemetadata['dateline'] = $filemetadata['lastModified'];
$filemetadata['lastdate'] = $flastdate;
$this->exportfile($id, $filemetadata);
unset($filemetadata);
}
}
}
} else {
//如果已有数据删除,否则不做处理
if (!$rid) C::t('pichome_resources')->delete_by_rid($rid);
}
$this->donum += 1;
$percent = floor(($this->donum / $this->filenum) * 100);
//防止因获取文件总个数不准确百分比溢出
$percent = ($percent > 100) ? 100 : $percent;
C::t('pichome_vapp')->update($this->appid, array( 'percent' => $percent, 'donum' => $this->donum, 'state' =>2, 'filenum' => $this->filenum));
}
}
}
if ($returndata['IsTruncated']) {
$lastid = $returndata['NextMarker'];
$state = 2;
} else {
$state = 3;
}
C::t('pichome_vapp')->update($this->appid, array('lastid' => $lastid, 'percent' => $percent, 'donum' => $this->donum, 'state' => $state, 'filenum' => $this->filenum));
return array('success' => true);
} }
//校验文件 //校验文件
@@ -788,7 +1122,7 @@ class eagleexport
$setarr['link'] = $filemetadata['url'] ? trim($filemetadata['url']) : ''; $setarr['link'] = $filemetadata['url'] ? trim($filemetadata['url']) : '';
//描述数据 //描述数据
$setarr['desc'] = $filemetadata['annotation'] ? $filemetadata['annotation'] : ''; $setarr['desc'] = $filemetadata['annotation'] ? $filemetadata['annotation'] : '';
$setarr['searchval'] .= $setarr['desc'] . $setarr['link']; $setarr['searchval'] .= getstr($setarr['desc'],255) . $setarr['link'];
$setarr['rid'] = $rid; $setarr['rid'] = $rid;
$setarr['appid'] = $this->appid; $setarr['appid'] = $this->appid;
$setarr['path'] = $path; $setarr['path'] = $path;
@@ -849,6 +1183,7 @@ class eagleexport
return $returndata; return $returndata;
} }
public function getPaletteNumber($colors, $palette = array()) public function getPaletteNumber($colors, $palette = array())
{ {
@@ -880,6 +1215,7 @@ class eagleexport
} }
return $isarray ? $arr : $arr[0]; return $isarray ? $arr : $arr[0];
} }
//添加标签 //添加标签
public function addtag($tags) public function addtag($tags)
{ {

View File

@@ -84,10 +84,21 @@ class fmpeg
'width' => intval($meta->get('width')), 'width' => intval($meta->get('width')),
'height' => intval($meta->get('height')), 'height' => intval($meta->get('height')),
'duration' => round($meta->get('duration'), 2), 'duration' => round($meta->get('duration'), 2),
'tags' => $meta->get('tags'),
); );
} }
} }
if ($cachefile) @unlink($cachefile); if ($cachefile) @unlink($cachefile);
if(isset($info['tags']['rotate'])){
$rotate = intval($info['tags']['rotate'])%360;
if($rotate == 90){
$width = $info['width'];
$height = $info['height'];
$info['width'] = $height;
$info['height'] = $width;
}
}
unset($info['tags']);
return $info; return $info;
} }
@@ -155,7 +166,7 @@ class fmpeg
$ffprobe = FFMpeg\FFProbe::create($option, null); $ffprobe = FFMpeg\FFProbe::create($option, null);
$meta = $ffprobe $meta = $ffprobe
->streams($file) // extracts streams informations ->streams($file) // extracts streams informations
->audios() // filters video streams ->videos() // filters video streams
->first(); ->first();
$duration = 0; $duration = 0;
if ($meta) { if ($meta) {
@@ -180,16 +191,11 @@ class fmpeg
if ($cachefile) @unlink($cachefile); if ($cachefile) @unlink($cachefile);
if (is_file($jpg)) { if (is_file($jpg)) {
$filesize = filesize($jpg);
$defaultspace = $_G['setting']['defaultspacesetting']; $defaultspace = $_G['setting']['defaultspacesetting'];
//如果原文件位置不在本地,则将转换完成文件迁移到对应位置 //如果原文件位置不在本地,则将转换完成文件迁移到对应位置
if ($defaultspace['bz'] != 'dzz') { if ($defaultspace['bz'] != 'dzz') {
$cloudpath = $defaultspace['bz'].':'.$defaultspace['did'] . ':/' .$target; $cloudpath = $defaultspace['bz'].':'.$defaultspace['did'] . ':/' .$target;
//组合云端保存位置 $filepath = \IO::moveThumbFile($cloudpath, $jpg);
//$cloudpath = $attachment['bz'] . ':' . $did . ':' . '/' . $target;
//echo $cloudpath;die;
$filepath = \IO::moveThumbFile($cloudpath, 'dzz::'.$target);
if (!isset($filepath['error'])) { if (!isset($filepath['error'])) {
@unlink($jpg); @unlink($jpg);
return $target; return $target;
@@ -203,7 +209,7 @@ class fmpeg
} }
public function getVideoQuality($videoquality = 0) public function getVideoQuality($videoquality = 1)
{ {
$templatename = ''; $templatename = '';
switch ($videoquality) { switch ($videoquality) {
@@ -216,7 +222,7 @@ class fmpeg
case 1://标清 case 1://标清
$templatename = 'pichomeconvert-mp4-960-540-900-mp3'; $templatename = 'pichomeconvert-mp4-960-540-900-mp3';
$width = 960; $width = 960;
$height = 510; $height = 540;
$bitrate = 900; $bitrate = 900;
break; break;
case 2://高清 case 2://高清
@@ -248,7 +254,7 @@ class fmpeg
} }
//转码,windows下大文件可能出现内部错误X264报错不知原因 //转码,windows下大文件可能出现内部错误X264报错不知原因
public function convert($id, $ext = 'webm', $videoquality = 0, $extra = array()) public function convert($id, $ext = 'mp4', $videoquality = 1, $extra = array())
{ {
global $_G; global $_G;
//获取附件信息 //获取附件信息
@@ -260,7 +266,7 @@ class fmpeg
}else{ }else{
$attachment = IO::getMeta($cron['rid']); $attachment = IO::getMeta($cron['rid']);
} }
list($templatename, $width, $height, $bitrate) = $this->getVideoQuality($videoquality); list($templatename, $fwidth, $fheight, $fbitrate) = $this->getVideoQuality($videoquality);
//本地文件路径 //本地文件路径
$target = 'pichomethumb/' . date('Ym') . '/' . date('d') .'/'.md5($attachment['path']) . '.' . $cron['format']; $target = 'pichomethumb/' . date('Ym') . '/' . date('d') .'/'.md5($attachment['path']) . '.' . $cron['format'];
//本地存储时路径 //本地存储时路径
@@ -289,17 +295,14 @@ class fmpeg
//更新转换执行次数 //更新转换执行次数
C::t('video_record')->update($cron['id'], array('status' => 1,'path'=>$target, 'dateline' => TIMESTAMP, 'jobnum' => (($cron['jobnum']) ? intval($cron['jobnum']) + 1 : 1))); C::t('video_record')->update($cron['id'], array('status' => 1,'path'=>$target, 'dateline' => TIMESTAMP, 'jobnum' => (($cron['jobnum']) ? intval($cron['jobnum']) + 1 : 1)));
$video = $this->fm->open($file); $video = $this->fm->open($file);
if (!in_array($ext, array('mp3', 'wav'))) {
//指定视频宽高
$video->filters()->resize(new FFMpeg\Coordinate\Dimension($width, $height))->synchronize();
}
//水印 //水印
// $video->filters() ->watermark($watermarkPath, array('position' => 'relative','bottom' => 50, 'right' => 50 )); // $video->filters() ->watermark($watermarkPath, array('position' => 'relative','bottom' => 50, 'right' => 50 ));
$video->path = $cron['id']; $video->path = $cron['id'];
switch ($ext) { switch ($ext) {
case 'mp4': case 'mp4':
$format = new FFMpeg\Format\Video\X264(); $format = new FFMpeg\Format\Video\X264('aac');
break; break;
case 'webm': case 'webm':
$format = new FFMpeg\Format\Video\WebM(); $format = new FFMpeg\Format\Video\WebM();
@@ -317,18 +320,27 @@ class fmpeg
$format = new FFMpeg\Format\Audio\Mp3(); $format = new FFMpeg\Format\Audio\Mp3();
break; break;
default: default:
$format = new FFMpeg\Format\Video\X264(); $format = new FFMpeg\Format\Video\X264('aac');
} }
if (!in_array($ext, array('mp3', 'wav'))) { if (!in_array($ext, array('mp3', 'wav'))) {
//获取视频信息 //获取视频信息
try { try {
$info = $this->getInfo($attachment); $info = $this->getInfo($attachment);
if ($info['bit_rate']) {
if ($bitrate = intval($info['bit_rate'])) { if(!in_array($ext,array('mp3','wav'))){
if($info['width']){
$width=$fwidth;
$height=$info['height']?($width*$info['height']/$info['width']):$fheight;
//指定视频宽高
$video->filters()->resize(new FFMpeg\Coordinate\Dimension($width, $height))->synchronize();
}else{
$video->filters()->resize(new FFMpeg\Coordinate\Dimension($fwidth, $fheight))->synchronize();
}
}
$bitrate=intval($fbitrate>$info['bit_rate']?$fbitrate:$info['bit_rate']);
$format->setKiloBitrate($bitrate); $format->setKiloBitrate($bitrate);
}
}
} catch (\Exception $e) { } catch (\Exception $e) {
}; };
} }

View File

@@ -11,12 +11,12 @@ class convert
public function run($data, $force = false) public function run($data, $force = false)
{ {
global $_G;
//如果是普通目录 //如果是普通目录
$app = C::t('app_market')->fetch_by_identifier('ffmpeg', 'dzz'); $app = C::t('app_market')->fetch_by_identifier('ffmpeg', 'dzz');
$appextra = unserialize($app['extra']); $appextra = unserialize($app['extra']);
// if (!$appextra['status']) return true; // if (!$appextra['status']) return true;
$exts = $appextra['exts'] ? explode(',', $appextra['exts']) : array(); $exts = explode(',',$_G['config']['pichomeffmpegconvertext']);//$appextra['exts'] ? explode(',', $appextra['exts']) : explode(',',$_G['config']['pichomeffmpegconvertext']);
//如果类型不符合则停止执行 //如果类型不符合则停止执行
if ($exts && !in_array($data['ext'], $exts)) return true; if ($exts && !in_array($data['ext'], $exts)) return true;
$videoexts = $appextra ? getglobal('config/pichomeffmpegconvertext') : 'avi,rm,rmvb,mkv,mov,wmv,asf,mpg,mpe,mpeg,mp4,m4v,mpeg,f4v,vob,ogv,mts,m2ts,3gp,webm,flv,wav,mp3,ogg,midi,wma,vqf,ra,aac,flac,ape,amr,aiff,au,m4a'; $videoexts = $appextra ? getglobal('config/pichomeffmpegconvertext') : 'avi,rm,rmvb,mkv,mov,wmv,asf,mpg,mpe,mpeg,mp4,m4v,mpeg,f4v,vob,ogv,mts,m2ts,3gp,webm,flv,wav,mp3,ogg,midi,wma,vqf,ra,aac,flac,ape,amr,aiff,au,m4a';
@@ -29,9 +29,9 @@ class convert
if ('audio' == getTypeByExt($data['ext'])) { if ('audio' == getTypeByExt($data['ext'])) {
$ext = 'mp3'; $ext = 'mp3';
} else { } else {
$ext = 'webm'; $ext = 'mp4';
} }
$setarr = ['rid' => $data['rid'], 'dateline' => TIMESTAMP, 'ctype' => 0,'format'=>$ext,'videoquality'=>0]; $setarr = ['rid' => $data['rid'], 'dateline' => TIMESTAMP, 'ctype' => 0,'format'=>$ext,'videoquality'=>getglobal('config/defaultvideoquality')];
$setarr['aid']= $data['aid'] ? $data['aid']:0; $setarr['aid']= $data['aid'] ? $data['aid']:0;
$ff = C::t('video_record')->insert_data($setarr); $ff = C::t('video_record')->insert_data($setarr);
if ($ff['id']) return false; if ($ff['id']) return false;

View File

@@ -10,6 +10,7 @@ class info
public function run($data) public function run($data)
{ {
global $_G;
$app = C::t('app_market')->fetch_by_identifier('ffmpeg', 'dzz'); $app = C::t('app_market')->fetch_by_identifier('ffmpeg', 'dzz');
$extra = unserialize($app['extra']); $extra = unserialize($app['extra']);
@@ -18,7 +19,7 @@ class info
return ''; return '';
} }
$exts = $extra['exts_info'] ? explode(',', $extra['exts_info']) : array(); $exts = explode(',',$_G['config']['pichomeffmpeggetvieoinfoext']);//$extra['exts_info'] ? explode(',', $extra['exts_info']) : array();
//如果类型不符合则停止执行 //如果类型不符合则停止执行
if (!in_array($data['ext'], $exts)) return ''; if (!in_array($data['ext'], $exts)) return '';

View File

@@ -12,7 +12,7 @@ class thumb
public function run(&$data) public function run(&$data)
{ {
global $_G;
$app = C::t('app_market')->fetch_by_identifier('ffmpeg', 'dzz'); $app = C::t('app_market')->fetch_by_identifier('ffmpeg', 'dzz');
$extra = unserialize($app['extra']); $extra = unserialize($app['extra']);
@@ -20,7 +20,7 @@ class thumb
if (!$extra['status']) { if (!$extra['status']) {
return ''; return '';
} }
$exts = $extra['exts_thumb'] ? explode(',', $extra['exts_thumb']) : array(); $exts = explode(',',$_G['config']['pichomeffmpeggetthumbext']);//$extra['exts_thumb'] ? explode(',', $extra['exts_thumb']) : array();
//如果类型不符合则停止执行 //如果类型不符合则停止执行
if (!in_array($data['ext'], $exts)) return ''; if (!in_array($data['ext'], $exts)) return '';
@@ -34,21 +34,10 @@ class thumb
} }
//执行获取缩略图 //执行获取缩略图
if ($target = $fm->getThumb($data, $start)) { if ($target = $fm->getThumb($data, $start)) {
$fileuri = IO::getStream($target);
if ($imginfo = getimagesize($fileuri)) {
//将缩略图宽高视为文件宽高
$resourcesarr = [
'width' => $imginfo[0] ? $imginfo[0] : 0,
'height' => $imginfo[1] ? $imginfo[1] : 0
];
C::t('pichome_resources')->update($data['rid'], $resourcesarr);
return array($target); return array($target);
} else { } else {
return ''; return '';
} }
} else {
return '';
}
} }

View File

@@ -23,21 +23,7 @@ class getthumb{
else $prefix=''; else $prefix='';
if($target=self::getThumb($meta,$prefix)){ if($target=self::getThumb($meta,$prefix)){
/*echo $target;die;
if($imginfo=getimagesize(IO::getStream($target))){
if (is_numeric($meta['path'])) {
$cachearr = [
'aid' => $meta['path'],
'path' => $target,
'width'=>$imginfo[0],
'height'=>$imginfo[1],
];
C::t('thumb_cache')->insert_data($cachearr,1);
}*/
return array($target); return array($target);
/* }else{
return '';
}*/
} }
} }
@@ -107,13 +93,11 @@ class getthumb{
$filepath = IO::moveThumbFile($cloudpath, $jpg); $filepath = IO::moveThumbFile($cloudpath, $jpg);
if (!isset($filepath['error'])) { if (!isset($filepath['error'])) {
@unlink($jpg); @unlink($jpg);
$jpg = $cloudpath;
} else { } else {
runlog('imagick', 'uneable move file to target:' . $jpg . $cloudpath); runlog('imagick', 'uneable move file to target:' . $jpg . $cloudpath);
return ''; return '';
} }
} }
// C::t('pichome_resources')->update_by_rids($meta['appid'], $meta['rid'], array('width' => $owidth, 'height' => $oheight));
return $target; return $target;
}else{ }else{
return $target; return $target;

View File

@@ -34,24 +34,8 @@ class imageColor
if (isset($_G['setting'])) $setting = $_G['setting']; if (isset($_G['setting'])) $setting = $_G['setting'];
else $setting = C::t('setting')->fetch_all(); else $setting = C::t('setting')->fetch_all();
if ($setting['imagelib']) $setting['imagelib'] = extension_loaded($setting['imagelib']) ? $lib : 'gd'; $lib = (isset($setting['imagelib']) && $setting['imagelib']) ? (extension_loaded('imagick') ? 'imagick' : 'gd') :'gd' ;
else $setting['imagelib'] = '';
$lib = isset($setting['imagelib']) ? $setting['imagelib'] : (extension_loaded('imagick') ? 'imagick' : 'gd');
$lib = extension_loaded($lib) ? $lib : 'gd';
//if ($lib == 'gd') {
// $exts = getglobal('config/gdgetcolorextlimit');
// $extsarr = explode(',', $exts);
// } else {
// $exts = getglobal('config/imageickallowextlimit') . ',' . getglobal('config/gdgetcolorextlimit');
// $extsarr = explode(',', $exts);
//}
//if (!in_array($data['ext'], $extsarr)) {
// runlog('imageColor', ' unablegetcolor img=' . $data['realpath']);
// return '';
// }
$cachepath = is_numeric($data['path']) ? intval($data['path']) : ($data['rid'] ? $data['rid']:md5($data['realpath'])); $cachepath = is_numeric($data['path']) ? intval($data['path']) : ($data['rid'] ? $data['rid']:md5($data['realpath']));
if ($infodata = C::t('ffmpegimage_cache')->fetch_by_path($cachepath)) { if ($infodata = C::t('ffmpegimage_cache')->fetch_by_path($cachepath)) {
$palettes = unserialize($infodata['info']); $palettes = unserialize($infodata['info']);

View File

@@ -13,8 +13,8 @@ $width = $_GET['width'] ? intval($_GET['width']):0;
$height = $_GET['height'] ? intval($_GET['height']):0; $height = $_GET['height'] ? intval($_GET['height']):0;
$size=in_array($size,array_keys($_G['setting']['thumbsize']))?$size:'large'; $size=in_array($size,array_keys($_G['setting']['thumbsize']))?$size:'large';
$original=intval($_GET['original']); $original=intval($_GET['original']);
if(!$width) $width=$_G['setting']['thumbsize'][$size]['width']; /*if(!$width) $width=$_G['setting']['thumbsize'][$size]['width'];
if(!$height) $height=$_G['setting']['thumbsize'][$size]['height']; if(!$height) $height=$_G['setting']['thumbsize'][$size]['height'];*/
$returnurl = $_GET['returnurl'] ? intval($_GET['returnurl']):0; $returnurl = $_GET['returnurl'] ? intval($_GET['returnurl']):0;
$thumbtype = $_GET['thumbtype'] ? intval($_GET['thumbtype']):1; $thumbtype = $_GET['thumbtype'] ? intval($_GET['thumbtype']):1;
IO::getThumb($path, $width,$height,$returnurl, $thumbtype); IO::getThumb($path,$size,0,$returnurl, 1,$thumbtype);

Some files were not shown because too many files have changed in this diff Show More