4 Commits
2.0.1 ... 2.0.2

152 changed files with 11598 additions and 4054 deletions

View File

@@ -1,4 +1,4 @@
# PicHome ## PicHome
官方网站:https://oaooa.com/pichome.html 官方网站:https://oaooa.com/pichome.html
@@ -18,7 +18,6 @@
4. 自带网盘功能,是一款针对图片,音视频管理友好的网盘程序,可以将网盘内容自动生成展示网站。支持添加颜色,标签,描述,评分等信息。 4. 自带网盘功能,是一款针对图片,音视频管理友好的网盘程序,可以将网盘内容自动生成展示网站。支持添加颜色,标签,描述,评分等信息。
### 可以用 PicHome 做什么? ### 可以用 PicHome 做什么?
1. 使用内置的网盘功能,当作网盘使用 1. 使用内置的网盘功能,当作网盘使用

View File

@@ -1,44 +1,17 @@
## PicHome Home 2.0.1 更新说明 ## PicHome Home 2.0.2 更新说明
### 1优化页面加载速度 ### 1增加搜索设置应用,同时单页增加搜索模块
### 2优化上传速度 ### 2修复billfish库颜色导入处理错误问题
### 3修复栏目删除不掉的bug ### 3更改腾讯云存储eagle库处理提升导入效率
### 4修复导入锁失效导致导入并发问题 ### 4处理描述字段,支持更多内容输入
### 5修复链接栏目跳转不正常的bug ### 5修复已登录用户登录不了后台的bug
### 6修复单页非上传图片无法显示的bug ### 6优化ph库上传及其逻辑处理
### 7修复视频转码后,尺寸变形的问题,以及转码数据问题 ### 7处理部分路径图片加载不到的bug,优化页面加载速度
### 8修复修改站点logo不生效的bug ### 8修复修改站点logo不生效的bug
### 9修复标签分类筛选无法取消选择的bug ### 9重写登录注册页
### 10修复文件删除错误bug ### 10修复其他已知bug
### 11:优化缩略图生成,修复普通目录缩略图生成因路径问题导致的失败问题
### 12修复其他已知bug
## PicHome Home 1.1 升级到 2.0.1 升级方法 ## 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升级完成后使用管理员登录站点进入系统设置打开站点并且进入 系统工具 更新系统缓存
## PicHome Home 2.0 更新说明
### 1增加PH库支持上传文件编辑文件信息名称标签描述评分等
### 2增加单页功能可以自定义单页内容
### 3增加栏目功能单页连接可以设置成栏目对外展示新增加的库将自动生成栏目默认是关闭状态对于老版本升级后将自动为开启状态
### 4增加个人中心统一管理用户相关的内容个人中心包括下载记录浏览记录等信息
### 5重构并优化系统缩略图机制提升加载速度。
### 6增加管理工具包含系统设置系统工具登录日志和存储位置将原有的站点设置功能迁移到系统设置中并丰富原有设置内容增加如缩略图邮件的设置
### 7兼容Billfish 3版本的导入
### 8优化库导入和更新机制
### 9支持腾讯云存储以及cdn加速域名
### 10栏目单页支持短链接需设置rewrite规则具体内容安装包中包含
注:
1. 当前版本展示内容和管理内容实行分开处理,不再直接将库展示给游客和普通用户,安装完成之后站点首页内容可根据需要自行设置
2. 安装完成后默认为站点不公开,必须登录才能访问,如需公开,请在管理工具,系统设置中进行设置
3. 缩略图设置在管理工具存储位置中设置,原则上优先文件位置选择生成方式
## PicHome Home 1.1 升级到 2.0 升级方法
### 1复制所有文件覆盖到网站目录
### 2运行 http(s)://网站域名ip)/install/update.php按提示步骤完成升级
### 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
@@ -132,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
80be631ee6c17bee6dfee5d4ff5eb03c *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
@@ -492,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
8a86aa9b473e58189c589170ee616678 *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
@@ -515,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
@@ -526,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
@@ -552,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
@@ -562,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
70b17cb6abae36e4385d7afb03d797b0 *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
@@ -825,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
@@ -844,15 +847,15 @@ 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
b49e68804b2238f5b2fe6f05fa7e25ee *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
@@ -866,8 +869,8 @@ 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
5aeaae8ca2b27311679a866ba0cfec4b *core/class/table/table_pichome_vapp.php 5aeaae8ca2b27311679a866ba0cfec4b *core/class/table/table_pichome_vapp.php
@@ -875,6 +878,7 @@ 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
@@ -896,7 +900,7 @@ bc2e189cfaacbdb84ddceb3a0abdcf92 *core/class/table/table_user_verify_info.php
4f134f1f5ea2dc0f83ce7df4319549c7 *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
050d7dbdcfc8183a7df8b9b27a9c1721 *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
@@ -906,7 +910,7 @@ e92ca4444b24fb25f92f090783212cab *core/cron/cron_pichome_delete.php
f5c7259c468f4127505a576c2b2e5646 *core/cron/cron_pichome_getconvertstatus.php f5c7259c468f4127505a576c2b2e5646 *core/cron/cron_pichome_getconvertstatus.php
1cf604b31e0ed5a21ed909d51fabfdd3 *core/cron/cron_pichome_getinfo.php 1cf604b31e0ed5a21ed909d51fabfdd3 *core/cron/cron_pichome_getinfo.php
b45b7617bdbcf5d8b74b3df252b1a78b *core/cron/cron_pichome_getthumb.php b45b7617bdbcf5d8b74b3df252b1a78b *core/cron/cron_pichome_getthumb.php
97daf390e6219f0ddac0497ef6fe67a8 *core/cron/cron_pichome_vapp_update.php 6ffa1c4faa1ae7d8facca0d96853dfff *core/cron/cron_pichome_vapp_update.php
54506b515fe85a14ee43c233c648aa90 *core/cron/cron_thumbcheckchange.php 54506b515fe85a14ee43c233c648aa90 *core/cron/cron_thumbcheckchange.php
acfbf06bad285a917104212a69858db9 *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
@@ -930,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
73a57f849777681cd9efd67d6976e1cd *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
58e2a881fc7999d45cae869bc743eba6 *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
@@ -1035,39 +1039,40 @@ 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
15bbba75abd7f4e83036b5ea571af5e8 *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
44038404f09e63919034b2160db7ace9 *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
158fb800f72d0f0d230fa1a418ea3a27 *dzz/alonepage/template/components/view/header.htm 158fb800f72d0f0d230fa1a418ea3a27 *dzz/alonepage/template/components/view/header.htm
8effcbbcf594d3e26b4b46060a24f4ec *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
6722c68e2d6a018edcba0c48207e3c1d *dzz/alonepage/view.php b73ffd3ef90415c3303dde6db7f96201 *dzz/alonepage/view.php
fe7d9ef6e65ab6f74f03a491c4a975ca *dzz/banner/admin.php fe7d9ef6e65ab6f74f03a491c4a975ca *dzz/banner/admin.php
ea006ed96dd34a3b3a4190a74ef8c734 *dzz/banner/app.php 0309bcc7cf37919cc52184e35ea2c9c5 *dzz/banner/app.php
7b17d80c32ac3df4049ec74cf22b5bc1 *dzz/banner/appajax.php eb0e230cc79dfd2c29f52f70f83eba20 *dzz/banner/appajax.php
a732be8c86a37029ebf772dd121239ff *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
@@ -1079,40 +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
2028c8a3d71989b79b9def194051a0cd *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
3d11c683ec7272de1599f4476f599b71 *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
953b52ac40373bd70eeca1578c5bc0e4 *dzz/banner/template/components/information/audio.htm 541548db5bf761287bae054b35a2e0c7 *dzz/banner/template/components/information/audio.htm
67717d5dfcab5c75029134aa5ad73c06 *dzz/banner/template/components/information/document.htm 0d357b01e8e7b6ce0226e213ba94a217 *dzz/banner/template/components/information/document.htm
1a49527725453d6cd792a8a733bc3485 *dzz/banner/template/components/information/header.htm 1a49527725453d6cd792a8a733bc3485 *dzz/banner/template/components/information/header.htm
1b7d58913c10ba86cadb92666c97b7f0 *dzz/banner/template/components/information/image.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
cfc67578a5d9c75bec846fceced76db0 *dzz/banner/template/components/information/message.htm 2ea11c76537b35ab45abac1be63968ba *dzz/banner/template/components/information/message.htm
80dd6bb81da4cf1ed74f53525fd51740 *dzz/banner/template/components/information/other.htm 4d39655c6d4b89d0ca6a1e9377603d10 *dzz/banner/template/components/information/other.htm
64ed01a07a6799c6bcc5c5bec376b122 *dzz/banner/template/components/information/search.htm 1ca7b831687024c3adba3ac60fe33d07 *dzz/banner/template/components/information/search.htm
45b524977e454c71ce45826bd68359ea *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
12148bf87e09b7eda1e079464e684f1a *dzz/banner/template/fashion/pc/components/header.htm b0d92eb01a8e0db6c40569a00325b47b *dzz/banner/template/fashion/pc/components/header.htm
85949c393905492e87e8f11396300628 *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
4c627ffff7a560f0f85a2b49005cb5bc *dzz/banner/template/page/information.htm 295c397e3925ca8ecf82eb0ef18b2741 *dzz/banner/template/page/information.htm
dabed78fdc9f66f2dd5509a2f3dc3e01 *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
@@ -1159,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
@@ -1169,7 +1174,7 @@ 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
b397306242a7fd5dce5b58bfc78229db *dzz/ffmpeg/class/class_fmpeg.php 88530ef758d25956ee7c98122f9fa2dc *dzz/ffmpeg/class/class_fmpeg.php
64e3b2db0f96df77bbfca78d744eba6c *dzz/ffmpeg/classes/convert.php 64e3b2db0f96df77bbfca78d744eba6c *dzz/ffmpeg/classes/convert.php
90aeef69487c310febfd4bf770febfb3 *dzz/ffmpeg/classes/info.php 90aeef69487c310febfd4bf770febfb3 *dzz/ffmpeg/classes/info.php
1435cb1a39a2a4912cf1d3e7052c03e0 *dzz/ffmpeg/classes/thumb.php 1435cb1a39a2a4912cf1d3e7052c03e0 *dzz/ffmpeg/classes/thumb.php
@@ -1776,17 +1781,18 @@ 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
75ce51b679e7b4e0fb800be44f16a7ea *dzz/io/createThumb.php 75ce51b679e7b4e0fb800be44f16a7ea *dzz/io/createThumb.php
d59441ddfb88cc28369a9491d32e88bf *dzz/io/download.php
770b201a8d5a8aaf33622dbc776fc063 *dzz/io/getfileStream.php 770b201a8d5a8aaf33622dbc776fc063 *dzz/io/getfileStream.php
f36b9374f45646b6d19ab9b8d20ad913 *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
e041033274149a3ea274ebc537db78b3 *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
00a768d7f389324ff7d57feeffac24b4 *dzz/manage/template/page/index.htm 00a768d7f389324ff7d57feeffac24b4 *dzz/manage/template/page/index.htm
@@ -2258,18 +2264,18 @@ a1a8ea692287bb85670594b9690fc934 *dzz/pichome/index.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
9b528554931e0dda4ce2ddd6f622be14 *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
@@ -2307,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
7a149afec7b3b057d059a1dd771f4ed7 *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
2fd36bef10146f159f4c60a43cc990e7 *dzz/pichome/template/librarylist/pc/components/index/file.htm 2fd36bef10146f159f4c60a43cc990e7 *dzz/pichome/template/librarylist/pc/components/index/file.htm
bee6309a7c84926264f0dacd2d83176a *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
76f7c926528475f1f6d4f8564b44d0ca *dzz/pichome/template/librarylist/pc/components/index/screen/Jsindex.htm 3f6492029c03e04abf83032815d6ddf8 *dzz/pichome/template/librarylist/pc/components/index/screen/Jsindex.htm
b34ff734c41d7b0384dc829516cb646b *dzz/pichome/template/librarylist/pc/components/index/upload.htm 7119827e1739637ad2ccdc1801be6ac8 *dzz/pichome/template/librarylist/pc/components/index/upload.htm
27bbc626bb49cf68503762595cbb151c *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
bf7314b0863b04edd21b2b6010746852 *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
@@ -2332,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
613b87b8ace79cf418e3d4f3ef72b763 *dzz/pichome/template/libraryview/mobile/components/header_m.htm 613b87b8ace79cf418e3d4f3ef72b763 *dzz/pichome/template/libraryview/mobile/components/header_m.htm
3a763f7f42fd0fd49afd98b4e14cd318 *dzz/pichome/template/libraryview/mobile/components/index/common.htm 3a763f7f42fd0fd49afd98b4e14cd318 *dzz/pichome/template/libraryview/mobile/components/index/common.htm
8bce824e1f1535446015cd34e0b7b506 *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
129059df492fcff573cf262f458277cd *dzz/pichome/template/libraryview/pc/assets/index.css
fe423da5b4339469fcadbf91ff6b9cf4 *dzz/pichome/template/libraryview/pc/components/index/common.htm fe423da5b4339469fcadbf91ff6b9cf4 *dzz/pichome/template/libraryview/pc/components/index/common.htm
2c73acd2ccc8ef74fd60bb0529cf6b0a *dzz/pichome/template/libraryview/pc/components/index/header.htm 20beeac72226488dda080f6b2c077009 *dzz/pichome/template/libraryview/pc/components/index/header.htm
cc3d6be8cd0e803e22937c466276f3d2 *dzz/pichome/template/libraryview/pc/components/index/image.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
2df0c8aa044924556c348773a22a3e5b *dzz/pichome/template/libraryview/pc/components/left/index.htm 2df0c8aa044924556c348773a22a3e5b *dzz/pichome/template/libraryview/pc/components/left/index.htm
da8068edb631ad2211d7ee6d7330d25a *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
@@ -2456,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
@@ -2534,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
d855b61803ef9105be3ae0206a75d4e0 *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
e7ce0267513d9d291c4d81b6ea2b39b2 *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
@@ -2549,8 +2581,8 @@ b0bb6c733a343afcddcd03baaeff31b0 *dzz/xgplayer/js/xgplayer.music.js
1011ce5abacd26ef675bd377393c7fa6 *dzz/xgplayer/template/progress.htm 1011ce5abacd26ef675bd377393c7fa6 *dzz/xgplayer/template/progress.htm
412ef1cfe4016756bfa57d18f3779559 *favicon.ico 412ef1cfe4016756bfa57d18f3779559 *favicon.ico
5f46f370d6d9965c9e28c70ca3f904ce *index.php 5f46f370d6d9965c9e28c70ca3f904ce *index.php
012897bbb2c54ef2a5b8e0ed10b5be4e *install/data/install.sql 6e35daa2e6ccf8bc3a78a989c2282863 *install/data/install.sql
dcd23cef19211b9f54b915658fb74f93 *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
@@ -2564,12 +2596,13 @@ 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
c8ca32424e84934320e818b18d3d39f8 *misc/classes/init.php c8ca32424e84934320e818b18d3d39f8 *misc/classes/init.php
1eba34776ab322f424cfa60965e4fbf3 *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 28dafe510c0e9fc80fab261b3d17cd1a *misc/exportfile.php
@@ -2589,12 +2622,12 @@ ff6abf5b6ce1f3256d2aad8fdd24f646 *misc/setunrun.php
38a88c2ea2cd34b23b1704d561e8995b *misc/syscache.php 38a88c2ea2cd34b23b1704d561e8995b *misc/syscache.php
d365238875a6457eaea991f1e7913309 *misc/template/misc_seluser.htm d365238875a6457eaea991f1e7913309 *misc/template/misc_seluser.htm
435204375ed3529d8dc97f309fff374f *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
d317132532df38988852698267297fbc *PicHome2.0.1update.txt 71b9070307694aeb12d899a443250351 *PicHome2.0.2update.txt
f4c67b4304c59984649b86905b7468e1 *README.md 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
@@ -2659,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
@@ -2810,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
cc6b6bf007d72e9b9a7fbb3ca5100f03 *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
@@ -2827,19 +2865,19 @@ 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
47a0f8b842227fc722098f624a46dc59 *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
f4df588cd39bfb3b4b3ae3a1a5f98e16 *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
181e697002fdd223034ce80e6174b143 *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
f7a2ece05407dc6f4683beb06094c928 *UPDATE.md f7a2ece05407dc6f4683beb06094c928 *UPDATE.md
d1ad8ccaadf9ebe30b27c63084cd4ac2 *user/ajax.php 7ad0e8566fcf347808d4f535cd709541 *user/ajax.php
40ca267f3f75d6195857f3654be38fc6 *user/classes/checklogin.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
@@ -2861,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
@@ -2879,7 +2917,15 @@ 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
8b5ee78eb65b10e72013c584bff39172 *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

@@ -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];
} }
}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 (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,38 +345,100 @@ 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);
$nfids = explode(',', $resourcesdata['fids']); if($resourcesdata['isdelete']){
if (!in_array($fid, $nfids)) { $rsetarr = [
$nfids[] = $fid; 'lastdate' => TIMESTAMP * 1000,
} 'appid' => $appid,
$icoarr = [ 'uid' => $_G['uid'],
'lastdate' => TIMESTAMP * 1000, 'username' => $_G['username'],
'appid' => $appid, 'apptype' => 1,
'uid'=>$_G['uid'], 'size' => $resourcesdata['size'],
'username'=>$_G['username'], 'type' => $resourcesdata['type'],
'apptype' => 3, 'ext' => $resourcesdata['ext'],
'mtime' => TIMESTAMP * 1000, 'mtime' => TIMESTAMP * 1000,
'dateline' => TIMESTAMP * 1000, 'dateline' => TIMESTAMP * 1000,
'btime' => TIMESTAMP * 1000, 'btime' => TIMESTAMP * 1000,
'lastdate' => TIMESTAMP, 'width' => $resourcesdata['width'],
'name' => $resourcesdata['name'], 'height' => $resourcesdata['height'],
'fids' => $nfids ? implode(',', $nfids) : '', 'lastdate' => TIMESTAMP,
]; 'level' => isset($folderdata['level']) ? $folderdata['level'] : 0,
'name' => $resourcesdata['name'],
'fids' => $folderdata['fid'] ? $folderdata['fid'] : ''
];
if (C::t('pichome_resources')->update($rid, $icoarr)) {//插入主表 if ($rsetarr['rid'] = C::t('pichome_resources')->insert_data($rsetarr)) {//插入主表
//目录数据 //获取附属表数据
if ($fid) { $attrdata = C::t('pichome_resources_attr')->fetch($rid);
$frsetarr = ['appid' => $appid, 'rid' => $icoarr['rid'], 'fid' => $fid]; $attrdata['rid'] = $rsetarr['rid'];
C::t('pichome_folderresources')->insert($frsetarr); $attrdata['appid'] = $appid;
C::t('pichome_folder')->add_filenum_by_fid($fid, 1); $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'));
} }
$data = C::t('pichome_resources')->fetch_by_rid($rid);
$data['folder'] = C::t('pichome_folder')->fetch_allfolder_by_fid($fid);
return $data;
}else{ }else{
return array('error' => lang('data_error')); $nfids = explode(',', $resourcesdata['fids']);
} $iscurrentfolder = 1;
if (!in_array($fid, $nfids)) {
$iscurrentfolder = 0;
$nfids[] = $fid;
}
$icoarr = [
'lastdate' => TIMESTAMP * 1000,
'appid' => $appid,
'uid'=>$_G['uid'],
'username'=>$_G['username'],
'apptype' => 3,
'mtime' => TIMESTAMP * 1000,
'dateline' => TIMESTAMP * 1000,
'btime' => TIMESTAMP * 1000,
'lastdate' => TIMESTAMP,
'name' => $resourcesdata['name'],
'fids' => $nfids ? implode(',', $nfids) : '',
];
if (C::t('pichome_resources')->update($rid, $icoarr)) {//插入主表
//目录数据
if (!$iscurrentfolder && $fid) {
$frsetarr = ['appid' => $appid, 'rid' => $rid, 'fid' => $fid];;
C::t('pichome_folderresources')->insert($frsetarr);
// C::t('pichome_folder')->add_filenum_by_fid($fid, 1);
}
$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);
return $data;
}else{
return array('error' => lang('data_error'));
}
}
} }
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']))) {//如果当前库没有该文件,但其它库有
@@ -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'));

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

@@ -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

@@ -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

@@ -347,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'],'hasthumb'=>$resourcesdata['hasthumb']]; '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'],'hasthumb'=>$resourcesdata['hasthumb']]; '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']);
@@ -493,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];
@@ -547,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']){
$v['thumbwidth'] = $thumsizearr[0]; $thumsizearr = $this->scaleImage($v['width'], $v['height'], $thumbwidth, $thumbheight);
$v['thumbheight'] = $thumsizearr[1]; $v['thumbwidth'] = $thumsizearr[0];
$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']));
@@ -606,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

@@ -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

@@ -3,7 +3,7 @@ if (!defined('IN_OAOOA')) {
exit('Access Denied'); exit('Access Denied');
} }
class table_pichome_templatetagdata extends dzz_table class table_pichome_templatetagdata extends dzz_table
{ {
public function __construct() public function __construct()
{ {
@@ -37,20 +37,20 @@ class table_pichome_templatetagdata extends dzz_table
foreach($setarr['tdata'] as $v){ foreach($setarr['tdata'] as $v){
$naids[] = $v['aid']; $naids[] = $v['aid'];
} }
if($olddata){ if($olddata){
$odata = unserialize($olddata['tdata']); $odata = unserialize($olddata['tdata']);
$oaids = []; $oaids = [];
foreach($odata as $idata){ foreach($odata as $idata){
$oaids[] = $idata['aid']; $oaids[] = $idata['aid'];
} }
$delaids = array_diff($oaids,$naids); $delaids = array_diff($oaids,$naids);
foreach($delaids as $v){ foreach($delaids as $v){
C::t('attachment')->delete_by_aid($v['aid']); C::t('attachment')->delete_by_aid($v['aid']);
}
$naids = array_diff($naids,$oaids);
} }
$naids = array_diff($naids,$oaids);
}
C::t('attachment')->addcopy_by_aid($naids); C::t('attachment')->addcopy_by_aid($naids);
$setarr['tdata'] = serialize($setarr['tdata']); $setarr['tdata'] = serialize($setarr['tdata']);
break; break;
@@ -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])){
@@ -86,51 +111,51 @@ class table_pichome_templatetagdata extends dzz_table
$tagdata = []; $tagdata = [];
foreach(DB::fetch_all("select * from %t where tid = %d order by disp asc",[$this->_table,$tid]) as $v){ foreach(DB::fetch_all("select * from %t where tid = %d order by disp asc",[$this->_table,$tid]) as $v){
if($tagtype == 'rich_text'){ if($tagtype == 'rich_text'){
$v['tdata'] = $this->parserichtextdata($v['tdata']); $v['tdata'] = $this->parserichtextdata($v['tdata']);
}else{ }else{
$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']); }
} if(!$val['link']) $val['tdata'][$k]['url'] = $val['linkval'] ? $val['linkval']:'';
if(!$val['link']) $val['tdata'][$k]['url'] = $val['linkval'] ? $val['linkval']:''; else{
else{ switch ($val['link']){
switch ($val['link']){ case 1:
case 1: $url = 'index.php?mod=pichome&op=fileview#appid='.$val['linkval'];
$url = 'index.php?mod=pichome&op=fileview#appid='.$val['linkval']; break;
break; case 2:
case 2: $url = 'index.php?mod=alonepage&op=view#id='.$val['linkval'];
$url = 'index.php?mod=alonepage&op=view#id='.$val['linkval']; break;
break; case 3:
case 3: $bdata = C::t('pichome_banner')->fetch($val['linkval']);
$bdata = C::t('pichome_banner')->fetch($val['linkval']); $url = ($bdata['btype'] == 3) ? $bdata['bdata']:'index.php?mod=banner&op=index#id='.$bdata['bdata'];
$url = ($bdata['btype'] == 3) ? $bdata['bdata']:'index.php?mod=banner&op=index#id='.$bdata['bdata']; break;
break; }
} if(getglobal('setting/pathinfo')) $path = C::t('pichome_route')->feth_path_by_url($url);
if(getglobal('setting/pathinfo')) $path = C::t('pichome_route')->feth_path_by_url($url); else $path = '';
else $path = ''; if($path){
if($path){ $v['tdata'][$k]['url'] = getglobal('siteurl').$path;
$v['tdata'][$k]['url'] = getglobal('siteurl').$path; }else{
}else{ $v['tdata'][$k]['url'] = getglobal('siteurl').$url;
$v['tdata'][$k]['url'] = getglobal('siteurl').$url; }
} }
} }
}
} }
$v['tdid'] = $v['id']; $v['tdid'] = $v['id'];
unset($v['id']); unset($v['id']);
$tagdata[] = $v; $tagdata[] = $v;
} }
return $tagdata; return $tagdata;
} }
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

@@ -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

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

View File

@@ -27,9 +27,8 @@ 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') . 'misc.php?mod=initexport&appid=' . $appid, 0, '', '', false, '', 1); dfsockopen(getglobal('localurl') . 'misc.php?mod=initexport&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,6 +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:'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

@@ -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

View File

View File

@@ -102,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'],
@@ -221,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);
@@ -241,10 +243,10 @@ 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;
$pagedata = C::t('pichome_templatepage')->fetch_data_by_id($id); $pagedata = C::t('pichome_templatepage')->fetch_data_by_id($id);
exit(json_encode(['success'=>true,'data'=>$pagedata])); exit(json_encode(['success'=>true,'data'=>$pagedata]));
} }

View File

@@ -245,4 +245,19 @@
} }
.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

@@ -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

@@ -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,7 +132,7 @@ if ($do == 'gettagdata') {//获取标签位文件列表数据
} }
} }
if (!empty($rids)) { if (!empty($rids)) {
$data = C::t('pichome_resources')->getdatasbyrids($rids); $data = C::t('pichome_resources')->getdatasbyrids($rids,1);
} }
$next = true; $next = true;
@@ -167,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];
@@ -252,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,14 +20,8 @@ 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'])) {
@@ -49,65 +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'])] : [];
//获取有权限访问的库
$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']);
}
}
if(!is_array($appid)) $appid = $appid ? (array)$appid:[];
if($gappid){}
//库权限判断部分
foreach (DB::fetch_all("select appid,path,view,type from %t where isdelete = 0", array('pichome_vapp')) as $v) {
$appid = isset($_GET['appid']) ? [trim($_GET['appid'])] : [-1];
//库权限判断部分
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)';
@@ -564,7 +521,7 @@ if ($do == 'filelist') {
if (!empty($para)) $params = array_merge($params, $para); if (!empty($para)) $params = array_merge($params, $para);
$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='';
@@ -581,7 +538,7 @@ if ($do == 'filelist') {
$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);
@@ -103,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 ";
@@ -129,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']; //库权限判断部分
} foreach (DB::fetch_all("select appid,path,view,type from %t where isdelete = 0 and appid in(%n)", array('pichome_vapp',$appid)) as $v) {
}
//获取有权限访问的库
$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) {
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).') ';
} }
@@ -218,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)';
@@ -659,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){
@@ -669,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){
@@ -738,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']) {
@@ -804,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);
@@ -1010,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); $whererangesql = [];
//库栏目条件
if ($appid) {
$whererangesql[]= ' r.appid in(%n)';
$para[] = $vappids;
}else{ }else{
$appid = $vappids; $whererangesql[]= ' 0 ';
} }
if($whererangesql){
if(empty($vappids)){ $wheresql .= ' and ('.implode(' OR ',$whererangesql).') ';
$wheresql .= ' and 0';
}
else{
if ($appid) {
$wheresql .= ' and 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;
}
} }
if ($fids) { if ($fids) {
if ($fids == 'not' || $fids == 'notclassify') { if ($fids == 'not' || $fids == 'notclassify') {
@@ -1077,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)';
@@ -1620,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

@@ -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;
@@ -116,6 +116,5 @@
-webkit-box-pack: justify; -webkit-box-pack: justify;
-ms-flex-pack: justify; -ms-flex-pack: justify;
justify-content: space-between; justify-content: space-between;
margin-bottom: 12px; margin-bottom: 10px;
margin-top: 20px;
} }

View File

@@ -96,12 +96,12 @@
<!-- <el-radio :label="1" size="large">智能数据</el-radio> --> <!-- <el-radio :label="1" size="large">智能数据</el-radio> -->
<el-radio :label="2" size="large">单页</el-radio> <el-radio :label="2" size="large">单页</el-radio>
<el-radio :label="3" size="large">链接</el-radio> <el-radio :label="3" size="large">链接</el-radio>
<!--<el-radio :label="4" size="large">专辑</el-radio>--> <!-- <el-radio :label="4" size="large">专辑</el-radio> -->
</el-radio-group> </el-radio-group>
</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" maxlength="30" @input="SettingLinkInput"></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">
@@ -126,13 +126,13 @@
:label="item.name" :label="item.name"
:value="item.id"></el-option> :value="item.id"></el-option>
</template> </template>
<!--<template v-else-if="DialogData.type == 4"> <template v-else-if="DialogData.type == 4">
<el-option <el-option
v-for="item in DialogData.dataList.tab" v-for="item in DialogData.dataList.tab"
:key="item.gid" :key="item.gid"
:label="item.name" :label="item.name"
:value="item.gid"></el-option> :value="item.gid"></el-option>
</template>--> </template>
</el-select> </el-select>
</template> </template>

View File

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

View File

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

View File

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

View File

@@ -1,12 +1,12 @@
<div class="information-box"> <div class="information-box">
<div class="container" 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">
@@ -59,348 +66,59 @@
<div class="container" style="margin-top: 20px;" 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-right: 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>
<template v-if="bannerData.banneractive == 'all'"> <div ref="parentbox">
<div class="container" style="position: relative;"> <template v-if="bannerData.banneractive == 'all'">
<template v-for="item in bannerData.AllData"> <div class="container" style="position: relative;">
<div v-if="item.data.length" class="layout-box"> <template v-for="item in bannerData.AllData">
<div class="top-header" style="margin-top: 20px;"> <div v-if="item.data.length" class="layout-box">
<el-text tag="b" size="large">{{ item.name }}</el-text> <div class="top-header" style="margin-top: 20px;">
<el-button plain @click="handleBannerSelect(item.flag)"> <el-text tag="b" size="large">{{ item.name }}</el-text>
更多<el-icon><Arrow-Right /></el-icon> <el-button plain @click="handleBannerSelect(item.flag)">
</el-button> 更多<el-icon><Arrow-Right /></el-icon>
</el-button>
</div>
<Image-Layoutlimit
v-if="!item.loading"
:data="item.data"
:layout="item.layout"
:rows="1"
:isshow="{name:true}">
</Image-Layoutlimit>
</div> </div>
<Image-Layoutlimit
v-if="!item.loading"
:windowresize="false"
:data="item.data"
:layout="item.layout"
:rows="1"
:isshow="{name:true}">
</Image-Layoutlimit>
</div>
</template>
</div>
</template>
<template v-else-if="bannerData.banneractive == 'image'">
<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> </template>
</el-dropdown> </div>
</div> </template>
<div class="container" style="position: relative;margin-top: 10px;" ref="parentbox"> <template v-else-if="bannerData.banneractive == 'image'">
<Image-Layout <!--{template components/information/image}-->
ref="RefImageLayoutimage" </template>
:props="{click:true}" <template v-else-if="bannerData.banneractive == 'video'">
@returnparam="Imagereturnparam" <!--{template components/information/video}-->
:layout="bannerData.banner.image.layout" </template>
:windowresize="false" <template v-else-if="bannerData.banneractive == 'audio'">
:urlparam="bannerData.ImageLayout.urlparam" <!--{template components/information/audio}-->
@click="ImageDetails" </template>
:showmessage="bannerData.ImageLayout.showmessage" <template v-else-if="bannerData.banneractive == 'document'">
:url="bannerData.ImageLayout.url" <!--{template components/information/document}-->
:scrollref="scrollref" </template>
:parentbox="bannerData.ImageLayout.parentbox" <template v-else-if="bannerData.banneractive == 'other'">
:ischecked="false"> <!--{template components/information/other}-->
</Image-Layout> </template>
</div> <template v-else-if="bannerData.banneractive == 'search'">
</template> <!--{template components/information/search}-->
<template v-else-if="bannerData.banneractive == 'video'"> </template>
<div class="container" style="display: flex;justify-content: end;align-items: center;margin-top: 20px;margin-bottom: 12px;"> </div>
<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;" 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"
:ischecked="false">
</Image-Layout>
</div>
</template>
<template v-else-if="bannerData.banneractive == 'audio'">
<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;" 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"
:ischecked="false">
</Image-Layout>
</div>
</template>
<template v-else-if="bannerData.banneractive == 'document'">
<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;" 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"
:ischecked="false">
</Image-Layout>
</div>
</template>
<template v-else-if="bannerData.banneractive == 'other'">
<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;" 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"
:ischecked="false">
</Image-Layout>
</div>
</template>
<template v-else-if="bannerData.banneractive == 'search'">
<div class="container" style="position: relative;margin-top: 10px;" ref="parentbox">
<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"
:ischecked="false">
</Image-Layout>
</div>
</template>
</div> </div>

View File

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

View File

@@ -1,9 +1,8 @@
<div class="container" 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"

View File

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

@@ -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"
@@ -225,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

@@ -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"> <!--{template fashion/pc/components/header}-->
<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}-->
</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"> <!--{template fashion/pc/components/header_m}-->
<div class="page-header" style="height: 100%;width: 100%;border: 0;padding: 0;">
<!--{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,7 +232,18 @@
<!--{/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){
this.banncomplete(this.bannerData.data.top[0]); 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]);
}
} }
} }
}, },
@@ -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

@@ -9,11 +9,6 @@
<script type="text/javascript" src="static/vue_components/ImageLayoutlimit/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}"> <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 type="text/javascript" src="static/vue_components/collectdialog/index.js?{VERHASH}"></script>
<style>
body{
background: transparent;
}
</style>
<script> <script>
function debounce(fun, delay) { function debounce(fun, delay) {
var time; var time;
@@ -63,7 +58,22 @@
<!--{template components/information/header}--> <!--{template components/information/header}-->
</el-header> </el-header>
<el-container class="page-main is-vertical dzz-container"> <el-container class="page-main is-vertical dzz-container">
<el-scrollbar id="main_scrollbar" ref="scrollref"> <el-scrollbar id="main_scrollbar" ref="scrollref" @scroll="handleScroll">
<div class="container" style="display: flex;align-items: center;padding-top: 20px;">
<el-icon><Location /></el-icon>
<el-text tag="b" style="margin-left: 6px;">您得位置:</el-text>
<el-breadcrumb separator-icon="Arrow-Right">
<el-breadcrumb-item v-for="(item,key) in breadcrumb">
<template v-if="breadcrumb.length - 1 == key">
{{ item.bannername }}
</template>
<template v-else>
<a :href="item.url?item.url:item.realurl">{{ item.bannername }}</a>
</template>
</el-breadcrumb-item>
</el-breadcrumb>
</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">
@@ -71,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">
@@ -102,7 +112,8 @@
<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>
@@ -168,7 +179,7 @@
breadcrumb:[], breadcrumb:[],
tabkeyword:'', tabkeyword:'',
ImageDataIframe:'', ImageDataIframe:'',
template:3, template:2,
tyttvalue:[], tyttvalue:[],
tyttvalue1:'', tyttvalue1:'',
DocumentThemeColor:'', DocumentThemeColor:'',
@@ -383,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':
@@ -413,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;
@@ -484,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

@@ -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,21 +450,31 @@ class billfishxport
$colorarr = explode('|',$colorstr); $colorarr = explode('|',$colorstr);
foreach($colorarr as $colorval){ foreach($colorarr as $colorval){
$tmpcolor = explode(',',$colorval); $tmpcolor = explode(',',$colorval);
$intcolor = $tmpcolor[1]; if($tmpcolor[0] > 0){
$intcolorsarr[] = $intcolor; $intcolor = $tmpcolor[1];
$colorhex = dechex($intcolor); //获取颜色十六进制值
$rgbcolor = hex2rgb($colorhex); $colorhex = $this->dec2hex($intcolor);
//$rgbarr = [$rgbcolor['r'],$rgbcolor['g'],$rgbcolor['b']]; $colorhexarr = str_split($colorhex,2);
// $color = new Color($rgbarr); array_shift($colorhexarr);
$palettesnum[] = $p = $this->getPaletteNumber($intcolor); $colorhexarr = array_reverse($colorhexarr);
$colorarr = ['rid' => $rid, $colorhex = implode('',$colorhexarr);
'color' => $tmpcolor[1], //获取整型颜色值
'weight' => $tmpcolor[0], $intcolor = hexdec($colorhex);
'r' => $rgbcolor['r'], $intcolorsarr[] = $intcolor;
'g' => $rgbcolor['g'], $rgbcolor = hex2rgb($colorhex);
'b' => $rgbcolor['b'], //$rgbarr = [$rgbcolor['r'],$rgbcolor['g'],$rgbcolor['b']];
'p' => $p // $color = new Color($rgbarr);
]; $palettesnum[] = $p = $this->getPaletteNumber($intcolor);
$colorarr = ['rid' => $rid,
'color' => $tmpcolor[1],
'weight' => $tmpcolor[0],
'r' => $rgbcolor['r'],
'g' => $rgbcolor['g'],
'b' => $rgbcolor['b'],
'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){

File diff suppressed because it is too large Load Diff

View File

@@ -166,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) {

47
dzz/io/download.php Normal file
View File

@@ -0,0 +1,47 @@
<?php
if (!defined('IN_OAOOA')) {//所有的php文件必须加上此句防止被外部调用
exit('Access Denied');
}
$path = dzzdecode($_GET['path'],'',0);
$patharr = explode('_',$path);
$path = $patharr[0];
$filename = isset($_GET['filename']) ? $_GET['filename'] : '';
if(strpos($path,'attach::')>-1){
$aid=str_replace('attach::','',$path);
if(!$attach=C::t('attachment')->fetch($aid)){
@header( 'HTTP/1.1 403 Not Found' );
@header( 'Status: 403 Not Found' );
exit( lang( 'attachment_nonexistence' ) );
}
$size=intval($attach['filesize']);
if(empty($filename)) $filename=$attach['filename'];
}else{
$rid=$path;
if(!$resource=C::t('pichome_resources')->fetch($rid)){
@header( 'HTTP/1.1 403 Not Found' );
@header( 'Status: 403 Not Found' );
exit( lang( 'attachment_nonexistence' ) );
}
$attach = DB::fetch_first("select path,appid from %t where rid = %s",array('pichome_resources_attr',$rid));
if(is_numeric($attach['path'])){
$path = 'attach::'.$attach['path'];
}else{
$appdata = C::t('pichome_vapp')->fetch($attach['appid']);
$path = $appdata['path'].BS.$attach['path'];
}
if(empty($filename)) $filename=$resource['name'];
$filesize=$resource['size'];
}
$attachurl = IO::getStream($path);
$attachurl= str_replace('#','%23',$attachurl);
$filename = '"' . (strtolower(CHARSET) == 'utf-8' && (strexists($_SERVER['HTTP_USER_AGENT'], 'MSIE') || strexists($_SERVER['HTTP_USER_AGENT'], 'Edge') || strexists($_SERVER['HTTP_USER_AGENT'], 'rv:11')) ? urlencode($filename) : ($filename)) . '"';
$d = new FileDownload();
$d->download($attachurl, $filename, $filesize, 0, true);
exit();

View File

@@ -30,9 +30,11 @@ if ($arr[1] && is_numeric($arr[1])) {
$appdata['path'] = str_replace('dzz::', '', $appdata['path']); $appdata['path'] = str_replace('dzz::', '', $appdata['path']);
} }
$ext =$patharr['ext']; $ext =$patharr['ext'];
if ($appdata['type'] == 0) {//eagle缩略图 if ($appdata['type'] == 0) {//eagle缩略图
$patharr['path'] = DB::result_first("select path from %t where rid = %s",array('pichome_resources_attr',$patharr['rid'])); // $patharr['path'] = DB::result_first("select path from %t where rid = %s",array('pichome_resources_attr',$patharr['rid']));
$thumbdir = $appdata['path']; $thumbdir = $appdata['path'];
//当地址为大图时 //当地址为大图时
if($patharr['thumbsign']){ if($patharr['thumbsign']){
//如果有下载权限,并且当前图片支持预览返回原图地址 //如果有下载权限,并且当前图片支持预览返回原图地址
@@ -40,14 +42,13 @@ if ($appdata['type'] == 0) {//eagle缩略图
else{ else{
//否则尝试使用小图作为大图地址展示 //否则尝试使用小图作为大图地址展示
$tmppath = str_replace(strrchr($patharr['path'], "."), "", $patharr['path']); $tmppath = preg_replace('/\.'.$ext.'$/','',$patharr['path']);
$thumbpath = $thumbdir . BS . $tmppath . '_thumbnail.png'; $thumbpath = $thumbdir . BS . $tmppath . '_thumbnail.png';
//如果小图也不存在,使用图标代替大图 //如果小图也不存在,使用图标代替大图
if (!$patharr['hasthumb'])$thumbpath = 'static/dzzthumb/preview/b.gif'; if (!$patharr['hasthumb'])$thumbpath = 'static/dzzthumb/preview/b.gif';
} }
}else{//小图时 }else{//小图时
$patharr['path'] = DB::result_first("select path from %t where rid = %s",array('pichome_resources_attr',$patharr['rid'])); $tmppath = preg_replace('/\.'.$ext.'$/','',$patharr['path']);
$tmppath = str_replace(strrchr($patharr['path'], "."), "", $patharr['path']);
$thumbpath = ($iscloud) ? IO::getFileUri($thumbdir . BS . $tmppath . '_thumbnail.png'):$thumbdir . BS . $tmppath . '_thumbnail.png'; $thumbpath = ($iscloud) ? IO::getFileUri($thumbdir . BS . $tmppath . '_thumbnail.png'):$thumbdir . BS . $tmppath . '_thumbnail.png';
//如果小图不存在 //如果小图不存在
if (!$patharr['hasthumb']){ if (!$patharr['hasthumb']){
@@ -57,6 +58,7 @@ if ($appdata['type'] == 0) {//eagle缩略图
} }
} }
} }
elseif($appdata['type'] == 2) {//billfish缩略图 elseif($appdata['type'] == 2) {//billfish缩略图
//获取记录表缩略图对应信息 //获取记录表缩略图对应信息

View File

@@ -426,10 +426,15 @@ class localexport
//dfsockopen(getglobal('localurl') . 'misc.php?mod=thumbconvertrecord&rid='.$data['rid'], 0, '', '', false, '',0.01); //dfsockopen(getglobal('localurl') . 'misc.php?mod=thumbconvertrecord&rid='.$data['rid'], 0, '', '', false, '',0.01);
$dirstr = dirname($filepath); $dirstr = dirname($filepath);
if ($dirstr != '.' && $dirstr != '..' && $dirstr) { if ($dirstr != '.' && $dirstr != '..' && $dirstr) {
//获取原目录数据
$ofids = DB::result_first("select fids from %t where rid = %s",array('pichome_resources',$rid));
$ofidsarr = explode(',',$ofids);
//移除旧目录数据
C::t('pichome_folderresources')->delete_by_ridfid([$rid],$ofidsarr);
// $fdata = $this->createfolerbypath($dirstr); // $fdata = $this->createfolerbypath($dirstr);
$dirstr = str_replace(BS,'/',$dirstr); $dirstr = str_replace(BS,'/',$dirstr);
$fdata = C::t('pichome_folder')->createfolerbypath($this->appid,$dirstr,''); $fdata = C::t('pichome_folder')->createfolerbypath($this->appid,$dirstr,'');
runlog('aaaexportafter',print_r($fdata,true));
if ($fdata['fid']) { if ($fdata['fid']) {
$frsetarr = ['appid' => $this->appid, 'rid' => $rid, 'fid' => $fdata['fid']]; $frsetarr = ['appid' => $this->appid, 'rid' => $rid, 'fid' => $fdata['fid']];
C::t('pichome_folderresources')->insert($frsetarr); C::t('pichome_folderresources')->insert($frsetarr);

View File

@@ -44,18 +44,12 @@
'url'=>'index.php?mod=pichome&op=storagesetting', 'url'=>'index.php?mod=pichome&op=storagesetting',
'img'=>'data/attachment/appico/201712/21/171106u1dk40digrrr79ed.png' 'img'=>'data/attachment/appico/201712/21/171106u1dk40digrrr79ed.png'
); );
if(defined('PICHOME_LIENCE')){ $list[]=array(
/* $list[]=array( 'name'=>'搜索设置',
'name'=>'专题管理', 'url'=>'index.php?mod=search&op=setting',
'url'=>'index.php?mod=tab&op=admin', 'img'=>'data/attachment/appico/201712/21/113527zz2665xg7d3h2777.png'
'img'=>'data/attachment/appico/201712/21/131016is1wjww2uwvljllw.png'
); );
$list[]=array(
'name'=>'收集管理',
'url'=>'index.php?mod=fileCollect&op=setting',
'img'=>'data/attachment/appico/201712/21/131016is1wjww2uwvljllw.png'
);*/
}
$list_json=json_encode($list); $list_json=json_encode($list);
include template('page/index'); include template('page/index');

View File

@@ -1,182 +0,0 @@
<?php
if (!defined('IN_OAOOA')) {//所有的php文件必须加上此句防止被外部调用
exit('Access Denied');
}
$operation = isset($_GET['operation']) ? trim($_GET['operation']) : 'basic';
$themeid = isset($_G['setting']['pichometheme']) ? intval($_G['setting']['pichometheme']):1;
include libfile('function/cache');
global $_G;
$navtitle = '基本设置';
if (isset($_G['setting'])) $setting = $_G['setting'];
else $setting = C::t('setting')->fetch_all();
$themedata = getthemedata($themeid);
$lefsetdata = $themedata['singlepage'];
if ($operation == 'basic') {
if (submitcheck('settingsubmit')) {
$settingnew = $_GET['settingnew'];
updatesetting($setting, $settingnew);
dexit(json_encode(array('success' => true)));
} else {
$type = isset($_GET['type']) ? trim($_GET['type']) : '';
if($type=='getdata'){
exit(json_encode(array('data' => $setting)));
}else{
$waterfilepath = $_G['setting']['attachurl'] . 'sitelogo/sitelogo.png';
if (!file_exists($waterfilepath)) {
$waterfilepath = '';
}
include template('admin/pc/page/basic');
}
}
}
elseif ($operation == 'authorize') {//授权信息
include_once libfile( 'function/cache' );
$operation = isset($_GET['operation']) ? trim($_GET['operation']) : '';
if ($operation) {
if(isset($_FILES['file'])){
$files = $_FILES['file'];
$licdata = file_get_contents($files['tmp_name']);
if(!$licdata) exit(json_encode(array('error'=>true)));
C::t('setting')->update('sitelicensedata',$licdata);
updatecache( 'setting' );
dexit(json_encode(array('success' => true)));
}else{
dexit(json_encode(array('error'=>true)));
}
} else {
$version = defined('LICENSE_VERSION') ? lang(LICENSE_VERSION) : lang('Home');
$limitusernum = defined('LICENSE_LIMIT') ? LICENSE_LIMIT : 1;
if (defined('NOLIMITUSER')) $limitusernum = '无限';
$authdate = defined('LICENSE_CTIME') ? dgmdate(LICENSE_CTIME, 'Y-m-d H:i:s') : '';
include template('admin/pc/page/site/authorize');
}
}
elseif($operation == 'updateauth'){
include_once libfile( 'function/cache' );
$username = isset($_GET['username']) ? trim($_GET['username']):'';
$password = isset($_GET['password']) ? trim($_GET['password']):'';
$mcode = getglobal('setting/machinecode');
$datastr = $username."\t".$password."\t".$mcode;
$data = dzzencode($datastr,$mcode);
$authurl = APP_CHECK_URL.'authlicense/getauth/'.$mcode.'/'.$data.'/'. TIMESTAMP;
$response = json_decode(dfsockopen($authurl,0, '', '', FALSE, '',3),true);
if(isset($response['authcode'])){
C::t('setting')->update('sitelicensedata',$response['authcode']);
updatecache( 'setting' );
}
if(isset($response['error']))exit(json_encode(array('error'=>$response['error'])));
else exit(json_encode(array('success'=>true)));
}
elseif ($operation == 'uploadlogo') {//上传logo
global $_G;
$files = $_FILES['file'];
if ($files["type"] != 'image/png' || $files['size'] >= 1024 * 1024 * 2) {
exit(json_encode(array('error' => 'file is not invalite')));
}
$waterfilepath = $_G['setting']['attachurl'] . 'sitelogo/sitelogo.png';
$return = move_uploaded_file($files["tmp_name"], $waterfilepath);
exit(json_encode(array('success' => true)));
}
elseif ($operation == 'pagesetting') {//界面设置
if (submitcheck('settingsubmit')) {
$settingnew = $_GET['settingnew'];
updatesetting($setting, $settingnew);
exit(json_encode(array('success' => true)));
} else {
$waterfilepath = $_G['setting']['attachurl'] . 'sitelogo/sitelogo.png';
include template('admin/pc/page/site/page');
}
}
elseif($operation == 'importsetting'){
if (submitcheck('settingsubmit')) {
$settingnew = $_GET['settingnew'];
updatesetting($setting, $settingnew);
exit(json_encode(array('success' => true)));
} else {
$Defaultnotallowdir = json_encode($Defaultnotallowdir);
include template('admin/pc/page/site/import');
}
}elseif ($operation == 'loginpage') {//登录页设置
}
elseif ($operation == 'fileterset') {//筛选项设置
$applist = DB::fetch_all("select appid,appname from %t where isdelete < 1",array('pichome_vapp'));
$appid = isset($_GET['appid']) ? trim($_GET['appid']):'';
if (submitcheck('settingsubmit')) {
$settingnew = $_GET['settingnew'] ? $_GET['settingnew'] : array();
if($appid!='all'){
$setarr = ['filter' => isset($settingnew['pichomefilterfileds']) ? serialize($settingnew['pichomefilterfileds']):''];
C::t('pichome_vapp')->update($appid, $setarr);
}else{
$settingnew['pichomefilterfileds'] = isset($settingnew['pichomefilterfileds']) ? serialize($settingnew['pichomefilterfileds']):'';
updatesetting($setting, $settingnew);
}
exit(json_encode(array('success' => true)));
} else {
if($appid){
if($appid == 'all'){
$catdata = array();
$data = isset($setting['pichomefilterfileds']) ? $setting['pichomefilterfileds']:[];
}else{
$appdata = C::t('pichome_vapp')->fetch($appid);
$catdata = C::t('pichome_taggroup')->fetch_by_appid($appid);
array_push($catdata,['cid'=>-1,'catname'=>'未分组']);
$data = $appdata['filter'] ? unserialize($appdata['filter']):[];
}
exit(json_encode(array('data'=>$data,'catdata'=>$catdata)));
}else{
include template('admin/pc/page/site/fileterset');
}
}
}elseif ($operation == 'onlyofficesetting') {//onlyoffice
if (submitcheck('settingsubmit')) {
$settingnew = $_GET['settingnew'];
updatesetting($setting, $settingnew);
exit(json_encode(array('success' => true)));
} else {
$settingnew['onlyofficeurl'] = isset($setting['onlyofficeurl']) ? $setting['onlyofficeurl']:'';
$settingnew['onlyofficethumbext'] = isset($setting['onlyofficethumbext']) ? $setting['onlyofficethumbext']:'pdf,doc,docx,rtf,odt,htm,html,mht,txt,ppt,pptx,pps,ppsx,odp,xls,xlsx,ods,csv';
$settingnew = json_encode($settingnew);
include template('pc/page/adminOnlyOffice');
}
}
function updatesetting($setting, $settingnew){
$updatecache = false;
$settings = array();
$updatethumb = false;
$updateroute = false;
foreach ($settingnew as $key => $val) {
if ($setting[$key] != $val) {
$updatecache = TRUE;
if (in_array($key, array('timeoffset', 'regstatus', 'oltimespan', 'seccodestatus'))) {
$val = (float)$val;
}elseif($key == 'pathinfo'){
$updateroute = true;
}
$settings[$key] = $val;
}
}
if ($settings) {
C::t('setting')->update_batch($settings);
}
if ($updatecache) {
updatecache('setting');
}
if($updateroute){
C::t('pichome_route')->update_route();
}
return true;
}
exit();

View File

@@ -1,314 +0,0 @@
<?php
if (!defined('IN_OAOOA')) {//所有的php文件必须加上此句防止被外部调用
exit('Access Denied');
}
global $_G;
$operation = isset($_GET['operation']) ? trim($_GET['operation']):'';
$themeid = isset($_G['setting']['pichometheme']) ? intval($_G['setting']['pichometheme']):1;
$navtitle = '栏目设置';
$ttype = isset($_GET['ttype']) ? intval($_GET['ttype']):0;
if($operation == 'addandedit'){//新建和编辑栏目
$bid = isset($_GET['bid']) ? intval($_GET['bid']):0;
if(submitcheck('addbanner')){
$bannername = isset($_GET['bannername']) ? getstr($_GET['bannername'],30):'';
$settype = isset($_GET['settype']) ? intval($_GET['settype']):1;
if(DB::result_first("select id from %t where bannername = %s and themeid = %d and settype = %d and id != %d",array('pichome_banner',$bannername,$themeid,$settype,$bid))){
exit(json_encode(array('success'=>false,'mgs'=>'banner is exists')));
}
$btype = isset($_GET['btype']) ? intval($_GET['btype']):1;
$ctype = isset($_GET['ctype']) ? intval($_GET['ctype']):0;
$typefilter = isset($_GET['typefilter']) ? trim($_GET['typefilter']):'';
$appids = isset($_GET['appids']) ? trim($_GET['appids']):1;
if($appids === 1 || count(explode(',',$appids)) > 1){
$filters = 'a:13:{i:0;a:6:{s:5:"label";s:6:"分类";s:4:"type";s:8:"classify";s:3:"cid";s:10:"p_classify";s:8:"disabled";s:5:"false";s:7:"checked";s:5:"false";s:6:"parent";s:4:"true";}i:1;a:7:{s:5:"label";s:6:"标签";s:4:"type";s:3:"tag";s:3:"cid";s:5:"p_tag";s:4:"data";a:3:{i:0;s:3:"111";i:1;s:3:"222";i:2;s:3:"333";}s:8:"showtype";s:1:"0";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:2;a:5:{s:5:"label";s:6:"颜色";s:4:"type";s:5:"color";s:3:"cid";s:7:"p_color";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:3;a:5:{s:5:"label";s:6:"链接";s:4:"type";s:4:"link";s:3:"cid";s:6:"p_link";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:4;a:5:{s:5:"label";s:6:"注释";s:4:"type";s:4:"desc";s:3:"cid";s:6:"p_desc";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:5;a:5:{s:5:"label";s:6:"时长";s:4:"type";s:8:"duration";s:3:"cid";s:10:"p_duration";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:6;a:5:{s:5:"label";s:6:"尺寸";s:4:"type";s:4:"size";s:3:"cid";s:6:"p_size";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:7;a:5:{s:5:"label";s:6:"类型";s:4:"type";s:3:"ext";s:3:"cid";s:5:"p_ext";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:8;a:5:{s:5:"label";s:6:"形状";s:4:"type";s:5:"shape";s:3:"cid";s:7:"p_shape";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:9;a:5:{s:5:"label";s:6:"评分";s:4:"type";s:5:"grade";s:3:"cid";s:7:"p_grade";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:10;a:5:{s:5:"label";s:12:"添加时间";s:4:"type";s:5:"btime";s:3:"cid";s:7:"p_btime";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:11;a:5:{s:5:"label";s:12:"修改日期";s:4:"type";s:8:"dateline";s:3:"cid";s:10:"p_dateline";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:12;a:5:{s:5:"label";s:12:"创建日期";s:4:"type";s:5:"mtime";s:3:"cid";s:7:"p_mtime";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}}';
}else{
$filters = 'a:13:{i:0;a:7:{s:5:"label";s:6:"分类";s:4:"type";s:8:"classify";s:3:"cid";s:10:"p_classify";s:8:"disabled";s:5:"false";s:8:"showtype";s:1:"0";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:1;a:8:{s:5:"label";s:6:"标签";s:4:"type";s:3:"tag";s:3:"cid";s:5:"p_tag";s:4:"data";a:3:{i:0;s:3:"aaa";i:1;s:3:"bbb";i:2;s:3:"ccc";}s:8:"disabled";s:5:"false";s:8:"showtype";s:1:"1";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:2;a:5:{s:5:"label";s:6:"颜色";s:4:"type";s:5:"color";s:3:"cid";s:7:"p_color";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:3;a:5:{s:5:"label";s:6:"链接";s:4:"type";s:4:"link";s:3:"cid";s:6:"p_link";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:4;a:5:{s:5:"label";s:6:"注释";s:4:"type";s:4:"desc";s:3:"cid";s:6:"p_desc";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:5;a:5:{s:5:"label";s:6:"时长";s:4:"type";s:8:"duration";s:3:"cid";s:10:"p_duration";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:6;a:5:{s:5:"label";s:6:"尺寸";s:4:"type";s:4:"size";s:3:"cid";s:6:"p_size";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:7;a:5:{s:5:"label";s:6:"类型";s:4:"type";s:3:"ext";s:3:"cid";s:5:"p_ext";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:8;a:5:{s:5:"label";s:6:"形状";s:4:"type";s:5:"shape";s:3:"cid";s:7:"p_shape";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:9;a:5:{s:5:"label";s:6:"评分";s:4:"type";s:5:"grade";s:3:"cid";s:7:"p_grade";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:10;a:5:{s:5:"label";s:12:"添加时间";s:4:"type";s:5:"btime";s:3:"cid";s:7:"p_btime";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:11;a:5:{s:5:"label";s:12:"修改日期";s:4:"type";s:8:"dateline";s:3:"cid";s:10:"p_dateline";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:12;a:5:{s:5:"label";s:12:"创建日期";s:4:"type";s:5:"mtime";s:3:"cid";s:7:"p_mtime";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}}';
}
$setarr = [
'bannername'=>$bannername,
'ctype'=>$ctype,
'typefilter'=>$typefilter,
'appids'=>$appids,
'btype'=>$btype,
'filters'=>$filters,
'themeid'=>$themeid,
'settype'=>$settype,
'views'=>'s:1:"1";',
'icon'=>isset($_GET['icon']) ? intval($_GET['icon']):0,
'showtype'=>'a:6:{s:6:"layout";s:9:"waterFall";s:4:"show";a:2:{i:0;s:4:"name";i:1;s:5:"other";}s:5:"other";s:5:"btime";s:4:"sort";s:1:"2";s:4:"desc";s:4:"desc";s:8:"opentype";s:3:"new";}',
];
if($bid){
C::t('pichome_banner')->update($bid,$setarr);
}else{
$bid = C::t('pichome_banner')->insert($setarr,1);
}
exit(json_encode(array('success'=>true,'bid'=>$bid)));
}else{
$bannerdata = [];
$bannerdata = C::t('pichome_banner')->fetch($bid);
if($bannerdata['icon']) $bannerdata['iconpath'] = getglobal('siteurl').'index.php?mod=io&op=getfileStream&path='.dzzencode('attach::'.$bannerdata['icon']);
else $bannerdata['iconpath'] = '';
exit(json_encode(array('success'=>true,'bannerdata'=>$bannerdata)));
}
}elseif ($operation == 'getapptagcat') {
$appid = isset($_GET['appid']) ? trim($_GET['appid']) : '';
$catdata = C::t('pichome_taggroup')->fetch_by_appid($appid);
exit(json_encode($catdata));
} elseif($operation=='upload'){//上传图片
include libfile( 'class/uploadhandler' );
$options = array( 'accept_file_types' => '/\.(gif|jpe?g|png|svg)$/i',
'upload_dir' => $_G[ 'setting' ][ 'attachdir' ] . 'cache/',
'upload_url' => $_G[ 'setting' ][ 'attachurl' ] . 'cache/',
'thumbnail' => array( 'max-width' => 40, 'max-height' => 40 ) );
$upload_handler = new uploadhandler( $options );
updatesession();
exit();
} elseif($operation == 'uploadico'){//设置图标
$bid = isset($_GET['bid']) ? intval($_GET['bid']):0;
$aid = isset($_GET['aid']) ? intval($_GET['aid']):0;
$bannerdata = C::t('pichome_banner')->fetch($bid);
if(!$bannerdata){
exit(json_encode(array('success'=>false,'msg'=>'banner is not exixts')));
}else{
if($bannerdata['aid']){
C::t('attachment')->delete_by_aid($bannerdata['aid']);
}else{
C::t('attachment')->addcopy_by_aid($aid);
}
}
exit(json_encode(array('success'=>true)));
}elseif($operation == 'filter'){//设置或获取筛选项
$bid = isset($_GET['bid']) ? intval($_GET['bid']):0;
$bannerdata = C::t('pichome_banner')->fetch($bid);
if(!$bannerdata){
exit(json_encode(array('success'=>false,'msg'=>'banner is not exixts')));
}
if(submitcheck('bannerfilter')){
$filterdata = isset($_GET['filterdata']) ? serialize($_GET['filterdata']):'';
C::t('pichome_banner')->update($bid,['filters'=>$filterdata]);
}else{
$filterdata = unserialize($bannerdata['filters']);
}
exit(json_encode(array('success'=>true,data=>$bannerdata,'filterdata'=>$filterdata)));
}elseif($operation == 'showtype'){//设置展示方式
$bid = isset($_GET['bid']) ? intval($_GET['bid']):0;
$bannerdata = C::t('pichome_banner')->fetch($bid);
if(!$bannerdata){
exit(json_encode(array('success'=>false,'msg'=>'banner is not exixts')));
}
if(submitcheck('showtype')){
$showtypedata = isset($_GET['showtypedata']) ? serialize($_GET['showtypedata']):'a:6:{s:6:"layout";s:9:"waterFall";s:4:"show";a:2:{i:0;s:4:"name";i:1;s:5:"other";}s:5:"other";s:5:"btime";s:4:"sort";s:1:"2";s:4:"desc";s:4:"desc";s:8:"opentype";s:3:"new";}';
C::t('pichome_banner')->update($bid,['showtype'=>$showtypedata]);
}else{
$showtypedata = unserialize($bannerdata['showtype']);
}
exit(json_encode(array('success'=>true,'filterdata'=>$showtypedata)));
}elseif($operation == 'setbanner'){
include libfile('function/cache');
$themebanner = isset($_GET['themebanner']) ? intval($_GET['themebanner']):0;
C::t('pichome_theme')->update($themeid,array('themebanner'=>$themebanner));
$bannerdata = C::t('pichome_banner')->fetch_by_themeid($themeid,$themebanner);
updatecache('setting');
exit(json_encode(array('success'=>true,'bannerdata'=>$bannerdata)));
}elseif($operation == 'member'){
$bid = isset($_GET['bid']) ? intval($_GET['bid']):0;
$bannerdata = C::t('pichome_banner')->fetch($bid);
if(!$bannerdata){
exit(json_encode(array('success'=>false,'msg'=>'banner is not exixts')));
}
$data = [];
if(submitcheck('member')){
$setarr = [
'views'=>serialize($_GET['views']),
'downloads'=>serialize($_GET['downloads']),
'share'=>serialize($_GET['share']),
];
C::t('pichome_banner')->update($bid,$setarr);
}else{
$data['view'] = unserialize($bannerdata['views']);
$data['downloads'] = unserialize($bannerdata['downloads']);
$data['share'] = unserialize($bannerdata['share']);
//访问权限用户
$vorgids = [];
if(isset($data['view']['uids'])){
$hasorgiduids = [];
foreach(DB::fetch_all("select orgid from %t where uid in(%n)",array('organization_user',$data['view']['uids'])) as $ov){
$vorgids[] = $ov['orgid'];
$hasorgiduids[] = $ov['uid'];
}
$data['view']['other'] = array_diff($data['view']['uids'],$hasorgiduids);
}
if(isset($data['view']['groups'])){
$viewgroups = $data['view']['groups'];
if(in_array('other',$viewgroups)){
$otherindex = array_search('other',$viewgroups);
unset($viewgroups[$otherindex]);
}
$vorgids = array_merge($vorgids,$viewgroups);
}
if($vorgids){
$tmporgids = [];
foreach(DB::fetch_all("select pathkey from %t where orgid in(%n)",array('organization',$vorgids)) as $vo){
$torgids = explode('_',str_replace('-','',$vo['pathkey']));
$tmporgids = array_merge($tmporgids,$torgids);
}
$tmporgids = array_unique(array_filter($tmporgids));
$data['view']['vorgids'] =$tmporgids;
}
//下载权限用户
$dorgids = [];
if(isset($data['downloads']['uids'])){
$hasorgiduids = [];
foreach(DB::fetch_all("select orgid,uid from %t where uid in(%n)",array('organization_user',$data['downloads']['uids'])) as $ov){
$dorgids[] = $ov['orgid'];
$hasorgiduids[] = $ov['uid'];
}
$data['downloads']['other'] = array_diff($data['downloads']['uids'],$hasorgiduids);
}
if(isset($data['downloads']['groups'])){
$dgroups = $data['downloads']['groups'];
if(in_array('other',$dgroups)){
$otherindex = array_search('other',$dgroups);
unset($dgroups[$otherindex]);
}
$dorgids = array_merge($dorgids,$dgroups);
}
if($dorgids){
$tmporgids = [];
foreach(DB::fetch_all("select pathkey from %t where orgid in(%n)",array('organization',$dorgids)) as $vo){
$torgids = explode('_',str_replace('-','',$vo['pathkey']));
$tmporgids = array_merge($tmporgids,$torgids);
}
$tmporgids = array_unique(array_filter($tmporgids));
$data['downloads']['dorgids'] =$tmporgids;
}
//分享权限用户
$sorgids = [];
if(isset($data['share']['uids'])){
$hasorgiduids = [];
foreach(DB::fetch_all("select orgid from %t where uid in(%n)",array('organization_user',$data['share']['uids'])) as $ov){
$sorgids[] = $ov['orgid'];
}
$data['share']['other'] = array_diff($data['share']['uids'],$hasorgiduids);
}
if(isset($data['share']['groups'])){
$sgroups = $data['share']['groups'];
if(in_array('other',$dgroups)){
$otherindex = array_search('other',$sgroups);
unset($sgroups[$otherindex]);
}
$sorgids = array_merge($sorgids,$sgroups);
}
if($sorgids){
$tmporgids = [];
foreach(DB::fetch_all("select pathkey from %t where orgid in(%n)",array('organization',$sorgids)) as $vo){
$torgids = explode('_',str_replace('-','',$vo['pathkey']));
$tmporgids = array_merge($tmporgids,$torgids);
}
$tmporgids = array_unique(array_filter($tmporgids));
$data['share']['sorgids'] =$tmporgids;
}
}
exit(json_encode(array('success'=>true,'data'=>$data)));
}elseif($operation == 'editbanner'){
$bid = isset($_GET['bid']) ? intval($_GET['bid']):0;
if(submitcheck('editbanner')){
$bannername = isset($_GET['bannername']) ? getstr($_GET['bannername'],30):'';
if(DB::result_first("select id from %t where bannername = %s and themeid = %d and id != %d",array('pichome_banner',$bannername,$themeid,$bid))){
exit(json_encode(array('success'=>false,'mgs'=>'banner is exists')));
}
$ctype = isset($_GET['ctype']) ? intval($_GET['ctype']):0;
$typefilter = isset($_GET['typefilter']) ? trim($_GET['typefilter']):'';
$filters = isset($_GET['filters']) ? trim($_GET['filters']):'';
$appids = isset($_GET['appids']) ? trim($_GET['appids']):1;
if($appids === 1 || count(explode(',',$appids)) > 1){
$filters = ($filters) ? serialize($filters):'a:13:{i:0;a:6:{s:5:"label";s:6:"分类";s:4:"type";s:8:"classify";s:3:"cid";s:10:"p_classify";s:8:"disabled";s:5:"false";s:7:"checked";s:5:"false";s:6:"parent";s:4:"true";}i:1;a:7:{s:5:"label";s:6:"标签";s:4:"type";s:3:"tag";s:3:"cid";s:5:"p_tag";s:4:"data";a:3:{i:0;s:3:"111";i:1;s:3:"222";i:2;s:3:"333";}s:8:"showtype";s:1:"0";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:2;a:5:{s:5:"label";s:6:"颜色";s:4:"type";s:5:"color";s:3:"cid";s:7:"p_color";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:3;a:5:{s:5:"label";s:6:"链接";s:4:"type";s:4:"link";s:3:"cid";s:6:"p_link";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:4;a:5:{s:5:"label";s:6:"注释";s:4:"type";s:4:"desc";s:3:"cid";s:6:"p_desc";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:5;a:5:{s:5:"label";s:6:"时长";s:4:"type";s:8:"duration";s:3:"cid";s:10:"p_duration";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:6;a:5:{s:5:"label";s:6:"尺寸";s:4:"type";s:4:"size";s:3:"cid";s:6:"p_size";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:7;a:5:{s:5:"label";s:6:"类型";s:4:"type";s:3:"ext";s:3:"cid";s:5:"p_ext";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:8;a:5:{s:5:"label";s:6:"形状";s:4:"type";s:5:"shape";s:3:"cid";s:7:"p_shape";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:9;a:5:{s:5:"label";s:6:"评分";s:4:"type";s:5:"grade";s:3:"cid";s:7:"p_grade";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:10;a:5:{s:5:"label";s:12:"添加时间";s:4:"type";s:5:"btime";s:3:"cid";s:7:"p_btime";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:11;a:5:{s:5:"label";s:12:"修改日期";s:4:"type";s:8:"dateline";s:3:"cid";s:10:"p_dateline";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:12;a:5:{s:5:"label";s:12:"创建日期";s:4:"type";s:5:"mtime";s:3:"cid";s:7:"p_mtime";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}}';
}else{
$filters = ($filters) ? serialize($filters):'a:13:{i:0;a:7:{s:5:"label";s:6:"分类";s:4:"type";s:8:"classify";s:3:"cid";s:10:"p_classify";s:8:"disabled";s:5:"false";s:8:"showtype";s:1:"0";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:1;a:8:{s:5:"label";s:6:"标签";s:4:"type";s:3:"tag";s:3:"cid";s:5:"p_tag";s:4:"data";a:3:{i:0;s:3:"aaa";i:1;s:3:"bbb";i:2;s:3:"ccc";}s:8:"disabled";s:5:"false";s:8:"showtype";s:1:"1";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:2;a:5:{s:5:"label";s:6:"颜色";s:4:"type";s:5:"color";s:3:"cid";s:7:"p_color";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:3;a:5:{s:5:"label";s:6:"链接";s:4:"type";s:4:"link";s:3:"cid";s:6:"p_link";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:4;a:5:{s:5:"label";s:6:"注释";s:4:"type";s:4:"desc";s:3:"cid";s:6:"p_desc";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:5;a:5:{s:5:"label";s:6:"时长";s:4:"type";s:8:"duration";s:3:"cid";s:10:"p_duration";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:6;a:5:{s:5:"label";s:6:"尺寸";s:4:"type";s:4:"size";s:3:"cid";s:6:"p_size";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:7;a:5:{s:5:"label";s:6:"类型";s:4:"type";s:3:"ext";s:3:"cid";s:5:"p_ext";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:8;a:5:{s:5:"label";s:6:"形状";s:4:"type";s:5:"shape";s:3:"cid";s:7:"p_shape";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:9;a:5:{s:5:"label";s:6:"评分";s:4:"type";s:5:"grade";s:3:"cid";s:7:"p_grade";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:10;a:5:{s:5:"label";s:12:"添加时间";s:4:"type";s:5:"btime";s:3:"cid";s:7:"p_btime";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:11;a:5:{s:5:"label";s:12:"修改日期";s:4:"type";s:8:"dateline";s:3:"cid";s:10:"p_dateline";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}i:12;a:5:{s:5:"label";s:12:"创建日期";s:4:"type";s:5:"mtime";s:3:"cid";s:7:"p_mtime";s:7:"checked";s:4:"true";s:6:"parent";s:4:"true";}}';
}
$setarr = [
'bannername'=>$bannername,
'ctype'=>$ctype,
'typefilter'=>$typefilter,
'appids'=>$appids,
'filters'=>$filters,
'themeid'=>$themeid,
'icon'=>isset($_GET['icon']) ? intval($_GET['icon']):0,
];
C::t('pichome_banner')->update($bid,$setarr);
exit(json_encode(array('success'=>true,'bid'=>$bid)));
}else{
$bannerdata = [];
$bannerdata = C::t('pichome_banner')->fetch($bid);
if($bannerdata['icon']) $bannerdata['iconpath'] = getglobal('siteurl').'index.php?mod=io&op=getfileStream&path='.dzzencode('attach::'.$bannerdata['icon']);
else $bannerdata['iconpath'] = '';
$bannerdata['filters'] = unserialize($bannerdata['filters']);
exit(json_encode(array('success'=>true,'bannerdata'=>$bannerdata)));
}
}elseif($operation == 'setstatus'){
$bid = isset($_GET['bid']) ? intval($_GET['bid']):0;
$bannerdata = C::t('pichome_banner')->fetch($bid);
if(!$bannerdata){
exit(json_encode(array('success'=>false,'msg'=>'banner is not exixts')));
}
$data = [];
if(submitcheck('submit')){
$setarr = [
'isshow'=>intval($_GET['isshow'])
];
C::t('pichome_banner')->update($bid,$setarr);
}
exit(json_encode(array('success'=>true)));
}elseif($operation == 'setsort'){//设置排序
$bids = isset($_GET['bids']) ? $_GET['bids']:[];
foreach($bids as $k=>$v){
C::t('pichome_banner')->update($v,['disp'=>$k]);
}
exit(json_encode(array('success' => true)));
}elseif($operation == 'delbanner'){
$bid = isset($_GET['bid']) ? intval($_GET['bid']):0;
$bannerdata = C::t('pichome_banner')->fetch($bid);
if(!$bannerdata){
exit(json_encode(array('success'=>false,'msg'=>'banner is not exixts')));
}
if($bannerdata['btype'] === 0 || $bannerdata['settype'] === 0){//单页栏目或者自动设置栏目不允许删除
exit(json_encode(array('success'=>false,'msg'=>'banner is not allow delete')));
}
C::t('pichome_banner')->delete($bid);
exit(json_encode(array('success'=>true)));
}elseif($operation == 'getbanner'){//获取栏目
$themedata = getthemedata($themeid);
$themebanner = $themedata['themebanner'];
$bannerdata = C::t('pichome_banner')->fetch_by_themeid($themeid,$themebanner);
exit(json_encode(array('success' => true,'data'=>$bannerdata)));
}else{
$themedata = getthemedata($themeid);
$lefsetdata = $themedata['singlepage'];
$themebanner = $themedata['themebanner'];
$bannerdata = C::t('pichome_banner')->fetch_by_themeid($themeid,$themebanner);
//库
$library = [];
foreach(DB::fetch_all("select appid,appname,path from %t where isdelete = 0 order by disp ",array('pichome_vapp')) as $v){
if($v['type'] != 3 || IO::checkfileexists($v['path'],1)){
unset($v['path']);
$library[] = $v;
}
}
$library = json_encode($library);
$bannerdata = json_encode($bannerdata);
include template('admin/pc/page/site/column');
}

View File

@@ -1,37 +0,0 @@
<?php
global $_G;
$navtitle="导入设置";
include libfile('function/cache');
if (isset($_G['setting'])) $setting = $_G['setting'];
else $setting = C::t('setting')->fetch_all();
$themedata = getthemedata($themeid);
$lefsetdata = $themedata['singlepage'];
if (submitcheck('settingsubmit')) {
$settingnew = $_GET['settingnew'];
updatesetting($setting, $settingnew);
exit(json_encode(array('success' => true)));
} else {
$Defaultnotallowdir = json_encode($Defaultnotallowdir);
include template('admin/pc/page/site/importsetting');
}
function updatesetting($setting, $settingnew){
$updatecache = false;
$settings = array();
$updatethumb = false;
foreach ($settingnew as $key => $val) {
if ($setting[$key] != $val) {
$updatecache = TRUE;
if (in_array($key, array('timeoffset', 'regstatus', 'oltimespan', 'seccodestatus'))) {
$val = (float)$val;
}
$settings[$key] = $val;
}
}
if ($settings) {
C::t('setting')->update_batch($settings);
}
if ($updatecache) {
updatecache('setting');
}
return true;
}

View File

@@ -1,35 +0,0 @@
<?php
if (!defined('IN_OAOOA')) {//所有的php文件必须加上此句防止被外部调用
exit('Access Denied');
}
global $_G;
$operation = isset($_GET['operation']) ? trim($_GET['operation']):'';
$navtitle = '主题设置';
if($operation == 'signlepageset'){
//标签所属主题
$themeid = isset($_GET['themeid']) ? intval($_GET['themeid']):0;
//标签标志
$tag = isset($_GET['tag']) ? trim($_GET['tag']) : '';
//获取到标签数据
$dataval = $_GET['dataval'];
}elseif($operation == 'settheme'){
include libfile('function/cache');
$themeid = isset($_GET['themeid']) ? intval($_GET['themeid']):0;
C::t('setting')->update('pichometheme',$themeid);
updatecache('setting');
dexit(json_encode(array('success'=>true)));
}else{
$version = defined('LICENSE_VERSION') ? lang(LICENSE_VERSION):lang('Home');
$limitusernum = defined('LICENSE_LIMIT') ? LICENSE_LIMIT:1;
if(defined('NOLIMITUSER')) $limitusernum = '无限';
$authdate = defined('LICENSE_CTIME') ? dgmdate(LICENSE_CTIME,'Y-m-d H:i:s'):'';
$defaulttheme = C::t('setting')->fetch('pichometheme');
$themelist = $_G['setting']['pichomethemedata'];
include template('admin/pc/page/theme');
}

View File

@@ -1,35 +0,0 @@
<?php
include libfile('function/cache');
global $_G;
$navtitle="登录页设置";
if (isset($_G['setting'])) $setting = $_G['setting'];
else $setting = C::t('setting')->fetch_all();
$themeid = isset($_G['setting']['pichometheme']) ? intval($_G['setting']['pichometheme']):1;
$themedata = getthemedata($themeid);
$lefsetdata = $themedata['singlepage'];
$navtitle = '登录页设置';
if (submitcheck('settingsubmit')) {
$settingnew = $_GET['settingnew'];
if ($back = trim($settingnew['loginset']['background'])) {
if (strpos($back, '#') === 0) {
$settingnew['loginset']['bcolor'] = $back;
} else {
$arr = explode('.', $back);
$ext = array_pop($arr);
if ($ext && in_array(strtolower($ext), array('jpg', 'jpeg', 'gif', 'png'))) {
$settingnew['loginset']['img'] = $back;
$settingnew['loginset']['bcolor'] = '';
} else {
$settingnew['loginset']['url'] = $back;
$settingnew['loginset']['bcolor'] = '';
}
}
} else {
$settingnew['loginset']['bcolor'] = '';
}
updatesetting($setting, $settingnew);
exit(json_encode(array('success' => true)));
} else {
include template('admin/pc/page/loginpage');
}

View File

@@ -1,57 +0,0 @@
<?php
if (!defined('IN_OAOOA')) {//所有的php文件必须加上此句防止被外部调用
exit('Access Denied');
}
Hook::listen('adminlogin');
$templatedir = DZZ_ROOT.'dzz'.BS.'pichome'.BS.'template';
$defaultdirname = ['admin','default'];
require_once libfile('class/xml');
if (is_dir($templatedir)) {
if ($dh = @opendir($templatedir)) {
while (($file = readdir($dh)) !== false) {
if ($file != '.' && $file != '..' && !in_array($file,$defaultdirname)) {
if(is_file($templatedir.BS.$file.BS.'template.xml')){
$xmlpath = $templatedir.BS.$file.BS.'template.xml';
//$filemtime = filemtime($xmlpath);
$themedata = readthemedata($xmlpath);
$themedata['themefolder'] = $file;
$themedata['dateline'] = TIMESTAMP;
C::t('pichome_theme')->insert_data($themedata);
}
}
}
//关闭
closedir($dh);
}
}
function readthemedata($xmlpath){
$importtxt = @implode('',file($xmlpath));
$data = xml2array($importtxt,FALSE,'UTF-8');
$_attributes=xmlattribute($importtxt,'UTF-8'); //item 属性获取
$themearr = [
'themename'=>$data['themename'],
'themetag'=>isset($data['templatetag']) ? serialize($data['templatetag']):''
];
if(isset($data['singlepage'])){
$singlepagedata = [];
foreach($data['singlepage'] as $k=>$v){
if(isset($_attributes['singlepage'][$k]['_attributes']['priority'])){
$singlepagedata[$k]['disp'] = $_attributes['singlepage'][$k]['_attributes']['priority'];
}else{
$singlepagedata[$k]['disp'] = 0;
}
$singlepagedata[$k]['name'] = $v;
}
$themearr['templates'] = serialize($singlepagedata);
}
if(isset($data['colors'])){
$themearr['colors'] = $data['colors']['colorlist'];
$themearr['selcolor'] = $data['colors']['defaultcolor'];
}
return $themearr;
}
exit('success');

View File

@@ -1,255 +0,0 @@
<?php
if (!defined('IN_OAOOA')) {//所有的php文件必须加上此句防止被外部调用
exit('Access Denied');
}
global $_G;
$themeid = isset($_G['setting']['pichometheme']) ? intval($_G['setting']['pichometheme']):1;
$operation = isset($_GET['operation']) ? trim($_GET['operation']):'';
$pagename = isset($_GET['pagename']) ? trim($_GET['pagename']):'';
if($operation == 'tagset'){
$tagdatas = gettpltagdata($themeid,$pagename);
if(submitcheck('submit')){
$flag = isset($_GET['flag']) ? trim($_GET['flag']):'';
$pagename = isset($_GET['pagename']) ? trim($_GET['pagename']):'';
$tagtype = isset($_GET['type']) ? trim($_GET['type']):'';
$id = DB::result_first("select id from %t where themeid = %d and tagflag = %s and pagename = %s",array('pichome_templatetag',$themeid,$flag,$pagename));
$data = $_GET['data'];
$conditiondata = $_GET['data'];
if($tagtype == 'recommend')$data = getrecommenddata($conditiondata,$themeid);
elseif($tagtype == 'introduce'){
$odata = '';
if($id){
$olddata = DB::result_first("select tagval from %t where id = %d",'pichome_templatetag',$id);
$odata = unserialize($olddata);
}
$data = getcontentdata($conditiondata,$odata);
}
else $data = $conditiondata;
$setarr = [
'themeid'=>$themeid,
'tagflag'=>$flag,
'pagename'=>$pagename,
'tagtype'=>$tagtype,
'tagval'=>serialize($data),
'dateline'=>TIMESTAMP
];
if($id){
C::t('pichome_templatetag')->update($id,$setarr);
}else{
C::t('pichome_templatetag')->insert($setarr);
}
exit(json_encode(array('success'=>true)));
}
}elseif($operation=='upload'){//上传图片
include libfile( 'class/uploadhandler' );
$options = array( 'accept_file_types' => '/\.(gif|jpe?g|png|svg)$/i',
'upload_dir' => $_G[ 'setting' ][ 'attachdir' ] . 'cache/',
'upload_url' => $_G[ 'setting' ][ 'attachurl' ] . 'cache/',
'thumbnail' => array( 'max-width' => 40, 'max-height' => 40 ) );
$upload_handler = new uploadhandler( $options );
updatesession();
exit();
}else{
$tagdatas = [];
$tagdata = gettpltagdata($themeid,$pagename);
$themedata = getthemedata($themeid);
$tagdataval = C::t('pichome_templatetag')->fetch_tag_bypagename($themeid,$pagename);
foreach($tagdata as $k=>$v){
if(isset($tagdataval[$k])){
$v['val'] = $tagdataval[$k];
}
$tagdatas[$k] = $v;
}
foreach($themedata['singlepage'] as $v){
if($v['flag'] == $pagename){
$navtitle = $v['name'];
}
}
//print_r($themedata);die;
$tagdatas = json_encode($tagdatas);
$lefsetdata = $themedata['singlepage'];
include template('admin/pc/page/site/tag');
}
function gettpltagdata($themeid,$pagename){
global $_G;
$setdata =[];
$themedata = $_G['setting']['pichomethemedata'][$themeid];
$singletpltagdata = unserialize($themedata['themetag']);
$setdata = $singletpltagdata[$pagename];
return $setdata;
}
function getcontentdata($data,$odata){
global $naids;
$naids= [];
$data= preg_replace_callback('/path=(\w+)/',function($matchs){
global $naids;
if($aidstr = dzzdecode($matchs[1])){
$aid = str_replace('attach::','',$aidstr);
$naids[] = $aid;
return 'path='.$matchs[1].'&amp;aflag='.$aidstr;
}
},$data);
//旧数据copy数减一
if($odata){
preg_match_all('/attach::\d/',$data,$match);
foreach($match[0] as $v){
$oaid = str_replace('attach::','',$v);
C::t('attachment')->delete_by_aid($oaid);
}
}
C::t('attachment')->addcopy_by_aid($naids);
return $data;
}
function getrecommenddata($conditiondata,$themeid){
global $_G;
$datas = [];
foreach ($conditiondata as $k=>$v){
//如果未指定栏目,视为所有栏目数据
if($v['bannermultiple'] == 'false'){
$settype = $_G['setting']['pichomethemedata'][$themeid]['themebanner'];
//查询所有内容栏目
$bannerdata = C::t('pichome_banner')->fetch_contentbanner_by_themeid($themeid,$settype);
}else{
$bids = $v['banner'];
$bannerdata= DB::fetch_all("select * from %t where id in (%n)",array('pichome_banner',$bids));
}
$sql = " select rid from %t r ";
$wheresql = " r.isdelete < 1";
$params = ['pichome_resources'];
//查询所有库id
$vappids = [];
foreach (DB::fetch_all("select appid,path,view from %t where isdelete = 0", array('pichome_vapp')) as $appval) {
if (!IO::checkfileexists($appval['path'],1)) {
continue;
}
$vappids[] = $appval['appid'];
}
$orsql = [];
$para = [];
//print_r($bannerdata);
//查询栏目条件组合查询语句
foreach($bannerdata as $val){
$andsql = [];
if($val['appids'] != '1'){
$appid = explode(',',$val['appids']);
}else{
$appid = $vappids;
}
$andsql[] = ' r.appid in(%n)';
$para[] = $appid;
if($val['ctype']){
$bexts = explode(',', $val['typefilter']);
$andsql[] = ' r.ext in(%n)';
$para[] = $bexts;
}
$orsql[] = '('.implode(' AND ',$andsql).')';
}
$orsqlstr = implode(' OR ',$orsql);
$wheresql .= ' and '.$orsqlstr;
$limitsql = "limit 0," . $v['num'];
$ordersql = ' r.dateline desc ';
switch ($v['type']){
case 'hot':
$hsql = "select SUBSTRING_INDEX(GROUP_CONCAT(v.rid),',',1) as rid,count(v.id) as num from %t v left join %t r on r.rid=v.rid ";
$hparams = ['pichome_views','pichome_resources'];
$hwheresql = $wheresql .' and (v.dateline < %d and v.dateline > %d)';
if($v['condition'] == 'week'){
$hpara[] = strtotime('+1 days');
$hpara[] = strtotime ('-7 days');
}else{
$hpara[] = strtotime('+1 days');
$hpara[] = strtotime ('-30 days');
}
if(!empty($para)) $hpara = array_merge($para,$hpara);
$hparams = array_merge($hparams,$hpara);
foreach (DB::fetch_all(" $hsql where $hwheresql group by v.rid order by num desc $limitsql", $hparams) as $value) {
$rids[] = $value['rid'];
}
$hcount = count($rids);
if($hcount < $v['num']){
$limitsql = "limit 0," . intval($v['num'] - $hcount);
if (!empty($para)) $params = array_merge($params, $para);
foreach (DB::fetch_all(" $sql where $wheresql order by $ordersql $limitsql", $params) as $value) {
$rids[] = $value['rid'];
}
}
if (!empty($rids)) $data = C::t('pichome_resources')->getdatasbyrids($rids);
else $data = [];
$v['dataval'] = $data;
break;
case 'tag':
$tags = explode(',',$v['condition']);
$tids = [];
foreach(DB::fetch_all('select tid from %t where tagname in(%n)',array('pichome_tag',$tags)) as $tv){
$tids[] = $tv['tid'];
}
if($tids){
$tagval = explode(',', trim($_GET['tag']));
$tagwheresql = [];
foreach($tagval as $tagk=>$tagv){
$sql .= ' left join %t rt'.($tagk+1).' on rt'.($k+1).'.rid = r.rid and rt'.($tagk+1).'.tid = %d';
$params[] = 'pichome_resourcestag';
$tagwheresql[] = ' !isnull(rt'.($tagk+1).'.tid) ';
$paras[] = $tagv;
}
if(count($tagwheresql) > 1) $wheresql .= " and (" .implode(' or ',$tagwheresql).')';
elseif(count($tagwheresql)) $wheresql .= " and $tagwheresql[0] ";
if (!empty($para)) $params = array_merge($params, $para);
foreach (DB::fetch_all(" $sql where $wheresql order by $ordersql $limitsql", $params) as $value) {
$rids[] = $value['rid'];
}
if (!empty($rids)) $data = C::t('pichome_resources')->getdatasbyrids($rids);
else $data = [];
$v['dataval'] = $data;
}else{
$data = [];
$v['dataval'] = $data;
}
break;
case 'grade':
$wheresql .= " and r.grade > %d ";
$para[] = intval($v['condition']);
if (!empty($para)) $params = array_merge($params, $para);
foreach (DB::fetch_all(" $sql where $wheresql order by $ordersql $limitsql", $params) as $value) {
$rids[] = $value['rid'];
}
if (!empty($rids)) $data = C::t('pichome_resources')->getdatasbyrids($rids);
else $data = [];
$v['dataval'] = $data;
break;
default:
if (!empty($para)) $params = array_merge($params, $para);
foreach (DB::fetch_all(" $sql where $wheresql order by $ordersql $limitsql", $params) as $value) {
$rids[] = $value['rid'];
}
if (!empty($rids)) $data = C::t('pichome_resources')->getdatasbyrids($rids);
else $data = [];
$v['dataval'] = $data;
break;
}
$datas[] = $v;
}
return $datas;
}

View File

@@ -1,64 +0,0 @@
<?php
ignore_user_abort(true);
if (!defined('IN_OAOOA')) {
exit('Access Denied');
}
@ignore_user_abort(true);
@set_time_limit(0);
@ini_set('memory_limit', -1);
@ini_set('max_execution_time', 0);
$appid = isset($_GET['appid']) ? trim($_GET['appid']):0;
$processname = 'DZZ_EXPORTFILE_LOCK_'.$appid;
//dzz_process::unlock($processname);
//$locked = true;
if (!dzz_process::islocked($processname, 60*5)) {
$locked=false;
}
if ($locked) {
exit(json_encode( array('error'=>'进程已被锁定请稍后再试')));
}
$force = isset($_GET['force']) ? intval($_GET['force']):0;
$data = C::t('pichome_vapp')->fetch($appid);
if(!$data) exit(json_encode(array('error'=>'no data')));
if($data['state'] != 2 && $data['isdelete'] != 0) exit(json_encode(array('error'=>'is deleted or state is not allow')));
if($data['type'] == 0){
include_once DZZ_ROOT.'dzz'.BS.'eagle'.BS.'class'.BS.'class_eagleexport.php';
//include_once dzz_libfile('eagleexport');
$eagleexport = new eagleexport($data);
try{
$return = $eagleexport->execExport($force);
}catch (Exception $e){
dzz_process::unlock($processname);
}
}elseif($data['type'] == 1){
include_once DZZ_ROOT.'dzz'.BS.'local'.BS.'class'.BS.'class_localexport.php';
//include_once dzz_libfile('localexport');
$localexport = new localexport($data);
//执行导入文件
try{
$return = $localexport->execExport($force);
}catch (Exception $e){
dzz_process::unlock($processname);
}
}elseif ($data['type'] == 2){
include_once DZZ_ROOT.'dzz'.BS.'billfish'.BS.'class'.BS.'class_billfishexport.php';
$billfishxport = new billfishxport($data);
try{
$return = $billfishxport->execExport($force);
}catch (Exception $e){
dzz_process::unlock($processname);
}
}
dzz_process::unlock($processname);
$data = C::t('pichome_vapp')->fetch($appid);
if($data['state'] == 2){
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=exportfile&appid=' . $appid.'&force='.$force, 0, '', '', false, '', 1);
}elseif($data['state'] == 3){
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=exportfilecheck&appid=' . $appid, 0, '', '', false, '', 1);
}
// exit('success');

View File

@@ -1,45 +0,0 @@
<?php
if (!defined('IN_OAOOA')) {
exit('Access Denied');
}
@ignore_user_abort(true);
@set_time_limit(0);
@ini_set('memory_limit', -1);
@ini_set('max_execution_time', 0);
$appid = isset($_GET['appid']) ? trim($_GET['appid']) : 0;
$processname = 'DZZ_EXPORTCHECKFILE_LOCK_' . $appid;
//dzz_process::unlock($processname);
$locked = true;
if (!dzz_process::islocked($processname, 60*5)) {
$locked = false;
}
if ($locked) {
exit(json_encode(array('error' => '进程已被锁定请稍后再试')));
}
$force = isset($_GET['force']) ? intval($_GET['force']) : 0;
$data = C::t('pichome_vapp')->fetch($appid);
if (!$data) exit(json_encode(array('error' => 'no data')));
if ($data['state'] != 3 && $data['isdelete'] != 0) exit(json_encode(array('error' => 'is deleted or state is not allow')));
if ($data['type'] == 0) {
include_once DZZ_ROOT.'dzz'.BS.'eagle'.BS.'class'.BS.'class_eagleexport.php';
//include_once dzz_libfile('eagleexport');
$eagleexport = new eagleexport($data);
$return = $eagleexport->execCheckFile();
} elseif ($data['type'] == 1) {
include_once DZZ_ROOT.'dzz'.BS.'local'.BS.'class'.BS.'class_localexport.php';
//include_once dzz_libfile('localexport');
$localexport = new localexport($data);
$return = $localexport->execCheckFile();
}elseif ($data['type'] == 2){
include_once DZZ_ROOT.'dzz'.BS.'billfish'.BS.'class'.BS.'class_billfishexport.php';
$billfishxport = new billfishxport($data);
$return = $billfishxport->execCheckFile();
}
dzz_process::unlock($processname);
$data = C::t('pichome_vapp')->fetch($appid);
if($data['state'] == 3){
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=exportfilecheck&appid=' . $appid, 0, '', '', false, '', 1);
}

View File

@@ -1,41 +0,0 @@
<?php
if (!defined('IN_OAOOA')) {
exit('Access Denied');
}
@ignore_user_abort(true);
@set_time_limit(0);
@ini_set('memory_limit', -1);
@ini_set('max_execution_time', 0);
if(getglobal('setting/bbclosed')) exit(json_encode(array('error'=>'站点关闭中,请开启站点后重试')));
$appid = isset($_GET['appid']) ? trim($_GET['appid']):0;
$force = isset($_GET['force']) ? intval($_GET['force']):0;
$data = C::t('pichome_vapp')->fetch($appid);
if(!$data) exit(json_encode(array('error'=>'no data')));
if(($data['state'] > 1 && $data['state'] < 4) || $data['isdelete'] != 0) exit(json_encode(array('error'=>'export is runing or is deleted')));
if($data['type'] == 0){
include_once DZZ_ROOT.'dzz'.BS.'eagle'.BS.'class'.BS.'class_eagleexport.php';
$eagleexport = new eagleexport($data);
$return = $eagleexport->initExport();
}elseif($data['type'] == 1 ){
include_once DZZ_ROOT.'dzz'.BS.'local'.BS.'class'.BS.'class_localexport.php';
//include_once dzz_libfile('localexport');
$localexport = new localexport($data);
$return = $localexport->initExport();
}elseif ($data['type'] == 2){
if(!extension_loaded('pdo_sqlite')){
exit(json_encode(array('error'=>'缺少 pdo_sqlite拓展')));
}
include_once DZZ_ROOT.'dzz'.BS.'billfish'.BS.'class'.BS.'class_billfishexport.php';
$billfishxport = new billfishxport($data);
$return = $billfishxport->initExport();
}
if(isset($return['error'])){
exit(json_encode($return));
}
$data = C::t('pichome_vapp')->fetch($appid);
if($data['state'] == 2){
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=exportfile&appid=' . $appid.'&force='.$force, 0, '', '', false, '', 1);
}
exit(json_encode(array('success'=>true)));

View File

@@ -65,7 +65,7 @@ elseif ($operation == '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 ";
@@ -86,43 +86,31 @@ elseif ($operation == 'searchmenu_num') {
//用户权限等级 //用户权限等级
$para[]= $_G['pichomelevel']; $para[]= $_G['pichomelevel'];
$appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; $appid = isset($_GET['appid']) ? [trim($_GET['appid'])] : [-1];
//库权限判断部分
if(!is_array($appid)) $appid = (array)$appid; foreach (DB::fetch_all("select appid,path,view,type from %t where isdelete = 0 and appid in(%n)", array('pichome_vapp',$appid)) as $v) {
$fids = isset($_GET['fids']) ? trim($_GET['fids']) : '';
//获取有权限访问的库
$vappids = [];
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'];
} }
}
} $whererangesql = [];
if(!empty($appid)){ //库条件
$appid = array_intersect($vappids,$appid); if ($vappids) {
$whererangesql[]= ' r.appid in(%n)';
$para[] = $vappids;
}else{ }else{
$appid = $vappids; $whererangesql[]= ' 0 ';
} }
if(empty($vappids)){
$wheresql .= ' and 0 ';
}else{
if ($appid) {
$wheresql .= ' and 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{ if($whererangesql){
$wheresql .= ' and r.appid in(%n) '; $wheresql .= ' and ('.implode(' OR ',$whererangesql).') ';
$para[] = $vappids;
}
} }
$fids = isset($_GET['fids']) ? trim($_GET['fids']):'';
$hassub = isset($_GET['hassub']) ? intval($_GET['hassub']):0;
if ($fids) { if ($fids) {
if ($fids == 'not' || $fids == 'notclassify') { if ($fids == 'not' || $fids == 'notclassify') {
$sql .= " LEFT JOIN %t fr on fr.rid = r.rid "; $sql .= " LEFT JOIN %t fr on fr.rid = r.rid ";
@@ -153,11 +141,11 @@ elseif ($operation == '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)';
@@ -610,7 +598,7 @@ elseif ($operation == '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){
@@ -620,7 +608,7 @@ elseif ($operation == '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){
@@ -924,8 +912,8 @@ elseif ($operation == 'searchmenu_num') {
elseif ($operation == 'search_menu') { elseif ($operation == 'search_menu') {
$skey = isset($_GET['skey']) ? trim($_GET['skey']) : ''; $skey = isset($_GET['skey']) ? trim($_GET['skey']) : '';
$appid = isset($_GET['appid']) ? trim($_GET['appid']) : '';
$hassub = isset($_GET['hassub']) ? intval($_GET['hassub']) : 0; $hassub = isset($_GET['hassub']) ? intval($_GET['hassub']) : 0;
$appid = isset($_GET['appid']) ? trim($_GET['appid']):[];
$para = []; $para = [];
if($skey == 'tag'){ if($skey == 'tag'){
if($appid){ if($appid){
@@ -962,43 +950,31 @@ elseif ($operation == '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'])] : [-1];
//获取有权限访问的库 //库权限判断部分
$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); $whererangesql = [];
//库条件
if ($vappids) {
$whererangesql[]= ' r.appid in(%n)';
$para[] = $vappids;
}else{ }else{
$appid = $vappids; $whererangesql[]= ' 0 ';
} }
if(empty($vappids)){ if($whererangesql){
$wheresql .= ' and 0'; $wheresql .= ' and ('.implode(' OR ',$whererangesql).') ';
}
else{
if ($appid) {
$wheresql .= ' and 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;
}
} }
$fids = isset($_GET['fids']) ? trim($_GET['fids']):'';
$hasdub = isset($_GET['hassub']) ? intval($_GET['hassub']):0;
if ($fids) { if ($fids) {
if ($fids == 'not' || $fids == 'notclassify') { if ($fids == 'not' || $fids == 'notclassify') {
$sql .= " LEFT JOIN %t fr on fr.rid = r.rid "; $sql .= " LEFT JOIN %t fr on fr.rid = r.rid ";
@@ -1029,11 +1005,11 @@ elseif ($operation == '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)';

View File

@@ -17,14 +17,9 @@ if ($operation == '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;
@@ -48,49 +43,31 @@ if ($operation == 'filelist') {
$orderarr = []; $orderarr = [];
$orderparams = []; $orderparams = [];
$gappid = isset($_GET['appid']) ? [trim($_GET['appid'])] : []; $appid = isset($_GET['appid']) ? [trim($_GET['appid'])] : [-1];
//库权限判断部分
//获取有权限访问的库 foreach (DB::fetch_all("select appid,path,view,type from %t where isdelete = 0 and appid in(%n)", array('pichome_vapp',$appid)) as $v) {
$vappids = [];
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(!is_array($appid)) $appid = (array)$appid; $whererangesql = [];
$fids = isset($_GET['fids']) ? trim($_GET['fids']) : ''; //库条件
$hassub = isset($_GET['hassub']) ? intval($_GET['hassub']) : 0; if ($vappids) {
$whererangesql[]= ' r.appid in(%n)';
if($gappid){ $para[] = $vappids;
$appid = array_intersect($vappids,$gappid);
}else{ }else{
$appid = $vappids; $whererangesql[]= ' 0 ';
} }
if (empty($vappids)) { if($whererangesql){
$wheresql .= ' and 0'; $wheresql .= ' and ('.implode(' OR ',$whererangesql).') ';
} else {
if ($appid) {
$wheresql .= ' and 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 0';
// $para[] = $vappids;
}
} }
$fids = isset($_GET['fids']) ? trim($_GET['fids']):'';
$hassub = isset($_GET['hassub']) ? intval($_GET['hassub']):0;
if ($fids) { if ($fids) {
if ($fids == 'not' || $fids == 'notclassify') { if ($fids == 'not' || $fids == 'notclassify') {
$sql .= " LEFT JOIN %t fr on fr.rid = r.rid "; $sql .= " LEFT JOIN %t fr on fr.rid = r.rid ";
@@ -121,11 +98,11 @@ if ($operation == '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)';

View File

@@ -175,7 +175,7 @@ if($operation == 'save'){
case 'desc': case 'desc':
foreach(DB::fetch_all("select r.rid,r.name,attr.link from %t r LEFT JOIN %t attr ON r.rid=attr.rid where r.rid IN(%n)",array('pichome_resources','pichome_resources_attr',$rids)) as $value){ foreach(DB::fetch_all("select r.rid,r.name,attr.link from %t r LEFT JOIN %t attr ON r.rid=attr.rid where r.rid IN(%n)",array('pichome_resources','pichome_resources_attr',$rids)) as $value){
$annotationdatas = C::t('pichome_comments')->fetch_annotation_by_rid($value['rid']); $annotationdatas = C::t('pichome_comments')->fetch_annotation_by_rid($value['rid']);
$attr['searchval'] = $value['name'].$value['link'].htmlspecialchars($val).implode('',$annotationdatas); $attr['searchval'] = $value['name'].$value['link'].getstr($val,255).implode('',$annotationdatas);
$attr = array_merge($attr,$attrs); $attr = array_merge($attr,$attrs);
C::t('pichome_resources_attr')->update_by_rid($appid,$value['rid'],$attr); C::t('pichome_resources_attr')->update_by_rid($appid,$value['rid'],$attr);
$returndata[]=['rid'=>$value['rid'],'desc'=>$val]; $returndata[]=['rid'=>$value['rid'],'desc'=>$val];
@@ -184,7 +184,7 @@ if($operation == 'save'){
case 'link': case 'link':
foreach(DB::fetch_all("select r.rid,r.name,attr.desc from %t r LEFT JOIN %t attr ON r.rid=attr.rid where r.rid IN(%n)",array('pichome_resources','pichome_resources_attr',$rids)) as $value){ foreach(DB::fetch_all("select r.rid,r.name,attr.desc from %t r LEFT JOIN %t attr ON r.rid=attr.rid where r.rid IN(%n)",array('pichome_resources','pichome_resources_attr',$rids)) as $value){
$annotationdatas = C::t('pichome_comments')->fetch_annotation_by_rid($value['rid']); $annotationdatas = C::t('pichome_comments')->fetch_annotation_by_rid($value['rid']);
$attr['searchval'] = $value['name'].$value['desc'].htmlspecialchars($val).implode('',$annotationdatas); $attr['searchval'] = $value['name'].getsrt($value['desc'],255).htmlspecialchars($val).implode('',$annotationdatas);
$attr = array_merge($attr,$attrs); $attr = array_merge($attr,$attrs);
C::t('pichome_resources_attr')->update_by_rid($appid,$value['rid'],$attr); C::t('pichome_resources_attr')->update_by_rid($appid,$value['rid'],$attr);
@@ -194,7 +194,7 @@ if($operation == 'save'){
case 'name': case 'name':
foreach(DB::fetch_all("select r.rid,attr.link,attr.desc from %t r LEFT JOIN %t attr ON r.rid=attr.rid where r.rid IN(%n)",array('pichome_resources','pichome_resources_attr',$rids)) as $value){ foreach(DB::fetch_all("select r.rid,attr.link,attr.desc from %t r LEFT JOIN %t attr ON r.rid=attr.rid where r.rid IN(%n)",array('pichome_resources','pichome_resources_attr',$rids)) as $value){
$annotationdatas = C::t('pichome_comments')->fetch_annotation_by_rid($value['rid']); $annotationdatas = C::t('pichome_comments')->fetch_annotation_by_rid($value['rid']);
$attr['searchval'] = $value['link'].$value['desc'].htmlspecialchars($val).implode('',$annotationdatas); $attr['searchval'] = $value['link'].getstr($value['desc'],255).htmlspecialchars($val).implode('',$annotationdatas);
$attr = array_merge($attr,$attrs); $attr = array_merge($attr,$attrs);
C::t('pichome_resources')->update_by_rids($appid,$value['rid'],$attrs); C::t('pichome_resources')->update_by_rids($appid,$value['rid'],$attrs);
C::t('pichome_resources_attr')->update_by_rid($appid,$value['rid'],$attr); C::t('pichome_resources_attr')->update_by_rid($appid,$value['rid'],$attr);
@@ -354,13 +354,13 @@ if($operation == 'save'){
$annotationdatas = C::t('pichome_comments')->fetch_annotation_by_rid($rid); $annotationdatas = C::t('pichome_comments')->fetch_annotation_by_rid($rid);
if($flag == 'name'){ if($flag == 'name'){
C::t('pichome_resources')->update_by_rids($appid,$rids,$attrs); C::t('pichome_resources')->update_by_rids($appid,$rids,$attrs);
$attr['searchval'] = $resourcesattrdata['link'].$resourcesattrdata['desc'].htmlspecialchars($val).implode('',$annotationdatas); $attr['searchval'] = $resourcesattrdata['link'].getsrt($resourcesattrdata['desc'],255).htmlspecialchars($val).implode('',$annotationdatas);
C::t('pichome_resources_attr')->update_by_rid($appid,$rid,$attr); C::t('pichome_resources_attr')->update_by_rid($appid,$rid,$attr);
}elseif($flag == 'desc'){ }elseif($flag == 'desc'){
$attrs['searchval'] = $resourcesattrdata['link'].$resourcesattrdata['name'].htmlspecialchars($val).implode('',$annotationdatas); $attrs['searchval'] = $resourcesattrdata['link'].$resourcesattrdata['name'].getstr($val,255).implode('',$annotationdatas);
C::t('pichome_resources_attr')->update_by_rid($appid,$rid,$attrs); C::t('pichome_resources_attr')->update_by_rid($appid,$rid,$attrs);
}elseif($flag == 'link'){ }elseif($flag == 'link'){
$attrs['searchval'] = $resourcesattrdata['name'].$resourcesattrdata['desc'].htmlspecialchars($val).implode('',$annotationdatas); $attrs['searchval'] = $resourcesattrdata['name'].getstr($resourcesattrdata['desc'],255).htmlspecialchars($val).implode('',$annotationdatas);
C::t('pichome_resources_attr')->update_by_rid($appid,$rid,$attrs); C::t('pichome_resources_attr')->update_by_rid($appid,$rid,$attrs);
} }
$returndata[] = ['rid'=>$rid,$flag=>$val]; $returndata[] = ['rid'=>$rid,$flag=>$val];

View File

@@ -78,54 +78,114 @@ if($operation == 'upload'){//上传文件图标类
array_pop($patharr); array_pop($patharr);
$dirname = ($patharr) ? implode('/', $patharr) : ''; $dirname = ($patharr) ? implode('/', $patharr) : '';
$relativepath = $dirname; $relativepath = $dirname;
$folderdata = C::t('pichome_folder')->createfolerbypath($appid, $relativepath, $pfid); $folderdata = C::t('pichome_folder')->createfolerbypath($appid, $relativepath, $pfid);
//如果当前库有该文件 //如果当前库有该文件
if ($rid = DB::result_first("select rid from %t where path = %d and appid = %s ", array('pichome_resources_attr', $aid, $appid))) { if ($rid = DB::result_first("select rid from %t where path = %d and appid = %s ", array('pichome_resources_attr', $aid, $appid))) {
$a = C::t('pichome_resources')->fetch_by_rid($rid);
$resourcesdata = C::t('pichome_resources')->fetch($rid); $resourcesdata = C::t('pichome_resources')->fetch($rid);
$nfids = explode(',', $resourcesdata['fids']); if($resourcesdata['isdelete']){
if (!in_array($folderdata['fid'], $nfids)) { $rsetarr = [
$nfids[] = $folderdata['fid']; 'lastdate' => TIMESTAMP * 1000,
} 'appid' => $appid,
$rsetarr = [ 'uid'=>$_G['uid'],
'fids' => $nfids ? implode(',', $nfids) : '' 'username'=>$_G['username'],
]; 'apptype' => 1,
$icoarr = [ 'size' => $resourcesdata['size'],
'lastdate' => TIMESTAMP * 1000, 'type' => $resourcesdata['type'],
'appid' => $appid, 'ext' => $resourcesdata['ext'],
'uid'=>$_G['uid'], 'mtime' => TIMESTAMP * 1000,
'username'=>$_G['username'], 'dateline' => TIMESTAMP * 1000,
'apptype' => 3, 'btime' => TIMESTAMP * 1000,
'size' => $resourcesdata['size'], 'width' => $resourcesdata['width'],
'type' => $resourcesdata['type'], 'height' => $resourcesdata['height'],
'ext' => $resourcesdata['ext'], 'lastdate' => TIMESTAMP,
'mtime' => TIMESTAMP * 1000, 'level' => isset($folderdata['level']) ? $folderdata['level'] : 0,
'dateline' => TIMESTAMP * 1000, 'name' => $resourcesdata['name'],
'btime' => TIMESTAMP * 1000, 'fids' => $folderdata['fid'] ? $folderdata['fid']:''
'width' => $resourcesdata['width'], ];
'height' => $resourcesdata['height'],
'lastdate' => TIMESTAMP,
'level' => isset($folderdata['level']) ? $folderdata['level'] : 0,
'name' => $resourcesdata['name'],
'fids' => $nfids ? implode(',', $nfids) : '',
'rid' => $rid
];
if (C::t('pichome_resources')->update($rid, $icoarr)) {//插入主表 if ($rsetarr['rid'] = C::t('pichome_resources')->insert_data($rsetarr)) {//插入主表
//目录数据 //获取附属表数据
if ($folderdata['fid']) { $attrdata = C::t('pichome_resources_attr')->fetch($rid);
$frsetarr = ['appid' => $appid, 'rid' => $icoarr['rid'], 'fid' => $folderdata['fid']]; $attrdata['rid'] = $rsetarr['rid'];
C::t('pichome_folderresources')->insert($frsetarr); $attrdata['appid'] = $appid;
C::t('pichome_folder')->add_filenum_by_fid($folderdata['fid'], 1); $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['folder'] = C::t('pichome_folder')->fetch_allfolder_by_fid($folderdata['fid']);
$data['addnum'] = 1;
} else {
$data['error'] = 'uploadfailer';
}
exit(json_encode(array('success' => true, 'data' => $data)));
}else{
$nfids = explode(',', $resourcesdata['fids']);
$iscurrentfolder = 1;
if ($folderdata['fid'] && !in_array($folderdata['fid'], $nfids)) {
$nfids[] = $folderdata['fid'];
$iscurrentfolder = 0;
} }
//C::t('pichome_vapp')->addcopy_by_appid($appid);
$data = C::t('pichome_resources')->fetch_by_rid($rid);
$data['folder'] = C::t('pichome_folder')->fetch_allfolder_by_fid($folderdata['fid']); $icoarr = [
} else { 'lastdate' => TIMESTAMP * 1000,
$data['error'] = 'uploadfailer'; 'appid' => $appid,
'uid'=>$_G['uid'],
'username'=>$_G['username'],
'apptype' => 3,
'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' => $nfids ? implode(',', $nfids) : '',
'rid' => $rid
];
if (C::t('pichome_resources')->update($rid, $icoarr)) {//插入主表
//目录数据
if (!$iscurrentfolder && $folderdata['fid']) {
$frsetarr = ['appid' => $appid, 'rid' => $rid, 'fid' => $folderdata['fid']];
C::t('pichome_folderresources')->insert($frsetarr);
//C::t('pichome_folder')->add_filenum_by_fid($folderdata['fid'], 1);
}
//C::t('pichome_vapp')->addcopy_by_appid($appid);
$data = C::t('pichome_resources')->fetch_by_rid($rid);
$data['folder'] = C::t('pichome_folder')->fetch_allfolder_by_fid($folderdata['fid']);
$data['addnum'] = ($iscurrentfolder) ? 0:1;
$data['onlyfolderadd'] = 1;
} else {
$data['error'] = 'uploadfailer';
}
exit(json_encode(array('success' => true, 'data' => $data)));
} }
exit(json_encode(array('success' => true, 'data' => $data)));
} }
elseif ($rid = DB::result_first("select rid from %t where path = %d ", array('pichome_resources_attr', $aid))) {//如果当前库没有该文件,但其它库有 elseif ($rid = DB::result_first("select rid from %t where path = %d ", array('pichome_resources_attr', $aid))) {//如果当前库没有该文件,但其它库有
//获取原文件基本数据 //获取原文件基本数据
@@ -162,7 +222,7 @@ if($operation == 'upload'){//上传文件图标类
if ($folderdata['fid']) { if ($folderdata['fid']) {
$frsetarr = ['appid' => $appid, 'rid' => $rsetarr['rid'], 'fid' => $folderdata['fid']]; $frsetarr = ['appid' => $appid, 'rid' => $rsetarr['rid'], 'fid' => $folderdata['fid']];
C::t('pichome_folderresources')->insert($frsetarr); C::t('pichome_folderresources')->insert($frsetarr);
C::t('pichome_folder')->add_filenum_by_fid($folderdata['fid'], 1); //C::t('pichome_folder')->add_filenum_by_fid($folderdata['fid'], 1);
} }
//缩略图数据 //缩略图数据
$thumbrecorddata = C::t('thumb_record')->fetch($rid); $thumbrecorddata = C::t('thumb_record')->fetch($rid);
@@ -179,6 +239,7 @@ if($operation == 'upload'){//上传文件图标类
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;
} else { } else {
$data['error'] = 'uploadfailer'; $data['error'] = 'uploadfailer';
} }
@@ -189,82 +250,6 @@ if($operation == 'upload'){//上传文件图标类
exit(json_encode(array('success' => false))); exit(json_encode(array('success' => false)));
} }
} }
elseif($operation == 'copyuploadfile'){//选择不使用已存在文件时处理
$rid = isset($_GET['rid']) ? trim($_GET['rid']):'';
$appid = isset($_GET['appid']) ? trim($_GET['appid']):'';
$pfid = isset($_GET['pfid']) ? trim($_GET['pfid']):'';
$path = isset($_GET['relativePath']) ? trim($_GET['relativePath']):'';
if(!$appid){
$data['error'] = 'uploadfailer';
$data['msg'] = '缺少appid';
exit( json_encode( array( 'success' => true,'data'=>$data) ) );
}
$relativepath ='';
if($path){
//处理目录数据
$patharr = explode('/',$path);
array_pop($patharr);
$dirname = ($patharr) ? implode('/',$patharr):'';
$relativepath = $dirname;
}
$folderdata = C::t('pichome_folder')->createfolerbypath($appid,$relativepath,$pfid);
//获取原文件基本数据
$resourcesdata = C::t('pichome_resources')->fetch($rid);
$rsetarr=[
'lastdate' => TIMESTAMP * 1000,
'appid' => $appid,
'apptype' => 1,
'size' => $resourcesdata['filesize'],
'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'],
'username'=>getglobal('username'),
'uid'=>getglobal('uid')
];
if ($icoarr['rid'] = C::t('pichome_resources')->insert_data($rsetarr)) {//插入主表
//获取附属表数据
$attrdata = C::t('pichome_resources_attr')->fetch($rid);
$attrdata['rid'] = $icoarr['rid'];
$attrdata['searchval'] = $rsetarr['name'];
C::t('attachment')->update($attrdata['path'], array('copys' => $attach['copys'] + 1));//增加图片使用数
C::t('pichome_resources_attr')->insert($attrdata);
//目录数据
if($folderdata['fid']){
$frsetarr = ['appid' => $appid, 'rid' => $icoarr['rid'], 'fid' => $folderdata['fid']];
C::t('pichome_folderresources')->insert($frsetarr);
}
//颜色数据
foreach(DB::fetch_all("select * from %t where rid = %s",array('pichome_palette',$rid)) as $v){
$v['rid'] = $icoarr['rid'];
unset($v['id']);
C::t('pichome_palette')->insert($v);
}
//缩略图数据
foreach(DB::fetch_all("select * from %t where rid = %s",array('thumb_record',$rid)) as $v){
$v['rid'] = $icoarr['rid'];
C::t('thumb_record')->insert($v);
}
C::t('pichome_vapp')->addcopy_by_appid($appid);
$data = C::t('pichome_resources')->fetch_by_rid($icoarr['rid']);
$data['folder'] =C::t('pichome_folder')->fetch_allfolder_by_fid($folderdata['fid']);
}else{
$data['error'] = 'uploadfailer';
}
exit(json_encode(array('success'=>true,'data'=>$data)));
}
elseif ( $operation == 'cloudupload' ) { elseif ( $operation == 'cloudupload' ) {
global $_G; global $_G;
$data = $_GET; $data = $_GET;

View File

@@ -189,6 +189,7 @@
} }
let hassub = sessionStorage.getItem('hassub'); let hassub = sessionStorage.getItem('hassub');
this.hassub = hassub?parseInt(hassub):1; this.hassub = hassub?parseInt(hassub):1;
if(res.folderdata){ if(res.folderdata){
let keys = Object.keys(res.folderdata); let keys = Object.keys(res.folderdata);
if(keys.length){ if(keys.length){

View File

@@ -43,7 +43,7 @@
</template> </template>
<template v-else> <template v-else>
<el-dropdown @command="ImageOperationf"> <el-dropdown @command="ImageOperationf">
<el-button type="primary" :plain="active" style="margin-left: 12px;" icon="MoreFilled"></el-button> <el-button :plain="active" style="margin-left: 12px;" icon="MoreFilled"></el-button>
<template #dropdown> <template #dropdown>
<el-dropdown-menu> <el-dropdown-menu>
<el-dropdown-item <el-dropdown-item
@@ -399,6 +399,7 @@
div.className = 'Details-Iframe'; div.className = 'Details-Iframe';
let iframe = document.createElement("iframe"); let iframe = document.createElement("iframe");
div.append(iframe); div.append(iframe);
iframe.style.opacity = "0";
sessionStorage.setItem('selectindex',index); sessionStorage.setItem('selectindex',index);
iframe.src = 'index.php?mod=details&opentype=current&isadmin=1#path='+item.dpath; iframe.src = 'index.php?mod=details&opentype=current&isadmin=1#path='+item.dpath;
document.body.appendChild(div); document.body.appendChild(div);

View File

@@ -4,7 +4,6 @@
return { return {
Screenshow:true, Screenshow:true,
ScreenParam:{ ScreenParam:{
hassub:1,
appid:'', appid:'',
fids:'', fids:'',
pfids:'' pfids:''

View File

@@ -298,6 +298,7 @@
} }
}, },
async UploadCarryOut(key,item){ async UploadCarryOut(key,item){
let self = this; let self = this;
item = this.UploaderData.fdata.find((current) => { item = this.UploaderData.fdata.find((current) => {
return current.id == key; return current.id == key;
@@ -324,38 +325,39 @@
param.relativePath = argments.relativePath; param.relativePath = argments.relativePath;
} }
axios.post(MOD_URL+'&op=library&do=upload&operation=chkmd5',param) axios.post(MOD_URL+'&op=library&do=upload&operation=chkmd5',param)
.then((res)=>{ .then(({data: res})=>{
if(res.data.success){ if(res.success){
item['rid'] = res.data.rid; item['rid'] = res.data.rid;
if(res.data.rid){ // if(res.data.rid){
item['Md5Status'] = 1; // item['Md5Status'] = 1;
}else if(res.data.data){ // }else if(res.data.data){
item['Md5Status'] = 2; item['Md5Status'] = 2;
item['icoarr'] = [res.data.data] item['icoarr'] = [res.data]
item['FileData'] = res.data.data; item['FileData'] = res.data;
} // }
}else if(!res.data.success){ }else if(!res.success){
item['Md5Status'] = 3; item['Md5Status'] = 3;
}else{ }else{
item['Md5Status'] = 4; item['Md5Status'] = 4;
} }
item['fileStatus'] = 2; item['fileStatus'] = 2;
switch (item.Md5Status){ switch (item.Md5Status){
case 1: // case 1:
if(self.UploaderData.FileType==1){ // if(self.UploaderData.FileType==1){
item['fileStatus']=3; // item['fileStatus']=3;
self.UploadAccomplish(item); // self.UploadAccomplish(item);
item['percentage'] += item.size; // item['percentage'] += item.size;
}else{ // }else{
self.UploadRequestCopyuploadfile(item); // self.UploadRequestCopyuploadfile(item);
} // }
break; // break;
case 2: case 2:
item['fileStatus']=3; item['fileStatus']=3;
self.UploadAccomplish(item); self.UploadAccomplish(item);
item['percentage'] += item.size; item['percentage'] += item.size;
break; break;
default: default:
self.multiupload(item); self.multiupload(item);
break; break;
} }
@@ -373,7 +375,7 @@
rid:item.rid, rid:item.rid,
appid:this.DocumentAppid, appid:this.DocumentAppid,
} }
let argments = this.UploadExportLocation(self.UploaderData.folderData['key_'+item.fkey],item); let argments = this.UploadExportLocation(self.UploaderData.folderData,item);
if(argments.fid){ if(argments.fid){
param['pfid'] = argments.fid; param['pfid'] = argments.fid;
} }
@@ -413,15 +415,28 @@
if(findex>-1) self.UploaderData.fqueue.splice(findex,1); if(findex>-1) self.UploaderData.fqueue.splice(findex,1);
if(findex1>-1) self.UploaderData.queue.splice(findex1,1); if(findex1>-1) self.UploaderData.queue.splice(findex1,1);
if(item.FileData){ if(item.FileData){
let fdata=null;
let addnum=0;
if(item.FileData.icoarr){
fdata=item.FileData.icoarr[0];
addnum=parseInt(fdata.addnum);
}else{
fdata=item.FileData;
addnum=parseInt(fdata.addnum);
}
let node = self.$refs.LeftTreeRef.getNode(self.LeftTree.Currentkey); let node = self.$refs.LeftTreeRef.getNode(self.LeftTree.Currentkey);
if(item.isfolder){ if(item.isfolder){
let folder = item.FileData.folder; let folder = item.FileData.folder;
if(folder && folder.length){ if(folder && folder.length){
// 文件夹数据放到数组里面 // 文件夹数据放到数组里面
this.UploadImportLocation(item,folder); this.UploadImportLocation(item,folder);
if(item.fid){ if(item.fid){
node.loaded = false; if(node){
node.expand(); node.loaded = false;
node.expand();
}
let status = true; let status = true;
for(var f in folder){ for(var f in folder){
if(folder[f].fid == self.LeftTree.Currentkey){ if(folder[f].fid == self.LeftTree.Currentkey){
@@ -461,6 +476,9 @@
if(node){ if(node){
node.loaded = false; node.loaded = false;
node.expand(); node.expand();
// self.$nextTick(function(){
// self.LeftParentFilenum(node);
// });
}else{ }else{
var str = { var str = {
fid:folder[0].fid, fid:folder[0].fid,
@@ -478,48 +496,55 @@
} }
} }
} }
if(!self.LeftCurrenType){
if(item.FileData.icoarr){ if(addnum){
self.$refs.RefImageLayout.AppendData(item.FileData.icoarr[0],'unshift'); if(!self.LeftCurrenType){
self.$refs.RefImageLayout.AppendData(fdata,'unshift');
}else{ }else{
self.$refs.RefImageLayout.AppendData(item.FileData,'unshift'); if(parseInt(self.hassub)){
} self.$refs.RefImageLayout.AppendData(fdata,'unshift');
}else{
if(parseInt(self.hassub)){
if(item.FileData.icoarr){
self.$refs.RefImageLayout.AppendData(item.FileData.icoarr[0],'unshift');
}else{
self.$refs.RefImageLayout.AppendData(item.FileData,'unshift');
} }
} }
} self.$nextTick(() => {
if(node){ let xnode = self.$refs.LeftTreeRef.getNode(folder[0].fid);
node.data.filenum = parseInt(node.data.filenum) + 1; if(xnode) {
self.LeftTreeSidebar.all = parseInt(self.LeftTreeSidebar.all) + 1; if(fdata.fids == xnode.data.fid){
self.LeftTreeSidebar.notag = parseInt(self.LeftTreeSidebar.notag) + 1; xnode.data.nosubfilenum = parseInt(xnode.data.nosubfilenum) + 1;
self.LeftParentFilenum(node.parent.data.fid); }
xnode.data.filenum = parseInt(xnode.data.filenum) + 1;
self.LeftParentFilenum(xnode.parent);
}
});
if(!fdata.onlyfolderadd){
self.LeftTreeSidebar.all = parseInt(self.LeftTreeSidebar.all) + 1;
self.LeftTreeSidebar.notag = parseInt(self.LeftTreeSidebar.notag) + 1;
}
} }
}else{ }else{
if(addnum){
self.$refs.RefImageLayout.AppendData(fdata,'unshift');
if(self.LeftCurrenType == 'filelist'){
let node = self.$refs.LeftTreeRef.getNode(self.LeftTree.Currentkey);
if(node ){
node.data.nosubfilenum = parseInt(node.data.nosubfilenum) + 1;
node.data.filenum = parseInt(node.data.filenum) + 1;
self.LeftParentFilenum(node.parent);
}
}else{
if(item.FileData.icoarr){ if(item.FileData.fids==''){
self.$refs.RefImageLayout.AppendData(item.FileData.icoarr[0],'unshift'); self.LeftTreeSidebar.nocat = parseInt(self.LeftTreeSidebar.nocat) + 1;
}else{ }
self.$refs.RefImageLayout.AppendData(item.FileData,'unshift'); }
} if(!fdata.onlyfolderadd){
if(self.LeftCurrenType == 'filelist'){ self.LeftTreeSidebar.all = parseInt(self.LeftTreeSidebar.all) + 1;
let node = self.$refs.LeftTreeRef.getNode(self.LeftTree.Currentkey); self.LeftTreeSidebar.notag = parseInt(self.LeftTreeSidebar.notag) + 1;
if(node){
node.data.nosubfilenum = parseInt(node.data.nosubfilenum) + 1;
node.data.filenum = parseInt(node.data.filenum) + 1;
self.LeftParentFilenum(node.parent.data.fid);
} }
}else{
self.LeftTreeSidebar.nocat = parseInt(self.LeftTreeSidebar.nocat) + 1;
} }
self.LeftTreeSidebar.all = parseInt(self.LeftTreeSidebar.all) + 1;
self.LeftTreeSidebar.notag = parseInt(self.LeftTreeSidebar.notag) + 1;
} }
} }
if(item.fileStatus != 4){ if(item.fileStatus != 4){
this.UploadCompleteDelete(item.id); this.UploadCompleteDelete(item.id);
@@ -527,6 +552,11 @@
this.UploadQueuenids(); this.UploadQueuenids();
} }
}, },
encode:function(keyword) {
const reg = /[\[\(\$\^\.\]\*\\\?\+\{\}\\|\)]/gi
return keyword.replace(reg, (key) => `\\${key}`)
},
UploadExportLocation(data,item,curr){//判断路径获取fid UploadExportLocation(data,item,curr){//判断路径获取fid
let param = { let param = {
fid:null, fid:null,
@@ -540,7 +570,7 @@
return curent.fid == item.fid; return curent.fid == item.fid;
}); });
if(fpath){ if(fpath && fpath.relativePath){
frelativepath=fpath.relativePath+'/'; frelativepath=fpath.relativePath+'/';
} }
} }
@@ -550,7 +580,7 @@
const max=rarr.length; const max=rarr.length;
for(let i=0;i<max-1;i++){ for(let i=0;i<max-1;i++){
rarr.pop(); rarr.pop();
newarr.push(rarr.join('/')); if(rarr.length) newarr.push(rarr.join('/'));
} }
for(let i=0;i<newarr.length;i++){ for(let i=0;i<newarr.length;i++){
curr = data.find((curent) => { curr = data.find((curent) => {
@@ -560,7 +590,8 @@
} }
if(curr){ if(curr){
param.fid = curr.fid; param.fid = curr.fid;
param.relativePath = item.webkitRelativePath.replace(curr.relativePath.replace(frelativepath,'')+'/',''); let reg=new RegExp('^'+this.encode(curr.relativePath+'/'),'i');
param.relativePath = (frelativepath+item.webkitRelativePath).replace(reg,'');
}else{ }else{
if(item.webkitRelativePath){ if(item.webkitRelativePath){
relativePath = item.webkitRelativePath; relativePath = item.webkitRelativePath;
@@ -613,6 +644,7 @@
let isstr = this.UploaderData.folderData.find(function(current){ let isstr = this.UploaderData.folderData.find(function(current){
return current.relativePath == str; return current.relativePath == str;
}); });
if(!isstr){ if(!isstr){
this.UploaderData.folderData.push({ this.UploaderData.folderData.push({
fid:folder[i].fid, fid:folder[i].fid,

View File

@@ -155,7 +155,7 @@
pathkey:res.data.pathkey, pathkey:res.data.pathkey,
pfid:pfid pfid:pfid
}; };
if(this.ImageDataIsExpanded){ if(this.hassub){
var str1 = { var str1 = {
fid:res.data.fid, fid:res.data.fid,
fname:'未命名文件夹', fname:'未命名文件夹',
@@ -507,13 +507,14 @@
}; };
return false; return false;
}, },
LeftParentFilenum(id){//循环给父节点添加文件数量 LeftParentFilenum(node){//循环给父节点添加文件数量
let self = this; let self = this;
let node = self.$refs.LeftTreeRef.getNode(id);
if(node && node.level > 0){ if(node && node.level > 0){
node.data.filenum = parseInt(node.data.filenum) + 1; let fnode = self.$refs.LeftTreeRef.getNode(node.data.fid);
self.LeftParentFilenum(node.parent.data.fid); fnode.data.filenum = parseInt(fnode.data.filenum) + 1;
self.LeftParentFilenum(fnode.parent);
} }
} }
}, },
mounted(){ mounted(){

View File

@@ -35,7 +35,7 @@
let url = ''; let url = '';
let param = { let param = {
appid:this.DocumentAppid, appid:this.DocumentAppid,
hassub:this.ImageDataIsExpanded hassub:this.hassub
}; };
if(this.RightType == 'file'){ if(this.RightType == 'file'){
url = MOD_URL+'&op=library&do=rightdata&operation=getfiledata'; url = MOD_URL+'&op=library&do=rightdata&operation=getfiledata';

View File

@@ -38,7 +38,8 @@
:defaultparam="ScreenParam" :defaultparam="ScreenParam"
@submit="CommonGetImageData" @submit="CommonGetImageData"
@visible="screenvisible" @visible="screenvisible"
:appid="DocumentAppid"> :appid="DocumentAppid"
:hassub="hassub">
</dzz-screen> </dzz-screen>
</el-header> </el-header>
<el-main <el-main
@@ -160,17 +161,21 @@
} }
e.preventDefault(); e.preventDefault();
const dataTransfer = e.dataTransfer; const dataTransfer = e.dataTransfer;
if(dataTransfer.items && dataTransfer.items.length){ if(dataTransfer.items && dataTransfer.items.length){
for (let index = 0; index < dataTransfer.items.length; index++) { for (let index = 0; index < dataTransfer.items.length; index++) {
const element = dataTransfer.items[index]; const element = dataTransfer.items[index];
const folder = element.webkitGetAsEntry(); const folder = element.webkitGetAsEntry();
if (folder.isDirectory) { if (folder && folder.isDirectory) {
readFolder(folder).then(files=>{ readFolder(folder).then(files=>{
this.UploadFileChange(files,'drop'); this.UploadFileChange(files,'drop');
}); });
}else{ }else{
this.UploadChange([element.getAsFile()],'drop'); if(element.getAsFile()){
this.UploadChange([element.getAsFile()],'drop');
}
} }
} }
} }

View File

@@ -11,13 +11,13 @@
:scrollref="scrollref" :scrollref="scrollref"
:screenshow="Screenshow" :screenshow="Screenshow"
:ischecked="false" :ischecked="false"
:hassub="ImageDataIsExpanded"> :hassub="hassub">
</Image-Layout> </Image-Layout>
<script type="text/javascript"> <script type="text/javascript">
var MixinImage = { var MixinImage = {
data(){ data(){
return { return {
ImageDataIsExpanded:0, hassub:1,
ImageProps:{ ImageProps:{
layout:'imageList',//rowGrid,imageList,waterFall layout:'imageList',//rowGrid,imageList,waterFall
ShowMessage:{ ShowMessage:{
@@ -118,6 +118,7 @@
div.className = 'Details-Iframe'; div.className = 'Details-Iframe';
let iframe = document.createElement("iframe"); let iframe = document.createElement("iframe");
div.append(iframe); div.append(iframe);
iframe.style.opacity = "0";
sessionStorage.setItem('href',window.location.href); sessionStorage.setItem('href',window.location.href);
sessionStorage.setItem('href','index.php?mod=pichome&op=fileview#appid='+this.DocumentAppid); sessionStorage.setItem('href','index.php?mod=pichome&op=fileview#appid='+this.DocumentAppid);
sessionStorage.setItem('selectindex',index); sessionStorage.setItem('selectindex',index);

View File

@@ -4,7 +4,6 @@
return { return {
Screenshow:true, Screenshow:true,
ScreenParam:{ ScreenParam:{
hassub:0,
appid:'', appid:'',
pfids:'', pfids:'',
fids:'' fids:''

View File

@@ -74,7 +74,9 @@
:headerkeyword="HeaderKeyword" :headerkeyword="HeaderKeyword"
:defaultparam="ScreenParam" :defaultparam="ScreenParam"
@submit="CommonGetImageData" @submit="CommonGetImageData"
@visible="screenvisible"> @visible="screenvisible"
:hassub="hassub"
@handlehassub="handlehassub">
</dzz-screen> </dzz-screen>
</el-header> </el-header>
</el-affix> </el-affix>
@@ -145,12 +147,6 @@
deep:true, deep:true,
immediate: true immediate: true
}, },
'ScreenParam.hassub':{
handler(val){
this.ImageDataIsExpanded = val
},
deep:true,
},
}, },
created(){ created(){
<!--{if intval($_G[setting][pathinfo])}--> <!--{if intval($_G[setting][pathinfo])}-->
@@ -234,6 +230,9 @@
break; break;
} }
}, },
handlehassub(status){
this.hassub = parseInt(status);
}
}, },
mounted(){ mounted(){

View File

@@ -0,0 +1,5 @@
@charset "UTF-8";
.page-header {
padding: 0 10px;
}

View File

@@ -1,4 +1,4 @@
<div class="h-left" style="justify-content: start;width: 252px;padding-right: 20px;"> <div class="h-left" style="justify-content: start;padding-right: 20px;">
<template v-if="ispc"> <template v-if="ispc">
<el-image class="logo" src="data/attachment/sitelogo/sitelogo.png?{VERHASH}" 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>

View File

@@ -3,7 +3,7 @@
<div></div> <div></div>
<div @click.stop class="cannot-select"> <div @click.stop class="cannot-select">
<el-checkbox <el-checkbox
v-model="ImageDataIsExpanded" v-model="hassub"
:true-label="1" :true-label="1"
:false-label="0" :false-label="0"
label="显示子文件夹内容"></el-checkbox> label="显示子文件夹内容"></el-checkbox>
@@ -22,7 +22,7 @@
:scrollref="scrollref" :scrollref="scrollref"
:screenshow="Screenshow" :screenshow="Screenshow"
:ischecked="false" :ischecked="false"
:hassub="ImageDataIsExpanded"> :hassub="hassub">
<template v-slot:operation="{ data }"> <template v-slot:operation="{ data }">
<template v-if="data.share || data.down"> <template v-if="data.share || data.down">
<template v-if="ImageProps.layout=='rowGrid' || ImageProps.layout=='imageList' || ImageProps.layout=='waterFall'"> <template v-if="ImageProps.layout=='rowGrid' || ImageProps.layout=='imageList' || ImageProps.layout=='waterFall'">
@@ -52,7 +52,7 @@
</template> </template>
<template v-else> <template v-else>
<el-dropdown @command="ImageOperation"> <el-dropdown @command="ImageOperation">
<el-button type="primary" style="margin-left: 12px;" icon="MoreFilled"></el-button> <el-button style="margin-left: 12px;" icon="MoreFilled"></el-button>
<template #dropdown> <template #dropdown>
<el-dropdown-menu> <el-dropdown-menu>
<el-dropdown-item <el-dropdown-item
@@ -80,7 +80,7 @@
var MixinImage = { var MixinImage = {
data(){ data(){
return { return {
ImageDataIsExpanded:1, hassub:1,
ImageProps:{ ImageProps:{
layout:'rowGrid',//rowGrid,imageList,waterFall layout:'rowGrid',//rowGrid,imageList,waterFall
ShowMessage:{ ShowMessage:{
@@ -197,6 +197,7 @@
div.className = 'Details-Iframe'; div.className = 'Details-Iframe';
let iframe = document.createElement("iframe"); let iframe = document.createElement("iframe");
div.append(iframe); div.append(iframe);
iframe.style.opacity = "0";
sessionStorage.setItem('href','index.php?mod=pichome&op=fileview#appid='+this.DocumentAppid); sessionStorage.setItem('href','index.php?mod=pichome&op=fileview#appid='+this.DocumentAppid);
sessionStorage.setItem('selectindex',index); sessionStorage.setItem('selectindex',index);
iframe.src = 'index.php?mod=details&opentype=current#path='+curr.dpath; iframe.src = 'index.php?mod=details&opentype=current#path='+curr.dpath;

View File

@@ -4,7 +4,6 @@
return { return {
Screenshow:true, Screenshow:true,
ScreenParam:{ ScreenParam:{
hassub:0,
appid:'', appid:'',
pfids:'', pfids:'',
fids:'' fids:''

View File

@@ -7,7 +7,7 @@
<script type="text/javascript" src="static/vue_components/collectdialog/index.js?{VERHASH}"></script> <script type="text/javascript" src="static/vue_components/collectdialog/index.js?{VERHASH}"></script>
<script type="text/javascript" src="static/vue_components/HeaderSort/index.js?{VERHASH}"></script> <script type="text/javascript" src="static/vue_components/HeaderSort/index.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}"/>
<link rel="stylesheet" type="text/css" href="dzz/pichome/template/librarylist/pc/assets/css/index.css?{VERHASH}"/> <link rel="stylesheet" type="text/css" href="dzz/pichome/template/libraryview/pc/assets/index.css?{VERHASH}"/>
<!--{template common/container/pc/header_end}--> <!--{template common/container/pc/header_end}-->
<div id="dzzoffice"> <div id="dzzoffice">
<el-container> <el-container>
@@ -30,7 +30,9 @@
:headerkeyword="HeaderKeyword" :headerkeyword="HeaderKeyword"
:defaultparam="ScreenParam" :defaultparam="ScreenParam"
@submit="CommonGetImageData" @submit="CommonGetImageData"
@visible="screenvisible"> @visible="screenvisible"
:hassub="hassub"
@handlehassub="handlehassub">
</dzz-screen> </dzz-screen>
</el-header> </el-header>
<el-main class="dzz-container" style="padding: 0px;overflow: hidden;position: relative;"> <el-main class="dzz-container" style="padding: 0px;overflow: hidden;position: relative;">
@@ -39,19 +41,23 @@
ref="MainscrollbarRef" ref="MainscrollbarRef"
@scroll="HandleElScrollbar"> @scroll="HandleElScrollbar">
<div v-if="screenType.show && screenType.type && ispc" v-show="Screenshow" style="padding: 10px 0;"> <div v-if="screenType.show && screenType.type && ispc" v-show="Screenshow" style="padding: 10px 0;">
<dzz-screendir <div style="border-radius: 8px;background: var(--el-bg-color);border: var(--el-border);">
ref="ScreenBoxRef" <dzz-screendir
:resize="DocumentResize" ref="ScreenBoxRef"
:props="ScreenProps" :resize="DocumentResize"
:headerkeyword="HeaderKeyword" :props="ScreenProps"
:defaultparam="ScreenParam" :headerkeyword="HeaderKeyword"
:appid="DocumentAppid" :defaultparam="ScreenParam"
@submit="CommonGetImageData"> :appid="DocumentAppid"
</dzz-screendir> @submit="CommonGetImageData"
:hassub="hassub">
</dzz-screendir>
</div>
</div> </div>
<!--{template libraryview/pc/components/index/image}--> <!--{template libraryview/pc/components/index/image}-->
<el-backtop target="#main_scrollbar>.el-scrollbar__wrap" :right="RightWidth + 20" :bottom="20"></el-backtop> <el-backtop target="#main_scrollbar>.el-scrollbar__wrap" :bottom="20"></el-backtop>
</el-scrollbar> </el-scrollbar>
</el-main> </el-main>
</el-container> </el-container>
@@ -101,12 +107,6 @@
deep:true, deep:true,
immediate: true immediate: true
}, },
'ScreenParam.hassub':{
handler(val){
this.ImageDataIsExpanded = val
},
deep:true,
},
}, },
created(){ created(){
this.handleIsPc(); this.handleIsPc();
@@ -157,6 +157,9 @@
this.ispc = false; this.ispc = false;
} }
}, },
handlehassub(status){
this.hassub = parseInt(status);
}
}, },
mounted(){ mounted(){

View File

@@ -0,0 +1,94 @@
.maxWidth {
width: 370px;
}
#center_title {
line-height: 55px;
border-bottom: 1px solid var(--border-color-base);
padding: 0 25px;
font-size: 16px;
}
.el-scrollbar.h300 > .el-scrollbar__wrap {
max-height: 300px;
min-height: 100px;
overflow: scroll;
}
.el-scrollbar.h350 > .el-scrollbar__wrap {
max-height: 350px;
min-height: 100px;
overflow: scroll;
}
.el-scrollbar.h400 > .el-scrollbar__wrap {
max-height: 400px;
min-height: 100px;
overflow: scroll;
}
.el-checkbox,
.el-radio {
margin-right: 16px;
margin-left: 0 !important;
}
.avatar-uploader .el-upload {
border: 1px dashed var(--el-border-color);
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
width: 150px;
height: 150px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.avatar-uploader .avatar-uploader-icon {
font-size: 16px;
}
.avatar-uploader .el-image {
height: 150px;
width: 100%;
line-height: 150px;
}
.avatar-uploader .el-image img {
max-width: 100%;
max-height: 150px;
width: auto;
height: auto;
vertical-align: middle;
}
.avatar-uploader .el-progress {
position: absolute;
left: 0px;
top: 0px;
z-index: 100;
}
.avatar {
max-width: 100%;
max-height: 100%;
display: inline-block;
}
.register-bg-bt {
background-color: transparent;
margin-left: 6px;
}
.el-checkbox, .el-radio {
min-width: 120px;
margin-bottom: 8px;
}

1976
dzz/search/ajax.php Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
<item id="Title"><![CDATA[Dzz! app]]></item>
<item id="Version"><![CDATA[30.1.4.3]]></item>
<item id="Time"><![CDATA[2023-10-16 16:45]]></item>
<item id="From"><![CDATA[zyx (http://127.0.0.15/)]]></item>
<item id="Data">
<item id="app">
<item id="mid"><![CDATA[0]]></item>
<item id="appname"><![CDATA[Search]]></item>
<item id="appico"><![CDATA[data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/wD/AP+gvaeTAAAGjUlE
QVR4nO2aX2xb1R3HP+de+94kzR//CSxpWoU6EKJO61qGWkjSAtMehkBQiiohQEJCgknA9jDtJQ3s
xWvsPe0BNoG0dbzAwwpCwMNeJqq1pOKfoH+gTUFtiWjTVI1rJ2n859q+Zw+OMyf2dWLn3mSd/ZEs
+Z5z7vH3/Py7v3N+51yoU6dOnTp16tQqwqpiMBQalVL2V9WrlB+PDg/vrlrVGqJYVVQ9eAAhBqu+
d41xLddgz672ijo8+ulU1WLWA0sPqBVq3gDLPgLVMjAyIp3qe9UUBGnbPaC12TGb2kdBkLZd7fYf
e+zu0laWBul6DFiuwc02rZWitdll6Zk14QEzNzKWdct6wK/3B2wVs9a8evhC2fqa8IByLCRDq0p+
bkJGDxwQUOABtTT4QopiwGsvdJS9YYfnWcsU+mZg6Qq15mNA3QDrLWC9qXkDrF3qJqUYDIfvkqb5
KELsRohOpNw0X/sDMAkcVaR8/9jw8JdrJct5A0gpBkZG9hMKBSX0IkS+vLBV3/znflOI3w+EQuek
lC8fHxp6FyEc3Vdw1AD9wWCPEgq9LYXYCaBrCu0+HW+bmwZdoUFXAUimsiRTJtdjBpFompSRvVPA
4YFw+BM1GHzy6CuvXHRKo2MxYDAcHhSqelzCTl1T6N3SzK4dPnq6N+DzaDQ1ulAUgaIImhpd+Dwa
t9/WzM4dXrbe0UqDroCU92RV9fP+UOjnTul0xAADBw8+IE3zI+BWv1fj7m1eOm5tWNTGSJucPDPN
l1/HMNLmQrkA2n0aP/uJF79XA/ALKf+5e2TkPie0VmyAb+Q/tHL1/cFgD0IcBtxdHY1s7W1FVRcv
HtMZyemxGaZn09yYy3Dq7AyGYS5qo6qCrb2tdHU0AGimlO/sCQa3VKp3OSr3gJmZZss6KYWiqm8D
fr9XI9C9oejoKffPx5iLZ/C3afjbNOKJDKfGphd5AuS8IdDdnPMEIdqzqvoWUtq6FK/YAOmMq9Oq
bmBkZH/+me/raSkafP6fjyeyeFvc7N3TyWP3ddLephFPZEt6ggD6elrQ3ArAvf3h8L5KNZejcg9Q
sr0ly6UUCBEE6O5qKun2p85OMxfP4G1xs+/+jTQ1qDTqKnsXjJDh1Fjpx+G2zRsAEFL+oWLN5YZT
6Q1ScHep8sFw+C6gV9eUooBnNfg8KzFCxy06uqYA9N0bCu2oVLcVFRtAIEpOSaaUeyEXwQtZbvB5
VmIEv1cHQDXNRyvVbUXlHgA7T0cObV5aLmAQwOfRF8pWOvg8yxnB53HnNAhh29F7NesAJa3Kp5YW
SiG6gNwCZp6vx3KDB4jOpvnbh+O8e2TCsuN3jkzw1w/GmZo2AIgnMpz5bnahfqHv+d+yg6oWQgLx
4tL1gJCyE8hHawBUV/GMNTGVtOz3Sok6pUChrs17j5S2GaDaXGBTanr2WeD1grKipGVbX9ui65Ue
sli9k1DwA2bJBlVQ9VJYIA5+MfNGodIrQNFixk4K4oH1c1Qhq8kFfC7T9WrB9WWAZMo5AyRT2fzX
/wkDIBFPnIgd+tX85TGASDS1alFWXI8Z+a//tqvPVWeDEv78VfTvexUp3weIRNOrV1XqdyREosb8
d/mBXf3akQ6rCPnWn17q6kSIcykjy+Q160hfLVevJUkZJkLKs8eHh0/Y1a9dO0JNqjTfe+CnjW8e
ORG/c/xSnFt8elE+kGe5A8ulZLKS7y/FAZBCvLxqtQXYuSHi3tff+tyPvK5IyjAZOz9bNC+u5PWZ
thb3omsJnDs/m59dRkeHht6zSzDYvCcogBce8vr/eHhKRqKGuDB+g0B380JaXOnrMxK4MD6Xf/av
ZYV42u5NUtu3xPytKs8/6BUuVXB5MsmZb2fIZivXnMlKvjk3w+XJBIABPP7J0ND3dut1ZE/w9o0a
v3nES0ujQiRq8NnJKJcnE0t2wksjyQW8L05G89NeBCl/OXrgwDEntDq2LR7o1Pjd437e/FeMi5Np
zo/PcelKAr9Xx+dx06Cr+fyelGGSTGWJxAyuRw1S8yu+QKfGM79o8/tb1I948ZAtul76y+Sia0fP
BfytKr/d5+fkhRQffjrL1WiGiasJJq4myt7X4VV5eFcL2wMNZdvZgeMnQwLYHtDZHtD5YSrD6YtJ
zk8YxOImsRu5pa2nWcXTpNCzUWPbFp1N7e7yndrImr7WubndxeZ2603l9aDmT4frBlhvAetNUQxY
Ok38v/NfD5Dy43XUsdY4sqiqczPyH8nDbrHVpIHzAAAAAElFTkSuQmCC
]]></item>
<item id="appdesc"><![CDATA[]]></item>
<item id="appurl"><![CDATA[{dzzscript}?mod=search]]></item>
<item id="appadminurl"><![CDATA[{dzzscript}?mod=search&op=setting]]></item>
<item id="noticeurl"><![CDATA[]]></item>
<item id="disp"><![CDATA[0]]></item>
<item id="vendor"><![CDATA[]]></item>
<item id="haveflash"><![CDATA[0]]></item>
<item id="isshow"><![CDATA[0]]></item>
<item id="havetask"><![CDATA[0]]></item>
<item id="hideInMarket"><![CDATA[1]]></item>
<item id="feature"><![CDATA[]]></item>
<item id="fileext"><![CDATA[]]></item>
<item id="group"><![CDATA[1]]></item>
<item id="position"><![CDATA[0]]></item>
<item id="system"><![CDATA[0]]></item>
<item id="notdelete"><![CDATA[0]]></item>
<item id="open"><![CDATA[0]]></item>
<item id="nodup"><![CDATA[0]]></item>
<item id="identifier"><![CDATA[search]]></item>
<item id="app_path"><![CDATA[dzz]]></item>
<item id="version"><![CDATA[1.0]]></item>
<item id="extra">
<item id="installfile"><![CDATA[install.php]]></item>
<item id="uninstallfile"><![CDATA[uninstall.php]]></item>
</item>
<item id="uids"><![CDATA[]]></item>
<item id="showadmin"><![CDATA[0]]></item>
</item>
<item id="version"><![CDATA[30.1.4.3]]></item>
</item>
</root>

587
dzz/search/filelist.php Normal file
View File

@@ -0,0 +1,587 @@
<?php
if (!defined('IN_OAOOA')) {
exit('Access Denied');
}
updatesession();
$operation = isset($_GET['operation']) ? trim($_GET['operation']) : '';
$overt = getglobal('setting/overt');
if(!$overt && !$overt = C::t('setting')->fetch('overt')){
Hook::listen('check_login');//检查是否登录,未登录跳转到登录界面
}
$do = isset($_GET['do']) ? trim($_GET['do']) : '';
global $_G;
if ($do == 'filelist') {
$sql = " from %t r ";
$selectsql = " r.rid ";
$preparams = [];
$isrecycle = isset($_GET['isrecycle']) ? intval($_GET['isrecycle']):0;
if(!$isrecycle)$wheresql = " r.isdelete < 1 ";
else $wheresql = " r.isdelete = 1 ";
$para = [];
$params = ['pichome_resources'];
$havingsql = '';
$havingparams = [];
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$perpage = isset($_GET['perpage']) ? intval($_GET['perpage']) : 30;
$start = ($page - 1) * $perpage;
$limitsql = "limit $start," . $perpage;
if (!isset($_GET['order'])) {
//获取用户默认排序方式
$sortdata = C::t('user_setting')->fetch_by_skey('pichomesortfileds');
$sortfilearr = ['btime' => 1, 'mtime' => 2, 'dateline' => 3, 'name' => 4, 'size' => 5, 'grade' => 6, 'duration' => 7, 'whsize' => 8];
if ($sortdata) {
$sortdatarr = unserialize($sortdata);
$order = $sortdatarr['filed'] ? $sortfilearr[$sortdatarr['filed']] : 1;
$asc = ($sortdatarr['scolorort']) ? $sortdatarr['sort'] : 'desc';
} else {
$order = 1;
$asc = 'desc';
}
} else {
$order = isset($_GET['order']) ? intval($_GET['order']) : 1;
$asc = (isset($_GET['asc']) && trim($_GET['asc'])) ? trim($_GET['asc']) : 'desc';
}
$orderarr = [];
$orderparams = [];
//获取搜索模板数据
$sid = isset($_GET['sid']) ? intval($_GET['sid']):0;
$stdata = C::t('search_template')->fetch($sid);
//获取有权限访问的库
$vappids = [];
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)) {
continue;
}
if (C::t('pichome_vapp')->getpermbypermdata($v['view'],$v['appid'])) {
$vappids[] = $v['appid'];
}
}
//范围条件
if($stdata['searchRange']){
$appids = explode(',',$stdata['searchRange']);
$appid = array_intersect($vappids,$appids);
}else{
$appid = $vappids;
}
if ($appid) {
$wheresql .= ' and r.appid in(%n)';
$para[] = $appid;
}else{
$wheresql .= ' and 0 ';
}
//后缀条件
if($stdata['exts']){
$wheresql .= ' and r.ext in(%n) ';
$para[] = explode(',',$stdata['exts']);
}
/* 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){
$wheresql .= ' and ('.implode(' OR ',$whererangesql).') ';
}*/
$fids = isset($_GET['fids']) ? trim($_GET['fids']) : '';
$hassub = isset($_GET['hassub']) ? intval($_GET['hassub']) : 0;
if ($fids) {
if ($fids == 'not' || $fids == 'notclassify') {
$sql .= " LEFT JOIN %t fr on fr.rid = r.rid ";
$params[] = 'pichome_folderresources';
$wheresql .= ' and ISNULL(fr.fid)';
} else {
$sql .= " LEFT JOIN %t fr on fr.rid = r.rid ";
$params[] = 'pichome_folderresources';
$fidarr = explode(',', $fids);
$childsqlarr = [];
if ($hassub) {
foreach ($fidarr as $v) {
if ($v == 'not' || $v=='notclassify') $childsqlarr[] = " ISNULL(fr.fid) ";
else {
if (!in_array('pichome_folder', $params)) {
$sql .= ' LEFT JOIN %t f1 on f1.fid=fr.fid ';
$params[] = 'pichome_folder';
}
$childsqlarr[] = " f1.pathkey like %s ";
$tpathkey = DB::result_first("select pathkey from %t where fid = %s", array('pichome_folder', $v));
$para[] = $tpathkey . '%';
}
}
if (count($childsqlarr) > 1) $wheresql .= ' and (' . implode(' or ', $childsqlarr) . ')';
else $wheresql .= ' and ' . $childsqlarr[0];
} else {
if (in_array('not', $fidarr)) {
$nindex = array_search('not', $fidarr);
unset($fidarr[$nindex]);
$wheresql .= ' and (fr.fid in(%n) or ISNULL(fr.fid))';
}elseif(in_array('notclassify', $fidarr)) {
$nindex = array_search('notclassify', $fidarr);
unset($fidarr[$nindex]);
$wheresql .= ' and (fr.fid in(%n) or ISNULL(fr.fid))';
} else {
$wheresql .= ' and fr.fid in(%n)';
}
$para[] = $fidarr;
}
}
}
//添加日期
if (isset($_GET['btime'])) {
$btime = explode('_', $_GET['btime']);
$bstart = strtotime($btime[0]);
$bend = strtotime($btime[1]) + 24 * 60 * 60;
if ($bstart) {
$wheresql .= " and r.btime > %d ";
//将时间补足13位
$para[] = $bstart * 1000;
}
if ($bend) {
$wheresql .= " and r.btime < %d ";
//将时间补足13位
$para[] = $bend * 1000;
}
}
//修改日期
if (isset($_GET['dateline'])) {
$dateline = explode('_', $_GET['dateline']);
$dstart = strtotime($dateline[0]);
$dend = strtotime($dateline[1]) + 24 * 60 * 60;
if ($dstart) {
$wheresql .= " and r.dateline > %d ";
//将时间补足13位
$para[] = $dstart * 1000;
}
if ($dend) {
$wheresql .= " and r.dateline < %d ";
//将时间补足13位
$para[] = $dend * 1000;
}
}
//创建日期
if (isset($_GET['mtime'])) {
$mtime = explode('_', $_GET['mtime']);
$mstart = strtotime($mtime[0]);
$mend = strtotime($mtime[1]) + 24 * 60 * 60;
if ($mstart) {
$wheresql .= " and r.mtime > %d ";
//将时间补足13位
$para[] = $mstart * 1000;
}
if ($mend) {
$wheresql .= " and r.mtime < %d ";
//将时间补足13位
$para[] = $mend * 1000;
}
}
//评分条件
if (isset($_GET['grade'])) {
$grade = trim($_GET['grade']);
$grades = explode(',', $grade);
$wheresql .= " and r.grade in(%n) ";
$para[] = $grades;
}
//类型条件
if (isset($_GET['ext'])) {
$ext = trim($_GET['ext']);
$exts = explode(',', $ext);
$wheresql .= " and r.ext in(%n) ";
$para[] = $exts;
}
//时长条件
if (isset($_GET['duration'])) {
if (!in_array('pichome_resources_attr', $params)) {
$sql .= "left join %t ra on r.rid = ra.rid";
$params[] = 'pichome_resources_attr';
}
$durationarr = explode('_', $_GET['duration']);
$dunit = isset($_GET['dunit']) ? trim($_GET['dunit']) : 's';
if ($durationarr[0]) {
$wheresql .= " and ra.duration >= %d ";
$para[] = ($dunit == 'm') ? $durationarr[0] * 60 : $durationarr[0];
}
if ($durationarr[1]) {
$wheresql .= " and ra.duration <= %d ";
$para[] = ($dunit == 'm') ? $durationarr[1] * 60 : $durationarr[1];
}
}
//标注条件
if (isset($_GET['comments'])) {
$sql .= " left join %t c on r.rid = c.rid";
$params[] = 'pichome_comments';
$comments = intval($_GET['comments']);
$cval = isset($_GET['cval']) ? trim($_GET['cval']) : '';
if (!$comments) {
$wheresql .= " and isnull(c.annotation) ";
} else {
if ($cval) {
$cvalarr = explode(',', $cval);
$cvalwhere = [];
foreach ($cvalarr as $cv) {
$cvalwhere[] = " c.annotation like %s ";
$para[] = '%' . $cv . '%';
}
$wheresql .= " and (" . implode(" or ", $cvalwhere) . ")";
} else {
$wheresql .= " and !isnull(c.annotation)";
}
}
}
//注释条件
if (isset($_GET['desc'])) {
if (!in_array('pichome_resources_attr', $params)) {
$sql .= "left join %t ra on r.rid = ra.rid";
$params[] = 'pichome_resources_attr';
}
$desc = intval($_GET['desc']);
$descval = isset($_GET['descval']) ? trim($_GET['descval']) : '';
if (!$desc) {
$wheresql .= " and (isnull(ra.desc) or ra.desc='') ";
} else {
if ($descval) {
$descvalarr = explode(',', $descval);
$descvalwhere = [];
foreach ($descvalarr as $dv) {
$descvalwhere[] = " ra.desc like %s ";
$para[] = '%' . $dv . '%';
}
$wheresql .= " and (" . implode(" or ", $descvalwhere) . ") ";
} else {
$wheresql .= " and ra.desc !='' ";
}
}
}
//链接条件
if (isset($_GET['link'])) {
if (!in_array('pichome_resources_attr', $params)) {
$sql .= "left join %t ra on r.rid = ra.rid";
$params[] = 'pichome_resources_attr';
}
$link = intval($_GET['link']);
$linkval = isset($_GET['linkval']) ? trim($_GET['linkval']) : '';
if (!$link) {
$wheresql .= " and (isnull(ra.link) or ra.link='') ";
} else {
if ($linkval) {
$linkvalarr = explode(',', $linkval);
$linkvalwhere = [];
foreach ($linkvalarr as $lv) {
$linkvalwhere[] = " ra.link like %s";
$para[] = '%' . $lv . '%';
}
$wheresql .= " and (" . implode(" or ", $linkvalwhere) . ") ";
} else {
$wheresql .= " and ra.link !='' ";
}
}
}
//形状条件
if (isset($_GET['shape'])) {
$shape = trim($_GET['shape']);
$shapes = explode(',', $shape);
$shapewherearr = [];
foreach ($shapes as $v) {
switch ($v) {
case 7://方图
$shapewherearr[] = ' round((r.width / r.height) * 100) = %d';
$para[] = 100;
break;
case 8://横图
$shapewherearr[] = ' round((r.width / r.height) * 100) > %d and round((r.width / r.height) * 100) < 250';
$para[] = 100;
break;
case 5://细长横图
$shapewherearr[] = ' round((r.width / r.height) * 100) >= %d';
$para[] = 250;
break;
case 6://细长竖图
$shapewherearr[] = ' round((r.width / r.height) * 100) <= %d';
$para[] = 40;
break;
case 9://竖图
$shapewherearr[] = ' round((r.width / r.height) * 100) < %d and round((r.width / r.height) * 100) > %d';
$para[] = 100;
$para[] = 40;
break;
case 1://4:3
$shapewherearr[] = ' round((r.width / r.height) * 100) = %d';
$para[] = round((4 / 3) * 100);
break;
case 2://3:4
$shapewherearr[] = ' round((r.width / r.height) * 100) = %d';
$para[] = (3 / 4) * 100;
break;
case 3://16:9
$shapewherearr[] = ' round((r.width / r.height) * 100) = %d';
$para[] = round((16 / 9) * 100);
break;
case 4://9:16
$shapewherearr[] = ' round((r.width / r.height) * 100) = %d';
$para[] = round((9 / 16) * 100);
break;
/* case 10:
$shapewherearr[] = ' round((r.width / r.height) * 100) = %d';
$para[] = ($swidth / $sheight) * 100;
break;*/
}
}
if (isset($_GET['shapesize'])) {
$shapesize = trim($_GET['shapesize']);
$shapesizes = explode(':', $shapesize);
$swidth = intval($shapesizes[0]);
$sheight = intval($shapesizes[1]);
$shapewherearr[] = ' round((r.width / r.height) * 100) = %d';
$para[] = ($swidth / $sheight) * 100;
}
if ($shapewherearr) {
$wheresql .= " and (" . implode(" or ", $shapewherearr) . ") ";
}
}
//尺寸条件
if (isset($_GET['wsize']) || isset($_GET['hsize'])) {
$wsizearr = explode('_', $_GET['wsize']);
$hsizearr = explode('_', $_GET['hsize']);
if ($wsizearr[0]) {
$wheresql .= " and r.width >= %d ";
$para[] = intval($wsizearr[0]);
}
if ($wsizearr[1]) {
$wheresql .= " and r.width <= %d ";
$para[] = intval($wsizearr[1]);
}
if ($hsizearr[0]) {
$wheresql .= " and r.height >= %d ";
$para[] = intval($hsizearr[0]);
}
if ($hsizearr[1]) {
$wheresql .= " and r.height <= %d ";
$para[] = intval($hsizearr[1]);
}
}
//大小条件
if (isset($_GET['size'])) {
$size = explode('_', $_GET['size']);
$unit = isset($_GET['unit']) ? intval($_GET['unit']) : 1;
switch ($unit) {
case 0://b
$size[0] = $size[0];
$size[1] = $size[1];
break;
case 1://kb
$size[0] = $size[0] * 1024;
$size[1] = $size[1] * 1024;
break;
case 2://mb
$size[0] = $size[0] * 1024 * 1024;
$size[1] = $size[1] * 1024 * 1024;
break;
case 3://gb
$size[0] = $size[0] * 1024 * 1024 * 1024;
$size[1] = $size[1] * 1024 * 1024 * 1024;
break;
}
if ($size[0]) {
$wheresql .= " and r.szie > %d ";
$para[] = $size[0];
}
if ($size[1]) {
$wheresql .= " and r.szie < %d ";
$para[] = $size[1];
}
}
//关键词条件
$keyword = isset($_GET['keyword']) ? htmlspecialchars($_GET['keyword']) : '';
if ($keyword) {
if (!in_array('pichome_resources_attr', $params)) {
$sql .= "left join %t ra on r.rid = ra.rid";
$params[] = 'pichome_resources_attr';
}
$keywords = array();
$arr1 = explode('+', $keyword);
foreach ($arr1 as $value1) {
$value1 = trim($value1);
$arr2 = explode(' ', $value1);
$arr3 = array();
foreach ($arr2 as $value2) {
$arr3[] = "ra.searchval LIKE %s";
$para[] = '%' . $value2 . '%';
}
$keywords[] = "(" . implode(" OR ", $arr3) . ")";
}
if ($keywords) {
$wheresql .= " and (" . implode(" AND ", $keywords) . ") ";
}
}
//标签条件
if (isset($_GET['tag'])) {
$tagwherearr = [];
$tagrelative = isset($_GET['tagrelative']) ? intval($_GET['tagrelative']) : 0;
$tagrelative = isset($_GET['tagrelative']) ? intval($_GET['tagrelative']) : 0;
$tag = trim($_GET['tag']);
if ($tag == -1) {
if (!in_array('pichome_resourcestag', $params)) {
$sql .= "left join %t rt on r.rid = rt.rid ";
$params[] = 'pichome_resourcestag';
}
$wheresql .= " and isnull(rt.tid) ";
} else {
if(!$tagrelative){
$tagval = explode(',', trim($_GET['tag']));
$tagwheresql = [];
foreach($tagval as $k=>$v){
$sql .= ' left join %t rt'.($k+1).' on rt'.($k+1).'.rid = r.rid ';
$params[] = 'pichome_resourcestag';
$tagwheresql[] = ' (rt'.($k+1).'.tid = %d and !isnull(rt'.($k+1).'.tid)) ';
$para[] = $v;
}
if(count($tagwheresql) > 1) $wheresql .= " and (" .implode(' or ',$tagwheresql).')';
elseif(count($tagwheresql)) $wheresql .= " and $tagwheresql[0] ";
} else {
$tagval = explode(',', trim($_GET['tag']));
foreach($tagval as $k=>$v){
$sql .= ' left join %t rt'.($k+1).' on rt'.($k+1).'.rid = r.rid ';
$params[] = 'pichome_resourcestag';
$wheresql .= ' and rt'.($k+1).'.tid = %d ';
$para[] = $v;
}
}
}
}
//颜色条件
if (isset($_GET['color'])) {
$persion = isset($_GET['persion']) ? intval($_GET['persion']) : 0;
$color = trim($_GET['color']);
$rgbcolor = hex2rgb($color);
$rgbarr = [$rgbcolor['r'],$rgbcolor['g'],$rgbcolor['b']];
$c = new Color($rgbarr);
$color = $c->toInt();
$p = getPaletteNumber($color);
$sql .= " left join %t p on r.rid = p.rid ";
$params[] = 'pichome_palette';
$wheresql .= ' and (p.p = %d and p.weight >= %d)';
$para[] = $p;
$para[] = 30-(30 - $persion*30/100);
$orderarr[] = ' p.weight desc';
}
$data = [];
$rids = [];
switch ($order) {
case 1://添加日期
$orderarr[] = ' r.btime ' . $asc;
break;
case 2://创建日期
$orderarr[] = ' r.mtime ' . $asc;
break;
case 3://修改日期
$orderarr[] = ' r.dateline ' . $asc;
break;
case 4://标题
$orderarr[] = ' cast((r.name) as unsigned) '.$asc.', CONVERT((r.name) USING gbk) ' . $asc;
break;
case 5://大小
$orderarr[] = ' r.size ' . $asc;
break;
case 6://评分
$orderarr[] = ' r.grade ' . $asc;
break;
case 7://时长
if (!in_array('pichome_resources_attr', $params)) {
$sql .= "left join %t ra on r.rid = ra.rid";
$params[] = 'pichome_resources_attr';
}
$orderarr[] = ' ra.duration ' . $asc;
break;
case 8://尺寸
$orderarr[] = ' r.width*r.height ' . $asc;
break;
case 9://热度排序
$sql .= ' left join %t v on r.rid=v.idval and v.idtype = 0 ';
$selectsql .= " ,v.nums as num ";
$params[] = 'views';
$orderarr[] = ' num desc ';
default:
$orderarr[] = ' r.dateline ' . $asc;
}
$orderarr[] = " r.rid " . $asc;
$ordersql = implode(',', $orderarr);
if (!empty($para)) $params = array_merge($params, $para);
$counttotal = DB::result_first(" select count(distinct r.rid) as filenum $sql where $wheresql ", $params);
if($fids || isset($_GET['color']) || $order = 9){
$groupby = ' group by r.rid';
}else{
$groupby='';
}
if(!empty($preparams)) $params = array_merge($preparams,$params);
if(!empty($havingparams)) $params = array_merge($params,$havingparams);
if (!empty($orderparams)) $params = array_merge($params, $orderparams);
foreach (DB::fetch_all(" select $selectsql $sql where $wheresql $groupby $havingsql order by $ordersql $limitsql", $params) as $value) {
$rids[] = $value['rid'];
}
$data = array();
if (!empty($rids)) $data = C::t('pichome_resources')->getdatasbyrids($rids);
if (count($rids) >= $perpage) {
$next = true;
} else {
$next = false;
}
$return = array(
'appid' => $appid,
'next' => $next,
'data' => $data ? $data : array(),
'param' => array(
'order' => $order,
'page' => $page,
'perpage' => $perpage,
'total' => $counttotal,
'asc' => $asc,
'keyword' => $keyword
)
);
updatesession();
exit(json_encode(array('data' => $return)));
}

20
dzz/search/index.php Normal file
View File

@@ -0,0 +1,20 @@
<?php
/*
* @copyright QiaoQiaoShiDai Internet Technology(Shanghai)Co.,Ltd
* @license https://www.oaooa.com/licenses/
*
* @link https://www.oaooa.com
*/
if(!defined('IN_OAOOA') ) {
exit('Access Denied');
}
$overt = getglobal('setting/overt');
if(!$overt && !$overt = C::t('setting')->fetch('overt')){
Hook::listen('check_login');//检查是否登录,未登录跳转到登录界面
}
$templatedata= C::t('search_template')->fetch_all_template();
$templatedata = json_encode($templatedata);
include template('view/pc/page/index');
exit();

32
dzz/search/install.php Normal file
View File

@@ -0,0 +1,32 @@
<?php
/* @authorcode codestrings
* @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') || !defined('IN_ADMIN')) {
exit('Access Denied');
}
$sql = <<<EOF
CREATE TABLE IF NOT EXISTS pichome_search_template (
tid int(10) NOT NULL AUTO_INCREMENT COMMENT '模板TID自增',
title varchar(255) NOT NULL DEFAULT '' COMMENT '模板名称',
data text NOT NULL,
screen text NOT NULL COMMENT '筛选项',
pagesetting text NOT NULL COMMENT '偏好设置',
searchRange text NOT NULL COMMENT '搜索范围',
exts text NOT NULL COMMENT '限制的文件后缀',
dateline int(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '创建时间',
disp smallint(6) NOT NULL DEFAULT '0' COMMENT '排序',
PRIMARY KEY (tid),
KEY disp (disp,dateline) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
EOF;
runquery($sql);
$finish = true;

View File

@@ -0,0 +1,67 @@
<?php
$lang = array
(
'app_name'=>'搜索设置',
'appname'=>'搜索设置',
'setting'=>'设置',
'layout'=>'列表模式',
'layout_rowGrid'=>'自适应',
'layout_waterFall'=>'瀑布流',
'layout_imageList'=>'网格',
'layout_tabodd'=>'列表单列',
'layout_tabeven'=>'列表双列',
'layout_details'=>'详情',
'searchName'=>'模板名称',
'searchName_empty'=>'模板名称不能为空',
'searchRange'=>'搜索范围',
'searchRange_tips'=>'搜索范围,可以选择多个库,留空不限制',
'searchExts'=>'搜索后缀名',
'searchExts_tips'=>'多个使用英文 " , " 隔开',
'searchDisp'=>'排序',
'searchDisp_placeholder'=>'请输入数字,越大越靠后',
'display_default'=>'显示信息',
'display_name'=>'文件名',
'display_extension'=>'扩展名',
'display_other'=>'其他信息',
'display_size'=>'尺寸',
'display_filesize'=>'文件大小',
'display_tag'=>'标签',
'display_grade'=>'评分',
'display_btime'=>'添加时间',
'display_dateline'=>'创建时间',
'display_mtime'=>'修改时间',
'sort_default'=>'默认排序方式',
'sort_btime'=>'添加日期',
'sort_dateline'=>'创建时间',
'sort_mtime'=>'修改时间',
'sort_name'=>'文件名',
'sort_filesize'=>'文件大小',
'sort_whsize'=>'尺寸',
'sort_grade'=>'评分',
'sort_duration'=>'时长',
'orderby_default'=>'默认排序',
'orderby_asc'=>'升序',
'orderby_desc'=>'降序',
'opentype'=>'打开文件窗口方式',
'opentype_current'=>'当前窗口',
'opentype_new'=>'新窗口',
'filterstyle'=>'筛选器样式',
'filterstyle_0'=>'下拉菜单',
'filterstyle_1'=>'平铺列表',
'screen_selecting'=>'可选筛选项',
'screen_selected'=>'已选筛选项',
'screen_tag_auto'=>'自动标签',
'screen_tag_custom'=>'自定义标签',
'screen_tag_sort_hot'=>'热度排序',
'screen_tag_sort_name'=>'名称排序',
'confirm_delete'=>'此操作无法恢复,确定删除?',
);

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