6 Commits
beta3.1 ... 1.0

576 changed files with 107101 additions and 118495 deletions

0
.htaccess Normal file
View File

View File

@@ -1,20 +1,33 @@
## PicHome beta3.1 更新说明 ## PicHome Home1.0 更新说明
### 1.增加billfish库文件导入支持 ### 1.支持升级到团队版,可在站点设置->授权信息界面查看
### 2.库设置内容更改,显示当前库连接状态,断开为不可用;增加普通目录文件缩略图生成数量显示, ### 2.billfish数据支持修复billfish导入有回收站数据导致导入进度不能完成的问题
整体优化库设置在未导入之前也可对库进行管理操作
### 3.修复系统设置界面因二级域名导致的白页问题 ### 3.eagle数据支持修复eagle导入更新数据时目录数据异常问题
### 4.修复标签分类等数据显示异常问题;不可用状态的库将不在列表页展示其内容 ### 4.eagle数据支持修复eagle导入非图片文件缩略图变更后显示异常问题
### 5.修复下载时提示文件不存在的bug ### 5.普通目录数据支持,整体修改导入逻辑,修复导入错误,提升导入效率
### 6.优化删除逻辑,将更快清理冗余数据 ### 6.优化导入体验,导入增加部分错误提示,修复导入时删除库不断弹出弹窗的错误,以及导入类型提示不匹配问题
### 7.优化导入逻辑 ### 7.导入增加校验更新,用于修复以往导入产生的错误修正
### 8.优化访问效率 ### 7.修复删除库错误,由数据兼容错误导致没有真正删除问题
### 9.其他已知bug修复 ### 8.增加文件访问永久地址获取(仅管理员可用)
### 9.文件访问地址使用动态地址增强安全性(非永久地址)
### 10.开放库筛选项设置,可在站点设置->筛选器设置中修改,支持标签分类作为单独筛选项展示;若库未设置筛选项,默认使用“全部库”筛选项,并依其变化而变化
### 11.修复分享的移动端问题
### 12.新增模板3(适用标签类筛选的内容)
### 13.优化访问效率
### 14.优化界面展示效果
### 15.其他已知bug修复

View File

@@ -260,10 +260,10 @@ function upgradeinformation($status = 0) {
} }
if($status==1 && $upgrade_step['step']==2) return ''; if($status==1 && $upgrade_step['step']==2) return '';
$update = array(); $update = array();
$siteuniqueid = C::t('setting')->fetch('siteuniqueid'); $mcode = C::t('setting')->fetch('machinecode');
$update['siteurl']=$_G['siteurl']; $update['siteurl']=$_G['siteurl'];
$update['sitename']=$_G['setting']['sitename']; $update['sitename']=$_G['setting']['sitename'];
$update['uniqueid'] = $siteuniqueid; $update['mcode'] = $mcode;
$update['curversion'] = $upgrade_step['curversion']; $update['curversion'] = $upgrade_step['curversion'];
$update['currelease'] = $upgrade_step['currelease']; $update['currelease'] = $upgrade_step['currelease'];
$update['upgradeversion'] = $upgrade_step['version']; $update['upgradeversion'] = $upgrade_step['version'];
@@ -276,7 +276,7 @@ function upgradeinformation($status = 0) {
foreach($update as $key => $value) { foreach($update as $key => $value) {
$data .= $key.'='.rawurlencode($value).'&'; $data .= $key.'='.rawurlencode($value).'&';
} }
$upgradeurl = APP_CHECK_URL."market/system/upgrade/".rawurlencode(base64_encode($data))."/".TIMESTAMP; $upgradeurl = APP_CHECK_URL."authlicense/count//upgrade/".rawurlencode(base64_encode($data))."/".TIMESTAMP;
dfsockopen($upgradeurl,0, '', '', FALSE, '',0.2); dfsockopen($upgradeurl,0, '', '', FALSE, '',0.2);
return ''; return '';
//return '<img src="'.$upgradeurl.'" width="0" height="0" />'; //return '<img src="'.$upgradeurl.'" width="0" height="0" />';

View File

@@ -130,7 +130,7 @@ function html_login_form() {
$sid = getglobal('sid'); $sid = getglobal('sid');
$avatarstatus=getglobal('avatarstatus','member'); $avatarstatus=getglobal('avatarstatus','member');
if(!$uid ){ if(!$uid ){
$avastar ='<img src="'.($_G['setting']['sitelogo']?\IO::getFileUri('attach::'.$_G['setting']['sitelogo']):'data/attachment/sitelogo/sitelogo.png').'" />'; $avastar ='<img src="data/attachment/sitelogo/sitelogo.png" />';
}else{ }else{
$avastar = avatar_block($uid); $avastar = avatar_block($uid);
} }

View File

@@ -20,6 +20,7 @@ b725e80a7ff1e8a3a434e77ba290a6df *admin/system/dist/css/chunk-74c32c70.4b7d665e.
2e6b6788446f5529d3deed1697515b3b *admin/system/dist/css/chunk-76f23146.6fc79cd8.css 2e6b6788446f5529d3deed1697515b3b *admin/system/dist/css/chunk-76f23146.6fc79cd8.css
c513c1a246b65307640fca09b0034313 *admin/system/dist/css/chunk-77c8d08e.61624e22.css c513c1a246b65307640fca09b0034313 *admin/system/dist/css/chunk-77c8d08e.61624e22.css
d12dc4f1e439eb23e83c18205290cf55 *admin/system/dist/css/chunk-7828662a.c81657ef.css d12dc4f1e439eb23e83c18205290cf55 *admin/system/dist/css/chunk-7828662a.c81657ef.css
053d89992d7adc9fae1b7830d031f2b0 *admin/system/dist/css/chunk-801d4da6.a47ba236.css
4fc8845677fec5f6ab3e4e56dcf36650 *admin/system/dist/css/chunk-9f9c2568.5356ad7d.css 4fc8845677fec5f6ab3e4e56dcf36650 *admin/system/dist/css/chunk-9f9c2568.5356ad7d.css
84614a4a0974a1157dc75739ce2b8966 *admin/system/dist/css/chunk-af3b1b98.b822363f.css 84614a4a0974a1157dc75739ce2b8966 *admin/system/dist/css/chunk-af3b1b98.b822363f.css
f018e18ed2f2fe16f2d76ed02b284545 *admin/system/dist/css/chunk-e730cc06.987283b7.css f018e18ed2f2fe16f2d76ed02b284545 *admin/system/dist/css/chunk-e730cc06.987283b7.css
@@ -33,7 +34,8 @@ ea41001e9a9735db73fd1c33f753a258 *admin/system/dist/css/chunk-vendors.4d5d56a8.c
888e61f04316f10bddfff7bee10c6dd0 *admin/system/dist/fonts/remixicon.888e61f0.ttf 888e61f04316f10bddfff7bee10c6dd0 *admin/system/dist/fonts/remixicon.888e61f0.ttf
9915fef980fa539085da55b84dfde760 *admin/system/dist/fonts/remixicon.9915fef9.woff2 9915fef980fa539085da55b84dfde760 *admin/system/dist/fonts/remixicon.9915fef9.woff2
95138f36e015ad912c37db92164f5844 *admin/system/dist/img/remixicon.95138f36.svg 95138f36e015ad912c37db92164f5844 *admin/system/dist/img/remixicon.95138f36.svg
ae1ba44ed8a73c33b0aa0ab4a44cf523 *admin/system/dist/index.html 911c0d4f607a5e0f1ba2a9eb9280ab66 *admin/system/dist/index.html
e116b4f06b14ec0f557bbf891fd591af *admin/system/dist/js/chunk-2b4f90f7.8dd0185d.js
057184d69924bbec3848613e9d484a61 *admin/system/dist/js/chunk-2b4f90f7.ec4ac270.js 057184d69924bbec3848613e9d484a61 *admin/system/dist/js/chunk-2b4f90f7.ec4ac270.js
9915050af25ebd2a757ddda815fa2025 *admin/system/dist/js/chunk-2d0a3327.ad2684c9.js 9915050af25ebd2a757ddda815fa2025 *admin/system/dist/js/chunk-2d0a3327.ad2684c9.js
14d1eb5255f59b744a0e86b76e999f8c *admin/system/dist/js/chunk-2d0bdbc6.4ec7bc5e.js 14d1eb5255f59b744a0e86b76e999f8c *admin/system/dist/js/chunk-2d0bdbc6.4ec7bc5e.js
@@ -54,11 +56,13 @@ f1356ba4b41b1c2d0db9158645cfd968 *admin/system/dist/js/chunk-2d0dd46d.bd431129.j
240a2f188b2b072ac8200cd0a3cc153a *admin/system/dist/js/chunk-76f23146.0d2957ed.js 240a2f188b2b072ac8200cd0a3cc153a *admin/system/dist/js/chunk-76f23146.0d2957ed.js
60e968e5f5a74243077cee14c95528ee *admin/system/dist/js/chunk-77c8d08e.3e576953.js 60e968e5f5a74243077cee14c95528ee *admin/system/dist/js/chunk-77c8d08e.3e576953.js
80880cf301a3788dc9bee90756f7e93d *admin/system/dist/js/chunk-7828662a.e587f025.js 80880cf301a3788dc9bee90756f7e93d *admin/system/dist/js/chunk-7828662a.e587f025.js
55515e2cd3f2bb776a090112418eae77 *admin/system/dist/js/chunk-801d4da6.0f74a3ea.js
55253ec60403c36280aecd7a278c8737 *admin/system/dist/js/chunk-9f9c2568.538835dd.js 55253ec60403c36280aecd7a278c8737 *admin/system/dist/js/chunk-9f9c2568.538835dd.js
0b209b8b1a24238e609f30444e59741f *admin/system/dist/js/chunk-9f9c2568.877eae72.js 0b209b8b1a24238e609f30444e59741f *admin/system/dist/js/chunk-9f9c2568.877eae72.js
037a3c1f50e8e47edde48a7ff4d45130 *admin/system/dist/js/chunk-af3b1b98.850ec152.js 037a3c1f50e8e47edde48a7ff4d45130 *admin/system/dist/js/chunk-af3b1b98.850ec152.js
25f102fba0aba57fcad60998d1e1c334 *admin/system/dist/js/chunk-e730cc06.3ce9a994.js 25f102fba0aba57fcad60998d1e1c334 *admin/system/dist/js/chunk-e730cc06.3ce9a994.js
328be3371bb7c2536befbfddcc64e417 *admin/system/dist/js/chunk-vendors.3b95dfe3.js 328be3371bb7c2536befbfddcc64e417 *admin/system/dist/js/chunk-vendors.3b95dfe3.js
b4c690180b4c0268240bb8544d252b67 *admin/system/dist/js/index.5892fe49.js
5247e802fd0efbbe8eb80cd9f6a34540 *admin/system/dist/js/index.b5ff203c.js 5247e802fd0efbbe8eb80cd9f6a34540 *admin/system/dist/js/index.b5ff203c.js
e6b823145386281984301ad83fcf96fe *admin/system/dist/js/index.d36cff59.js e6b823145386281984301ad83fcf96fe *admin/system/dist/js/index.d36cff59.js
904b573ab459ffaba51c33b5851d0f5d *admin/system/dist/js/index.d77cc092.js 904b573ab459ffaba51c33b5851d0f5d *admin/system/dist/js/index.d77cc092.js
@@ -111,7 +115,7 @@ bcfb2e3e9c3ff2018f356176a1cf43a2 *core/class/class_core.php
3ce9db683150a76cd033167c7e281391 *core/class/class_Des.php 3ce9db683150a76cd033167c7e281391 *core/class/class_Des.php
212cc7650e4798754337b1fefb291827 *core/class/class_FileDownload.php 212cc7650e4798754337b1fefb291827 *core/class/class_FileDownload.php
b6b0b9dc4773307d80f9215ed5122361 *core/class/class_GifMerge.php b6b0b9dc4773307d80f9215ed5122361 *core/class/class_GifMerge.php
4793dcfc740be53d3fc40ba98562558a *core/class/class_image.php fda45a96b7be48e159007eb8434a9685 *core/class/class_image.php
d301e008d382be1af825d77bc993d423 *core/class/class_ImagePalette.php d301e008d382be1af825d77bc993d423 *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
@@ -218,14 +222,15 @@ b333c9e8748737d29d090f31a502a147 *core/class/table/table_mailcron.php
7efba4a878332f9739c40a4f63d96f64 *core/class/table/table_organization_job.php 7efba4a878332f9739c40a4f63d96f64 *core/class/table/table_organization_job.php
f9fea2c25dbea100b27386dde7057be4 *core/class/table/table_organization_upjob.php f9fea2c25dbea100b27386dde7057be4 *core/class/table/table_organization_upjob.php
7e02ce47e363f56c798a7c261cccc6a4 *core/class/table/table_organization_user.php 7e02ce47e363f56c798a7c261cccc6a4 *core/class/table/table_organization_user.php
def27091cbc525a4cd45b2955472ce29 *core/class/table/table_pichome_collectlist.php
37e3c23f4c36ba1167bc433f18e8ce93 *core/class/table/table_pichome_comments.php 37e3c23f4c36ba1167bc433f18e8ce93 *core/class/table/table_pichome_comments.php
dc169efe36fdf79623277fb5a538c673 *core/class/table/table_pichome_ffmpeg_record.php dc169efe36fdf79623277fb5a538c673 *core/class/table/table_pichome_ffmpeg_record.php
64030519d059cc061b9cc990b2ed9b08 *core/class/table/table_pichome_folder.php 1cbfd07fc6cc2ec4ce28cae9d5334a95 *core/class/table/table_pichome_folder.php
15cc26415b076bb08eeed7f76c40c45b *core/class/table/table_pichome_folderresources.php 15cc26415b076bb08eeed7f76c40c45b *core/class/table/table_pichome_folderresources.php
fb390b2cfce67236a7263549a430868b *core/class/table/table_pichome_folder_relation.php fb390b2cfce67236a7263549a430868b *core/class/table/table_pichome_folder_relation.php
180233f6f8d234986280df5c3821fe24 *core/class/table/table_pichome_imagickrecord.php 180233f6f8d234986280df5c3821fe24 *core/class/table/table_pichome_imagickrecord.php
a2a946f8d3a0180db50b1c7435d9516a *core/class/table/table_pichome_palette.php a2a946f8d3a0180db50b1c7435d9516a *core/class/table/table_pichome_palette.php
ec314812cba390bac62835cce5efdfbf *core/class/table/table_pichome_resources.php 9070977794d2ca52379721d552c3e1e7 *core/class/table/table_pichome_resources.php
534452d059df927d062dac5bcd7b0de6 *core/class/table/table_pichome_resourcestag.php 534452d059df927d062dac5bcd7b0de6 *core/class/table/table_pichome_resourcestag.php
c08ce988dad5ccead193db0a7f79b4f2 *core/class/table/table_pichome_resources_attr.php c08ce988dad5ccead193db0a7f79b4f2 *core/class/table/table_pichome_resources_attr.php
09db8f5c9d2966f503bee5a4c6d6cc32 *core/class/table/table_pichome_resources_relation.php 09db8f5c9d2966f503bee5a4c6d6cc32 *core/class/table/table_pichome_resources_relation.php
@@ -235,7 +240,7 @@ fafb2bf10eed9314bc2bf2d6b32d84b9 *core/class/table/table_pichome_tag.php
02ef950574c3af62f7b13fd61a61c2ce *core/class/table/table_pichome_taggroup.php 02ef950574c3af62f7b13fd61a61c2ce *core/class/table/table_pichome_taggroup.php
d36c3e504e4666b6a9301699ebeeeaa5 *core/class/table/table_pichome_taggroup_relation.php d36c3e504e4666b6a9301699ebeeeaa5 *core/class/table/table_pichome_taggroup_relation.php
1969387f935173b42f34c33c426e1fb7 *core/class/table/table_pichome_tagrelation.php 1969387f935173b42f34c33c426e1fb7 *core/class/table/table_pichome_tagrelation.php
15537ad5c8fac2620c4199d07038a126 *core/class/table/table_pichome_vapp.php c860e27706f0d5d97efceba9a5a1c619 *core/class/table/table_pichome_vapp.php
eea6b39fd13b5fdf18052c7733adb369 *core/class/table/table_process.php eea6b39fd13b5fdf18052c7733adb369 *core/class/table/table_process.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
@@ -254,7 +259,7 @@ d5b0e7dc291a731a5c184d97baecf2df *core/class/table/table_user_profile_setting.ph
bc2e189cfaacbdb84ddceb3a0abdcf92 *core/class/table/table_user_verify_info.php bc2e189cfaacbdb84ddceb3a0abdcf92 *core/class/table/table_user_verify_info.php
692cda4c6ad17e87e1edefb7251d0116 *core/class/table/table_user_wechat.php 692cda4c6ad17e87e1edefb7251d0116 *core/class/table/table_user_wechat.php
ca64f852f9c9442d65fa30ed279c6d6c *core/coreBase.php ca64f852f9c9442d65fa30ed279c6d6c *core/coreBase.php
25f7c644790916b7121bd38d1301d1ea *core/core_version.php 32785586bb05fca676beed40893a76ba *core/core_version.php
d90d23b8deb20cef2c43e66725ec2813 *core/cron/cron_cache_cleanup_week.php d90d23b8deb20cef2c43e66725ec2813 *core/cron/cron_cache_cleanup_week.php
540843e90244b66d31a1deb8c882d238 *core/cron/cron_cache_pichome_searchhot.php 540843e90244b66d31a1deb8c882d238 *core/cron/cron_cache_pichome_searchhot.php
09bf107dfc58f0424b0245834d221a42 *core/cron/cron_clean_notification_month.php 09bf107dfc58f0424b0245834d221a42 *core/cron/cron_clean_notification_month.php
@@ -371,10 +376,25 @@ f4741b20d0983035a4db52858a0f6240 *data/cache/tags.php
47bbeaba8bfa9a1b1d088e2977ddc314 *data/extdata/exts.php 47bbeaba8bfa9a1b1d088e2977ddc314 *data/extdata/exts.php
d41d8cd98f00b204e9800998ecf8427e *data/sendmail.lock d41d8cd98f00b204e9800998ecf8427e *data/sendmail.lock
d41d8cd98f00b204e9800998ecf8427e *data/sendwx.lock d41d8cd98f00b204e9800998ecf8427e *data/sendwx.lock
ac153bd851d728eed4c993b38260f1c8 *dzz/class/class_encode.php 3adf9db6567079f39787326907e65a81 *dzz/billfish/class/class_billfishexport.php
043e8771d5984838964069c11815a104 *dzz/billfish/class/table/table_billfish_folderrecord.php
e8a6a327799675bebb4a6c66aa895f32 *dzz/billfish/class/table/table_billfish_record.php
946e09642ffe242f3eb7e3876e66127b *dzz/billfish/class/table/table_billfish_taggrouprecord.php
af76b998930a2ea1b565afe98e83c6e3 *dzz/billfish/class/table/table_billfish_tagrecord.php
66eb18511cf2fd7817c97629562f45b2 *dzz/billfish/classes/delpichomefolderafter.php
aebc0d22523952b3a81993ab5d52321d *dzz/billfish/classes/getpichomethumb.php
930c3c4350639839e724b8de7d16b013 *dzz/billfish/classes/pichomevappdelete.php
e284fd1a7b8d5d5ce30d04583588c5e1 *dzz/class/class_encode.php
762fd46dbe12c6fa06ba3df224fe20f8 *dzz/eagle/class/class_eagleexport.php
e165ceec42c6de2c56b5d4339f4843e1 *dzz/eagle/class/table/table_eagle_folderrecord.php
2c1f9123c8775cd340416afee533d29a *dzz/eagle/class/table/table_eagle_record.php
e9a0575b63f2ee8011d81724eb829b30 *dzz/eagle/classes/deleteafter.php
d2a28bf51a52b9530d54e364e6e5766c *dzz/eagle/classes/delpichomefolderafter.php
db2a8594d52f5cc6f65f5271849b094f *dzz/eagle/classes/getpichomethumb.php
0b99362e5be7a741986567d8e9738c69 *dzz/eagle/classes/pichomevappdelete.php
a3ad077bda18e4057e0b31e3b3b2eed4 *dzz/ffmpeg/class/class_fmpeg.php a3ad077bda18e4057e0b31e3b3b2eed4 *dzz/ffmpeg/class/class_fmpeg.php
a8a30984a87248b934ef8747481b2e0e *dzz/ffmpeg/classes/info.php bc4ab81b4c26d1a67a97a9f105201e7e *dzz/ffmpeg/classes/info.php
3ba0ebc60cd19158228e5c47f931aa80 *dzz/ffmpeg/classes/thumb.php d8ed7668f7e78a7618f80db40f88f2b8 *dzz/ffmpeg/classes/thumb.php
b0ef25e19c4aa9e96c06f5fb6f091883 *dzz/ffmpeg/composer.json b0ef25e19c4aa9e96c06f5fb6f091883 *dzz/ffmpeg/composer.json
a962e01165e345d26a86a07e9e098239 *dzz/ffmpeg/composer.lock a962e01165e345d26a86a07e9e098239 *dzz/ffmpeg/composer.lock
808d6119fa0a890a2554fa07e600ba7d *dzz/ffmpeg/convert.php 808d6119fa0a890a2554fa07e600ba7d *dzz/ffmpeg/convert.php
@@ -389,8 +409,8 @@ b49d7db7da975848af00a7597333d12e *dzz/ffmpeg/ffmpeg/avcodec-57.dll
109731440511e75afa2c4dcbe5b2d069 *dzz/ffmpeg/ffmpeg/postproc-54.dll 109731440511e75afa2c4dcbe5b2d069 *dzz/ffmpeg/ffmpeg/postproc-54.dll
91ca5f81f37690d1e05772947b38e8a0 *dzz/ffmpeg/ffmpeg/swresample-2.dll 91ca5f81f37690d1e05772947b38e8a0 *dzz/ffmpeg/ffmpeg/swresample-2.dll
4f49c26e951e69007d60edf054d2a37a *dzz/ffmpeg/ffmpeg/swscale-4.dll 4f49c26e951e69007d60edf054d2a37a *dzz/ffmpeg/ffmpeg/swscale-4.dll
17d36f2ee186514a290fab9baaeac65e *dzz/ffmpeg/getinfo.php 54eb4c59cb02380010cabc5d69aae021 *dzz/ffmpeg/getinfo.php
671f1a782b7dc9395519933bffb967fe *dzz/ffmpeg/thumb.php c81877414511a5f8c1e919c61526da2a *dzz/ffmpeg/thumb.php
723b27a2bb73cccf492ed827bc528a5c *dzz/ffmpeg/vendor/alchemy/binary-driver/LICENSE 723b27a2bb73cccf492ed827bc528a5c *dzz/ffmpeg/vendor/alchemy/binary-driver/LICENSE
9608b8205db23a377edd4f328af949bd *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/AbstractBinary.php 9608b8205db23a377edd4f328af949bd *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/AbstractBinary.php
96d510df2561b5a55bc62b0d04db9861 *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/BinaryDriverTestCase.php 96d510df2561b5a55bc62b0d04db9861 *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/BinaryDriverTestCase.php
@@ -683,8 +703,8 @@ e0fbf93ee3e79762c694682e010f721d *dzz/ffmpeg/vendor/symfony/process/LICENSE
882fab9690637ec4cf9746b825b21e15 *dzz/ffmpeg/vendor/symfony/process/Process.php 882fab9690637ec4cf9746b825b21e15 *dzz/ffmpeg/vendor/symfony/process/Process.php
2a3b661974c0cd7432f29595ccdb6a93 *dzz/ffmpeg/vendor/symfony/process/ProcessBuilder.php 2a3b661974c0cd7432f29595ccdb6a93 *dzz/ffmpeg/vendor/symfony/process/ProcessBuilder.php
13625bd3819dabb00e70409aa8b8cc54 *dzz/ffmpeg/vendor/symfony/process/ProcessUtils.php 13625bd3819dabb00e70409aa8b8cc54 *dzz/ffmpeg/vendor/symfony/process/ProcessUtils.php
848f904ac7e815cf4abc752639c32f68 *dzz/imageColor/classes/getcolor.php 634039b168dae271922c99af9b144e4b *dzz/imageColor/classes/getcolor.php
8fcedaed7fefce2be26a36d2ac4bf9af *dzz/imageColor/index.php be1fd6f396b2fda2f45217565298f52e *dzz/imageColor/index.php
a35efffbc8ffb84994c399cac01fb592 *dzz/images/addUser.png a35efffbc8ffb84994c399cac01fb592 *dzz/images/addUser.png
325472601571f31e1bf00674c368d335 *dzz/images/b.gif 325472601571f31e1bf00674c368d335 *dzz/images/b.gif
87fadeff473ddcb5208b7af66ae5966a *dzz/images/close.png 87fadeff473ddcb5208b7af66ae5966a *dzz/images/close.png
@@ -969,9 +989,11 @@ bae84af37dba1b272ef439708d1b8e9f *dzz/images/extimg_small/xml.png
a949e13639231f3ab4192465ff2538ac *dzz/images/logo-blue.png a949e13639231f3ab4192465ff2538ac *dzz/images/logo-blue.png
b92838cc79a788fc78a7685b5aae1f28 *dzz/index/index.php b92838cc79a788fc78a7685b5aae1f28 *dzz/index/index.php
d615e6446bb74240281aa217d6f5ad01 *dzz/index/login.php d615e6446bb74240281aa217d6f5ad01 *dzz/index/login.php
9464641e570a5ef040351554605b519d *dzz/io/getImg.php f1f3a52260de623f37da59db88d5132f *dzz/io/getImg.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
d0cec69ef9e94897d184cee623497d3f *dzz/local/class/class_localexport.php
6620d302f12ba470c79c46e17d94b87f *dzz/local/classes/deleteafter.php
e6ff860b694692916c323609ac7697f8 *dzz/pdf/build/pdf.js e6ff860b694692916c323609ac7697f8 *dzz/pdf/build/pdf.js
81b75950e639b1439c398d62a6037686 *dzz/pdf/build/pdf.js.map 81b75950e639b1439c398d62a6037686 *dzz/pdf/build/pdf.js.map
f025b4d2dd3cd3eca72f347e2406101d *dzz/pdf/build/pdf.worker.js f025b4d2dd3cd3eca72f347e2406101d *dzz/pdf/build/pdf.worker.js
@@ -1379,10 +1401,11 @@ badeea57fda90d27e54a9f9488ac4c43 *dzz/pdf/web/viewer.html
f2dddeac144b9bbac3ef849464bdf74b *dzz/pdf/web/viewer.js f2dddeac144b9bbac3ef849464bdf74b *dzz/pdf/web/viewer.js
9d8f7b8df2cf3dffa23febb3582928d4 *dzz/pdf/web/viewer.js.map 9d8f7b8df2cf3dffa23febb3582928d4 *dzz/pdf/web/viewer.js.map
57cbaacb499474a5ca6c14a86d411512 *dzz/pichome/admin.php 57cbaacb499474a5ca6c14a86d411512 *dzz/pichome/admin.php
ae17e4be72c28160524e6d0f15a08764 *dzz/pichome/ajax.php 3d3aa981f09612419f1cffe5cfa4f4ab *dzz/pichome/ajax.php
c550e347457729fb118592d6be50d050 *dzz/pichome/checkexport.php c550e347457729fb118592d6be50d050 *dzz/pichome/checkexport.php
6433341eb6119db85c0d2001c5155150 *dzz/pichome/class/class_eagleexport.php b6201d143beca6278320d101db08695f *dzz/pichome/class/class_eagleexport.php
d89bf384de0af51c78c3a40a680e1c89 *dzz/pichome/class/class_localexport.php ae068aea655bde669f255db1dd988024 *dzz/pichome/class/class_localexport.php
8bd360df9ad3377d6ede3c4b56c73c6c *dzz/pichome/collection.php
6293eb9bd5b473c7f178be5d6534341c *dzz/pichome/config/config.php 6293eb9bd5b473c7f178be5d6534341c *dzz/pichome/config/config.php
29640dfed0df1100d9c8e4d819b4c593 *dzz/pichome/css/admin.css 29640dfed0df1100d9c8e4d819b4c593 *dzz/pichome/css/admin.css
07f01151181178c663d669622ea927f3 *dzz/pichome/css/common.css 07f01151181178c663d669622ea927f3 *dzz/pichome/css/common.css
@@ -1396,55 +1419,66 @@ f09b1c7476e28ad67f1c2f2f314230a0 *dzz/pichome/css/fonts/remixicon.symbol.svg
881fbc46361e0c0e5f003c159b2f3005 *dzz/pichome/css/fonts/remixicon.woff 881fbc46361e0c0e5f003c159b2f3005 *dzz/pichome/css/fonts/remixicon.woff
9915fef980fa539085da55b84dfde760 *dzz/pichome/css/fonts/remixicon.woff2 9915fef980fa539085da55b84dfde760 *dzz/pichome/css/fonts/remixicon.woff2
beba9d9c0e6f710c90145d9e3cbbab2d *dzz/pichome/css/index.css beba9d9c0e6f710c90145d9e3cbbab2d *dzz/pichome/css/index.css
393c3333716eea4c974db36b5a8630d5 *dzz/pichome/css/mobile/common.css 87163334cb48cff22fdabe3e8e615cc7 *dzz/pichome/css/mobile/common.css
577f7f31ca1ac0fe27b7c7e8f28f838f *dzz/pichome/css/mobile/details.css 0f7c873eb385eefd56b37a025b978eb4 *dzz/pichome/css/mobile/details.css
871bda5b39c93380460d42db713c2932 *dzz/pichome/css/mobile/index.css ed97c351d8b9390710c7421c4197bcf1 *dzz/pichome/css/mobile/image.css
86078d14becfe840e42b75da9b7193ec *dzz/pichome/css/mobile/index.css
f1e227b4a2e8a0345daaf6141e1856dd *dzz/pichome/css/mobile/personal.css f1e227b4a2e8a0345daaf6141e1856dd *dzz/pichome/css/mobile/personal.css
3af6f1b9febc5c78806ac865f8d18ebb *dzz/pichome/css/mobile/screen.css
cc6d3bf279ed780dd69d0dcc250bd442 *dzz/pichome/css/mobile/share.css cc6d3bf279ed780dd69d0dcc250bd442 *dzz/pichome/css/mobile/share.css
d56b57b7000fef922f9031726810a467 *dzz/pichome/css/pc/AddcollectionDialog.css
509deac393472e307756fc9deee67276 *dzz/pichome/css/pc/admin.css 509deac393472e307756fc9deee67276 *dzz/pichome/css/pc/admin.css
4616cbd4493d6a922221b5225605bf17 *dzz/pichome/css/pc/common.css 670b7f2f61bdfd492b53e03e750ee531 *dzz/pichome/css/pc/collection.css
6b6a57a59a5d6ee5bd3c3c501baf1b02 *dzz/pichome/css/pc/common.css
7b846f80e058d874a9cb7106a18e5b78 *dzz/pichome/css/pc/components/addcollect.css
e600f6b1841e3542bb948a5289e9363e *dzz/pichome/css/pc/components/collect.css
e3123a0f6930b3d0a84387d3102c704d *dzz/pichome/css/pc/details.css e3123a0f6930b3d0a84387d3102c704d *dzz/pichome/css/pc/details.css
0446460c4b1c238c4a17b4119c5c106e *dzz/pichome/css/pc/image.css 1b81547e0d91292d2a77153774bbf013 *dzz/pichome/css/pc/image.css
4e1559e2dada467206bec5c77b5a23f5 *dzz/pichome/css/pc/index.css c0a5a61c77eb071519b9e148edafdacd *dzz/pichome/css/pc/index.css
16ceb77eb522e138548921aa5b024a36 *dzz/pichome/css/pc/screen.css 16ceb77eb522e138548921aa5b024a36 *dzz/pichome/css/pc/screen.css
69c8a20f13ee8eb40d35ddd497d35fd3 *dzz/pichome/css/pc/xuanzhuan/iconfont.ttf 69c8a20f13ee8eb40d35ddd497d35fd3 *dzz/pichome/css/pc/xuanzhuan/iconfont.ttf
b006647cb9c39a657d354fcf0bdf88bf *dzz/pichome/css/pc/xuanzhuan/index.css b006647cb9c39a657d354fcf0bdf88bf *dzz/pichome/css/pc/xuanzhuan/index.css
48994b9f88c49cdb67a88116380cfb95 *dzz/pichome/css/theme/black/index.css 48994b9f88c49cdb67a88116380cfb95 *dzz/pichome/css/theme/black/index.css
fe6f435c4534024a6894473daec0845a *dzz/pichome/css/theme/black/root.css ec549d08e4bd82c18ac8a906e7c3ff0e *dzz/pichome/css/theme/black/root.css
247be4f622b714c5745e69ebb932e197 *dzz/pichome/css/theme/darkgrey/index.css 247be4f622b714c5745e69ebb932e197 *dzz/pichome/css/theme/darkgrey/index.css
9925ea840cd52bf961eb4b1eb7b565b8 *dzz/pichome/css/theme/darkgrey/root.css 3e59794617124cb119a6b0fc763a7c14 *dzz/pichome/css/theme/darkgrey/root.css
732389ded34cb9c52dd88271f1345af9 *dzz/pichome/css/theme/fonts/element-icons.ttf 732389ded34cb9c52dd88271f1345af9 *dzz/pichome/css/theme/fonts/element-icons.ttf
535877f50039c0cb49a6196a5b7517cd *dzz/pichome/css/theme/fonts/element-icons.woff 535877f50039c0cb49a6196a5b7517cd *dzz/pichome/css/theme/fonts/element-icons.woff
dce825b1ca6c3b1c18adc856618b8602 *dzz/pichome/css/theme/lightgrey/index.css dce825b1ca6c3b1c18adc856618b8602 *dzz/pichome/css/theme/lightgrey/index.css
74e133fde11f139ecfeedafb438a13ce *dzz/pichome/css/theme/lightgrey/root.css 8e19f8f0afd86036d9e6b74e8fa25b4f *dzz/pichome/css/theme/lightgrey/root.css
106204b58c77af1048a22bfe9cbd1d49 *dzz/pichome/css/theme/navyblue/index.css 106204b58c77af1048a22bfe9cbd1d49 *dzz/pichome/css/theme/navyblue/index.css
17018172c965f899a07fd8f53b789ecf *dzz/pichome/css/theme/navyblue/root.css 9e60cad02523fcf3aac6c9d960294af0 *dzz/pichome/css/theme/navyblue/root.css
6a3812a857dae07ed74b59d26c86d7e1 *dzz/pichome/css/theme/purple/index.css 6a3812a857dae07ed74b59d26c86d7e1 *dzz/pichome/css/theme/purple/index.css
c514077b8965f7d3bd473f19d85620e3 *dzz/pichome/css/theme/purple/root.css 48fcbcbd9d925541404038119bacdc9a *dzz/pichome/css/theme/purple/root.css
4705cbd2d8a842635d69d2ace637212e *dzz/pichome/css/theme/white/index.css 4705cbd2d8a842635d69d2ace637212e *dzz/pichome/css/theme/white/index.css
b6aae0d83f9163cf8a6acda2c77f573e *dzz/pichome/css/theme/white/root.css 42223aa2673c8b81e62a8ebc481d9da2 *dzz/pichome/css/theme/white/root.css
5c7db30e0823a778d5341db79a4ece27 *dzz/pichome/delete.php 7dded9715f7c5c2408f7905b6cddf810 *dzz/pichome/delete.php
0bc21a1af1a289191cf5a48523f2cf8c *dzz/pichome/details.php 0bc21a1af1a289191cf5a48523f2cf8c *dzz/pichome/details.php
220a956534e1384a2c64cfc89ef48617 *dzz/pichome/download.php 214cabed470fd756b227851860513e6b *dzz/pichome/download.php
e245c8b1f860c8252eade7f3dec51879 *dzz/pichome/dzz_app_pichome.xml e245c8b1f860c8252eade7f3dec51879 *dzz/pichome/dzz_app_pichome.xml
1ef6b3e8f2d9664ac3665b62f6c5f39b *dzz/pichome/exportfile.php 43f2f7de28bea4de51cde2b4f1f8e82b *dzz/pichome/exportfile.php
dd58cee1073dfc2907838fe3ec26235b *dzz/pichome/exportfilecheck.php af14eda8139abc2d09e421cc4b27a1b4 *dzz/pichome/exportfilecheck.php
ba8263d806bb02f8c1cd5b3becdfaac0 *dzz/pichome/filelist.php f0b8396b0798d20e257802e0284c1c99 *dzz/pichome/filelist.php
2d0185de715fe914af40ce715d15afca *dzz/pichome/function/function_common.php 2d0185de715fe914af40ce715d15afca *dzz/pichome/function/function_common.php
d211a97399d52fea48f94a45a06648d1 *dzz/pichome/image/eaglefile.webp d211a97399d52fea48f94a45a06648d1 *dzz/pichome/image/eaglefile.webp
8a53ae7b1997c5ddc37e06b74f47b6b2 *dzz/pichome/image/flashlight.png
152ec265e38eb67acb6cb31026448e3d *dzz/pichome/image/img/t1.jpeg 152ec265e38eb67acb6cb31026448e3d *dzz/pichome/image/img/t1.jpeg
651d0b49012d763c7dda236756274a9d *dzz/pichome/image/img/t2.jpg 651d0b49012d763c7dda236756274a9d *dzz/pichome/image/img/t2.jpg
309c31fa9200e0c9b4ee8fd3f1399dfc *dzz/pichome/image/img/t3.jpeg 309c31fa9200e0c9b4ee8fd3f1399dfc *dzz/pichome/image/img/t3.jpeg
5f5562a16dad1fa33294b5c0a920f1d6 *dzz/pichome/image/img/t4.jpeg 5f5562a16dad1fa33294b5c0a920f1d6 *dzz/pichome/image/img/t4.jpeg
006790064e59717d811f6f1eec849e63 *dzz/pichome/image/library/billfish.png
e6bda96407083273f2a6ef5ac3b1e819 *dzz/pichome/image/library/eagle.png
cf4ad845fa202adf1c2c99dba55a6490 *dzz/pichome/image/library/file.png
5d34d2b476b50156b594b9371dd38d1f *dzz/pichome/image/library/library.png
08a26df5cbee8f21dbac8d646d1da218 *dzz/pichome/image/nodata.svg 08a26df5cbee8f21dbac8d646d1da218 *dzz/pichome/image/nodata.svg
1f0ee3cd38e82bd18490a34fcec8c690 *dzz/pichome/image/notScreen.png 1f0ee3cd38e82bd18490a34fcec8c690 *dzz/pichome/image/notScreen.png
f308fd14dbe2e06349ef366d6f9aa2c7 *dzz/pichome/image/palette.png f308fd14dbe2e06349ef366d6f9aa2c7 *dzz/pichome/image/palette.png
d51db8efca781201f641a41b57420dfe *dzz/pichome/image/phlogo.png d51db8efca781201f641a41b57420dfe *dzz/pichome/image/phlogo.png
438384ffb6dbf09c63f9c0254c57340a *dzz/pichome/index.php 438384ffb6dbf09c63f9c0254c57340a *dzz/pichome/index.php
bc4b3499031370aaa3fabf218806f65f *dzz/pichome/initexport.php 9976279181804deb1113d4b3e6af7fab *dzz/pichome/initexport.php
c9b191574ccc8ab6c8ff631302f10561 *dzz/pichome/install.php c9b191574ccc8ab6c8ff631302f10561 *dzz/pichome/install.php
29b8b6254aaaa263cbb0fe8272f05a59 *dzz/pichome/js/audioPlay.js 29b8b6254aaaa263cbb0fe8272f05a59 *dzz/pichome/js/audioPlay.js
a088950fc4bf4348d87cda978e5ded97 *dzz/pichome/js/common.js ed875394497b550972b24c9b09d00955 *dzz/pichome/js/common.js
b7a95d9f617863cf515a43e7b83978c5 *dzz/pichome/js/headerMethods.js b7a95d9f617863cf515a43e7b83978c5 *dzz/pichome/js/headerMethods.js
d752d1878252e486cc0244887cfadbae *dzz/pichome/js/headerWatch.js d752d1878252e486cc0244887cfadbae *dzz/pichome/js/headerWatch.js
d5843dbdc71ff8014a5eafd346a262da *dzz/pichome/js/jquery.mousewheel.min.js d5843dbdc71ff8014a5eafd346a262da *dzz/pichome/js/jquery.mousewheel.min.js
@@ -1455,11 +1489,14 @@ d36c75e3d8880ebfece375fd7cd46787 *dzz/pichome/js/mobile/plug/colorPicker/jquery.
b5d4479aca9121ce9ed95af5d77c10d9 *dzz/pichome/js/mobile/plug/vant/index.css b5d4479aca9121ce9ed95af5d77c10d9 *dzz/pichome/js/mobile/plug/vant/index.css
3d5fcccab75bba76cc259351e875d42a *dzz/pichome/js/mobile/plug/vant/vant.min.js 3d5fcccab75bba76cc259351e875d42a *dzz/pichome/js/mobile/plug/vant/vant.min.js
29b8b6254aaaa263cbb0fe8272f05a59 *dzz/pichome/js/pc/audioPlay.js 29b8b6254aaaa263cbb0fe8272f05a59 *dzz/pichome/js/pc/audioPlay.js
27f51d96c2a6cca4ec0abbce6e0a24db *dzz/pichome/js/pc/components/addcollect.js
1bfeb0538751df45e883d9751aae14a3 *dzz/pichome/js/pc/components/collect.js
56972b38bc78798895d3bb917f4aeb5e *dzz/pichome/js/pc/components/collectdialog.js
2ffc868ac18c18d948c3ae5576afa98b *dzz/pichome/js/pc/headerMethods.js 2ffc868ac18c18d948c3ae5576afa98b *dzz/pichome/js/pc/headerMethods.js
84f0575bc959e85fc1abab5dc71d3079 *dzz/pichome/js/pc/headerWatch.js 84f0575bc959e85fc1abab5dc71d3079 *dzz/pichome/js/pc/headerWatch.js
d5843dbdc71ff8014a5eafd346a262da *dzz/pichome/js/pc/jquery.mousewheel.min.js d5843dbdc71ff8014a5eafd346a262da *dzz/pichome/js/pc/jquery.mousewheel.min.js
72dbef2b0dd2644f4fb4e72ddbb7013b *dzz/pichome/js/pc/plug/DomResize.js 72dbef2b0dd2644f4fb4e72ddbb7013b *dzz/pichome/js/pc/plug/DomResize.js
8a788a8d0bfb2d3c1988bddb4aef4b4b *dzz/pichome/js/pc/plug/element-ui.js 693f98461ce3fa58cbe5ac24d9a21b1e *dzz/pichome/js/pc/plug/element-ui.js
66fe9527aec8d8b68e3bc5036ea8f7f9 *dzz/pichome/js/pc/plug/sortable.min.js 66fe9527aec8d8b68e3bc5036ea8f7f9 *dzz/pichome/js/pc/plug/sortable.min.js
7292e14f4f8fad306d40a6d7d586b225 *dzz/pichome/js/pc/plug/wavesurfer.js 7292e14f4f8fad306d40a6d7d586b225 *dzz/pichome/js/pc/plug/wavesurfer.js
ef4591bffb23a90c8d9e0d02a7b5c15f *dzz/pichome/js/pc/row-grid.js ef4591bffb23a90c8d9e0d02a7b5c15f *dzz/pichome/js/pc/row-grid.js
@@ -1476,15 +1513,18 @@ b21b8531847604ab5f2f5caaef51ba31 *dzz/pichome/js/vue/vue.js
69764bf35375a54256412f3c748b312d *dzz/pichome/js/waterfall.js 69764bf35375a54256412f3c748b312d *dzz/pichome/js/waterfall.js
c24f19d7061cdf5bae41e5e9b9f5600c *dzz/pichome/language/en-US/lang.php c24f19d7061cdf5bae41e5e9b9f5600c *dzz/pichome/language/en-US/lang.php
8a3e6ab24d873202b96c3acd9c1b0d2b *dzz/pichome/language/zh-CN/lang.php 8a3e6ab24d873202b96c3acd9c1b0d2b *dzz/pichome/language/zh-CN/lang.php
04a1d42c4c596325364400f866a2c143 *dzz/pichome/library.php 9b1430e306b95dff41087a2fca148484 *dzz/pichome/library.php
ccef8b340c90fc0061c6dd645fecc8df *dzz/pichome/setting.php ccef8b340c90fc0061c6dd645fecc8df *dzz/pichome/setting.php
cda7d5feb6b4ed907d8a1eeb7d0ba46d *dzz/pichome/share.php 30a3b6a3143136ebf197c3e58e6bcfe8 *dzz/pichome/share.php
892a7e59f327bc5f273fc0fe2cd2679b *dzz/pichome/template/mobile/components/classify.htm 892a7e59f327bc5f273fc0fe2cd2679b *dzz/pichome/template/mobile/components/classify.htm
00be7e9bc0e92e22f9c7aa8fce703854 *dzz/pichome/template/mobile/components/index/JsCommon.htm 23b99d3824aa02a61621667b100dbacb *dzz/pichome/template/mobile/components/index/image/classify.htm
5752e1116e385c87552c6328125e14c3 *dzz/pichome/template/mobile/components/index/image/JsCollect.htm
b5ff94d14983520fb465ffa78959b81f *dzz/pichome/template/mobile/components/index/image/more.htm
643af4f4eabf3fd0f01d05f1e0fb6189 *dzz/pichome/template/mobile/components/index/JsCommon.htm
3c0bae451668c060ae526d3253e9be73 *dzz/pichome/template/mobile/components/index/JsDetailMessage.htm 3c0bae451668c060ae526d3253e9be73 *dzz/pichome/template/mobile/components/index/JsDetailMessage.htm
b61252abe414de77e062e3f96aabccbd *dzz/pichome/template/mobile/components/index/JsImages.htm 493f25784b802d691a49b22d55345e19 *dzz/pichome/template/mobile/components/index/JsImages.htm
801d90ff93583268416fdc99faa91860 *dzz/pichome/template/mobile/components/index/JsIndex.htm 507954354bef6b8905158c9037d38e8a *dzz/pichome/template/mobile/components/index/JsIndex.htm
18939ca3c3ccb67156c1d2f3d059a3fa *dzz/pichome/template/mobile/components/index/JsMy.htm d1051b51dd34c88927309c4e82744553 *dzz/pichome/template/mobile/components/index/JsMy.htm
a09a548c0637e1dfc7397410ac056711 *dzz/pichome/template/mobile/components/index/JsScreen.htm a09a548c0637e1dfc7397410ac056711 *dzz/pichome/template/mobile/components/index/JsScreen.htm
76399fc5b4e7a84ee75ed49e34e483c9 *dzz/pichome/template/mobile/components/index/JsSearch.htm 76399fc5b4e7a84ee75ed49e34e483c9 *dzz/pichome/template/mobile/components/index/JsSearch.htm
aa8df8e4c660d9136bbff54070a2522a *dzz/pichome/template/mobile/components/index/JsSort.htm aa8df8e4c660d9136bbff54070a2522a *dzz/pichome/template/mobile/components/index/JsSort.htm
@@ -1505,20 +1545,26 @@ ae8d0557008c6f19458bed5c49db2167 *dzz/pichome/template/mobile/components/index/s
8f54b82e6d2f9cb4d7ba43d09a39f088 *dzz/pichome/template/mobile/frame/footer_simple.htm 8f54b82e6d2f9cb4d7ba43d09a39f088 *dzz/pichome/template/mobile/frame/footer_simple.htm
ae502b90b2b31175892efe56867bc2e7 *dzz/pichome/template/mobile/frame/header_simple_end.htm ae502b90b2b31175892efe56867bc2e7 *dzz/pichome/template/mobile/frame/header_simple_end.htm
fdc74d5e180321fc338ae91a1a90e22e *dzz/pichome/template/mobile/frame/header_simple_start.htm fdc74d5e180321fc338ae91a1a90e22e *dzz/pichome/template/mobile/frame/header_simple_start.htm
f9c4288c838455ae487c2cc0c4d44890 *dzz/pichome/template/mobile/page/details.htm 385067e1775bcc445b1dbc978d543ac0 *dzz/pichome/template/mobile/page/details.htm
f9f65e35608efe6563e49abbc66c1249 *dzz/pichome/template/mobile/page/index.htm e34a4b13baa25f03bddc82608964ffd7 *dzz/pichome/template/mobile/page/index.htm
be7755b8e73e2ffa49557e8c3891027a *dzz/pichome/template/mobile/page/personal.htm be7755b8e73e2ffa49557e8c3891027a *dzz/pichome/template/mobile/page/personal.htm
63845b99e6f7f14d1385b56a0c4ffebf *dzz/pichome/template/mobile/page/share.htm 59d6f74af0683d8c3dee09e7e09f9787 *dzz/pichome/template/mobile/page/share.htm
dd8403f5dbcfb5767f01143f12afff93 *dzz/pichome/template/pc/components/headerAdmin/index.htm de346d0b0da4cc4eceb143baf17f6812 *dzz/pichome/template/pc/components/collection/Jsimage.htm
7705ce7827e5d3de8b4b41659ff0d9e9 *dzz/pichome/template/pc/components/collection/JsLeft.htm
74a6088ee7aa0b3cf1201de5b6d30132 *dzz/pichome/template/pc/components/headerAdmin/index.htm
e078614bb6d558d96006ec127f7c392c *dzz/pichome/template/pc/components/headerindex/index.htm e078614bb6d558d96006ec127f7c392c *dzz/pichome/template/pc/components/headerindex/index.htm
0436c3ba601aa0804b0e51926f557988 *dzz/pichome/template/pc/components/headerindex/screen.htm 0436c3ba601aa0804b0e51926f557988 *dzz/pichome/template/pc/components/headerindex/screen.htm
105d244408ea6a9780677c28b376ea6c *dzz/pichome/template/pc/components/headerindex/searchScreen.htm 105d244408ea6a9780677c28b376ea6c *dzz/pichome/template/pc/components/headerindex/searchScreen.htm
e3cbbf2cf1281dfe69ee59584debe8dc *dzz/pichome/template/pc/components/image/ImageAudioPlay.htm
8719049c86e5ed162ef840352086ee8f *dzz/pichome/template/pc/components/image/ImageList.htm
7bd38f47edd65c05832edd108ef1479e *dzz/pichome/template/pc/components/image/ImageRowGrid.htm
b146499d5bc505f37ec0d323394d1e27 *dzz/pichome/template/pc/components/image/ImageWaterfall.htm
e52de01bb534c8ae8906aeea2a26e4bc *dzz/pichome/template/pc/components/index/header/JsHdeaderSearch1.htm e52de01bb534c8ae8906aeea2a26e4bc *dzz/pichome/template/pc/components/index/header/JsHdeaderSearch1.htm
710efaf3e9e92603f55599af84e07f2b *dzz/pichome/template/pc/components/index/header/JsHdeaderSearch2.htm 710efaf3e9e92603f55599af84e07f2b *dzz/pichome/template/pc/components/index/header/JsHdeaderSearch2.htm
0b560bcf32b9928e09a087efbe543405 *dzz/pichome/template/pc/components/index/header/JsHdeaderSearchInput.htm aa36103d6b45e77c11a97dc34f5fa38c *dzz/pichome/template/pc/components/index/header/JsHdeaderSearchInput.htm
44afb76ddd1106c3081e901b74ccd350 *dzz/pichome/template/pc/components/index/header/JsHdeaderSearchScreen.htm 44afb76ddd1106c3081e901b74ccd350 *dzz/pichome/template/pc/components/index/header/JsHdeaderSearchScreen.htm
cdfdeb7826e501fc2d0dabbe4545bba6 *dzz/pichome/template/pc/components/index/header/JsHeaderRight.htm cdfdeb7826e501fc2d0dabbe4545bba6 *dzz/pichome/template/pc/components/index/header/JsHeaderRight.htm
82a1a57d683d58fd868fb91fac13ab25 *dzz/pichome/template/pc/components/index/header/JsHeaderRightAvatar.htm 2dcef9d94e0d12773e17f32cf9c84720 *dzz/pichome/template/pc/components/index/header/JsHeaderRightAvatar.htm
a5629a36eef6a8c0d3aec35f3a679d86 *dzz/pichome/template/pc/components/index/header/JsHeaderRightBtn.htm a5629a36eef6a8c0d3aec35f3a679d86 *dzz/pichome/template/pc/components/index/header/JsHeaderRightBtn.htm
754c1ae954a2bd706a9ca808225927c9 *dzz/pichome/template/pc/components/index/image/ImageAudioPlay.htm 754c1ae954a2bd706a9ca808225927c9 *dzz/pichome/template/pc/components/index/image/ImageAudioPlay.htm
8719049c86e5ed162ef840352086ee8f *dzz/pichome/template/pc/components/index/image/ImageList.htm 8719049c86e5ed162ef840352086ee8f *dzz/pichome/template/pc/components/index/image/ImageList.htm
@@ -1526,10 +1572,10 @@ f394ee2d8177fe42a05aeb7c5d1b783a *dzz/pichome/template/pc/components/index/image
506a3a316c9b37a48c65ed71c7435f33 *dzz/pichome/template/pc/components/index/image/ImageWaterfall.htm 506a3a316c9b37a48c65ed71c7435f33 *dzz/pichome/template/pc/components/index/image/ImageWaterfall.htm
e75f2d5563b6d12d345ee4414e2840f9 *dzz/pichome/template/pc/components/index/images.htm e75f2d5563b6d12d345ee4414e2840f9 *dzz/pichome/template/pc/components/index/images.htm
0764f300b91acf6e60925fa91c528941 *dzz/pichome/template/pc/components/index/indexVuex.htm 0764f300b91acf6e60925fa91c528941 *dzz/pichome/template/pc/components/index/indexVuex.htm
ac1a37ef71ff76f05435a47b8f13a6b8 *dzz/pichome/template/pc/components/index/JsCommon.htm f18d9fc925dd80b5682ea9b65afb96c0 *dzz/pichome/template/pc/components/index/JsCommon.htm
d88649d33a48388af9e95f4b7b3aeea8 *dzz/pichome/template/pc/components/index/JsHeader1.htm d88649d33a48388af9e95f4b7b3aeea8 *dzz/pichome/template/pc/components/index/JsHeader1.htm
eb3a364123d4c0982dfc2497683adc29 *dzz/pichome/template/pc/components/index/JsHeader2.htm eb3a364123d4c0982dfc2497683adc29 *dzz/pichome/template/pc/components/index/JsHeader2.htm
5ecc3eabb026b20734c7bec319263ed3 *dzz/pichome/template/pc/components/index/Jsimage.htm 203fade598d5f1f14bd0cbe612f400c9 *dzz/pichome/template/pc/components/index/Jsimage.htm
e5f81267932b2e39355c4bff620d11b6 *dzz/pichome/template/pc/components/index/JsLibrary.htm e5f81267932b2e39355c4bff620d11b6 *dzz/pichome/template/pc/components/index/JsLibrary.htm
7a925a4631acb01fc275bbb237250d92 *dzz/pichome/template/pc/components/index/JsScreen.htm 7a925a4631acb01fc275bbb237250d92 *dzz/pichome/template/pc/components/index/JsScreen.htm
ca1f90529303acc461fb2ce08fb6e7fc *dzz/pichome/template/pc/components/index/screen/btime/js.htm ca1f90529303acc461fb2ce08fb6e7fc *dzz/pichome/template/pc/components/index/screen/btime/js.htm
@@ -1559,23 +1605,23 @@ ed778182594282451fdeaf533390504a *dzz/pichome/template/pc/components/index/scree
ce8f0dddfb2446e04ed00da108a9d5ff *dzz/pichome/template/pc/components/index/screen/tag/js.htm ce8f0dddfb2446e04ed00da108a9d5ff *dzz/pichome/template/pc/components/index/screen/tag/js.htm
12adf53eb950a45a47d2d80e8b246fa6 *dzz/pichome/template/pc/components/index/screen/tag/temp.htm 12adf53eb950a45a47d2d80e8b246fa6 *dzz/pichome/template/pc/components/index/screen/tag/temp.htm
c2953f2cc75684f3a777148ad8c5fce9 *dzz/pichome/template/pc/components/index/screen.htm c2953f2cc75684f3a777148ad8c5fce9 *dzz/pichome/template/pc/components/index/screen.htm
78e4336426983a0ec62934217dee535c *dzz/pichome/template/pc/components/index/template2/JsLeft.htm 56e224bc38e1eb8da17523729f62dfd8 *dzz/pichome/template/pc/components/index/template2/JsLeft.htm
8f54b82e6d2f9cb4d7ba43d09a39f088 *dzz/pichome/template/pc/frame/footer_simple.htm 8f54b82e6d2f9cb4d7ba43d09a39f088 *dzz/pichome/template/pc/frame/footer_simple.htm
ae502b90b2b31175892efe56867bc2e7 *dzz/pichome/template/pc/frame/header_simple_end.htm ae502b90b2b31175892efe56867bc2e7 *dzz/pichome/template/pc/frame/header_simple_end.htm
08154101159fde8eb21fe522cc937e4c *dzz/pichome/template/pc/frame/header_simple_start.htm 08154101159fde8eb21fe522cc937e4c *dzz/pichome/template/pc/frame/header_simple_start.htm
42648cd5769edf01f824444c5acc98b2 *dzz/pichome/template/pc/page/adminBasic.htm f45c9ec8917e94bf4b61a7b5bbacf3e5 *dzz/pichome/template/pc/page/adminBasic.htm
d46f3035458009aa3d87d579da8848c3 *dzz/pichome/template/pc/page/adminFileterset.htm d46f3035458009aa3d87d579da8848c3 *dzz/pichome/template/pc/page/adminFileterset.htm
ef3300e59bc7be272f56ade943326d88 *dzz/pichome/template/pc/page/adminImportsetting.htm ef3300e59bc7be272f56ade943326d88 *dzz/pichome/template/pc/page/adminImportsetting.htm
ea578588242396cb021031f41dd4bc69 *dzz/pichome/template/pc/page/adminLeft.htm ea578588242396cb021031f41dd4bc69 *dzz/pichome/template/pc/page/adminLeft.htm
0e57e8ab9dbccead521f9b18fe8a2de2 *dzz/pichome/template/pc/page/adminLoginpage.htm 0e57e8ab9dbccead521f9b18fe8a2de2 *dzz/pichome/template/pc/page/adminLoginpage.htm
624c95c6ba1998d1f0538493c510fed1 *dzz/pichome/template/pc/page/adminPagesetting.htm 624c95c6ba1998d1f0538493c510fed1 *dzz/pichome/template/pc/page/adminPagesetting.htm
0920466b526ad2b5b6e20c8b2acead53 *dzz/pichome/template/pc/page/adminPersonal.htm 3ad11c89ea7b41c55b63d2f5d29004fb *dzz/pichome/template/pc/page/adminPersonal.htm
4adfd28ac9666c2aeb1af34040db7551 *dzz/pichome/template/pc/page/details.htm 364cd2b3bba93563c86ebf33102a6ba9 *dzz/pichome/template/pc/page/details.htm
8e351bacc90f2855e890cc3cb0ef9fc2 *dzz/pichome/template/pc/page/index.htm 8e351bacc90f2855e890cc3cb0ef9fc2 *dzz/pichome/template/pc/page/index.htm
701ca3999a6f963e5dd8081f4ca73498 *dzz/pichome/template/pc/page/index1.htm 22d1d385387e15a52c90b35eb6ed3a55 *dzz/pichome/template/pc/page/index1.htm
dee08b61a3556659df1cb5daa3845b4e *dzz/pichome/template/pc/page/index2.htm b672309ad39f5e67246c0aabe7811306 *dzz/pichome/template/pc/page/index2.htm
ecbf47343950b3ab1498a97c97d88771 *dzz/pichome/template/pc/page/library.htm c339f4670ef6db9e27f37f497e36f566 *dzz/pichome/template/pc/page/library.htm
d05bbcc9ca122a830c924cfabed697c0 *dzz/pichome/template/pc/page/share.htm b3675471f7a9d279efd0162ac18f1505 *dzz/pichome/template/pc/page/share.htm
3cd79761b99168c3f9faf607183df134 *dzz/pichome/uninstall.php 3cd79761b99168c3f9faf607183df134 *dzz/pichome/uninstall.php
b5221437a0c978e0caf63f2278759934 *dzz/pichome/uninstall_real.php b5221437a0c978e0caf63f2278759934 *dzz/pichome/uninstall_real.php
a5c5705a5b9e3a2175d3633656ae614e *dzz/pichome/updatesearchvaldata.php a5c5705a5b9e3a2175d3633656ae614e *dzz/pichome/updatesearchvaldata.php
@@ -1607,8 +1653,8 @@ b0bb6c733a343afcddcd03baaeff31b0 *dzz/xgplayer/js/xgplayer.music.js
5cb9422375b907e05eb6b7dc36fcd895 *favicon.ico 5cb9422375b907e05eb6b7dc36fcd895 *favicon.ico
8e55bdb192a3aefe82e03292527819ca *htaccess_default.txt 8e55bdb192a3aefe82e03292527819ca *htaccess_default.txt
55d39f5cf3916ab6a9336d95c671ab53 *index.php 55d39f5cf3916ab6a9336d95c671ab53 *index.php
d47506e140e630a579c83fe4911972ae *install/data/install.sql b92e6bc4f11bbece12288d800321aa3c *install/data/install.sql
53cf9484adc4e5d9a87f88a662df5dc8 *install/data/install_data.sql 2630350d3ef08d868fcd36e678094709 *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
@@ -1621,7 +1667,8 @@ a987af86766c27c565794ffa189cf664 *install/include/install_mysql.php
249b244097610688130b93721d1c2bd1 *install/include/install_mysqli.php 249b244097610688130b93721d1c2bd1 *install/include/install_mysqli.php
effd4ff5bdac95bbc9e360de443f335c *install/include/install_var.php effd4ff5bdac95bbc9e360de443f335c *install/include/install_var.php
4c34d50daace82774e12ef92efb93d18 *install/index.php 4c34d50daace82774e12ef92efb93d18 *install/index.php
672ea3abb501cb04f0708a5c69ac2161 *install/language/zh-cn/lang.php 677cacb463b31ea65d0ce771f9c02422 *install/language/zh-cn/lang.php
2938ca630f07497e9a4adedf25fbdae2 *install/update.php
5aefe69b1ba16fe8a6f79c2156f8f281 *misc/ajax.php 5aefe69b1ba16fe8a6f79c2156f8f281 *misc/ajax.php
66ee773a4c2e373da92f48f81930cf3f *misc/classes/init.php 66ee773a4c2e373da92f48f81930cf3f *misc/classes/init.php
f656adb0c1b2699a4d8c613f2b9dacab *misc/pichomeexport.php f656adb0c1b2699a4d8c613f2b9dacab *misc/pichomeexport.php

View File

@@ -1 +0,0 @@
.max-width[data-v-6168216d]{width:360px}

View File

@@ -1 +0,0 @@
.wait-files[data-v-00939ee2]{line-height:25px;border:1px solid #dcdfe6;margin-bottom:10px;padding:5px;font-size:14px}

View File

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

View File

@@ -1 +1 @@
.el-container[data-v-6b6f1ca9],.el-main[data-v-6b6f1ca9]{height:100%}.el-main[data-v-6b6f1ca9]{padding:0}.top-title .el-steps[data-v-31baf320]{background:transparent;padding:0 25px}.top-title .el-steps[data-v-31baf320] .el-step__icon{vertical-align:middle}.el-progress[data-v-31baf320]{width:400px;display:inline-block}.content[data-v-31baf320]{padding:20px 25px}.help-inline li[data-v-31baf320]{margin-bottom:5px}.top-title .main-title[data-v-da54ce54]{font-size:14px;color:#909399;cursor:pointer;margin-right:20px;vertical-align:bottom}.top-title .main-title.is-active[data-v-da54ce54]{color:#369}.content[data-v-da54ce54]{padding:20px 25px}.systemExportNotify{width:auto}.help-inline li[data-v-174d5b16]{margin-bottom:5px;padding:0}.max-width[data-v-174d5b16]{width:260px}.custom-single[data-v-174d5b16]{height:40px;margin-bottom:5px}.custom-single .el-checkbox[data-v-174d5b16]{overflow:hidden}.custom-single .el-checkbox[data-v-174d5b16] .el-checkbox__input{vertical-align:text-top}.custom-single .el-checkbox[data-v-174d5b16] .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-checkbox[data-v-174d5b16],.el-radio[data-v-174d5b16]{margin-bottom:5px;margin-left:0!important}.el-radio[data-v-174d5b16]{min-width:260px}.max-width[data-v-71031654]{width:50%}.content[data-v-24008314]{padding:20px 25px}.help-inline li[data-v-24008314]{margin-bottom:5px;padding:0}.help-inline[data-v-5e61246c]{display:block}.help-inline li[data-v-5e61246c]{margin-bottom:5px;padding:0}.max-width[data-v-5e61246c]{width:360px} .el-container[data-v-51d41a2c],.el-main[data-v-51d41a2c]{height:100%}.el-main[data-v-51d41a2c]{padding:0}.top-title .el-steps[data-v-31baf320]{background:transparent;padding:0 25px}.top-title .el-steps[data-v-31baf320] .el-step__icon{vertical-align:middle}.el-progress[data-v-31baf320]{width:400px;display:inline-block}.content[data-v-31baf320]{padding:20px 25px}.help-inline li[data-v-31baf320]{margin-bottom:5px}.top-title .main-title[data-v-da54ce54]{font-size:14px;color:#909399;cursor:pointer;margin-right:20px;vertical-align:bottom}.top-title .main-title.is-active[data-v-da54ce54]{color:#369}.content[data-v-da54ce54]{padding:20px 25px}.systemExportNotify{width:auto}.help-inline li[data-v-174d5b16]{margin-bottom:5px;padding:0}.max-width[data-v-174d5b16]{width:260px}.custom-single[data-v-174d5b16]{height:40px;margin-bottom:5px}.custom-single .el-checkbox[data-v-174d5b16]{overflow:hidden}.custom-single .el-checkbox[data-v-174d5b16] .el-checkbox__input{vertical-align:text-top}.custom-single .el-checkbox[data-v-174d5b16] .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-checkbox[data-v-174d5b16],.el-radio[data-v-174d5b16]{margin-bottom:5px;margin-left:0!important}.el-radio[data-v-174d5b16]{min-width:260px}.max-width[data-v-71031654]{width:50%}.content[data-v-24008314]{padding:20px 25px}.help-inline li[data-v-24008314]{margin-bottom:5px;padding:0}.help-inline[data-v-5e61246c]{display:block}.help-inline li[data-v-5e61246c]{margin-bottom:5px;padding:0}.max-width[data-v-5e61246c]{width:360px}

View File

@@ -1 +1 @@
<!DOCTYPE html><html lang=zh><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=favicon.ico><title></title><link href=admin/system/dist/css/chunk-2b4f90f7.519dec70.css rel=prefetch><link href=admin/system/dist/css/chunk-494f643e.7502109f.css rel=prefetch><link href=admin/system/dist/css/chunk-5ae5cc35.d763cbce.css rel=prefetch><link href=admin/system/dist/css/chunk-5cdcd199.6f46c04d.css rel=prefetch><link href=admin/system/dist/css/chunk-74c32c70.4b7d665e.css rel=prefetch><link href=admin/system/dist/css/chunk-76f23146.6fc79cd8.css rel=prefetch><link href=admin/system/dist/css/chunk-7828662a.c81657ef.css rel=prefetch><link href=admin/system/dist/css/chunk-9f9c2568.5356ad7d.css rel=prefetch><link href=admin/system/dist/css/chunk-af3b1b98.b822363f.css rel=prefetch><link href=admin/system/dist/css/chunk-e730cc06.987283b7.css rel=prefetch><link href=admin/system/dist/css/system_temp.a56510eb.css rel=prefetch><link href=admin/system/dist/js/chunk-2b4f90f7.ec4ac270.js rel=prefetch><link href=admin/system/dist/js/chunk-2d0a3327.ad2684c9.js rel=prefetch><link href=admin/system/dist/js/chunk-2d0bdbc6.4ec7bc5e.js rel=prefetch><link href=admin/system/dist/js/chunk-2d0dd46d.e13ddeba.js rel=prefetch><link href=admin/system/dist/js/chunk-2d0efd3c.44a093d1.js rel=prefetch><link href=admin/system/dist/js/chunk-2d20fcd9.50f81306.js rel=prefetch><link href=admin/system/dist/js/chunk-2d21ddf7.9f7b329e.js rel=prefetch><link href=admin/system/dist/js/chunk-494f643e.77a11d42.js rel=prefetch><link href=admin/system/dist/js/chunk-5ae5cc35.25761a21.js rel=prefetch><link href=admin/system/dist/js/chunk-5cdcd199.070f9c94.js rel=prefetch><link href=admin/system/dist/js/chunk-74c32c70.1f5e9382.js rel=prefetch><link href=admin/system/dist/js/chunk-76f23146.0d2957ed.js rel=prefetch><link href=admin/system/dist/js/chunk-7828662a.e587f025.js rel=prefetch><link href=admin/system/dist/js/chunk-9f9c2568.538835dd.js rel=prefetch><link href=admin/system/dist/js/chunk-af3b1b98.850ec152.js rel=prefetch><link href=admin/system/dist/js/chunk-e730cc06.3ce9a994.js rel=prefetch><link href=admin/system/dist/js/system_temp.c7e32270.js rel=prefetch><link href=admin/system/dist/css/chunk-vendors.4d5d56a8.css rel=preload as=style><link href=admin/system/dist/css/index.7d0ec6bf.css rel=preload as=style><link href=admin/system/dist/js/chunk-vendors.3b95dfe3.js rel=preload as=script><link href=admin/system/dist/js/index.d36cff59.js rel=preload as=script><link href=admin/system/dist/css/chunk-vendors.4d5d56a8.css rel=stylesheet><link href=admin/system/dist/css/index.7d0ec6bf.css rel=stylesheet></head><body><div id=app></div><script src=admin/system/dist/js/chunk-vendors.3b95dfe3.js></script><script src=admin/system/dist/js/index.d36cff59.js></script></body></html> <!DOCTYPE html><html lang=zh><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=favicon.ico><title></title><link href=admin/system/dist/css/chunk-2b4f90f7.519dec70.css rel=prefetch><link href=admin/system/dist/css/chunk-494f643e.7502109f.css rel=prefetch><link href=admin/system/dist/css/chunk-5ae5cc35.d763cbce.css rel=prefetch><link href=admin/system/dist/css/chunk-74c32c70.4b7d665e.css rel=prefetch><link href=admin/system/dist/css/chunk-76f23146.6fc79cd8.css rel=prefetch><link href=admin/system/dist/css/chunk-7828662a.c81657ef.css rel=prefetch><link href=admin/system/dist/css/chunk-7aef2525.9e97ae28.css rel=prefetch><link href=admin/system/dist/css/chunk-9f9c2568.5356ad7d.css rel=prefetch><link href=admin/system/dist/css/chunk-af3b1b98.b822363f.css rel=prefetch><link href=admin/system/dist/css/chunk-e730cc06.987283b7.css rel=prefetch><link href=admin/system/dist/css/system_temp.abc9b69c.css rel=prefetch><link href=admin/system/dist/js/chunk-2b4f90f7.45b9151d.js rel=prefetch><link href=admin/system/dist/js/chunk-2d0a3327.ad2684c9.js rel=prefetch><link href=admin/system/dist/js/chunk-2d0bdbc6.4ec7bc5e.js rel=prefetch><link href=admin/system/dist/js/chunk-2d0dd46d.e13ddeba.js rel=prefetch><link href=admin/system/dist/js/chunk-2d0efd3c.44a093d1.js rel=prefetch><link href=admin/system/dist/js/chunk-2d20fcd9.50f81306.js rel=prefetch><link href=admin/system/dist/js/chunk-2d21ddf7.9f7b329e.js rel=prefetch><link href=admin/system/dist/js/chunk-494f643e.77a11d42.js rel=prefetch><link href=admin/system/dist/js/chunk-5ae5cc35.25761a21.js rel=prefetch><link href=admin/system/dist/js/chunk-74c32c70.1f5e9382.js rel=prefetch><link href=admin/system/dist/js/chunk-76f23146.0d2957ed.js rel=prefetch><link href=admin/system/dist/js/chunk-7828662a.e587f025.js rel=prefetch><link href=admin/system/dist/js/chunk-7aef2525.35b8efb8.js rel=prefetch><link href=admin/system/dist/js/chunk-9f9c2568.538835dd.js rel=prefetch><link href=admin/system/dist/js/chunk-af3b1b98.850ec152.js rel=prefetch><link href=admin/system/dist/js/chunk-e730cc06.3ce9a994.js rel=prefetch><link href=admin/system/dist/js/system_temp.b94f1119.js rel=prefetch><link href=admin/system/dist/css/chunk-vendors.4d5d56a8.css rel=preload as=style><link href=admin/system/dist/css/index.7d0ec6bf.css rel=preload as=style><link href=admin/system/dist/js/chunk-vendors.3b95dfe3.js rel=preload as=script><link href=admin/system/dist/js/index.b9edc49b.js rel=preload as=script><link href=admin/system/dist/css/chunk-vendors.4d5d56a8.css rel=stylesheet><link href=admin/system/dist/css/index.7d0ec6bf.css rel=stylesheet></head><body><div id=app></div><script src=admin/system/dist/js/chunk-vendors.3b95dfe3.js></script><script src=admin/system/dist/js/index.b9edc49b.js></script></body></html>

View File

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

View File

@@ -1 +0,0 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0bdbc6"],{"2ced":function(t,n,e){"use strict";e.r(n);var c=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("el-card",{staticClass:"box-card",staticStyle:{background:"rgb(240, 249, 235)","text-align":"center"},attrs:{shadow:"hover"}},[e("p",[t._v(t._s(t.$t("upgrade_none")))])])},a=[],o={data:function(){return{}},created:function(){},methods:{},components:{},mounted:function(){}},r=o,s=e("2877"),u=Object(s["a"])(r,c,a,!1,null,null,null);n["default"]=u.exports}}]);

View File

@@ -1 +0,0 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0dd46d"],{8164:function(e,t,a){"use strict";a.r(t);var s=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}]},[a("el-card",{staticClass:"box-card",staticStyle:{background:"rgb(240, 249, 235)","text-align":"center"},attrs:{shadow:"hover"}},[a("p",{staticStyle:{"margin-bottom":"0"}},[a("el-link",{attrs:{type:"success",underline:!1}},[e._v(e._s(e.$t("upgrade_successful1")))])],1),a("p",{staticStyle:{margin:"0"}},[a("el-link",{attrs:{type:"success",underline:!1}},[e._v(e._s(e.$t("upgrade_successful2",{msg:e.$route.params.version})))])],1),a("p",{staticStyle:{"margin-bottom":"0"}},[a("el-link",{attrs:{type:"success",underline:!1}},[e._v(e._s(e.$t("upgrade_successful3",{dir:e.dir})))])],1),a("p",{staticStyle:{margin:"0"}},[a("el-link",{attrs:{type:"success",underline:!1}},[e._v(e._s(e.$t("upgrade_successful4",{backdir:e.backdir})))])],1)])],1)},n=[],r=(a("96cf"),a("1da1")),i={data:function(){return{loading:!1,dir:"",backdir:""}},created:function(){this.getData()},methods:{getData:function(){var e=this;return Object(r["a"])(regeneratorRuntime.mark((function t(){var a,s;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.loading=!0,t.next=3,e.axios.post("admin.php?mod=system&op=intsystemupgrade&operation=patch&step=5",{version:e.$route.params.version});case 3:a=t.sent,s=a.data,e.dir=s.dir,e.backdir=s.backdir,e.loading=!1;case 8:case"end":return t.stop()}}),t)})))()}},components:{},mounted:function(){}},c=i,d=a("2877"),u=Object(d["a"])(c,s,n,!1,null,"f4790950",null);t["default"]=u.exports}}]);

View File

@@ -1 +0,0 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0dd46d"],{8164:function(e,t,a){"use strict";a.r(t);var s=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}]},[a("el-card",{staticClass:"box-card",staticStyle:{background:"rgb(240, 249, 235)","text-align":"center"},attrs:{shadow:"hover"}},[a("p",{staticStyle:{"margin-bottom":"0"}},[a("el-link",{attrs:{type:"success",underline:!1}},[e._v(e._s(e.$t("upgrade_successful1")))])],1),a("p",{staticStyle:{margin:"0"}},[a("el-link",{attrs:{type:"success",underline:!1}},[e._v(e._s(e.$t("upgrade_successful2",{msg:e.$route.params.version})))])],1),a("p",{staticStyle:{"margin-bottom":"0"}},[a("el-link",{attrs:{type:"success",underline:!1}},[e._v(e._s(e.$t("upgrade_successful3",{dir:e.dir})))])],1),a("p",{staticStyle:{margin:"0"}},[a("el-link",{attrs:{type:"success",underline:!1}},[e._v(e._s(e.$t("upgrade_successful4",{backdir:e.backdir})))])],1)])],1)},n=[],r=(a("96cf"),a("1da1")),i={data:function(){return{loading:!1,dir:"",backdir:""}},created:function(){this.getData()},methods:{getData:function(){var e=this;return Object(r["a"])(regeneratorRuntime.mark((function t(){var a,s;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.loading=!0,t.next=3,e.axios.post("admin.php?mod=system&op=intsystemupgrade&operation=patch&step=5",{version:e.$route.params.version});case 3:a=t.sent,s=a.data,e.dir=s.dir,e.backdir=s.backdir,e.loading=!1;case 8:case"end":return t.stop()}}),t)})))()}},components:{},mounted:function(){}},c=i,d=a("2877"),u=Object(d["a"])(c,s,n,!1,null,"306dae10",null);t["default"]=u.exports}}]);

View File

@@ -1 +0,0 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0efd3c"],{"9a86":function(e,t,a){"use strict";a.r(t);var r=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}]},[e.floading?a("div",[e.tableData.length?[a("el-card",{staticClass:"box-card",staticStyle:{background:"rgb(240, 249, 235)","margin-bottom":"25px"},attrs:{shadow:"hover"}},[a("ul",{staticClass:"help-inline",domProps:{innerHTML:e._s(e.$t("founder_upgrade_diff_show",{version:e.returnData.version,oldversion:e.oldversion}))}})]),a("el-table",{staticStyle:{width:"100%"},attrs:{data:e.tableData,border:""}},[a("el-table-column",{attrs:{prop:"name",label:"文件名"}}),a("el-table-column",{attrs:{align:"center",prop:"status",label:"状态",width:"120"},scopedSlots:e._u([{key:"default",fn:function(t){return[1==t.row.status?[a("el-link",{attrs:{underline:!1,type:"danger"}},[e._v(e._s(e.$t("founder_upgrade_diff")))])]:2==t.row.status?[a("el-link",{attrs:{underline:!1,type:"info"}},[e._v(e._s(e.$t("founder_upgrade_normal")))])]:3==t.row.status?[a("el-link",{attrs:{underline:!1,type:"primary"}},[e._v(e._s(e.$t("founder_upgrade_new")))])]:e._e()]}}],null,!1,3979069617)})],1),a("div",{staticStyle:{"margin-top":"10px"}},[a("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.handleupdate}},[e._v(e._s(e.button))])],1)]:[a("el-card",{staticClass:"box-card",staticStyle:{background:"rgb(240, 249, 235)"},attrs:{shadow:"hover"}},[a("el-link",{attrs:{type:"success",underline:!1}},[e._v(e._s(e.$t("filecheck_nofound_md5file")))])],1)]],2):e._e()])},n=[],o=(a("96cf"),a("1da1")),s={props:["returnData"],data:function(){return{loading:!1,floading:!1,tableData:[],button:"",oldversion:""}},created:function(){this.getData()},methods:{getData:function(){var e=this;return Object(o["a"])(regeneratorRuntime.mark((function t(){var a,r,n,o,s;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.loading=!0,a={version:e.returnData.version?e.returnData.version:"",locale:e.returnData.locale?e.returnData.locale:"",charset:e.returnData.charset?e.returnData.charset:""},t.next=4,e.axios.post("admin.php?mod=system&op=intsystemupgrade&operation=patch&step=3",a);case 4:if(r=t.sent,n=r.data,!n.upgradeNone){t.next=12;break}return o={upgradeNone:!0},e.$emit("handleStep",o),t.abrupt("return",!1);case 12:if(!n.upgradeError){t.next=18;break}return o={upgradeError:!0},e.$emit("handleStep",o),t.abrupt("return",!1);case 18:if(!n.bbclosed){t.next=22;break}return s={template:"bbclosed"},e.$emit("handleStep",s),t.abrupt("return",!1);case 22:e.tableData=n.tableData,e.button=n.button,e.oldversion=n.oldversion,e.loading=!1,e.floading=!0;case 27:case"end":return t.stop()}}),t)})))()},handleupdate:function(){var e={template:4};return this.$emit("handleStep",e),!1}},components:{},mounted:function(){}},l=s,i=a("2877"),u=Object(i["a"])(l,r,n,!1,null,null,null);t["default"]=u.exports}}]);

View File

@@ -1 +0,0 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d21ddf7"],{d2c6:function(t,e,a){"use strict";a.r(e);var r=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[3==t.downloadstatus?[a("el-card",{staticClass:"box-card",staticStyle:{background:"rgb(240, 249, 235)","text-align":"center"},attrs:{shadow:"hover"}},[a("p",[t._v(t._s(t.$t("upgrade_redownload",{file:t.data.file})))]),a("el-button",{attrs:{type:"primary",size:"medium"},on:{click:t.handleretry}},[t._v(t._s(t.$t("retry")))])],1)]:[a("el-card",{staticClass:"box-card",staticStyle:{width:"600px",margin:"0 auto","margin-top":"50px"}},[a("div",{staticClass:"clearfix",staticStyle:{"text-align":"center"},attrs:{slot:"header"},slot:"header"},[a("span",[t._v(t._s(t.$t("upgrade_downloading_file")))])]),a("p",{staticStyle:{width:"100%",overflow:"hidden","white-space":"nowrap","text-overflow":"ellipsis","font-size":"14px"}},[4==t.downloadstatus?[t._v(t._s(t.$t("upgrade_download_complete_to_compare")))]:[t._v(t._s(t.data.file))]],2),a("el-progress",{staticStyle:{"margin-bottom":"20px"},attrs:{"text-inside":!0,"stroke-width":26,percentage:t.data.percent}})],1)]],2)},n=[],s=(a("96cf"),a("1da1")),o={props:["returnData"],data:function(){return{stepstatus:!0,downloadstatus:0,data:{file:"",fileseq:1,percent:0}}},created:function(){this.getData()},methods:{getData:function(){var t=this;return Object(s["a"])(regeneratorRuntime.mark((function e(){var a,r,n,s,o,d;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(t.stepstatus){e.next=2;break}return e.abrupt("return",!1);case 2:return a={version:t.returnData.version?t.returnData.version:"",locale:t.returnData.locale?t.returnData.locale:"",charset:t.returnData.charset?t.returnData.charset:"",fileseq:t.data.fileseq},e.next=5,t.axios.post("admin.php?mod=system&op=intsystemupgrade&operation=patch&step=2",a);case 5:if(r=e.sent,n=r.data,!n.upgradeNone){e.next=13;break}return s={upgradeNone:!0},t.$emit("handleStep",s),e.abrupt("return",!1);case 13:if(!n.upgradeError){e.next=19;break}return s={upgradeError:!0},t.$emit("handleStep",s),e.abrupt("return",!1);case 19:if(!n.bbclosed){e.next=23;break}return o={template:"bbclosed"},t.$emit("handleStep",o),e.abrupt("return",!1);case 23:return t.downloadstatus=n.downloadstatus,3==n.downloadstatus?t.data.file=n.data.file:4==n.downloadstatus?(t.data.percent=100,d={template:3},setTimeout((function(){t.$emit("handleStep",d)}),1e3)):(n.data.percent=parseInt(n.data.percent),t.data=n.data,t.getData()),e.abrupt("return",!1);case 26:case"end":return e.stop()}}),e)})))()},handleretry:function(){window.location.reload()}},components:{},mounted:function(){},destroyed:function(){this.stepstatus=!1}},d=o,i=a("2877"),u=Object(i["a"])(d,r,n,!1,null,null,null);e["default"]=u.exports}}]);

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-5cdcd199"],{6254:function(t,a,e){"use strict";e.r(a);var o=function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("div",{staticStyle:{"margin-left":"10px",display:"inherit"}},[e("el-dropdown",{staticStyle:{width:"35px",height:"35px"},attrs:{trigger:"click","hide-on-click":!1},on:{command:t.handleAvatar}},[t.GetUserData.icon?[e("el-tooltip",{staticClass:"item",attrs:{effect:"dark",content:t.GetUserData.username,placement:"left"}},[e("el-avatar",{attrs:{size:35,src:t.GetUserData.icon}})],1)]:[e("el-tooltip",{staticClass:"item",attrs:{effect:"dark",content:t.GetUserData.username,placement:"left"}},[e("el-avatar",{style:{background:t.GetUserData.headerColor},attrs:{size:35}},[t._v(t._s(t.GetUserData.firstword))])],1)],e("el-dropdown-menu",{staticClass:"avatar-dropdown",attrs:{slot:"dropdown"},slot:"dropdown"},[e("el-dropdown-item",{attrs:{command:"personal"}},[t._v("个人设置")]),e("el-dropdown-item",{attrs:{command:"help"}},[t._v("帮助文档")]),e("el-dropdown-item",{attrs:{command:"problem"}},[t._v("问题反馈")]),e("el-divider"),e("el-dropdown-item",{attrs:{command:"setting"}},[t._v("站点设置")]),e("el-dropdown-item",{attrs:{command:"library"}},[t._v("库设置")]),e("el-dropdown-item",{attrs:{command:"system"}},[e("span",{staticStyle:{position:"relative"}},[t._v(" 系统工具 "),t.GetUserData.upgrade?e("div",{staticClass:"tip",staticStyle:{width:"7px",height:"7px","border-radius":"50%",background:"red",position:"absolute",left:"-13px",top:"0",bottom:"0",margin:"auto"}}):t._e()])]),e("el-divider"),e("el-dropdown-item",{attrs:{command:"about"}},[t._v("关于PicHome")]),e("el-dropdown-item",{attrs:{command:"OutLogin"}},[t._v("退出站点")])],1)],2)],1)},s=[],n=(e("96cf"),e("1da1")),i=e("5530"),r=e("2f62"),c={data:function(){return{}},computed:Object(i["a"])({},Object(r["b"])(["GetUserData","GetFormHash","GetLanguage"])),methods:{handleAvatar:function(t){switch(t){case"personal":window.location.href="index.php?mod=pichome&op=user&do=personal";break;case"help":window.open("https://www.yuque.com/pichome");break;case"problem":window.open("https://support.qq.com/products/340252");break;case"setting":window.location.href="index.php?mod=pichome&op=admin&do=basic";break;case"library":window.location.href="index.php?mod=pichome&op=library";break;case"about":this.$alert('<div class="aboutlogo">\n \t\t\t<img src="dzz/pichome/image/phlogo.png" alt="">\n \t\t</div>\n \t\t<div class="aboutmessage">\n \t\t\t<div class="aboutlist">\n \t\t\t\t<span class="title">软件名称:</span><span class="mes">欧奥PicHome</span>\n \t\t\t</div>\n \t\t\t<div class="aboutlist">\n \t\t\t\t<span class="title">版本信息:</span><span class="mes">'+this.GetUserData.version+'</span>\n \t\t\t</div>\n \t\t\t<div class="aboutlist">\n \t\t\t\t<span class="title">版权信息:</span><span class="mes">Powered By oaooa PicHome © 2020-2021 欧奥图文</span>\n \t\t\t</div>\n \t\t\t<div class="aboutlist">\n \t\t\t\t<span class="title">网站地址:</span><span class="mes"><a class="address" href="https://oaooa.com/" target="_blank">oaooa.com</a></span>\n \t\t\t</div>\n \t\t</div>',"",{customClass:"aboutPichome",showClose:!1,showConfirmButton:!1,dangerouslyUseHTMLString:!0,closeOnClickModal:!0});break;case"OutLogin":this.outLogin();break;case"system":window.open("admin.php?mod=system");break}return!1},outLogin:function(){var t=this;return Object(n["a"])(regeneratorRuntime.mark((function a(){var e;return regeneratorRuntime.wrap((function(a){while(1)switch(a.prev=a.next){case 0:return a.next=2,t.axios.post(t.AxiosApi+"user.php?mod=login&op=logging&action=logout&formhash="+t.GetFormHash+"&t="+(new Date).getTime());case 2:e=a.sent,e.data,window.location.reload();case 5:case"end":return a.stop()}}),a)})))()}}},d=c,l=(e("d2ba"),e("9c24"),e("2877")),p=Object(l["a"])(d,o,s,!1,null,"6f47bc15",null);a["default"]=p.exports},"864f":function(t,a,e){},"9c24":function(t,a,e){"use strict";var o=e("864f"),s=e.n(o);s.a},ae63:function(t,a,e){},d2ba:function(t,a,e){"use strict";var o=e("ae63"),s=e.n(o);s.a}}]);

View File

@@ -1 +0,0 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-77c8d08e"],{"1f5d":function(e,t,a){"use strict";a.r(t);var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}]},[a("el-card",{staticClass:"box-card",staticStyle:{background:"rgb(240, 249, 235)","margin-bottom":"25px"},attrs:{shadow:"hover"}},[a("ul",{staticClass:"help-inline",domProps:{innerHTML:e._s(e.$t("founder_upgrade_store_directory",{msg:e.returnData.version}))}})]),e._l(e.files,(function(t){return a("div",{staticClass:"wait-files"},[a("i",{staticClass:"el-icon-document"}),e._v(" "+e._s(t)+" ")])})),a("el-button",{attrs:{type:"primary",size:"medium"},on:{click:e.handleupdate}},[e._v(e._s(e.$t("founder_upgrade_download")))])],2)},r=[],o=(a("96cf"),a("1da1")),i={props:["returnData"],data:function(){return{files:[],loading:!1}},created:function(){this.getData()},methods:{getData:function(){var e=this;return Object(o["a"])(regeneratorRuntime.mark((function t(){var a,n,r,o,i;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.loading=!0,a={version:e.returnData.version?e.returnData.version:"",locale:e.returnData.locale?e.returnData.locale:"",charset:e.returnData.charset?e.returnData.charset:""},t.next=4,e.axios.post("admin.php?mod=system&op=intsystemupgrade&operation=patch&step=1",a);case 4:return n=t.sent,r=n.data,r.upgradeNone?(o={upgradeNone:!0},e.$emit("handleStep",o)):r.upgradeError?(o={upgradeError:!0},e.$emit("handleStep",o)):r.bbclosed?(i={bbclosed:!0},e.$emit("handleStep",i)):(e.files=r.data,e.loading=!1),t.abrupt("return",!1);case 8:case"end":return t.stop()}}),t)})))()},handleupdate:function(){var e={template:2};this.$emit("handleStep",e)}},components:{},mounted:function(){}},s=i,u=(a("7949"),a("2877")),d=Object(u["a"])(s,n,r,!1,null,"00939ee2",null);t["default"]=d.exports},7949:function(e,t,a){"use strict";var n=a("93b8"),r=a.n(n);r.a},"93b8":function(e,t,a){}}]);

View File

@@ -0,0 +1 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-7aef2525"],{"3e42":function(t,e,a){},6254:function(t,e,a){"use strict";a.r(e);var o=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticStyle:{"margin-left":"10px",display:"inherit"}},[a("el-dropdown",{staticStyle:{width:"35px",height:"35px"},attrs:{trigger:"click","hide-on-click":!1},on:{command:t.handleAvatar}},[t.GetUserData.icon?[a("el-tooltip",{staticClass:"item",attrs:{effect:"dark",content:t.GetUserData.username,placement:"left"}},[a("el-avatar",{attrs:{size:35,src:t.GetUserData.icon}})],1)]:[a("el-tooltip",{staticClass:"item",attrs:{effect:"dark",content:t.GetUserData.username,placement:"left"}},[a("el-avatar",{style:{background:t.GetUserData.headerColor},attrs:{size:35}},[t._v(t._s(t.GetUserData.firstword))])],1)],a("el-dropdown-menu",{staticClass:"avatar-dropdown",attrs:{slot:"dropdown"},slot:"dropdown"},[a("el-dropdown-item",{attrs:{command:"personal"}},[t._v("个人设置")]),a("el-dropdown-item",{attrs:{command:"help"}},[t._v("帮助文档")]),a("el-dropdown-item",{attrs:{command:"problem"}},[t._v("问题反馈")]),a("el-divider"),a("el-dropdown-item",{attrs:{command:"setting"}},[t._v("站点设置")]),a("el-dropdown-item",{attrs:{command:"library"}},[t._v("库设置")]),a("el-dropdown-item",{attrs:{command:"system"}},[a("span",{staticStyle:{position:"relative"}},[t._v(" 系统工具 "),t.GetUserData.upgrade?a("div",{staticClass:"tip",staticStyle:{width:"7px",height:"7px","border-radius":"50%",background:"red",position:"absolute",left:"-13px",top:"0",bottom:"0",margin:"auto"}}):t._e()])]),a("el-divider"),a("el-dropdown-item",{attrs:{command:"about"}},[t._v("关于PicHome")]),a("el-dropdown-item",{attrs:{command:"OutLogin"}},[t._v("退出站点")])],1)],2)],1)},s=[],n=(a("96cf"),a("1da1")),i=a("5530"),r=a("2f62"),c={data:function(){return{}},computed:Object(i["a"])({},Object(r["b"])(["GetUserData","GetFormHash","GetLanguage"])),methods:{handleAvatar:function(t){switch(t){case"collection":window.location.href="index.php?mod=collection";break;case"personal":window.location.href="index.php?mod=pichome&op=user&do=personal";break;case"help":window.open("https://www.yuque.com/pichome");break;case"problem":window.open("https://support.qq.com/products/340252");break;case"setting":window.location.href="index.php?mod=pichome&op=admin&do=authorize";break;case"library":window.location.href="index.php?mod=pichome&op=library";break;case"about":this.$alert('<div class="aboutlogo">\n \t\t\t<img src="dzz/pichome/image/phlogo.png" alt="">\n \t\t</div>\n \t\t<div class="aboutmessage">\n \t\t\t<div class="aboutlist">\n \t\t\t\t<span class="title">软件名称:</span><span class="mes">欧奥PicHome</span>\n \t\t\t</div>\n \t\t\t<div class="aboutlist">\n \t\t\t\t<span class="title">版本信息:</span><span class="mes">'+this.GetUserData.version+'</span>\n \t\t\t</div>\n \t\t\t<div class="aboutlist">\n \t\t\t\t<span class="title">版权信息:</span><span class="mes">Powered By oaooa PicHome © 2020-2022 欧奥图文</span>\n \t\t\t</div>\n \t\t\t<div class="aboutlist">\n \t\t\t\t<span class="title">网站地址:</span><span class="mes"><a class="address" href="https://oaooa.com/" target="_blank">oaooa.com</a></span>\n \t\t\t</div>\n \t\t</div>',"",{customClass:"aboutPichome",showClose:!1,showConfirmButton:!1,dangerouslyUseHTMLString:!0,closeOnClickModal:!0});break;case"OutLogin":this.outLogin();break;case"system":window.open("admin.php?mod=system");break;case"orguser":window.open("admin.php?mod=orguser");break}return!1},outLogin:function(){var t=this;return Object(n["a"])(regeneratorRuntime.mark((function e(){var a;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,t.axios.post(t.AxiosApi+"user.php?mod=login&op=logging&action=logout&formhash="+t.GetFormHash+"&t="+(new Date).getTime());case 2:a=e.sent,a.data,window.location.reload();case 5:case"end":return e.stop()}}),e)})))()}}},d=c,l=(a("74bc"),a("9c24"),a("2877")),p=Object(l["a"])(d,o,s,!1,null,"1aac96c1",null);e["default"]=p.exports},"74bc":function(t,e,a){"use strict";var o=a("3e42"),s=a.n(o);s.a},"864f":function(t,e,a){},"9c24":function(t,e,a){"use strict";var o=a("864f"),s=a.n(o);s.a}}]);

View File

@@ -1 +0,0 @@
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-9f9c2568"],{"01e3":function(e,t,n){"use strict";n.r(t);var s=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"page-content"},[n("div",{staticClass:"top-title color-border",staticStyle:{display:"flex"}},[n("span",[e._v(e._s(e.$t("upgrade"))),e.elstep>0?n("span",{staticClass:"line"}):e._e()]),e.elstep>0?n("el-steps",{staticStyle:{flex:"1"},attrs:{active:e.elstep,"finish-status":"success",simple:""}},[n("el-step",{attrs:{title:e.$t("founder_upgrade_updatelist")}}),n("el-step",{attrs:{title:e.$t("founder_upgrade_download")}}),n("el-step",{attrs:{title:e.$t("founder_upgrade_compare")}}),n("el-step",{attrs:{title:e.$t("founder_upgrade_upgrading")}}),n("el-step",{attrs:{title:e.$t("founder_upgrade_complete")}})],1):e._e()],1),n("el-scrollbar",{staticClass:"page-component__scroll"},[n("div",{staticClass:"content",staticStyle:{padding:"25px"}},[n(e.template,{tag:"component",attrs:{returnData:e.returnData},on:{handleStep:e.handleStep}})],1)])],1)},a=[],r=(n("d3b7"),{props:["returnData"],data:function(){return{elstep:"",template:""}},watch:{elstep:{handler:function(e){this.handleTemplate()}},$route:{handler:function(e){e.params&&e.params.version&&(this.elstep=5)},deep:!0}},created:function(){this.returnData.iframes?this.elstep=4:(this.elstep=this.returnData.step?this.returnData.step:1,this.handleTemplate())},methods:{handleStep:function(e){e.upgradeNone?(this.template="upgradeNone",this.elstep=0):e.upgradeError?(this.template="upgradeError",this.elstep=0):e.bbclosed?(this.template="bbclosed",this.elstep=0):this.elstep=e.template},handleTemplate:function(){switch(this.elstep){case 1:this.template="step1";break;case 2:this.template="step2";break;case 3:this.template="step3";break;case 4:this.template="step4";break;case 5:this.template="step5";break}}},components:{upgradeError:function(){return n.e("chunk-2d20fcd9").then(n.bind(null,"b4d5"))},upgradeNone:function(){return n.e("chunk-2d0bdbc6").then(n.bind(null,"2ced"))},bbclosed:function(){return n.e("chunk-2d0a3327").then(n.bind(null,"00c4"))},step1:function(){return n.e("chunk-77c8d08e").then(n.bind(null,"1f5d"))},step2:function(){return n.e("chunk-2d21ddf7").then(n.bind(null,"d2c6"))},step3:function(){return n.e("chunk-2d0efd3c").then(n.bind(null,"9a86"))},step4:function(){return n.e("chunk-36bedb7f").then(n.bind(null,"4e68"))},step5:function(){return n.e("chunk-2d0dd46d").then(n.bind(null,"8164"))}},destroyed:function(){}}),l=r,p=(n("8dc4"),n("2877")),i=Object(p["a"])(l,s,a,!1,null,"0dbad62e",null);t["default"]=i.exports},"1a21":function(e,t,n){},"8dc4":function(e,t,n){"use strict";var s=n("1a21"),a=n.n(s);a.a}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -24,7 +24,8 @@ $steplang = array('', lang('founder_upgrade_updatelist'), lang('founder_upgrade_
if ($operation == 'patch' || $operation == 'cross') { if ($operation == 'patch' || $operation == 'cross') {
if (!$_G['setting']['bbclosed']) { if (!$_G['setting']['bbclosed']) {
exit(json_encode(array('bbclosed'=>true))); C::t('setting')->update('bbclosed', 1);
updatecache('setting');
} }
$msg = ''; $msg = '';
@@ -227,6 +228,8 @@ if ($operation == 'patch' || $operation == 'cross') {
$file = DZZ_ROOT . './data/update/pichome' . $version . '/updatelist.tmp'; $file = DZZ_ROOT . './data/update/pichome' . $version . '/updatelist.tmp';
@unlink($file); @unlink($file);
@unlink(DZZ_ROOT . './install/update.php'); @unlink(DZZ_ROOT . './install/update.php');
//打开站点
C::t('setting')->update('bbclosed', 0);
C::t('cache') -> delete('upgrade_step'); C::t('cache') -> delete('upgrade_step');
C::t('cache') -> delete('upgrade_run'); C::t('cache') -> delete('upgrade_run');
C::t('setting') -> update('upgrade', ''); C::t('setting') -> update('upgrade', '');

View File

@@ -245,6 +245,11 @@ class image {
$w = ceil($y_ratio * $this->imginfo['width']); $w = ceil($y_ratio * $this->imginfo['width']);
$h = $this->param['thumbheight']; $h = $this->param['thumbheight'];
} }
if($w < 242){
$w = $this->param['thumbwidth'] = 242;
$x_ratio = $this->param['thumbwidth'] / $this->imginfo['width'];
$h = ceil($x_ratio*$this->imginfo['height']);
}
} }
return array($x, $y, $w, $h); return array($x, $y, $w, $h);
} }
@@ -356,6 +361,10 @@ class image {
}else{ }else{
$width=ceil($height*$or); $width=ceil($height*$or);
if($width < 242){
$width = 242;
$height = ceil($width/$or);
}
} }
}else{ }else{
@@ -364,6 +373,11 @@ class image {
$width=$owidth; $width=$owidth;
}else{ }else{
$height=ceil($width/$or); $height=ceil($width/$or);
$width = ceil($height*$or);
if($width < 242){
$width = 242;
$height = ceil($width/$or);
}
} }
} }

View File

@@ -188,7 +188,7 @@ class dzz_app extends dzz_base{
} }
$url = parse_url($_G['siteurl']); $url = parse_url($_G['siteurl']);
$_G['siteroot'] = isset($url['path']) ? $url['path'] : ''; $_G['siteroot'] = isset($url['path']) ? $url['path'] : '';
$_G['siteport'] = empty($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == '80' || $_SERVER['SERVER_PORT'] == '443' ? '' : ':'.$_SERVER['SERVER_PORT']; $_G['siteport'] = (empty($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == '80' || $_SERVER['SERVER_PORT'] == '443' || $_SERVER['HTTP_X_FORWARDED_PORT'] == '443')? '' : ':'.$_SERVER['SERVER_PORT'];
if(defined('SUB_DIR')) { if(defined('SUB_DIR')) {
$_G['siteurl'] = str_replace(SUB_DIR, '/', $_G['siteurl']); $_G['siteurl'] = str_replace(SUB_DIR, '/', $_G['siteurl']);
@@ -208,6 +208,8 @@ class dzz_app extends dzz_base{
}elseif($_SERVER['SERVER_PORT'] == 443){ //其他 }elseif($_SERVER['SERVER_PORT'] == 443){ //其他
return TRUE; return TRUE;
}elseif($_SERVER['REQUEST_SCHEME'] == 'https'){ //其他 }elseif($_SERVER['REQUEST_SCHEME'] == 'https'){ //其他
return TRUE;
}elseif(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'){ //其他
return TRUE; return TRUE;
} }
return FALSE; return FALSE;
@@ -363,9 +365,7 @@ class dzz_app extends dzz_base{
$allowgzip = $this->config['output']['gzip'] && empty($this->var['inajax']) && EXT_OBGZIP; $allowgzip = $this->config['output']['gzip'] && empty($this->var['inajax']) && EXT_OBGZIP;
setglobal('gzipcompress', $allowgzip); setglobal('gzipcompress', $allowgzip);
if($this->config['localurl']){
setglobal('localurl', $this->config['localurl']);
}
if(!ob_start($allowgzip ? 'ob_gzhandler' : null)) { if(!ob_start($allowgzip ? 'ob_gzhandler' : null)) {
ob_start(); ob_start();
} }
@@ -375,6 +375,9 @@ class dzz_app extends dzz_base{
if($this->config['output']['forceheader']) { if($this->config['output']['forceheader']) {
@header('Content-Type: text/html; charset='.CHARSET); @header('Content-Type: text/html; charset='.CHARSET);
} }
if($this->config['localurl']){
setglobal('localurl', $this->config['localurl']);
}
} }
@@ -508,6 +511,15 @@ class dzz_app extends dzz_base{
} }
setglobal('uid', getglobal('uid', 'member')); setglobal('uid', getglobal('uid', 'member'));
if($this->var['member']['adminid']){
setglobal('pichomelevel',5);
}else{
$pichomelevel = C::t('user_setting')->fetch_by_skey('pichomelevel',getglobal('uid', 'member'));
$pichomelevel = $pichomelevel ? intval($pichomelevel):0;
setglobal('pichomelevel',$pichomelevel);
}
//设置语言; //设置语言;
$langlist=$this->var['config']['output']['language_list']; $langlist=$this->var['config']['output']['language_list'];
if($language=getcookie('language')){ if($language=getcookie('language')){

View File

@@ -687,6 +687,7 @@ class dzz_mime{
'xbm' => 'image/x-xbitmap', 'xbm' => 'image/x-xbitmap',
'xpm' => 'image/x-xpixmap', 'xpm' => 'image/x-xpixmap',
'xwd' => 'image/x-xwindowdump', 'xwd' => 'image/x-xwindowdump',
'webp' => 'image/webp',
'mime' => 'message/rfc822', 'mime' => 'message/rfc822',
'eml' => 'message/rfc822', 'eml' => 'message/rfc822',
'iges' => 'model/iges', 'iges' => 'model/iges',

View File

@@ -6,329 +6,452 @@
* @link https://www.oaooa.com * @link https://www.oaooa.com
* @author zyx(zyx@oaooa.com) * @author zyx(zyx@oaooa.com)
*/ */
if ( !defined( 'IN_OAOOA' ) ) { if (!defined('IN_OAOOA')) {
exit( 'Access Denied' ); exit('Access Denied');
} }
include_once DZZ_ROOT . './core/core_version.php'; include_once DZZ_ROOT . './core/core_version.php';
class dzz_upgrade {
var $upgradeurl = 'http://help.oaooa.com/upgrade/'; class dzz_upgrade
var $locale = 'SC'; {
var $charset = 'UTF-8';
public function __construct() { var $upgradeurl = APP_CHECK_URL . 'authlicense/upgrade/';
$this->upgradeurl = 'http://help.oaooa.com/upgrade/' . getglobal( 'setting/siteuniqueid' ) . '/'; var $checkurl = APP_CHECK_URL . 'authlicense/authlic/';
} var $locale = 'SC';
public function fetch_updatefile_list( $upgradeinfo ) { var $charset = 'UTF-8';
$file = DZZ_ROOT . './data/update/pichome' . $upgradeinfo[ 'latestversion' ] . '/updatelist.tmp'; public function __construct()
$upgradedataflag = true; {
$upgradedata = @file_get_contents( $file ); global $_G;
if ( !$upgradedata ) { $machinecode = $_G['setting']['machinecode'];
$upgradedata = dfsockopen( $this->upgradeurl . substr( $upgradeinfo[ 'upgradelist' ], 0, -4 ) . strtolower( '_' . $this->locale . '_' . $this->charset ) . '.txt' ); if (!$machinecode) {
$upgradedataflag = false; $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
$onlineip = $_SERVER['REMOTE_ADDR'];
$machinecode = 'PH' . $chars[date('y') % 60] . $chars[date('n')] .
$chars[date('j')] . $chars[date('G')] . $chars[date('i')] .
$chars[date('s')] . substr(md5($onlineip . TIMESTAMP), 0, 4) . random(4);
C::t('setting')->update('machinecode', $machinecode);
C::t('setting')->update('adminfirstlogin', 0);
}
$serveruid = defined('LICENSE_SERVERUID') ? LICENSE_SERVERUID : 0;
$this->upgradeurl = $this->upgradeurl . 'Pichome/';
} }
$return = array(); public function fetch_updatefile_list($upgradeinfo)
{
global $_G;
$file = DZZ_ROOT . './data/update/pichome' . $upgradeinfo['latestversion'] . '/updatelist.tmp';
$upgradedataflag = true;
$upgradedata = @file_get_contents($file);
if (!$upgradedata) {
$update = array();
$update['mcode'] = $_G['setting']['machinecode'];
$update['siteurl'] = $_G['siteurl'];
$update['sitename'] = $_G['setting']['sitename'];
$update['version'] = CORE_VERSION;
$update['release'] = CORE_RELEASE;
$update['version_level'] = CORE_VERSION_LEVEL;
$update['fixbug'] = CORE_FIXBUG;
$update['license_time'] = defined('LICENSE_CTIME') ? LICENSE_CTIME : 0;
$update['license_serveruid'] = defined('LICENSE_SERVERUID') ? LICENSE_SERVERUID : 0;
$update['license_version'] = defined('LICENSE_VERSION') ? LICENSE_VERSION : '';
$update['path'] = substr($upgradeinfo['upgradelist'], 0, -4) . strtolower('_' . $this->locale . '_' . $this->charset) . '.txt';
$upgradedataarr = explode( "\n", str_replace( "\r\n", "\n", $upgradedata ) ); $data = '';
foreach ( $upgradedataarr as $k => $v ) { foreach ($update as $key => $value) {
if ( !$v ) { $data .= $key . '=' . rawurlencode($value) . '&';
continue; }
}
$return[ 'file' ][ $k ] = trim( substr( $v, 34 ) );
$return[ 'md5' ][ $k ] = substr( $v, 0, 32 );
if ( trim( substr( $v, 32, 2 ) ) != '*' ) {
@unlink( $file );
return array();
}
} $upgradefile = $this->upgradeurl . rawurlencode(base64_encode($data)) . '/' . TIMESTAMP;
if ( !$upgradedataflag ) { $upgradedata = dfsockopen($upgradefile);
$this->mkdirs( dirname( $file ) ); $upgradedataflag = false;
$fp = fopen( $file, 'w' ); }
if ( !$fp ) {
return array(); $return = array();
}
fwrite( $fp, $upgradedata ); $upgradedataarr = explode("\n", str_replace("\r\n", "\n", $upgradedata));
foreach ($upgradedataarr as $k => $v) {
if (!$v) {
continue;
}
$return['file'][$k] = trim(substr($v, 34));
$return['md5'][$k] = substr($v, 0, 32);
if (trim(substr($v, 32, 2)) != '*') {
@unlink($file);
return array();
}
}
if (!$upgradedataflag) {
$this->mkdirs(dirname($file));
$fp = fopen($file, 'w');
if (!$fp) {
return array();
}
fwrite($fp, $upgradedata);
}
return $return;
} }
return $return; public function compare_basefile($upgradeinfo, $upgradefilelist, $upgrademd5list)
} {
if (!$dzzfiles = @file(DZZ_ROOT . './admin/oaooafiles.md5')) {
$modifylist = $showlist = $searchlist = $md5datanew = $md5data = array();
foreach ($upgradefilelist as $key => $file) {
$md5datanew[$file] = $upgrademd5list[$key];
$md5data[$file] = md5_file(DZZ_ROOT . './' . $file);
if (!file_exists(DZZ_ROOT . './' . $file)) {
$newlist[$file] = $file;
} elseif ($md5datanew[$file] != $md5data[$file]) {
if (!$upgradeinfo['isupdatetemplate'] && preg_match('/\.htm$/i', $file)) {
$ignorelist[$file] = $file;
$searchlist[] = "\r\n" . $file;
$searchlist[] = "\n" . $file;
continue;
}
$modifylist[$file] = $file;
} else {
$showlist[$file] = $file;
}
}
if ($searchlist) {
$file = DZZ_ROOT . './data/update/pichome' . $upgradeinfo['latestversion'] . '/updatelist.tmp';
$upgradedata = file_get_contents($file);
$upgradedata = str_replace($searchlist, '', $upgradedata);
$fp = fopen($file, 'w');
if ($fp) {
fwrite($fp, $upgradedata);
}
}
return array($modifylist, $showlist, $ignorelist, $newlist);
}
public function compare_basefile( $upgradeinfo, $upgradefilelist, $upgrademd5list ) { $newupgradefilelist = $newlist = array();
if ( !$dzzfiles = @file( DZZ_ROOT . './admin/oaooafiles.md5' ) ) { foreach ($upgradefilelist as $v) {
$modifylist = $showlist = $searchlist = $md5datanew = $md5data = array(); if (!file_exists(DZZ_ROOT . './' . $v)) {
foreach ( $upgradefilelist as $key => $file ) { $newlist[$v] = $v;
$md5datanew[ $file ] = $upgrademd5list[ $key ]; } else {
$md5data[ $file ] = md5_file( DZZ_ROOT . './' . $file ); $newupgradefilelist[$v] = md5_file(DZZ_ROOT . './' . $v);
if ( !file_exists( DZZ_ROOT . './' . $file ) ) { }
$newlist[ $file ] = $file; }
} elseif ( $md5datanew[ $file ] != $md5data[ $file ] ) {
if ( !$upgradeinfo[ 'isupdatetemplate' ] && preg_match( '/\.htm$/i', $file ) ) { $modifylist = $showlist = $searchlist = array();
$ignorelist[ $file ] = $file; foreach ($dzzfiles as $line) {
$searchlist[] = "\r\n" . $file; $file = trim(substr($line, 34));
$searchlist[] = "\n" . $file; $md5datanew[$file] = substr($line, 0, 32);
continue; if (isset($newupgradefilelist[$file])) {
} if ($md5datanew[$file] != $newupgradefilelist[$file]) {
$modifylist[ $file ] = $file; if (!$upgradeinfo['isupdatetemplate'] && preg_match('/\.htm$/i', $file)) {
$ignorelist[$file] = $file;
$searchlist[] = "\r\n" . $file;
$searchlist[] = "\n" . $file;
continue;
}
$modifylist[$file] = $file;
} else {
$showlist[$file] = $file;
}
}
}
if ($searchlist) {
$file = DZZ_ROOT . './data/update/pichome' . $upgradeinfo['latestversion'] . '/updatelist.tmp';
$upgradedata = file_get_contents($file);
$upgradedata = str_replace($searchlist, '', $upgradedata);
$fp = fopen($file, 'w');
if ($fp) {
fwrite($fp, $upgradedata);
}
}
return array($modifylist, $showlist, $ignorelist, $newlist);
}
public function compare_file_content($file, $remotefile)
{
if (!preg_match('/\.php$|\.htm$/i', $file)) {
return false;
}
$content = preg_replace('/\s/', '', file_get_contents($file));
$ctx = stream_context_create(array('http' => array('timeout' => 60)));
$remotecontent = preg_replace('/\s/', '', file_get_contents($remotefile, false, $ctx));
if (strcmp($content, $remotecontent)) {
return false;
} else { } else {
$showlist[ $file ] = $file; return true;
} }
}
if ( $searchlist ) {
$file = DZZ_ROOT . './data/update/pichome' . $upgradeinfo[ 'latestversion' ] . '/updatelist.tmp';
$upgradedata = file_get_contents( $file );
$upgradedata = str_replace( $searchlist, '', $upgradedata );
$fp = fopen( $file, 'w' );
if ( $fp ) {
fwrite( $fp, $upgradedata );
}
}
return array( $modifylist, $showlist, $ignorelist, $newlist );
} }
$newupgradefilelist = $newlist = array(); public function check_upgrade()
foreach ( $upgradefilelist as $v ) { {
if ( !file_exists( DZZ_ROOT . './' . $v ) ) {
$newlist[ $v ] = $v;
} else {
$newupgradefilelist[ $v ] = md5_file( DZZ_ROOT . './' . $v );
}
}
$modifylist = $showlist = $searchlist = array(); include_once libfile('class/xml');
foreach ( $dzzfiles as $line ) { include_once libfile('function/cache');
$file = trim( substr( $line, 34 ) ); global $_G;
$md5datanew[ $file ] = substr( $line, 0, 32 ); $return = false;
if ( isset( $newupgradefilelist[ $file ] ) ) { $update = array();
if ( $md5datanew[ $file ] != $newupgradefilelist[ $file ] ) { $update['mcode'] = $_G['setting']['machinecode'];
if ( !$upgradeinfo[ 'isupdatetemplate' ] && preg_match( '/\.htm$/i', $file ) ) { $update['siteurl'] = $_G['siteurl'];
$ignorelist[ $file ] = $file; $update['sitename'] = $_G['setting']['sitename'];
$searchlist[] = "\r\n" . $file; $update['version'] = CORE_VERSION;
$searchlist[] = "\n" . $file; $update['release'] = CORE_RELEASE;
continue; $update['version_level'] = CORE_VERSION_LEVEL;
} $update['fixbug'] = CORE_FIXBUG;
$modifylist[ $file ] = $file; $update['license_time'] = defined('LICENSE_CTIME') ? LICENSE_CTIME : 0;
$update['license_serveruid'] = defined('LICENSE_SERVERUID') ? LICENSE_SERVERUID : 0;
$update['license_version'] = defined('LICENSE_VERSION') ? LICENSE_VERSION : '';
$update['path'] = 'upgrade.xml';
$data = '';
foreach ($update as $key => $value) {
$data .= $key . '=' . rawurlencode($value) . '&';
}
$upgradefile = $this->upgradeurl . rawurlencode(base64_encode($data)) . '/' . TIMESTAMP;
$response = xml2array(dfsockopen($upgradefile, 0, '', '', FALSE, '', 10));
if (isset($response['cross']) || isset($response['patch'])) {
C::t('setting')->update('upgrade', $response);
$return = true;
} else { } else {
$showlist[ $file ] = $file; C::t('setting')->update('upgrade', '');
$return = false;
} }
} updatecache('setting');
} $this->upgradeinformation();
if ( $searchlist ) { return $return;
$file = DZZ_ROOT . './data/update/pichome' . $upgradeinfo[ 'latestversion' ] . '/updatelist.tmp';
$upgradedata = file_get_contents( $file );
$upgradedata = str_replace( $searchlist, '', $upgradedata );
$fp = fopen( $file, 'w' );
if ( $fp ) {
fwrite( $fp, $upgradedata );
}
} }
return array( $modifylist, $showlist, $ignorelist, $newlist ); public function check_authlic()
} {
include_once libfile('function/cache');
global $_G;
$return = false;
$checkdata['mcode'] = defined('LICENSE_MCODE') ? LICENSE_MCODE:$_G['setting']['machinecode'];
$checkdata['version'] = defined('LICENSE_VERSION') ? LICENSE_VERSION:CORE_VERSION;
$checkdata['uid'] = defined('LICENSE_SERVERUID') ? LICENSE_SERVERUID:0;
$checkdata['company'] = defined('LICENSE_COMPANY') ? LICENSE_COMPANY:'';
$checkdata['lunum'] = defined('LICENSE_LIMIT') ? LICENSE_LIMIT:1;
$checkdata['dateline'] = defined('LICENSE_CTIME') ? LICENSE_CTIME:0;
$checkdata['expiretime'] = LICENSE_EXPIRE;
$checkdata['siteurl'] = $_G['siteurl'];
$checkdata['sitename'] = $_G['setting']['sitename'];
$checkdata['unum'] = CURRTENT_UNUM;
$data = '';
public function compare_file_content( $file, $remotefile ) { foreach ($checkdata as $key => $value) {
if ( !preg_match( '/\.php$|\.htm$/i', $file ) ) { $data .= $key . '=' . rawurlencode($value) . '&';
return false;
}
$content = preg_replace( '/\s/', '', file_get_contents( $file ) );
$ctx = stream_context_create( array( 'http' => array( 'timeout' => 60 ) ) );
$remotecontent = preg_replace( '/\s/', '', file_get_contents( $remotefile, false, $ctx ) );
if ( strcmp( $content, $remotecontent ) ) {
return false;
} else {
return true;
}
}
public function check_upgrade() {
include_once libfile( 'class/xml' );
include_once libfile( 'function/cache' );
$return = false;
$upgradefile = $this->upgradeurl . $this->versionpath() . '/upgrade.xml';
$response = xml2array( dfsockopen( $upgradefile, 0, '', '', FALSE, '', 10 ) );
if ( isset( $response[ 'cross' ] ) || isset( $response[ 'patch' ] ) ) {
C::t( 'setting' )->update( 'upgrade', $response );
$return = true;
} else {
C::t( 'setting' )->update( 'upgrade', '' );
$return = false;
}
updatecache( 'setting' );
$this->upgradeinformation();
return $return;
}
public function check_folder_perm( $updatefilelist ) {
foreach ( $updatefilelist as $file ) {
if ( !file_exists( DZZ_ROOT . $file ) ) {
if ( !$this->test_writable( dirname( DZZ_ROOT . $file ) ) ) {
return false;
} }
} else { $checkurl = $this->checkurl . rawurlencode(base64_encode($data)) . "/" . TIMESTAMP;
if ( !is_writable( DZZ_ROOT . $file ) ) {
return false;
}
}
}
return true;
}
public function test_writable( $dir ) { $response = json_decode(dfsockopen($checkurl, 0, '', '', FALSE, '', 5), true);
$writeable = 0;
$this->mkdirs( $dir ); if ($response['authcode']) {
if ( is_dir( $dir ) ) { C::t('setting')->update('sitelicensedata', $response['authcode']);
if ( $fp = @fopen( "$dir/test.txt", 'w' ) ) { }
@fclose( $fp );
@unlink( "$dir/test.txt" ); updatecache('setting');
$writeable = 1; return $return;
} else { }
public function check_folder_perm($updatefilelist)
{
foreach ($updatefilelist as $file) {
if (!file_exists(DZZ_ROOT . $file)) {
if (!$this->test_writable(dirname(DZZ_ROOT . $file))) {
return false;
}
} else {
if (!is_writable(DZZ_ROOT . $file)) {
return false;
}
}
}
return true;
}
public function test_writable($dir)
{
$writeable = 0; $writeable = 0;
} $this->mkdirs($dir);
} if (is_dir($dir)) {
return $writeable; if ($fp = @fopen("$dir/test.txt", 'w')) {
} @fclose($fp);
@unlink("$dir/test.txt");
public function download_file( $upgradeinfo, $file, $folder = '', $md5 = '', $position = 0, $offset = 0 ) { $writeable = 1;
$dir = DZZ_ROOT . './data/update/pichome' . $upgradeinfo[ 'latestversion' ] . '/'; } else {
$this->mkdirs( dirname( $dir . $file ) ); $writeable = 0;
$downloadfileflag = true; }
if ( !$position ) {
$mode = 'wb';
} else {
$mode = 'ab';
}
$fp = fopen( $dir . $file, $mode );
if ( !$fp ) {
return 0;
}
$response = dfsockopen( $this->upgradeurl . $upgradeinfo[ 'latestversion' ] . '/' . $folder . '/' . $file, $offset, '', '', FALSE, '', 120, TRUE, 'URLENCODE', FALSE, $position );
if ( $response ) {
if ( $offset && strlen( $response ) == $offset ) {
$downloadfileflag = false;
}
fwrite( $fp, $response );
}
fclose( $fp );
if ( $downloadfileflag ) {
if ( $md5 && md5_file( $dir . $file ) == $md5 ) {
return 2;
} else {
if ( $md5 )@unlink( $dir . $file );
return 0;
}
} else {
return 1;
}
}
public function mkdirs( $dir ) {
if ( !is_dir( $dir ) ) {
if ( !self::mkdirs( dirname( $dir ) ) ) {
return false;
}
if ( !@mkdir( $dir, 0777 ) ) {
return false;
}
@touch( $dir . '/index.htm' );
@chmod( $dir . '/index.htm', 0777 );
}
return true;
}
public function copy_file( $srcfile, $desfile, $type ) {
global $_G;
if ( !is_file( $srcfile ) ) {
return false;
}
if ( $type == 'file' ) {
$this->mkdirs( dirname( $desfile ) );
copy( $srcfile, $desfile );
} elseif ( $type == 'ftp' ) {
$siteftp = $_GET[ 'siteftp' ];
$siteftp[ 'on' ] = 1;
$siteftp[ 'password' ] = authcode( $siteftp[ 'password' ], 'ENCODE', md5( $_G[ 'config' ][ 'security' ][ 'authkey' ] ) );
$ftp = & dzz_ftp::instance( $siteftp );
$ftp->connect();
$ftp->upload( $srcfile, $desfile );
if ( $ftp->error() ) {
return false;
}
}
return true;
}
public function versionpath() {
$versionpath = '';
foreach ( explode( ' ', CORE_VERSION ) as $unit ) {
$versionpath = $unit;
break;
}
return $versionpath;
}
function copy_dir( $srcdir, $destdir ) {
$dir = @opendir( $srcdir );
while ( $entry = @readdir( $dir ) ) {
$file = $srcdir . $entry;
if ( $entry != '.' && $entry != '..' ) {
if ( is_dir( $file ) ) {
self::copy_dir( $file . '/', $destdir . $entry . '/' );
} else {
self::mkdirs( dirname( $destdir . $entry ) );
copy( $file, $destdir . $entry );
} }
} return $writeable;
} }
closedir( $dir );
}
function rmdirs( $srcdir ) { public function download_file($upgradeinfo, $file, $folder = '', $md5 = '', $position = 0, $offset = 0)
$dir = @opendir( $srcdir ); {
while ( $entry = @readdir( $dir ) ) { global $_G;
$file = $srcdir . $entry; $dir = DZZ_ROOT . './data/update/pichome' . $upgradeinfo['latestversion'] . '/';
if ( $entry != '.' && $entry != '..' ) { $this->mkdirs(dirname($dir . $file));
if ( is_dir( $file ) ) { $downloadfileflag = true;
self::rmdirs( $file . '/' );
if (!$position) {
$mode = 'wb';
} else { } else {
@unlink( $file ); $mode = 'ab';
} }
} $fp = fopen($dir . $file, $mode);
} if (!$fp) {
closedir( $dir ); return 0;
rmdir( $srcdir ); }
} $update = array();
$update['mcode'] = $_G['setting']['machinecode'];
$update['siteurl'] = $_G['siteurl'];
$update['sitename'] = $_G['setting']['sitename'];
$update['version'] = CORE_VERSION;
$update['release'] = CORE_RELEASE;
$update['version_level'] = CORE_VERSION_LEVEL;
$update['fixbug'] = CORE_FIXBUG;
$update['license_time'] = defined('LICENSE_CTIME') ? LICENSE_CTIME : 0;
$update['license_serveruid'] = defined('LICENSE_SERVERUID') ? LICENSE_SERVERUID : 0;
$update['license_version'] = defined('LICENSE_VERSION') ? LICENSE_VERSION : '';
$update['path'] = $upgradeinfo['latestversion'] . '/' . $folder . '/' . $file;
function upgradeinformation() { $data = '';
global $_G; foreach ($update as $key => $value) {
include_once DZZ_ROOT . './core/core_version.php'; $data .= $key . '=' . rawurlencode($value) . '&';
$update = array(); }
$update[ 'uniqueid' ] = C::t( 'setting' )->fetch( 'siteuniqueid' );
$update[ 'clientuin' ] = C::t( 'setting' )->fetch( 'clientuin' );
$update[ 'usum' ] = DB::result_first( "select COUNT(*) from %t where 1", array( 'user' ) );
$update[ 'siteurl' ] = $_G[ 'siteurl' ];
$update[ 'sitename' ] = $_G[ 'setting' ][ 'sitename' ];
$update[ 'version' ] = CORE_VERSION;
$update[ 'release' ] = CORE_RELEASE;
$update[ 'version_level' ] = CORE_VERSION_LEVEL;
$update[ 'fixbug' ] = CORE_FIXBUG;
$update[ 'license_limit' ] = LICENSE_LIMIT;
$update[ 'license_version' ] = LICENSE_VERSION;
$update[ 'license_company' ] = LICENSE_COMPANY;
$data = '';
foreach ( $update as $key => $value ) {
$data .= $key . '=' . rawurlencode( $value ) . '&';
}
$upgradeurl = APP_CHECK_URL . "market/system/info/" . rawurlencode( base64_encode( $data ) ) . "/" . TIMESTAMP;
dfsockopen( $upgradeurl, 0, '', '', FALSE, '', 1 ); $upgradefile = $this->upgradeurl . rawurlencode(base64_encode($data)) . '/' . TIMESTAMP;
} $response = dfsockopen($upgradefile, $offset, '', '', FALSE, '', 120, TRUE, 'URLENCODE', TRUE, $position);
if ($response) {
if ($offset && strlen($response) == $offset) {
$downloadfileflag = false;
}
fwrite($fp, $response);
}
fclose($fp);
if ($downloadfileflag) {
if ($md5 && md5_file($dir . $file) == $md5) {
return 2;
} else {
if ($md5) @unlink($dir . $file);
return 0;
}
} else {
return 1;
}
}
public function mkdirs($dir)
{
if (!is_dir($dir)) {
if (!self::mkdirs(dirname($dir))) {
return false;
}
if (!@mkdir($dir, 0777)) {
return false;
}
@touch($dir . '/index.htm');
@chmod($dir . '/index.htm', 0777);
}
return true;
}
public function copy_file($srcfile, $desfile, $type)
{
global $_G;
if (!is_file($srcfile)) {
return false;
}
if ($type == 'file') {
$this->mkdirs(dirname($desfile));
copy($srcfile, $desfile);
} elseif ($type == 'ftp') {
$siteftp = $_GET['siteftp'];
$siteftp['on'] = 1;
$siteftp['password'] = authcode($siteftp['password'], 'ENCODE', md5($_G['config']['security']['authkey']));
$ftp = &dzz_ftp::instance($siteftp);
$ftp->connect();
$ftp->upload($srcfile, $desfile);
if ($ftp->error()) {
return false;
}
}
return true;
}
public function versionpath()
{
$versionpath = '';
foreach (explode(' ', CORE_VERSION) as $unit) {
$versionpath = $unit;
break;
}
return $versionpath;
}
function copy_dir($srcdir, $destdir)
{
$dir = @opendir($srcdir);
while ($entry = @readdir($dir)) {
$file = $srcdir . $entry;
if ($entry != '.' && $entry != '..') {
if (is_dir($file)) {
self::copy_dir($file . '/', $destdir . $entry . '/');
} else {
self::mkdirs(dirname($destdir . $entry));
copy($file, $destdir . $entry);
}
}
}
closedir($dir);
}
function rmdirs($srcdir)
{
$dir = @opendir($srcdir);
while ($entry = @readdir($dir)) {
$file = $srcdir . $entry;
if ($entry != '.' && $entry != '..') {
if (is_dir($file)) {
self::rmdirs($file . '/');
} else {
@unlink($file);
}
}
}
closedir($dir);
rmdir($srcdir);
}
function upgradeinformation()
{
global $_G;
include_once DZZ_ROOT . './core/core_version.php';
$update = array();
$update['mcode'] = $_G['setting']['machinecode'];
$update['unum'] = CURRTENT_UNUM;
$update['siteurl'] = $_G['siteurl'];
$update['sitename'] = $_G['setting']['sitename'];
$update['version'] = CORE_VERSION;
$update['release'] = CORE_RELEASE;
$update['version_level'] = CORE_VERSION_LEVEL;
$update['fixbug'] = CORE_FIXBUG;
$update['license_limit'] = defined('LICENSE_LIMIT') ? LICENSE_LIMIT : 0;
$update['license_version'] = defined('LICENSE_VERSION') ? LICENSE_VERSION : '';
$update['license_company'] = defined('LICENSE_COMPANY') ? LICENSE_COMPANY : '';
$update['license_time'] = defined('LICENSE_CTIME') ? LICENSE_CTIME : 0;
$update['license_serveruid'] = defined('LICENSE_SERVERUID') ? LICENSE_SERVERUID : 0;
$data = '';
foreach ($update as $key => $value) {
$data .= $key . '=' . rawurlencode($value) . '&';
}
$upgradeurl = APP_CHECK_URL . "authlicense/count/info/" . rawurlencode(base64_encode($data)) . "/" . TIMESTAMP;
dfsockopen($upgradeurl, 0, '', '', FALSE, '', 1);
}
} }
?> ?>

26
core/class/dzz/sysreg.php Normal file
View File

@@ -0,0 +1,26 @@
<?php
namespace core\dzz;
use \core as C;
use \core\dzz\Hook as Hook;
use \DB as DB;
use \IO as IO;
class Sysreg{
public $official = 'http://oaooa.com/';
public function run(){
$mcode = C::t('setting')->fetch('machinecode');
if(!$mcode){
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
$onlineip = $_SERVER['REMOTE_ADDR'];
$mcode = 'PH'.$chars[date('y')%60].$chars[date('n')].
$chars[date('j')].$chars[date('G')].$chars[date('i')].
$chars[date('s')].substr(md5($onlineip.TIMESTAMP), 0, 4).random(4);
C::t('setting')->update('machinecode',$mcode);
C::t('setting')->update('adminfirstlogin',0);
}else{
C::t('setting')->update('adminfirstlogin',0);
}
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,432 @@
<?php
if (!defined('IN_OAOOA')) {
exit('Access Denied');
}
class table_pichome_collectlist extends dzz_table
{
public function __construct()
{
$this->_table = 'pichome_collectlist';
$this->_pk = 'id';
$this->_pre_cache_key = 'pichome_collectlist';
$this->_cache_ttl = 3600;
parent::__construct();
}
//添加收藏
public function add_collect($data){
$perm = C::t('pichome_collectuser')->get_perm_by_clid($data['clid']);
if($perm < 2){
return array('error'=>'no_perm');
}
if(empty($data['rid'])) return true;
$existsdata = DB::fetch_all("select rid from %t where rid in(%n) and clid = %d and cid = %d",array($this->_table,$data['rid'],$data['clid'],$data['cid']));
$existsrids = [];
foreach($existsdata as $v){
$existsrids[] = $v['rid'];
}
$totalcount = count($data['rid']);
$data['rid'] = array_diff($data['rid'],$existsrids);
if(empty($data['rid'])) return true;
//记录加入收藏个数
$counti = 0;
$namesarr = [];
foreach(DB::fetch_all("select appid,rid,name from %t where rid in(%n)",array('pichome_resources',$data['rid'])) as $v){
$setarr = [
'rid'=>$v['rid'],
'cid'=>$data['cid'],
'clid'=>$data['clid'],
'uid'=>$data['uid'],
'username'=>$data['username'],
'dateline'=>$data['dateline'],
'appid'=>$v['appid'],
];
$namesarr[] = $v['name'];
if(parent::insert($setarr,1)) $counti += 1;
}
if($counti){
$filenamearr = array_slice($namesarr,0,5);
$filename = implode(',',$filenamearr).'等'.$totalcount.'个文件';
//如果收藏有分类增加该分类下文件数
$position = DB::result_first("select name from %t where clid = %d",array('pichome_collect',$data['clid']));
if($data['cid']){
C::t('pichome_collectcat')->add_filenum_by_cid($data['cid'],$counti);
$pathkey = DB::result_first("select pathkey from %t where cid = %d",array('pichome_collectcat',$data['cid']));
$pathkey = str_replace('_','',$pathkey);
$patharr = explode('-',$pathkey);
foreach(DB::fetch_all("select catname from %t where cid in(%n)",array('pichome_collectcat',$patharr)) as $v){
$position .= '/'.$v['catname'];
}
}
C::t('pichome_collect')->add_filenum_by_clid($data['clid'],$counti);
$enventbodydata = ['username'=>getglobal('username'),'filename'=>$filename,'collectname'=>$position,'rids'=> $data['rid']];
$enventdata = [
'eventbody' =>'collectfile' ,
'uid' => getglobal('uid'),
'username' => getglobal('username'),
'bodydata' => json_encode($enventbodydata),
'clid' =>$data['clid'],
'cid' =>($data['cid']) ? $data['cid']:0,
'do' => 'collect_file',
'do_obj' =>$filename,
'dateline'=>TIMESTAMP
];
C::t('pichome_collectevent')->insert($enventdata);
}
$this->update_collect_thumb($data['clid']);
return true;
}
public function delete($id){
if(!is_array($id)) $id = (array)$id;
if(parent::delete($id)){
//删除对应分享
if(!empty($id))DB::delete('pichome_share','filepath in('.dimplode($id).') and stype = 1');
}
return true;
}
//取消收藏
public function cancle_filecollect($lids,$clid,$cid = 0){
$perm = C::t('pichome_collectuser')->get_perm_by_clid($clid);
if($perm < 2){
return array('error'=>'no_perm');
}
if(!is_array($lids)) $lids = (array)$lids;
if(empty($lids)) return true;
$counti = 0;
$rids = [];
foreach(DB::fetch_all("select rid,id,cid,clid from %t where id in(%n)",array($this->_table,$lids)) as $v){
$rids[] = $v['rid'];
if($this->delete($v['id'])){
$counti += 1;
C::t('pichome_collectcat')->add_filenum_by_cid($v['cid'],-1);
C::t('pichome_collect')->add_filenum_by_clid($v['clid'],-1);
}
}
$position = DB::result_first("select name from %t where clid = %d",array('pichome_collect',$clid));
if($cid){
$pathkey = DB::result_first("select pathkey from %t where cid = %d",array('pichome_collectcat',$cid));
$pathkey = str_replace('_','',$pathkey);
$patharr = explode('-',$pathkey);
foreach(DB::fetch_all("select catname from %t where cid in(%n)",array('pichome_collectcat',$patharr)) as $v){
$position .= '/'.$v['catname'];
}
}
$namesarr = [];
foreach(DB::fetch_all("select name from %t where rid in(%n) limit 0,5",array('pichome_resources',$rids)) as $v){
$namesarr[] = $v['name'];
}
$filename = implode(',',$namesarr).'等'.$counti.'个文件';
$enventbodydata = ['username'=>getglobal('username'),'filename'=>$filename,'collectname'=>$position,'rid'=>$rids];
$enventdata = [
'eventbody' =>'canclecollectfile' ,
'uid' => getglobal('uid'),
'username' => getglobal('username'),
'bodydata' => json_encode($enventbodydata),
'clid' =>$clid,
'cid' =>($cid) ? $cid:0,
'do' => 'cancle_collectfile',
'do_obj' =>$filename,
'dateline'=>TIMESTAMP
];
C::t('pichome_collectevent')->insert($enventdata);
$this->update_collect_thumb($clid);
return true;
}
//更新收藏夹缩略图
public function update_collect_thumb($clid){
$first = false;
$collectdata = C::t('pichome_collect')->fetch($clid);
if(!C::t('pichome_collectlist')->fetch($collectdata['lid'])){
$first = true;
}else{
$first = false;
}
$setarr = [];
if($first){
//取得第一张图
$firstdata = DB::fetch_first("select * from %t where clid = %d order by id asc",array($this->_table,$clid));
if($firstdata){
$icondatas = C::t('pichome_resources')->geticondata_by_rid($firstdata['rid']);
$setarr['covert'] = $icondatas['icondata'];
$setarr['lid'] = $firstdata['id'];
}else{
$setarr['covert'] = '';
$setarr['lid'] = 0;
}
}
//取得最新两张图
$i = 2;
$coverdata = DB::fetch_all("select rid,id from %t where clid = %d order by id desc limit 0,2",array($this->_table,$clid));
$count = count($coverdata);
if($count == 0){
$setarr['covert1'] = '';
$setarr['covert2'] = '';
$setarr['lid1'] = 0;
$setarr['lid2'] = 0;
}elseif($count ==1) {
foreach ($coverdata as $v) {
$icondatas = C::t('pichome_resources')->geticondata_by_rid($v['rid']);
$setarr['covert' . $i] = $icondatas['icondata'];
$setarr['lid' . $i] = $v['id'];
$i--;
}
$setarr['covert2'] = '';
$setarr['lid2'] = 0;
}else{
foreach($coverdata as $v){
$icondatas = C::t('pichome_resources')->geticondata_by_rid($v['rid']);
$setarr['covert'.$i] = $icondatas['icondata'];
$setarr['lid'.$i] = $v['id'];
$i--;
}
}
C::t('pichome_collect')->update($clid,$setarr);
return true;
}
//删除收藏夹所有文件
public function delete_by_clid($clid){
return DB::delete($this->_table,array('clid'=>$clid));
}
//移动文件到某收藏
public function move_collectfile($lids,$oclid,$ocid=0){
if(!is_array($lids)) $lids = (array)$lids;
if(empty($lids)) return true;
$total = count($lids);
$cids = [];
$clid = 0;
$counti = 0;
$rids=[];
foreach(DB::fetch_all("select * from %t where id in(%n)",array('pichome_collectlist',$lids)) as $v){
$cids[] = $v['cid'];
$clid = $v['clid'];
//如果收藏位置相同则不做任何处理
if($v['clid'] == $oclid && $v['cid'] == $ocid){
/* if(parent::delete($v['id'])){
//收藏夹文件数和分类数减1
if($v['cid']) C::t('pichome_collectcat')->add_filenum_by_cid($v['cid'],-1);
if($v['clid'])C::t('pichome_collect')->add_filenum_by_clid($v['clid'],-1);
}*/
continue;
}else{
//如果该收藏文件在目标位置已经存在则删除原收藏位置文件
if($id = DB::result_first("select id from %t where rid = %s and clid = %d and cid = %d",
array($this->_table,$v['rird'],$oclid,$ocid))){
$this->delete($id);
C::t('pichome_collect')->add_filenum_by_clid($clid,-1);
if($v['cid'])C::t('pichome_collectcat')->add_filenum_by_cid($v['cid'],-1);
}else{
$setarr = [
'uid'=>getglobal('uid'),
'username'=>getglobal('username'),
'clid'=>$oclid,
'cid'=>$ocid
];
/* echo $ocid;
print_r($v);die;*/
//更新数据
if(parent::update($v['id'],$setarr)){
//如果移动位置不在一个收藏夹
if($v['clid'] != $oclid){
//增加移入收藏夹文件数
C::t('pichome_collect')->add_filenum_by_clid($oclid,1);
if($v['clid']) C::t('pichome_collect')->add_filenum_by_clid($clid,-1);
}
if($v['cid'])C::t('pichome_collectcat')->add_filenum_by_cid($v['cid'],-1);
$counti++;
//增加移入分类文件数
if($ocid)C::t('pichome_collectcat')->add_filenum_by_cid($ocid,1);
}
}
}
$rids[] = $v['rid'];
}
//如果移动文件位置cid为多个则不记入动态
$cids = array_unique($cids);
if(count($cids) == 1) $cid = $cids[0];
else $cid = 0;
$namesarr = [];
foreach(DB::fetch_all("select name from %t where rid in(%n) limit 0,5",array('pichome_resources',$rids)) as $v){
$namesarr[] = $v['name'];
}
$filename = implode(',',$namesarr).'等'.$total.'个文件';
$oposition = DB::result_first("select name from %t where clid = %d",array('pichome_collect',$oclid));
if($ocid){
$pathkey = DB::result_first("select pathkey from %t where cid = %d",array('pichome_collectcat',$ocid));
$pathkey = str_replace('_','',$pathkey);
$patharr = explode('-',$pathkey);
foreach(DB::fetch_all("select catname from %t where cid in(%n)",array('pichome_collectcat',$patharr)) as $v){
$oposition .= '/'.$v['catname'];
}
}
//更新移出收藏文件数
$position = DB::result_first("select name from %t where clid = %d",array('pichome_collect',$clid));
if($cid){
$pathkey = DB::result_first("select pathkey from %t where cid = %d",array('pichome_collectcat',$cid));
$pathkey = str_replace('_','',$pathkey);
$patharr = explode('-',$pathkey);
foreach(DB::fetch_all("select catname from %t where cid in(%n)",array('pichome_collectcat',$patharr)) as $v){
$position .= '/'.$v['catname'];
}
}
//移入动态
$enventbodydata = ['username'=>getglobal('username'),'filename'=>$filename,'collectname'=>$position,'newcolletname'=>$oposition,'rid'=>$rids];
$enventdata = [
'eventbody' =>'movecollectfileto' ,
'uid' => getglobal('uid'),
'username' => getglobal('username'),
'bodydata' => json_encode($enventbodydata),
'clid' =>$oclid,
'cid' =>($ocid) ? $ocid:0,
'do' => 'move_collectfileto',
'do_obj' =>$filename,
'dateline'=>TIMESTAMP
];
C::t('pichome_collectevent')->insert($enventdata);
//更新移入文件收藏缩略图
if($oclid != $clid) $this->update_collect_thumb($oclid);
//移出动态
$enventbodydata = ['username'=>getglobal('username'),'filename'=>$filename,'collectname'=>$position,'newcolletname'=>$oposition,'rid'=>$rids];
$enventdata = [
'eventbody' =>'delcollectfilefrom' ,
'uid' => getglobal('uid'),
'username' => getglobal('username'),
'bodydata' => json_encode($enventbodydata),
'clid' =>$clid,
'cid' =>($cid) ? $cid:0,
'do' => 'del_collectfilefrom',
'do_obj' =>$filename,
'dateline'=>TIMESTAMP
];
C::t('pichome_collectevent')->insert($enventdata);
//更新移出文件收藏缩略图
if($clid && $oclid != $clid) $this->update_collect_thumb($oclid);
return true;
}
//收藏已收藏文件到指定收藏
public function collect_by_lid($lids,$clid,$cid=0){
$perm = C::t('pichome_collectuser')->get_perm_by_clid($clid);
if($perm < 2){
return array('error'=>'no_perm');
}
if(!is_array($lids)) $lids = (array)$lids;
if(empty($lids)) return true;
$rids = [];
foreach(DB::fetch_all("select rid,id from %t where id in(%n)",array($this->_table,$lids)) as $v){
$rids[] = $v['rid'];
}
$existsrids = [];
foreach(DB::fetch_all("select rid from %t where rid in(%n) and clid = %d and cid = %d",array($this->_table,$rids,$clid,$cid)) as $v){
$existsrids[] = $v['rid'];
}
$totalcount = count($rids);
$insertrids = array_diff($rids,$existsrids);
//记录加入收藏个数
$counti = 0;
$namesarr = [];
foreach(DB::fetch_all("select appid,rid,name from %t where rid in(%n)",array('pichome_resources',$insertrids)) as $v){
$setarr = [
'rid'=>$v['rid'],
'cid'=>$cid,
'clid'=>$clid,
'uid'=>getglobal('uid'),
'username'=>getglobal('username'),
'dateline'=>TIMESTAMP,
'appid'=>$v['appid'],
];
$namesarr[] = $v['name'];
if(parent::insert($setarr,1)) $counti += 1;
}
if($counti){
$filenamearr = array_slice($namesarr,0,5);
$filename = implode(',',$filenamearr).'等'.$totalcount.'个文件';
//如果收藏有分类增加该分类下文件数
$position = DB::result_first("select name from %t where clid = %d",array('pichome_collect',$clid));
if($cid){
C::t('pichome_collectcat')->add_filenum_by_cid($cid,$counti);
$pathkey = DB::result_first("select pathkey from %t where cid = %d",array('pichome_collectcat',$cid));
$pathkey = str_replace('_','',$pathkey);
$patharr = explode('-',$pathkey);
foreach(DB::fetch_all("select catname from %t where cid in(%n)",array('pichome_collectcat',$patharr)) as $v){
$position .= '/'.$v['catname'];
}
}
C::t('pichome_collect')->add_filenum_by_clid($clid,$counti);
$enventbodydata = ['username'=>getglobal('username'),'filename'=>$filename,'collectname'=>$position,'rids'=>$rids];
$enventdata = [
'eventbody' =>'collectfile' ,
'uid' => getglobal('uid'),
'username' => getglobal('username'),
'bodydata' => json_encode($enventbodydata),
'clid' =>$clid,
'cid' =>$cid ? $cid:0,
'do' => 'collect_file',
'do_obj' =>$filename,
'dateline'=>TIMESTAMP
];
C::t('pichome_collectevent')->insert($enventdata);
}
$this->update_collect_thumb($clid);
return true;
}
public function delete_by_rids($rids,$uid,$username){
if(!$rids) $rids = (array)$rids;
if(empty($rids)) return true;
$clids = [];
foreach(DB::fetch_all("select * from %t where rid in(%n)",array($this->_table,$rids)) as $v){
$clids[$v['clid']][] = $v['id'];
}
foreach ($clids as $k=>$val){
$clid = $k;
$counti = 0;
$rids = [];
foreach(DB::fetch_all("select rid,id,cid,clid from %t where id in(%n)",array($this->_table,$val)) as $v){
$rids[] = $v['rid'];
if($this->delete($v['id'])){
$counti += 1;
if($v['cid'])C::t('pichome_collectcat')->add_filenum_by_cid($v['cid'],-1);
if($v['clid'])C::t('pichome_collect')->add_filenum_by_clid($v['clid'],-1);
}
}
$position = DB::result_first("select name from %t where clid = %d",array('pichome_collect',$clid));
$namesarr = [];
foreach(DB::fetch_all("select name from %t where rid in(%n) limit 0,5",array('pichome_resources',$rids)) as $v){
$namesarr[] = $v['name'];
}
$filename = implode(',',$namesarr).'等'.$counti.'个文件';
$enventbodydata = ['username'=>getglobal('username'),'filename'=>$filename,'collectname'=>$position,'rid'=>$rids];
$enventdata = [
'eventbody' =>'canclecollectfile' ,
'uid' => $uid,
'username' => $username,
'bodydata' => json_encode($enventbodydata),
'clid' =>$clid,
'cid' =>0,
'do' => 'cancle_collectfile',
'do_obj' =>$filename,
'dateline'=>TIMESTAMP
];
C::t('pichome_collectevent')->insert($enventdata);
$this->update_collect_thumb($clid);
}
return true;
}
}

View File

@@ -1,153 +1,182 @@
<?php <?php
if(!defined('IN_OAOOA')) { if(!defined('IN_OAOOA')) {
exit('Access Denied'); exit('Access Denied');
} }
class table_pichome_folder extends dzz_table class table_pichome_folder extends dzz_table
{
public function __construct()
{ {
public function __construct()
{
$this->_table = 'pichome_folder'; $this->_table = 'pichome_folder';
$this->_pk = 'fid'; $this->_pk = 'fid';
$this->_pre_cache_key = 'pichome_folder'; $this->_pre_cache_key = 'pichome_folder';
$this->_cache_ttl = 3600; $this->_cache_ttl = 3600;
parent::__construct(); parent::__construct();
}
//根据appid删除目录
public function delete_by_appid($appid){
$fids = [];
foreach(DB::fetch_all("select fid from %t where appid = %s",array($this->_table,$appid)) as $v){
$fids[] = $v['fid'];
} }
//根据appid删除目录 $hookdata = ['appid'=>$appid];
public function delete_by_appid($appid){ Hook::listen("delpichomefolderafter",$hookdata);
$fids = []; return parent::delete($fids);
foreach(DB::fetch_all("select fid from %t where appid = %s",array($this->_table,$appid)) as $v){ }
$fids[] = $v['fid']; //插入和更新目录数据
} public function insert_folderdata_by_appid($appid,$folderdata,$folderarr = array(),$pfid='',$pathkey=''){
return parent::delete($fids); foreach ($folderdata as $v) {
} $fid = $v['id'].$appid;
//插入和更新目录数据 $setarr=['fname'=>$v['name'],'dateline'=>TIMESTAMP,'pfid'=>$pfid,'appid'=>$appid,'pathkey'=>($pathkey)?$pathkey:$fid];
public function insert_folderdata_by_appid($appid,$folderdata,$folderarr = array(),$pfid='',$pathkey=''){ if($v['coverId']) $setarr['cover'] = $v['coverId'].$appid;
foreach ($folderdata as $v) { if($v['password']) $setarr['password'] = $v['password'];
$fid = $v['id'].$appid; if($v['passwordTips']) $setarr['passwordtips'] = trim($v['passwordTips']);
$setarr=['fname'=>$v['name'],'dateline'=>TIMESTAMP,'pfid'=>$pfid,'appid'=>$appid,'pathkey'=>($pathkey)?$pathkey:$fid]; //如果已经有该id时更新
if($v['coverId']) $setarr['cover'] = $v['coverId'].$appid; if($fname = DB::result_first("select fname from %t where fid = %s",array($this->_table,$fid))){
if($v['password']) $setarr['password'] = $v['password']; parent::update($fid,$setarr);
if($v['passwordTips']) $setarr['passwordtips'] = trim($v['passwordTips']); $setarr['fid'] = $fid;
//如果已经有该id时更新
if($fname = DB::result_first("select fname from %t where fid = %s",array($this->_table,$fid))){
parent::update($fid,$setarr);
$setarr['fid'] = $fid;
}else{
//如果插入数据失败跳过当前层级目录
$setarr['fid'] = $fid;
if(!$setarr['fname']) continue;
if(!parent::insert($setarr))continue;
}
$folderarr[] = $setarr;
if ($v['children']) {
$tmpchild = $v['children'];
foreach($tmpchild as $child){
$cfid = $child['id'].$appid;
$folderarr = $this->insert_folderdata_by_appid($appid,[$child],$folderarr,$fid,($pathkey) ? $pathkey.$cfid:$fid.$cfid);
}
}
}
return $folderarr;
}
//检查目录是否包含密码,多个目录时,只有都包含密码才视为包含密码
public function check_haspasswrod($folderids,$appid){
$haspassword = 0;
//组合目录id
$fids = [];
foreach($folderids as $v){
$fids[] = $v.$appid;
}
$haspasswordfids = [];
foreach($fids as $val){
//查找当前目录及其上级中任意一层包含密码,则视为该目录包含密码
if(DB::result_first("select fid from %t where pathkey regexp %s and password != '' ",array($this->_table,'.*'.$val.'$'))){
$haspasswordfids[$val] = 1;
}else{
$haspasswordfids[$val] = 0;
}
}
foreach($haspasswordfids as $v){
if(!$v) {
$haspassword = 0;
break;
}else{
$haspassword = 1;
}
}
unset($haspasswordfids);
unset($folderids);
return $haspassword;
}
//根据fid判断当前目录及其上机是否有密码如果当前目录不存在则返回2存在密码返回1
public function check_password_byfid($fid){
if($data = parent::fetch($fid)){
return DB::result_first("select fid from %t where pathkey regexp %s and password != '' ",array($this->_table,'.*'.$fid.'$')) ? 1:0;
}else{ }else{
return 2; //如果插入数据失败跳过当前层级目录
$setarr['fid'] = $fid;
if(!$setarr['fname']) continue;
if(!parent::insert($setarr))continue;
}
$folderarr[] = $setarr;
if ($v['children']) {
$tmpchild = $v['children'];
foreach($tmpchild as $child){
$cfid = $child['id'].$appid;
$folderarr = $this->insert_folderdata_by_appid($appid,[$child],$folderarr,$fid,($pathkey) ? $pathkey.$cfid:$fid.$cfid);
}
} }
}
//转义查询语句当中的path
public function path_transferred_meaning($path){
return str_replace(array('\'','(',')','+','^','$','{','}','[',']','#'),array("\'",'\(','\)','\+','\^','\$','\{','\}','\[','\]','\#'),$path);
} }
return $folderarr;
}
public function fetch_all_folder_by_appid($appid,$pfid=''){ public function insert_data($setarr){
foreach(DB::fetch_all("select fid,fname from %t where appid = %s and password = '' and pfid = %s",array($this->_table,$appid,$pfid)) as $v){ $fid = $setarr['fid'];
$v['num'] = C::t('pichome_folderresources')->get_sum_by_fid($v['fid']); if($fname = DB::result_first("select count(fid) from %t where fid = %s and appid = %s",array($this->_table,$setarr['fid'],$setarr['appid']))){
$v['children'] = $this->fetch_all_folder_by_appid($appid,$v['fid']); unset($setarr['fid']);
$returndata[] = $v; parent::update($fid,$setarr);
} }else{
return $returndata; parent::insert($setarr);
} }
return $fid;
}
//检查目录是否包含密码,多个目录时,只有都包含密码才视为包含密码
public function check_haspasswrod($fids,$appid){
$haspassword = 0;
//组合目录id
$haspasswordfids = [];
foreach($fids as $val){
//查找当前目录及其上级中任意一层包含密码,则视为该目录包含密码
if(DB::result_first("select fid from %t where pathkey regexp %s and password != '' ",array($this->_table,'.*'.$val.'$'))){
$haspasswordfids[$val] = 1;
}else{
$haspasswordfids[$val] = 0;
}
}
foreach($haspasswordfids as $v){
if(!$v) {
$haspassword = 0;
break;
}else{
$haspassword = 1;
}
}
unset($haspasswordfids);
unset($folderids);
return $haspassword;
}
public function fetch_folder_by_appid_pfid($appid,$pfid=[]){ //根据fid判断当前目录及其上机是否有密码如果当前目录不存在则返回2存在密码返回1
public function check_password_byfid($fid){
if($data = parent::fetch($fid)){
return DB::result_first("select fid from %t where pathkey regexp %s and password != '' ",array($this->_table,'.*'.$fid.'$')) ? 1:0;
}else{
return 2;
}
}
//转义查询语句当中的path
public function path_transferred_meaning($path){
return str_replace(array('\'','(',')','+','^','$','{','}','[',']','#'),array("\'",'\(','\)','\+','\^','\$','\{','\}','\[','\]','\#'),$path);
}
$folderdata = []; public function fetch_all_folder_by_appid($appid,$pfid='',$i=1){
if(!empty($pfid)){ if($i>5) return [];
foreach(DB::fetch_all("select fid,fname,pathkey,appid,pfid,filenum as nosubfilenum from %t where appid = %s and pfid in(%n)",array($this->_table,$appid,$pfid)) as $v){ foreach(DB::fetch_all("select fid,fname,pathkey,pfid from %t where appid = %s and password = '' and pfid = %s",array($this->_table,$appid,$pfid)) as $v){
$v['filenum'] = DB::result_first("SELECT count(DISTINCT fr.rid) FROM %t fr $v['level'] = $i;
$j = $i+1;
$v['children'] = $this->fetch_all_folder_by_appid($appid,$v['fid'],$j);
$returndata[] = $v;
}
return $returndata;
}
public function fetch_folder_by_appid_pfid($appid,$pfid=[]){
$folderdata = [];
if(!empty($pfid)){
foreach(DB::fetch_all("select fid,fname,pathkey,appid,pfid,filenum as nosubfilenum 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
left join %t f on fr.fid = f.fid left join %t f on fr.fid = f.fid
where fr.appid = %s and f.pathkey like %s",array('pichome_folderresources','pichome_folder',$appid,$v['pathkey'].'%')); where fr.appid = %s and f.pathkey like %s",array('pichome_folderresources','pichome_folder',$appid,$v['pathkey'].'%'));
$v['leaf'] = DB::result_first("select count(*) from %t where pfid = %s",array($this->_table,$v['fid'])) ? false:true; $v['leaf'] = DB::result_first("select count(*) from %t where pfid = %s",array($this->_table,$v['fid'])) ? false:true;
$folderdata[] = $v; $folderdata[] = $v;
} }
}else{ }else{
foreach(DB::fetch_all("select fid,fname,pathkey,appid,pfid,filenum as nosubfilenum from %t where appid = %s and pfid = ''",array($this->_table,$appid)) as $v){ foreach(DB::fetch_all("select fid,fname,pathkey,appid,pfid,filenum as nosubfilenum from %t where appid = %s and pfid = '' order by disp asc",array($this->_table,$appid)) 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
left join %t f on fr.fid = f.fid left join %t f on fr.fid = f.fid
where fr.appid = %s and f.pathkey like %s",array('pichome_folderresources','pichome_folder',$appid,$v['pathkey'].'%')); where fr.appid = %s and f.pathkey like %s",array('pichome_folderresources','pichome_folder',$appid,$v['pathkey'].'%'));
$v['leaf'] = DB::result_first("select count(*) from %t where pfid = %s",array($this->_table,$v['fid'])) ? false:true; $v['leaf'] = DB::result_first("select count(*) from %t where pfid = %s",array($this->_table,$v['fid'])) ? false:true;
$folderdata[] = $v; $folderdata[] = $v;
} }
}
return $folderdata;
} }
public function search_by_fname($keyword,$appid=''){ return $folderdata;
$folderdata = []; }
$wheresql = ' fname like %s '; public function search_by_fname($keyword,$appid=''){
$params = array($this->_table,'%'.$keyword.'%'); $folderdata = [];
if($appid){ $wheresql = ' fname like %s ';
$wheresql .= ' and appid = %s '; $params = array($this->_table,'%'.$keyword.'%');
$params[] = $appid; if($appid){
} $wheresql .= ' and appid = %s ';
foreach(DB::fetch_all("select fname,fid,pathkey,appid,pfid from %t where $wheresql",$params)as $v ){ $params[] = $appid;
$folderdata[$v['fid']] = $v; }
} foreach(DB::fetch_all("select fname,fid,pathkey,appid,pfid from %t where $wheresql",$params)as $v ){
foreach ($folderdata as $k=>$v){ $folderdata[$v['fid']] = $v;
$len=strlen($folderdata[$k]['pathkey']); }
foreach ($folderdata as $k=>$v){
$len=strlen($folderdata[$k]['pathkey']);
$folderdata[$k]['len']=$len; $folderdata[$k]['len']=$len;
} }
$cloumarr = array_column($folderdata,'len'); $cloumarr = array_column($folderdata,'len');
array_multisort($cloumarr,SORT_ASC,$folderdata); array_multisort($cloumarr,SORT_ASC,$folderdata);
return $folderdata; return $folderdata;
}
public function createfidbyappid($appid){
$fid = random(13).$appid;
if(DB::result_first("select count(fid) from %t where fid = %s and appid = %s",array($this->_table,$fid,$appid))){
$fid = $this->createfidbyappid($appid);
}
return $fid;
}
public function delete_by_fids($fids){
if(!is_array($fids)) $fids = (array)$fids;
if(!empty($fids)){
DB::delete('pichome_folderresources',"fid in (".dimplode($fids).")");
parent::delete($fids);
return true;
} }
} }
}

View File

@@ -17,7 +17,7 @@ class table_pichome_resources extends dzz_table
public function insert($setarr) public function insert($setarr)
{ {
if (DB::result_first("select count(*) from %t where rid = %s", array($this->_table, $setarr['rid']))) { if (DB::result_first("select count(rid) from %t where rid = %s", array($this->_table, $setarr['rid']))) {
$rid = $setarr['rid']; $rid = $setarr['rid'];
unset($setarr['rid']); unset($setarr['rid']);
parent::update($rid, $setarr); parent::update($rid, $setarr);
@@ -29,12 +29,13 @@ class table_pichome_resources extends dzz_table
public function delete_by_appid($appid) public function delete_by_appid($appid)
{ {
$data = C::t('pichome_vapp')->fetch($appid);
//$i = 0; //$i = 0;
$rids = []; $rids = [];
foreach (DB::fetch_all("select rid from %t where appid = %s limit 0,1000", array($this->_table, $appid)) as $v) { foreach (DB::fetch_all("select rid from %t where appid = %s limit 0,100", array($this->_table, $appid)) as $v) {
$rids[] = $v['rid']; $rids[] = $v['rid'];
} }
if ($rids) $this->delete_by_rid($rids); if ($rids) $this->delete_by_rid($rids, $data['deluid'], $data['delusername']);
//return $i; //return $i;
} }
@@ -44,7 +45,7 @@ class table_pichome_resources extends dzz_table
return DB::result_first("select * from %t where path = %s", array($this->_table, $path)); return DB::result_first("select * from %t where path = %s", array($this->_table, $path));
} }
public function delete_by_rid($rids) public function delete_by_rid($rids, $uid = 0, $username = '')
{ {
if (!is_array($rids)) $rids = (array)$rids; if (!is_array($rids)) $rids = (array)$rids;
C::t('pichome_resources_attr')->delete_by_rid($rids); C::t('pichome_resources_attr')->delete_by_rid($rids);
@@ -55,9 +56,13 @@ class table_pichome_resources extends dzz_table
C::t('pichome_share')->delete_by_rid($rids); C::t('pichome_share')->delete_by_rid($rids);
C::t('pichome_ffmpeg_record')->delete($rids); C::t('pichome_ffmpeg_record')->delete($rids);
C::t('pichome_imagickrecord')->delete($rids); C::t('pichome_imagickrecord')->delete($rids);
$deldata = ['rids' => $rids, 'deluid' => $uid, 'delusername' => $username];
Hook::listen('pichomedatadeleteafter', $deldata);
return $this->delete($rids); return $this->delete($rids);
} }
public function fetch_by_rids($rids) public function fetch_by_rids($rids)
{ {
global $Opentype; global $Opentype;
@@ -130,6 +135,7 @@ class table_pichome_resources extends dzz_table
//获取所有库分享和下载权限 //获取所有库分享和下载权限
$downshare = C::t('pichome_vapp')->fetch_all_sharedownlod(); $downshare = C::t('pichome_vapp')->fetch_all_sharedownlod();
$attrdata = C::t('pichome_resources_attr')->fetch($rid); $attrdata = C::t('pichome_resources_attr')->fetch($rid);
if ($attrdata['desc']) $attrdata['desc'] = strip_tags($attrdata['desc']);
$resourcesdata = array_merge($resourcesdata, $attrdata); $resourcesdata = array_merge($resourcesdata, $attrdata);
$resourcesdata['colors'] = C::t('pichome_palette')->fetch_colordata_by_rid($rid); $resourcesdata['colors'] = C::t('pichome_palette')->fetch_colordata_by_rid($rid);
$resourcesdata['ext'] = strtolower($resourcesdata['ext']); $resourcesdata['ext'] = strtolower($resourcesdata['ext']);
@@ -144,86 +150,29 @@ class table_pichome_resources extends dzz_table
} else { } else {
$resourcesdata['opentype'] = 'other'; $resourcesdata['opentype'] = 'other';
} }
if ($resourcesdata['hasthumb']) { $resourcesdata['icondata'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&hash='.VERHASH.'&path=' . dzzencode($rid, '', 7200, 0);
//如果是本地文件
if ($resourcesdata['apptype'] == 1) {
$filename = 'pichomethumb' . BS . $resourcesdata['appid'] . BS . md5($resourcesdata['path']) . '.jpg';
$thumbpath = getglobal('setting/attachurl') . $filename;
//echo $thumbpath;die;
$resourcesdata['icondata'] = str_replace('+', '%20', urlencode($thumbpath));
} elseif ($resourcesdata['apptype'] == 0) {
$resourcesdata['path'] = str_replace('\\', '/', $resourcesdata['path']);
$filepath = dirname($resourcesdata['path']);
$filename = substr($resourcesdata['path'], strrpos($resourcesdata['path'], '/') + 1);
$filename = str_replace(strrchr($filename, "."), "", $filename);
$filepath = str_replace('/', BS, $filepath);
if ($downshare[$resourcesdata['appid']]['iswebsitefile']) {
$tmppath = str_replace(DZZ_ROOT, '', $downshare[$resourcesdata['appid']]['path']);
$thumbpath = $tmppath . BS . $filepath . BS . $filename . '_thumbnail.png';
$resourcesdata['icondata'] = str_replace('+', '%20', urlencode($thumbpath));
} else {
$tmppath = $downshare[$resourcesdata['appid']]['path'];
$thumbpath = $tmppath . BS . $filepath . BS . $filename . '_thumbnail.png';
$resourcesdata['icondata'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($thumbpath, '', 0, 0);
}
} else {
$hookdata = ['rid' => $resourcesdata['rid'], 'apppath' => $downshare[$resourcesdata['appid']]['path'], 'appid' => $resourcesdata['appid']];
$return = Hook::listen('getpichomethumb', $hookdata);
$thumbpath = str_replace(DZZ_ROOT, '', $return[0]['icon']);
if ($downshare[$resourcesdata['appid']]['iswebsitefile']){
$resourcesdata['icondata'] = str_replace('+', '%20', urlencode($thumbpath));
}else{
$resourcesdata['icondata'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($thumbpath, '', 0, 0);
}
}
//}
} else {
if ($resourcesdata['type'] == 'commonimage') {
if ($downshare[$resourcesdata['appid']]['iswebsitefile']) {
$tmppath = str_replace(DZZ_ROOT, '', $downshare[$resourcesdata['appid']]['path']);
$thumbpath = $tmppath . BS . $resourcesdata['path'];
$thumbpath = str_replace(BS, '/', $thumbpath);
$resourcesdata['icondata'] = str_replace('+', '%20', urlencode($thumbpath));
} else {
$tmppath = $downshare[$resourcesdata['appid']]['path'];
$resourcesdata['icondata'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($tmppath, '', 0, 0);
}
} else {
$resourcesdata['icondata'] = geticonfromext($resourcesdata['ext'], $resourcesdata['type']);
}
}
//echo $resourcesdata['icondata'];die;
$imginfo = @getimagesize($resourcesdata['icondata']);
$resourcesdata['iconwidth'] = $imginfo[0] ? $imginfo[0] : $resourcesdata['width'];
$resourcesdata['iconheight'] = $imginfo[1] ? $imginfo[1] : $resourcesdata['height'];
$resourcesdata['icondata'] = str_replace('+', '%20', $resourcesdata['icondata']);
$thumbwidth = getglobal('config/pichomethumbwidth') ? getglobal('config/pichomethumbwidth') : 900;
$thumbheight = getglobal('config/pichomethumbheight') ? getglobal('config/pichomethumbheight') : 900;
$thumsizearr = $this->getImageThumbsize($resourcesdata['width'], $resourcesdata['height'], $thumbwidth, $thumbheight);
$resourcesdata['iconwidth'] = $thumsizearr[0];
$resourcesdata['iconheight'] = $thumsizearr[1];
//$resourcesdata['icondata'] = str_replace('+', '%20', $resourcesdata['icondata']);
if(getglobal('adminid') == 1) $resourcesdata['realfianllypath'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg'.'&path=' . dzzencode($rid.'_3', '', 0, 0);
$resourcesdata['share'] = $downshare[$resourcesdata['appid']]['share']; $resourcesdata['share'] = $downshare[$resourcesdata['appid']]['share'];
$resourcesdata['download'] = $downshare[$resourcesdata['appid']]['download']; $resourcesdata['download'] = $downshare[$resourcesdata['appid']]['download'];
if ($downshare[$resourcesdata['appid']]['iswebsitefile']) {
$originalimg = str_replace(DZZ_ROOT, '', $downshare[$resourcesdata['appid']]['path'] . BS . $resourcesdata['path']);
$originalimg = str_replace(BS, '/', $originalimg);
$resourcesdata['originalimg'] = str_replace('+', '%20', urlencode($originalimg));
$resourcesdata['realpath'] = str_replace('+', '%20', urlencode($originalimg));
} else {
$originalimg = $downshare[$resourcesdata['appid']]['path'] . BS . $resourcesdata['path'];
$resourcesdata['originalimg'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($originalimg, '', 0, 0);
if (in_array($resourcesdata['opentype'], array('text', 'video', 'pdf'))) {
$resourcesdata['realpath'] = str_replace('+', '', urlencode(getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($originalimg, '', 0, 0)));
} else {
$resourcesdata['realpath'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($originalimg, '', 0, 0);
}
} $originalimg = $downshare[$resourcesdata['appid']]['path'] . BS . $resourcesdata['path'];
$resourcesdata['originalimg'] = ($resourcesdata['download']) ? getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($resourcesdata['rid'].'_1','', 0, 0):'';
/*if ($resourcesdata['opentype'] == 'video') {
$resourcesdata['realpath'] = str_replace('+', '', urlencode(getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($resourcesdata['rid'].'_3','', 7200, 0)));
}*//* else {
$resourcesdata['realpath'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($resourcesdata['rid'].'_realpath', '', 0, 0);
}*/
//}
$resourcesdata['name'] = str_replace(strrchr($resourcesdata['name'], "."), "", $resourcesdata['name']); $resourcesdata['name'] = str_replace(strrchr($resourcesdata['name'], "."), "", $resourcesdata['name']);
$resourcesdata['fsize'] = formatsize($resourcesdata['size']); $resourcesdata['fsize'] = formatsize($resourcesdata['size']);
@@ -234,7 +183,7 @@ class table_pichome_resources extends dzz_table
$resourcesdata['foldernames'] = C::t('pichome_folderresources')->get_foldername_by_rid($rid); $resourcesdata['foldernames'] = C::t('pichome_folderresources')->get_foldername_by_rid($rid);
$resourcesdata['tag'] = C::t('pichome_resourcestag')->fetch_tag_by_rid($rid); $resourcesdata['tag'] = C::t('pichome_resourcestag')->fetch_tag_by_rid($rid);
$resourcesdata['dpath'] = dzzencode($rid, '', 0, 0); $resourcesdata['dpath'] = dzzencode($rid, '', 0, 0);
//print_r($resourcesdata);die;
return $resourcesdata; return $resourcesdata;
} }
@@ -255,66 +204,17 @@ class table_pichome_resources extends dzz_table
$v['annonationnum'] = $annonationnumdata[$v['rid']]['num']; $v['annonationnum'] = $annonationnumdata[$v['rid']]['num'];
$v['share'] = $downshare[$v['appid']]['share']; $v['share'] = $downshare[$v['appid']]['share'];
$v['download'] = $downshare[$v['appid']]['download']; $v['download'] = $downshare[$v['appid']]['download'];
if ($v['hasthumb']) {
//如果是本地文件
if ($downshare[$v['appid']]['type'] == 1) {
$filename = 'pichomethumb' . BS . $v['appid'] . BS . md5($v['path']) . '.jpg';
$thumbpath = getglobal('setting/attachurl') . $filename;
$v['icondata'] = str_replace('+', '%20', urlencode($thumbpath));
} elseif ($downshare[$v['appid']]['type'] == 0) {
$v['path'] = str_replace('\\', '/', $v['path']);
$filepath = dirname($v['path']);
$filename = substr($v['path'], strrpos($v['path'], '/') + 1);
$filepath = str_replace('/', BS, $filepath);
$filename = str_replace(strrchr($filename, "."), "", $filename);
$filepath = str_replace('/', BS, $filepath);
if ($downshare[$v['appid']]['iswebsitefile']) {
$tmppath = str_replace(DZZ_ROOT, '', $downshare[$v['appid']]['path']);
$thumbpath = $tmppath . BS . $filepath . BS . $filename . '_thumbnail.png';
$v['icondata'] = str_replace('+', '%20', urlencode($thumbpath));
} else {
$tmppath = $downshare[$v['appid']]['path'];
$thumbpath = $tmppath . BS . $filepath . BS . $filename . '_thumbnail.png';
$v['icondata'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($thumbpath);
}
} else { $v['icondata'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&hash='.VERHASH.'&path=' . dzzencode($v['rid'],'', 7200, 0);
$hookdata = ['rid' => $v['rid'], 'apppath' => $downshare[$v['appid']]['path'], 'appid' => $v['appid']]; $thumbwidth = getglobal('config/pichomethumbwidth') ? getglobal('config/pichomethumbwidth') : 900;
$return = Hook::listen('getpichomethumb', $hookdata); $thumbheight = getglobal('config/pichomethumbheight') ? getglobal('config/pichomethumbheight') : 900;
$thumbpath = str_replace(DZZ_ROOT, '', $return[0]['icon']); $thumsizearr = $this->getImageThumbsize($v['width'], $v['height'], $thumbwidth, $thumbheight);
if ($downshare[$v['appid']]['iswebsitefile']){ $v['thumbwidth'] = $thumsizearr[0];
$v['icondata'] = str_replace('+', '%20', urlencode($thumbpath)); $v['thumbheight'] = $thumsizearr[1];
}else{ if ($v['opentype'] == 'video') {
$v['icondata'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($thumbpath, '', 0, 0); $v['realpath'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($v['rid'].'_3','', 7200, 0);
} }
}
} else {
if ($v['type'] == 'commonimage') {
if ($downshare[$v['appid']]['iswebsitefile']) {
$tmppath = str_replace(DZZ_ROOT, '', $downshare[$v['appid']]['path']);
$thumbpath = $tmppath . BS . $v['path'];
$thumbpath = str_replace(BS,'/',$thumbpath);
$v['icondata'] = str_replace('+', '%20', urlencode($thumbpath));
} else {
$tmppath = $downshare[$v['appid']]['path'] . BS . $v['path'];
$v['icondata'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($tmppath, '', 0, 0);
}
} else {
$v['icondata'] = geticonfromext($v['ext'], $v['type']);
$v['width'] = 128;
$v['height'] = 128;
}
}
//文件真实地址
if ($downshare[$v['appid']]['iswebsitefile']) {
$originalimg = str_replace(DZZ_ROOT, '', $downshare[$v['appid']]['path'] . BS . $v['path']);
$originalimg = str_replace(BS, '/', $originalimg);
$v['realpath'] = str_replace('+', '%20', urlencode($originalimg));
} else {
$originalimg = $downshare[$v['appid']]['path'] . BS . $v['path'];
$v['realpath'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($originalimg, '', 0, 0);
}
unset($v['path']); unset($v['path']);
@@ -323,60 +223,54 @@ class table_pichome_resources extends dzz_table
return $returndata; return $returndata;
} }
public function geticondata_by_rid($rid) public function getImageThumbsize($owidth, $oheight, $width, $height)
{
if ($owidth > $width || $oheight > $height) {
$or = $owidth / $oheight;
$r = $width / $height;
if ($r > $or) {
if ($oheight < $height) {
$height = $oheight;
$width = $owidth;
} else {
$width = ceil($height * $or);
if ($width < 242) {
$width = 242;
$height = ceil($width / $or);
}
}
} else {
if ($owidth < $width) {
$height = $oheight;
$width = $owidth;
} else {
$height = ceil($width / $or);
$width = ceil($height * $or);
if ($width < 242) {
$width = 242;
$height = ceil($width / $or);
}
}
}
} else {
$width = $owidth;
$height = $oheight;
}
//Return the results
return array($width, $height);
}
public function geticondata_by_rid($rid,$time=7200)
{ {
$resourcesdata = DB::fetch_first("select r.rid,r.appid,r.hasthumb,r.ext,r.type,ra.path as fpath, $resourcesdata = DB::fetch_first("select r.rid,r.appid,r.hasthumb,r.ext,r.type,ra.path as fpath,
v.path,r.apptype,v.iswebsitefile from %t r v.path,r.apptype,v.iswebsitefile,v.version from %t r
left join %t ra on r.rid=ra.rid left join %t v on r.appid = v.appid where r.rid = %s and r.isdelete = 0", left join %t ra on r.rid=ra.rid left join %t v on r.appid = v.appid where r.rid = %s and r.isdelete = 0",
array($this->_table, 'pichome_resources_attr', 'pichome_vapp', $rid)); array($this->_table, 'pichome_resources_attr', 'pichome_vapp', $rid));
if ($resourcesdata['hasthumb']) { $resourcesdata['icondata'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&hash='.VERHASH.'&path=' . dzzencode($rid, '', $time, 0);
//如果是本地文件
if ($resourcesdata['apptype'] == 1) {
$filename = 'pichomethumb' . BS . $resourcesdata['appid'] . BS . md5($resourcesdata['fpath']) . '.jpg';
$thumbpath = getglobal('setting/attachurl') . $filename;
$resourcesdata['icondata'] = str_replace('+', '%20', urlencode($thumbpath));
} elseif($resourcesdata['apptype'] == 0){
$resourcesdata['fpath'] = str_replace('\\', '/', $resourcesdata['fpath']);
$filepath = dirname($resourcesdata['fpath']);
$filename = substr($resourcesdata['fpath'], strrpos($resourcesdata['fpath'], '/') + 1);
$filename = str_replace(strrchr($filename, "."), "", $filename);
$filepath = str_replace('/', BS, $filepath);
if ($resourcesdata['iswebsitefile']) {
$tmppath = str_replace(DZZ_ROOT, '', $resourcesdata['path']);
$thumbpath = $tmppath . BS . $filepath . BS . $filename . '_thumbnail.png';
$resourcesdata['icondata'] = str_replace('+', '%20', urlencode($thumbpath));
} else {
$tmppath = $resourcesdata['path'];
$thumbpath = $tmppath . BS . $filepath . BS . $filename . '_thumbnail.png';
$resourcesdata['icondata'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($thumbpath, '', 0, 0);
}
} else {
$hookdata = ['rid' => $resourcesdata['rid'], 'apppath' => $resourcesdata['path'], 'appid' => $resourcesdata['appid']];
$return = Hook::listen('getpichomethumb', $hookdata);
$thumbpath = str_replace(DZZ_ROOT, '', $return[0]['icon']);
if ($resourcesdata['iswebsitefile']){
$resourcesdata['icondata'] = str_replace('+', '%20', urlencode($thumbpath));
}else{
$resourcesdata['icondata'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($thumbpath, '', 0, 0);
}
}
} else {
if ($resourcesdata['type'] == 'commonimage') {
if ($resourcesdata['iswebsitefile']) {
$tmppath = str_replace(DZZ_ROOT, '', $resourcesdata['path']);
$thumbpath = $tmppath . BS . $resourcesdata['fpath'];
$thumbpath = str_replace(BS, '/', $thumbpath);
$resourcesdata['icondata'] = str_replace('+', '%20', urlencode($thumbpath));
} else {
$tmppath = $resourcesdata['path'];
$resourcesdata['icondata'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($tmppath, '', 0, 0);
}
} else {
$resourcesdata['icondata'] = geticonfromext($resourcesdata['ext'], $resourcesdata['type']);
}
}
return $resourcesdata; return $resourcesdata;
} }

View File

@@ -17,7 +17,7 @@
public function insert($setarr) public function insert($setarr)
{ {
if (DB::result_first("select count(*) from %t where rid = %s", array($this->_table, $setarr['rid']))) { if (DB::result_first("select count(rid) from %t where rid = %s", array($this->_table, $setarr['rid']))) {
$rid = $setarr['rid']; $rid = $setarr['rid'];
unset($setarr['rid']); unset($setarr['rid']);
return parent::update($rid, $setarr); return parent::update($rid, $setarr);

View File

@@ -22,6 +22,7 @@
} else { } else {
$id=parent::insert($setarr); $id=parent::insert($setarr);
C::t('pichome_tag')->add_hots_by_tid($setarr['tid']); C::t('pichome_tag')->add_hots_by_tid($setarr['tid']);
C::t('pichome_vapp_tag')->add_hots_by_tid_appid($setarr['tid'],$setarr['appid']);
} }
return $id; return $id;
} }
@@ -55,9 +56,10 @@
{ {
if(!is_array($rid)) $rid = (array)$rid; if(!is_array($rid)) $rid = (array)$rid;
$delids = []; $delids = [];
foreach (DB::fetch_all("select id,tid from %t where rid in(%n)", array($this->_table, $rid)) as $v) { foreach (DB::fetch_all("select id,tid,appid from %t where rid in(%n)", array($this->_table, $rid)) as $v) {
$delids[] = $v['id']; $delids[] = $v['id'];
C::t('pichome_tag')->delete_by_tid($v['tid']); C::t('pichome_tag')->delete_by_tid($v['tid']);
C::t('pichome_vapp_tag')->delete_by_tid_appid($v['tid'],$v['appid']);
} }
return parent::delete($delids); return parent::delete($delids);
} }

View File

@@ -66,7 +66,7 @@ class table_pichome_searchrecent extends dzz_table
return $datas; return $datas;
} }
public function fetch_hotkeyword_by_appid($appid = '', $limit = 16, $noids = array(), $datas = array()) public function fetch_hotkeyword_by_appid($appid = '', $limit = 8, $noids = array(), $datas = array())
{ {
/* $start = strtotime(date("Y-m-d", strtotime("-7 day"))); /* $start = strtotime(date("Y-m-d", strtotime("-7 day")));
$end = strtotime(dgmdate(time(), 'Y-m-d')) + 86400;*/ $end = strtotime(dgmdate(time(), 'Y-m-d')) + 86400;*/

View File

@@ -15,13 +15,15 @@
} }
public function insert($tagname,$nohots = 0){ public function insert($tagname,$nohots = 0){
$setarr =[]; $setarr =[];
if($data = DB::fetch_first("select tid,hots from %t where tagname = %s",array($this->_table,$tagname))){ if($data = DB::fetch_first("select tid,hots,initial from %t where tagname = %s",array($this->_table,$tagname))){
// if(!$nohots)$setarr['hots'] = intval($data['hots']) +1; if(!$data['initial']){
//parent::update($data['tid'],$setarr); $setarr['initial'] = $this->getInitial($tagname);
parent::update($data['tid'],$setarr);
}
return $data['tid']; return $data['tid'];
}else{ }else{
$setarr['tagname'] = $tagname; $setarr['tagname'] = $tagname;
// if(!$nohots)$setarr['hots'] =1; $setarr['initial'] = $this->getInitial($tagname);
return parent::insert($setarr,1); return parent::insert($setarr,1);
} }
} }
@@ -40,6 +42,14 @@
return parent::delete($tid); return parent::delete($tid);
} }
} }
public function getInitial($str){
$py=pinyin::encode($str);
$initial=substr($py,0,1);
if(empty($initial) || !preg_match("/[A-Z]/i",$initial)){
$initial='#';
}
return strtoupper($initial);
}
//依据标签热度获取标签及对应图 //依据标签热度获取标签及对应图
public function fetch_data_by_hot($limit=16){ public function fetch_data_by_hot($limit=16){
$hotsdata = []; $hotsdata = [];

View File

@@ -68,7 +68,7 @@
public function getNoRepeatName($name) public function getNoRepeatName($name)
{ {
static $i = 0; static $i = 0;
if (DB::result_first("select COUNT(*) from %t where appname=%s ", array($this->_table, $name))) { if (DB::result_first("select COUNT(appid) from %t where appname=%s ", array($this->_table, $name))) {
$name = preg_replace("/\(\d+\)/i", '', $name) . '(' . ($i + 1) . ')'; $name = preg_replace("/\(\d+\)/i", '', $name) . '(' . ($i + 1) . ')';
$i += 1; $i += 1;
return $this->getNoRepeatName($name); return $this->getNoRepeatName($name);
@@ -99,8 +99,9 @@
if(is_dir(getglobal('setting/attachdir').'pichomethumb/'.$appid)){ if(is_dir(getglobal('setting/attachdir').'pichomethumb/'.$appid)){
removedirectory(getglobal('setting/attachdir').'pichomethumb/'.$appid); removedirectory(getglobal('setting/attachdir').'pichomethumb/'.$appid);
} }
if($appdata['type'] > 1){ if($appdata['type'] !== 1){
Hook::listen('pichomevappdelete',$appid); $hookdata = ['appid'=>$appid,'apptype'=>$appdata['type']];
Hook::listen('pichomevappdelete',$hookdata);
} }
return parent::delete($appid); return parent::delete($appid);
} }
@@ -114,4 +115,20 @@
} }
return $downshare; return $downshare;
} }
public function add_getinfonum_by_appid($appid,$ceof = 1){
$appdata = C::t('pichome_vapp')->fetch($appid);
if($ceof < 0){
if($appdata['getinfonum'] == 0) return true;
elseif($appdata['getinfonum'] < abs($ceof))$ceof = -$appdata['getinfonum'];
}
if ($ceof > 0) {
DB::query("update %t set getinfonum=getinfonum+%d where appid = %s", array($this->_table, $ceof, $appid));
} else {
DB::query("update %t set getinfonum=getinfonum-%d where appid = %s", array($this->_table, abs($ceof), $appid));
}
$this->clear_cache($appid);
}
} }

View File

@@ -0,0 +1,45 @@
<?php
if (!defined('IN_OAOOA')) {
exit('Access Denied');
}
class table_pichome_vapp_tag extends dzz_table
{
public function __construct()
{
$this->_table = 'pichome_vapp_tag';
$this->_pk = 'id';
// $this->_pre_cache_key = 'pichome_vapp_tag';
//$this->_cache_ttl = 3600;
parent::__construct();
}
public function add_hots_by_tid_appid($tid,$appid){
$tagappdata =DB::fetch_first("select * from %t where tid = %d and appid = %s",array($this->_table,$tid,$appid));
if(!$tagappdata){
$setarr = ['appid'=>$appid,'tid'=>$tid,'hots'=>1];
return parent::insert($setarr);
}else{
$setarr['hots'] = intval($tagappdata['hots']) +1;
return parent::update($tagappdata['id'],$setarr);
}
}
public function insert($setarr){
if($id = DB::result_first("select id from %t where appid = %s and tid = %d",array($this->_table,$setarr['appid'],$setarr['tid']))){
parent::update($id,$setarr);
}else{
parent::insert($setarr);
}
}
public function delete_by_tid_appid($tid,$appid){
$tagappdata =DB::fetch_first("select * from %t where tid = %d and appid = %s",array($this->_table,$tid,$appid));
if(!$tagappdata) return false;
if($tagappdata['hots'] > 1){
return parent::update($tagappdata['id'],array('hots'=>$tagappdata['hots']-1));
}else{
return parent::delete($tagappdata['id']);
}
}
}

View File

@@ -17,7 +17,7 @@ define('CACHE_NAME','cache');//缓存文件目录名
define('CACHE_DIR',DZZ_ROOT.DATA_NAME.BS.CACHE_NAME);//缓存目录 define('CACHE_DIR',DZZ_ROOT.DATA_NAME.BS.CACHE_NAME);//缓存目录
define('CORE_PATH',DZZ_ROOT.CORE_NAME.BS.'class');//核心类目录 define('CORE_PATH',DZZ_ROOT.CORE_NAME.BS.'class');//核心类目录
define('APP_DIRNAME','dzz');//应用目录名 define('APP_DIRNAME','dzz');//应用目录名
define('APP_CHECK_URL', "http://help.oaooa.com/");//检测应用更新地址 define('APP_CHECK_URL', "https://oaooa.com/");//检测应用更新地址
//define('APP_DIR',DZZ_ROOT.APP_DIRNAME.BS);//应用目录 //define('APP_DIR',DZZ_ROOT.APP_DIRNAME.BS);//应用目录
define('MOULD','mod');//路由模块键名 define('MOULD','mod');//路由模块键名
define('DIVIDE','op');//路由操作键名 define('DIVIDE','op');//路由操作键名

View File

@@ -9,10 +9,9 @@
if(!defined('IN_OAOOA')) { if(!defined('IN_OAOOA')) {
exit('Access Denied'); exit('Access Denied');
} }
if(!defined('CORE_VERSION')) { if(!defined('CORE_VERSION')) {
define('CORE_VERSION', 'beta3.1'); define('CORE_VERSION', '10.1.0');
define('CORE_VERSION_LEVEL', 'Pichome'); define('CORE_VERSION_LEVEL', 'Home');
define('CORE_RELEASE', '20211220'); define('CORE_RELEASE', '20220429');
define('CORE_FIXBUG' , '03100000'); define('CORE_FIXBUG' , '10100000');
} }

View File

@@ -1,226 +0,0 @@
<?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');
}
if(!function_exists('mysql_escape_string')){
function mysql_escape_string($str){
if(function_exists('mysqli_escape_string')) return mysqli_escape_string($str);
else return addslashes($str);
}
}
global $db;
$db = & DB::object();
$tabletype = $db->version() > '4.1' ? 'Engine' : 'Type';
$tablepre = $_G['config']['db'][1]['tablepre'];
$dbcharset = $_G['config']['db'][1]['dbcharset'];
$backupdir = C::t('setting')->fetch('backupdir');
if(!$backupdir) {
$backupdir = random(6);
@mkdir('./data/backup_'.$backupdir, 0777);
C::t('setting')->update('backupdir',$backupdir);
}
$backupdir = 'backup_'.$backupdir;
if(!is_dir('./data/'.$backupdir)) {
mkdir('./data/'.$backupdir, 0777);
}
global $excepttables;
$excepttables=array();
$filename=date('ymd').'_'.random(8);
DB::query('SET SQL_QUOTE_SHOW_CREATE=0', 'SILENT');
$tables = arraykeys2(fetchtablelist($tablepre), 'Name');
$memberexist = array_search(DB::table('user'), $tables);
if($memberexist !== FALSE) {
unset($tables[$memberexist]);
array_unshift($tables, DB::table('user'));
}
$time = dgmdate(TIMESTAMP);
$success=false;
global $complete,$startrow;
$startrow=0;
$volume=0;$tableid = 0;$startfrom = 0;
while(!$success){
$volume += 1;
$idstring = '# Identify: '.base64_encode("$_G[timestamp],".$_G['setting']['version'].",dzz,multivol,{$volume},{$tablepre},{$dbcharset}")."\n";
$dumpcharset = str_replace('-', '', $_G['charset']);
$backupfilename = './data/'.$backupdir.'/'.str_replace(array('/', '\\', '.', "'"), '', $filename);
$sqldump = '';
$startfrom=$startrow;
if(!$tableid && $volume == 1) {
foreach($tables as $table) {
$sqldump .= sqldumptablestruct($table);
}
}
$complete = TRUE;
for(; $complete && $tableid < count($tables) && strlen($sqldump) + 500 < 2048 * 1000; $tableid++) {
$sqldump .= sqldumptable($tables[$tableid], $startfrom, strlen($sqldump));
if($complete) {
$startfrom = 0;
}
}
$dumpfile = $backupfilename."-%s".'.sql';
!$complete && $tableid--;
if(trim($sqldump)) {
$sqldump = "$idstring".
"# <?php exit();?>\n".
"# oaooa Multi-Volume Data Dump Vol.$volume\n".
"# Version: oaooa! ".$_G['setting']['version']."\n".
"# Time: $time\n".
"# Type: dzz\n".
"# Table Prefix: $tablepre\n".
"#\n".
"# Dzz! Home: http://help.oaooa.com\n".
"# Please visit our website for newest infomation about oaooa\n".
"# --------------------------------------------------------\n\n\n".
$sqldump;
$dumpfilename = sprintf($dumpfile, $volume);
@$fp = fopen($dumpfilename, 'wb');
@flock($fp, 2);
if(@!fwrite($fp, $sqldump)) {
@fclose($fp);
runlog('database_export','database_export_file_invalid',1);
} else {
fclose($fp);
unset($sqldump, $zip, $content);
continue;
}
} else {
$success=true;
C::t('cache')->insert(array(
'cachekey' => 'db_export',
'cachevalue' => serialize(array('dateline' => $_G['timestamp'])),
'dateline' => $_G['timestamp'],
), false, true);
}
}
function fetchtablelist($tablepre = '') {
global $db;
$arr = explode('.', $tablepre);
$dbname = $arr[1] ? $arr[0] : '';
$tablepre = str_replace('_', '\_', $tablepre);
$sqladd = $dbname ? " FROM $dbname LIKE '$arr[1]%'" : "LIKE '$tablepre%'";
$tables = $table = array();
$query = DB::query("SHOW TABLE STATUS $sqladd");
while($table = DB::fetch($query)) {
$table['Name'] = ($dbname ? "$dbname." : '').$table['Name'];
$tables[] = $table;
}
return $tables;
}
function arraykeys2($array, $key2) {
$return = array();
foreach($array as $val) {
$return[] = $val[$key2];
}
return $return;
}
function sqldumptablestruct($table) {
global $_G, $db, $excepttables;
if(in_array($table, $excepttables)) {
return;
}
$createtable = DB::query("SHOW CREATE TABLE $table", 'SILENT');
if(!DB::error()) {
$tabledump = "DROP TABLE IF EXISTS $table;\n";
} else {
return '';
}
$create = $db -> fetch_row($createtable);
if (strpos($table, '.') !== FALSE) {
$tablename = substr($table, strpos($table, '.') + 1);
$create[1] = str_replace("CREATE TABLE $tablename", 'CREATE TABLE ' . $table, $create[1]);
}
$tabledump .= $create[1];
$tablestatus = DB::fetch_first("SHOW TABLE STATUS LIKE '$table'");
$tabledump .= (($tablestatus['Auto_increment'] && (strpos($tabledump,'AUTO_INCREMENT')===false))? " AUTO_INCREMENT=$tablestatus[Auto_increment]" : ''). ";\n\n";
if ($_GET['sqlcompat'] == 'MYSQL40' && $db -> version() >= '4.1' && $db -> version() < '5.1') {
if ($tablestatus['Auto_increment'] <> '') {
$temppos = strpos($tabledump, ',');
$tabledump = substr($tabledump, 0, $temppos) . ' auto_increment' . substr($tabledump, $temppos);
}
if ($tablestatus['Engine'] == 'MEMORY') {
$tabledump = str_replace('TYPE=MEMORY', 'TYPE=HEAP', $tabledump);
}
}
return $tabledump;
}
function sqldumptable($table, $startfrom = 0, $currsize = 0) {
global $_G, $startrow, $dumpcharset, $complete, $excepttables;
$db = & DB::object();
$offset = 300;
$tabledump = '';
$tablefields = array();
$_GET['usehex']=TRUE;
$query = DB::query("SHOW FULL COLUMNS FROM $table", 'SILENT');
if(strexists($table, 'adminsessions')) {
return ;
} elseif(!$query && DB::errno() == 1146) {
return;
} elseif(!$query) {
$_GET['usehex'] = FALSE;
} else {
while($fieldrow = DB::fetch($query)) {
$tablefields[] = $fieldrow;
}
}
if(!in_array($table, $excepttables)) {
$tabledumped = 0;
$numrows = $offset;
$firstfield = $tablefields[0];
while($currsize + strlen($tabledump) + 500 < 2048 * 1000 && $numrows == $offset) {
if($firstfield['Extra'] == 'auto_increment') {
$selectsql = "SELECT * FROM $table WHERE $firstfield[Field] > $startfrom ORDER BY $firstfield[Field] LIMIT $offset";
} else {
$selectsql = "SELECT * FROM $table LIMIT $startfrom, $offset";
}
$tabledumped = 1;
$rows = DB::query($selectsql);
$numfields = $db->num_fields($rows);
$numrows = DB::num_rows($rows);
while($row = $db->fetch_row($rows)) {
$comma = $t = '';
for($i = 0; $i < $numfields; $i++) {
$t .= $comma.($_GET['usehex'] && !empty($row[$i]) && (strexists($tablefields[$i]['Type'], 'char') || strexists($tablefields[$i]['Type'], 'text')) ? '0x'.bin2hex($row[$i]) : '\''.($db->escape_string($row[$i])).'\'');
$comma = ',';
}
if(strlen($t) + $currsize + strlen($tabledump) + 500 < 2048 * 1000) {
if($firstfield['Extra'] == 'auto_increment') {
$startfrom = $row[0];
} else {
$startfrom++;
}
$tabledump .= "INSERT INTO $table VALUES ($t);\n";
} else {
$complete = FALSE;
break 2;
}
}
}
$startrow = $startfrom;
$tabledump .= "\n";
}
return $tabledump;
}
?>

View File

@@ -1,7 +0,0 @@
<?php
if(!defined('IN_OAOOA')) {
exit('Access Denied');
}
ignore_user_abort(true);
@set_time_limit(0);
dfsockopen(getglobal('localurl'). 'index.php?mod=pichome&op=checkexport',0, '', '', false, '', 1);

View File

@@ -420,11 +420,12 @@ function checkUserLimit(){
if(!defined('LICENSE_LIMIT')){ if(!defined('LICENSE_LIMIT')){
return false; return false;
} }
if(LICENSE_LIMIT>0){ if(defined('NOLIMITUSER')){
$ucount=DB::result_first("select COUNT(*) from %t where 1",array('user')); return true;
return ($ucount<LICENSE_LIMIT); } else{
return (CURRTENT_UNUM < LICENSE_LIMIT);
} }
return true; return false;
} }
//key的格式以|隔开,参数支持全局函数,如地址为 index.php?mod=io&op=getStream&path=***&key=uid|setting/authkey|username //key的格式以|隔开,参数支持全局函数,如地址为 index.php?mod=io&op=getStream&path=***&key=uid|setting/authkey|username
//这种格式,加密时,需要把|分割的每个参数都带上dzzencode($string,'1|'.getglobal('setting/authkey').'|管理员',$expiry); //这种格式,加密时,需要把|分割的每个参数都带上dzzencode($string,'1|'.getglobal('setting/authkey').'|管理员',$expiry);

View File

@@ -6,6 +6,7 @@ $lang = array (
'license_user_sum'=>'授权用户数', 'license_user_sum'=>'授权用户数',
'license_version'=>'授权版本', 'license_version'=>'授权版本',
'license_to'=>'授权对象', 'license_to'=>'授权对象',
'auth_unmatch'=>'授权不匹配',
'V_Enterprise'=>'企业版', 'V_Enterprise'=>'企业版',
'V_Tcloud'=>'腾讯云版', 'V_Tcloud'=>'腾讯云版',
'V_Custom'=>'定制版', 'V_Custom'=>'定制版',

View File

View File

@@ -31,7 +31,7 @@ class billfishxport
private $donum = 0; private $donum = 0;
private $lastid = ''; private $lastid = '';
private $charset = 'UTF-8'; private $charset = 'UTF-8';
private $allowext = ''; private $version = '';
private $notallowext = ''; private $notallowext = '';
private $db = null; private $db = null;
@@ -47,6 +47,7 @@ class billfishxport
$this->donum = $data['donum']; $this->donum = $data['donum'];
$this->filenum = $data['filenum']; $this->filenum = $data['filenum'];
$this->lastid = $data['lastid']; $this->lastid = $data['lastid'];
$this->version = $data['version'];
if ($data['charset']) $this->charset = $data['charset']; if ($data['charset']) $this->charset = $data['charset'];
//尝试连接数据库 //尝试连接数据库
$connect = $this->connect_db(); $connect = $this->connect_db();
@@ -85,32 +86,332 @@ class billfishxport
public function initExport() public function initExport()
{ {
//修改导入状态为1 //修改导入状态为1
C::t('pichome_vapp')->update($this->appid, array('state' => 1));
//查询res_join_tag是否有文件id索引
$fecthsql = "SELECT * FROM sqlite_master WHERE type = 'index';";
$indexdata = $this->fetch_all($fecthsql);
$indexarr = array_column($indexdata,'name');
//如果标签表iid没有索引创建res_join_tag_iid_idx索引
if(!in_array('res_join_tag_iid',$indexarr)){
$createsql = "CREATE INDEX res_join_tag_iid ON res_join_tag ( iid ASC )";
$this->db->query($createsql);
}
//查询待导入文件数 $versionsql = " SELECT version from library where 1";
$sql = "select count(s.id) as num from source s left join res_prop rp on s.id = rp.iid where rp.action =0 "; $versions = $this->fetch($versionsql);
$data = $this->fetch($sql); $this->version = $versions['version'];
$this->filenum = $data['num']; C::t('pichome_vapp')->update($this->appid, array('state' => 1,'version'=>intval($this->version)));
if($this->version >= 30){
//查询res_join_tag是否有文件id索引
$fecthsql = "SELECT * FROM sqlite_master WHERE type = 'index'";
$indexdata = $this->fetch_all($fecthsql);
$indexarr = array_column($indexdata,'name');
//如果标签表iid没有索引创建res_join_tag_iid_idx索引
if(!in_array('res_join_tag_id',$indexarr)){
$createsql = "CREATE INDEX res_join_tag_id ON bf_tag_join_file (tag_id ASC )";
$this->db->query($createsql);
}
//查询待导入文件数
// $sql = "select count(f.id) as num from bf_file f left join bf_material m on f.id = m.file_id where m.is_recycle =0 ";
$sql = "select count(id) as num from bf_file where 1";
$data = $this->fetch($sql);
$this->filenum = $data['num'];
}else{
//查询res_join_tag是否有文件id索引
$fecthsql = "SELECT * FROM sqlite_master WHERE type = 'index'";
$indexdata = $this->fetch_all($fecthsql);
$indexarr = array_column($indexdata,'name');
//如果标签表iid没有索引创建res_join_tag_iid_idx索引
if(!in_array('res_join_tag_iid',$indexarr)){
$createsql = "CREATE INDEX res_join_tag_iid ON res_join_tag ( iid ASC )";
$this->db->query($createsql);
}
//查询待导入文件数
//$sql = "select count(s.id) as num from source s left join res_prop rp on s.id = rp.iid where rp.action =0 ";
$sql = "select count(id) as num from source where 1 ";
$data = $this->fetch($sql);
$this->filenum = $data['num'];
}
//如果没有数据,视为导入成功 //如果没有数据,视为导入成功
if (!$this->filenum) { if (!$this->filenum) {
C::t('pichome_vapp')->update($this->appid, array('state' => 4)); C::t('pichome_vapp')->update($this->appid, array('state' => 4));
} else { } else {
C::t('pichome_vapp')->update($this->appid, array('state' => 2, 'filenum' => $this->filenum)); C::t('pichome_vapp')->update($this->appid, array('state' => 2, 'filenum' => $this->filenum,'donum'=>0,'percent'=>0,'lastid'=>0));
} }
return array('success' => true); return array('success' => true);
} }
//获取文件可访问的真实地址
public function getFileRealFileName($filepath,$filename){
$charsetarr = ['GBK','GB18030'];
$returnname = $filename;
if(!is_file($filepath.BS.$filename)){
foreach ($charsetarr as $v){
$filemetadataname = diconv($filename, CHARSET, $v);
if(is_file($filepath.BS.$filemetadataname)){
$returnname = $filemetadataname;
break;
}
}
}
return $returnname;
}
public function execExport($force = false) public function execExport($force = false)
{ {
if($this->version < 30){
$this->oldexport($force);
}else{
$this->export($force);
}
}
public function export($force = false){
//开始页数
if ($this->lastid) {
$start = $this->lastid;
} else $start = 1;
$lastid = $start;
$start = ($start-1)*$this->onceexportnum;
$sql = "select f.*,m.w,m.h,m.is_recycle,m.thumb_tid,mu.comments_detail,mu.note,mu.score,mu.origin from bf_file f
left join bf_material m on m.file_id = f.id
left join bf_material_userdata mu on mu.file_id=f.id
where 1 limit $start,$this->onceexportnum";
$datas = $this->fetch_all($sql);
foreach ($datas as $v) {
//查询文件是否在回收站
$id = $v['id'];//文件id
$rid = md5($this->appid . $id);
//如果文件在回收站
if ($v['is_recycle'] > 0) {
//如果已经有数据,标记为已删除
if (DB::fetch_first("select count(rid) from %t where rid = %s", array('pichome_resources', $rid))) {
C::t('pichome_resources')->update($rid, array('isdelete' => 1));
}
//文件总数减1
$this->filenum -= 1;
}
else {
//获取文件后缀
$ext = strtolower(substr(strrchr($v['name'], '.'), 1));
//获取文件类型
$type = getTypeByExt($ext);
//出入主表数据
$setarr = [
'rid' => $rid,
'uid'=>$this->uid,
'username'=>$this->username,
'appid' => $this->appid,
'ext' => $ext,
'type' => $type,
'name' => $v['name'],
'mtime' => ($v['mtime']) ? $v['mtime'] * 1000 : $v['born'] * 1000,
'dateline' => $v['ctime'] ? $v['ctime'] * 1000:$v['born']*1000,
'btime' => $v['born'] ? $v['born']*1000:$v['mtime'] * 1000,
'size' => $v['file_size'],
'width' => $v['w'],
'height' => $v['h'],
'grade' => $v['score'],
'apptype' => 2,
'hasthumb' => $v['thumb_tid'] ? 1 : 0,
'thumb' => $v['thumb']
];
//数据插入主表
if (C::t('#billfish#billfish_record')->inser_data($v['id'], $setarr)) {
//定义属性表变量
$attrdata = [];
$attrdata['desc'] = $v['note'];
$attrdata['link'] = $v['origin'];
//将名字记入搜索字段
$attrdata['searchval'] = $setarr['name'].$attrdata['desc'].$attrdata['link'];
//处理目录数据
if ($v['pid']) {
$folderdata = $this->getFolderfid($v['pid']);
//处理目录数据
$fid = $folderdata['fid'];
$folderarr = [
'fid' => $fid,
'appid' => $this->appid,
'rid' => $rid
];
C::t('pichome_folderresources')->insert($folderarr);
$attrdata['path'] = $folderdata['dirpath'] . BS . $setarr['name'];
} else {
$attrdata['path'] = $setarr['name'];
}
//目录数据处理完成
$attrdata['path'] = $this->getFileRealFileName($this->path,$attrdata['path']);
//转码路径 记入属性表
//$p = new Encode_Core();
//$this->charset = $p->get_encoding($attrdata['path']);
//if (CHARSET != $this->charset) $attrdata['path'] = diconv($attrdata['path'],CHARSET, $this->charset);;
//标签数据开始
//查询文件标签id
$sql = "select tag_id from bf_tag_join_file where file_id = $id";//耗时最多
$tiddata = $this->fetch_all($sql);
$tids = [];
foreach ($tiddata as $val) {
$tids[] = $val['tag_id'];
}
if (!empty($tids)) {
$tidstr = dimplode($tids);
//查询标签分类数据
$sql = "select jg.gid,g.name from bf_tag_join_group jg
left join bf_tag_group g on g.id = jg.gid
where jg.tag_id in($tidstr) group by jg.gid";
$taggroupdata = $this->fetch_all($sql);
$relationgroupdata = [];
//插入标签分类关系表及pichome分类返回原分类id对应pichome标签分类id
foreach ($taggroupdata as $val) {
$tmpreturn = C::t('#billfish#billfish_taggrouprecord')->insert_data($val, $this->appid);
$relationgroupdata[$tmpreturn['bcid']] = $tmpreturn['cid'];
}
//处理标签表数据
//查询标签名称,id 插入标签对照表 返回原标签id对应pichome标签id 将标签加入searchval
$sql = " select t.id,t.name,j.gid from bf_tag t
left join bf_tag_join_group j on j.tag_id = t.id where t.id in($tidstr)";
$tagdata = $this->fetch_all($sql);
$tagrelativedata = [];
$taggroups =[];
foreach ($tagdata as $val) {
$tagsetarr = ['name' => $val['name'], 'lid' => $val['id']];
$tmptagrelativedata = C::t('#billfish#billfish_tagrecord')->insert_data($tagsetarr, $this->appid);
$tagrelativedata[$tmptagrelativedata['lid']] = $tmptagrelativedata['tid'];
$attrdata['searchval'] .= $val['name'];
if($val['gid']) $taggroups[] = ['gid'=>$val['gid'],'lid'=>$val['id']];
}
//处理标签与分类关系数据 查询原标签分类和标签id 插入pichome标签分类对应标签id
//$sql = "select gid,lid from tag_join_group where lid in($tidstr)";
//$taggroups = $this->fetch_all($sql);
foreach ($taggroups as $val) {
$tagrelarr = [
'tid' => $tagrelativedata[$val['lid']],
'cid' => $relationgroupdata[$val['gid']],
'appid' => $this->appid,
];
C::t('pichome_tagrelation')->insert($tagrelarr);
}
//处理标签文件关系数据
$inserttids = $ftids = array_values($tagrelativedata);
//查询pichome是否有标签数据
$oattrtag = DB::result_first("select tag from %t where rid = %s", array('pichome_resources_attr', $rid));
if ($oattrtag) {
$ottids = explode(',', $oattrtag);
//取得删除的标签
$deltids = array_diff($ftids, $ottids);
if (!empty($deltids)) C::t('pichome_resourcestag')->delete_by_ridtid($rid, $deltids);
//取得插入的标签
$inserttids = $deltids = array_diff($ottids, $ftids);
}
//插入标签关系表
foreach ($inserttids as $val) {
$tagresourcesattr = ['tid' => $val, 'rid' => $rid, 'appid' => $this->appid];
C::t('pichome_resourcestag')->insert($tagresourcesattr);
}
//更新属性表标签数据
$attrdata['tag'] = implode(',', $ftids);
}
//标签数据结束
//开始处理颜色数据
//查询颜色数据
$sql = "select * from bf_material_color where file_id = $id";
$bcolordata = $this->fetch_all($sql);
//删除原颜色数据
DB::delete('pichome_palette', array('rid' => $rid));
foreach ($bcolordata as $val) {
$colorarr = ['rid' => $rid,
'color' => $val['color'],
'weight' => $val['precent'],
'r' => $val['r'],
'g' => $val['g'],
'b' => $val['b']
];
C::t('pichome_palette')->insert($colorarr);
}
//颜色数据处理结束
//处理标注数据
//删除原标注数据
C::t('pichome_comments')->delete_by_rid($rid);
if ($v['comments_detail']) {
$commentdata = json_decode($v['comments_detail'],true);
foreach ($commentdata as $commentval) {
$tcommentval['id'] = random(13) . $this->appid;
$tentval['appid'] = $this->appid;
$tcommentval['rid'] = $rid;
$tcommentval['x'] = number_format($commentval['x'], 2);
$tcommentval['y'] = number_format($commentval['y'], 2);
$tcommentval['width'] = number_format($commentval['cx'], 2);
$tcommentval['height'] = number_format($commentval['cy'], 2);
$tcommentval['annotation'] = $commentval['comment'];
try {
C::t('pichome_comments')->insert($tcommentval);
$setarr['searchval'] .= $tcommentval['annotation'];
} catch (Exception $e) {
}
}
}
//标注数据处理结束
//处理音视频时长数据
//查询音频时长
$sql = "select duration from bf_material_video where file_id = $id";
$videodata = $this->fetch($sql);
if(isset($videodata['duration'])) $attrdata['duration'] = $videodata['duration'];
//查询视频时长
$sql = "select duration from bf_material_audio where file_id = $id";
$audiodata = $this->fetch($sql);
if(isset($audiodata['duration'])) $attrdata['duration'] = $audiodata['duration'];
//时长处理结束
//插入属性表数据
$attrdata['rid'] = $rid;
$attrdata['appid'] = $this->appid;
C::t('pichome_resources_attr')->insert($attrdata);
$this->donum += 1;
}
else{
//文件总数减1
$this->filenum -= 1;
}
}
//导入百分比
$percent = floor(($this->donum / $this->filenum) * 100);
$percent = ($percent > 100) ? 100 : $percent;
$state = ($percent >= 100) ? 3 : 2;
if ($state == 3) {
$lastid = 0;
$percent = 0;
$this->donum = 0;
}
//记录导入起始位置,以备中断后从此处,更改导入状态
C::t('pichome_vapp')->update($this->appid, array('percent' => $percent, 'donum' => $this->donum, 'state' => $state,'filenum'=>$this->filenum));
}
if($state == 2){
$lastid = $lastid+1;
C::t('pichome_vapp')->update($this->appid,array('lastid' => $lastid));
}
return array('success' => true);
}
public function oldexport($force = false){
//开始页数 //开始页数
if ($this->lastid) { if ($this->lastid) {
$start = $this->lastid; $start = $this->lastid;
@@ -168,8 +469,9 @@ class billfishxport
//定义属性表变量 //定义属性表变量
$attrdata = []; $attrdata = [];
$attrdata['desc'] = $v['note']; $attrdata['desc'] = $v['note'];
$attrdata['link'] = $v['origin'];
//将名字记入搜索字段 //将名字记入搜索字段
$attrdata['searchval'] = $setarr['name'].$attrdata['desc']; $attrdata['searchval'] = $setarr['name'].$attrdata['desc'].$attrdata['link'];
//处理目录数据 //处理目录数据
if ($v['fid']) { if ($v['fid']) {
$folderdata = $this->getFolderfid($v['fid']); $folderdata = $this->getFolderfid($v['fid']);
@@ -186,9 +488,11 @@ class billfishxport
$attrdata['path'] = $setarr['name']; $attrdata['path'] = $setarr['name'];
} }
//目录数据处理完成 //目录数据处理完成
$attrdata['path'] = $this->getFileRealFileName($this->path,$attrdata['path']);
//转码路径 记入属性表 //转码路径 记入属性表
if (CHARSET != $this->charset) $attrdata['path'] = diconv($attrdata['path'],CHARSET, $this->charset);; //$p = new Encode_Core();
//$this->charset = $p->get_encoding($attrdata['path']);
//if (CHARSET != $this->charset) $attrdata['path'] = diconv($attrdata['path'],CHARSET, $this->charset);;
//标签数据开始 //标签数据开始
@@ -341,14 +645,15 @@ class billfishxport
$state = ($percent >= 100) ? 3 : 2; $state = ($percent >= 100) ? 3 : 2;
if ($state == 3) { if ($state == 3) {
$lastid = 0; $lastid = 0;
$percent = 0;
$this->donum = 0;
} }
//记录导入起始位置,以备中断后从此处,更改导入状态 //记录导入起始位置,以备中断后从此处,更改导入状态
C::t('pichome_vapp')->update($this->appid, array('percent' => $percent, 'donum' => $this->donum, 'state' => $state)); C::t('pichome_vapp')->update($this->appid, array('percent' => $percent, 'donum' => $this->donum, 'state' => $state,'filenum'=>$this->filenum));
} }
$time4= microtime(true);
$lastid = $lastid+1; $lastid = $lastid+1;
C::t('pichome_vapp')->update($this->appid,array('lastid' => $lastid)); C::t('pichome_vapp')->update($this->appid,array('lastid' => $lastid));
return array('success' => true); return array('success' => true);
@@ -357,8 +662,12 @@ class billfishxport
public function getFolderfid($bfid, $dirpath = '') public function getFolderfid($bfid, $dirpath = '')
{ {
$parentfolderdata = []; $parentfolderdata = [];
if($this->version < 30){
$sql = "select * from folder where id = $bfid";
}else{
$sql = "select * from bf_folder where id = $bfid";
}
$sql = "select * from folder where id = $bfid";
$folderdata = $this->fetch($sql); $folderdata = $this->fetch($sql);
$dirpath = $folderdata['name'] . ($dirpath ? BS . $dirpath : ''); $dirpath = $folderdata['name'] . ($dirpath ? BS . $dirpath : '');
if ($folderdata['pid']) { if ($folderdata['pid']) {
@@ -369,7 +678,8 @@ class billfishxport
$setarr = [ $setarr = [
'pfid' => isset($parentfolderdata['fid']) ? $parentfolderdata['fid'] : '', 'pfid' => isset($parentfolderdata['fid']) ? $parentfolderdata['fid'] : '',
'fname' => $folderdata['name'], 'fname' => $folderdata['name'],
'appid' => $this->appid 'appid' => $this->appid,
'disp'=>($this->version < 30) ? $folderdata['seq']:round($folderdata['seq']*1000000000)
]; ];
$return = C::t('#billfish#billfish_folderrecord')->insert_data($bfid, $setarr); $return = C::t('#billfish#billfish_folderrecord')->insert_data($bfid, $setarr);
$return['dirpath'] = $dirpath; $return['dirpath'] = $dirpath;
@@ -406,9 +716,15 @@ class billfishxport
//检查不存在的标签删除 //检查不存在的标签删除
$tagtotal = DB::result_first("select count(id) from %t where appid = %s",array('billfish_tagrecord',$this->appid)); $tagtotal = DB::result_first("select count(id) from %t where appid = %s",array('billfish_tagrecord',$this->appid));
$this->check_notexists_tag($tagtotal); $this->check_notexists_tag($tagtotal);
//删除创建的索引 if($this->version < 30){
$sql = 'DROP INDEX res_join_tag_iid'; //删除创建的索引
$this->db->query($sql); $sql = 'DROP INDEX res_join_tag_iid';
$this->db->query($sql);
}else{
$sql = 'DROP INDEX res_join_tag_id';
$this->db->query($sql);
}
$hascatnum = DB::result_first("SELECT count(DISTINCT rid) FROM %t where appid = %s",array('pichome_folderresources',$this->appid)); $hascatnum = DB::result_first("SELECT count(DISTINCT rid) FROM %t where appid = %s",array('pichome_folderresources',$this->appid));
$nosubfilenum = $total - $hascatnum; $nosubfilenum = $total - $hascatnum;
@@ -418,12 +734,21 @@ class billfishxport
foreach ($data as $v) { foreach ($data as $v) {
$rid = $v['rid']; $rid = $v['rid'];
$iid = DB::result_first("select bid from %t where rid = %s and appid = %s",array('billfish_record',$rid,$this->appid)); $iid = DB::result_first("select bid from %t where rid = %s and appid = %s",array('billfish_record',$rid,$this->appid));
//查询billfish中是否有该数据 if(!$iid){
$sql = "select count(*) as num from source where id = $iid";
$numdata = $this->fetch($sql);
if(!isset($numdata['num']) || !$numdata['num']){
$delrids[] = $rid; $delrids[] = $rid;
}else{
if($this->version < 30){
$sql = "select count(s.id) as num from source s left join res_prop rp on s.id = rp.iid where rp.action =0 and s.id = $iid";
}else{
//查询billfish中是否有该数据
$sql = "select count(f.id) as num from bf_file f left join bf_material m on f.id = m.file_id where m.is_recycle =0 and f.id = $iid";
}
$numdata = $this->fetch($sql);
if(!isset($numdata['num']) || !$numdata['num']){
$delrids[] = $rid;
}
} }
} }
if (!empty($delrids)) { if (!empty($delrids)) {
$this->filenum = $this->filenum - count($delrids); $this->filenum = $this->filenum - count($delrids);
@@ -448,7 +773,6 @@ class billfishxport
} }
//检查目录数据 //检查目录数据
public function check_notexists_folder($total){ public function check_notexists_folder($total){
$tmpkey = 'pichomecheckfolder' . $this->appid; $tmpkey = 'pichomecheckfolder' . $this->appid;
$folderstart = C::t('cache')->fetch($tmpkey); $folderstart = C::t('cache')->fetch($tmpkey);
if (!$folderstart) { if (!$folderstart) {
@@ -467,8 +791,13 @@ class billfishxport
} }
$bfidstr = dimplode($bfids); $bfidstr = dimplode($bfids);
if($this->version < 30){
$sql = "select id from folder where id in($bfidstr)";
}else{
$sql = "select id from bf_folder where id in($bfidstr)";
}
//查询不存的目录 //查询不存的目录
$sql = "select id from folder where id in($bfidstr)";
$bfolder = $this->fetch_all($sql); $bfolder = $this->fetch_all($sql);
$blfids = []; $blfids = [];
foreach ($bfolder as $val){ foreach ($bfolder as $val){
@@ -506,7 +835,10 @@ class billfishxport
return true; return true;
} }
$lidstr = dimplode(',',$lids); $lidstr = dimplode(',',$lids);
$sql = "select id from tag where id in($lidstr)"; if($this->version < 30){
$sql = "select id from tag where id in($lidstr)";
}
else $sql = "select id from bf_tag where id in($lidstr)";
$blids =[] ; $blids =[] ;
foreach($this->fetch_all($sql) as $v){ foreach($this->fetch_all($sql) as $v){
$blids[] = $v['id']; $blids[] = $v['id'];

View File

@@ -39,5 +39,11 @@ class table_billfish_record extends dzz_table
DB::delete($this->_table,array('appid'=>$appid)); DB::delete($this->_table,array('appid'=>$appid));
} }
public function delete_by_rids($rids){
if (!is_array($rids)) $rids = (array)$rids;
DB::delete($this->_table,'rid in ('.dimplode($rids).')');
}
} }

View File

@@ -0,0 +1,20 @@
<?php
namespace dzz\billfish\classes;
use \core as C;
use \DB as DB;
class deleteafter
{
public function run($data)
{
C::t('#billfish#billfish_record')->delete_by_rids($data['rids']);
}
}

View File

@@ -0,0 +1,18 @@
<?php
namespace dzz\billfish\classes;
use \core as C;
use \DB as DB;
use \fmpeg as fmpeg;
class delpichomefolderafter
{
public function run($data)
{
C::t("#billfish#billfish_folderrecord")->delete_by_appid($data['appid']);
}
}

View File

@@ -11,16 +11,29 @@ class getpichomethumb
public function run(&$data) public function run(&$data)
{ {
$thumbid = DB::result_first("select thumb from %t where appid = %s and rid = %s", array('billfish_record', $data['appid'], $data['rid'])); $thumbid = DB::result_first("select thumb from %t where appid = %s and rid = %s", array('billfish_record', $data['appid'], $data['rid']));
if (strlen($thumbid) < 9) { if(isset($data['version']) && $data['version'] >=30){
$thumbid = str_pad($thumbid,9,0,STR_PAD_LEFT); $bid = DB::result_first("select bid from %t where rid = %s",array('billfish_record',$data['rid']));
$thumbdir = dechex($bid);
$thumbdir = (string) $thumbdir;
if(strlen($thumbdir) < 2){
$thumbdir =str_pad($thumbdir,2,0,STR_PAD_LEFT);
}elseif(strlen($thumbdir) > 2){
$thumbdir = substr($thumbdir,-2);
}
$pathdir = $data['apppath'].BS.'.bf'.BS.'.preview'.BS.$thumbdir.BS.$bid.'.small.webp';
return array('icon'=>$pathdir);
}else{
if (strlen($thumbid) < 9) {
$thumbid = str_pad($thumbid,9,0,STR_PAD_LEFT);
}
$pathdir = $data['apppath'].BS.'.bf'.BS.'.preview';
$thumbpatharr = $this->mbStrSplit($thumbid,3);
array_pop($thumbpatharr);
$thumbpath = implode(BS,$thumbpatharr);
return array('icon'=>$pathdir.BS.$thumbpath.BS.$thumbid.'.webp');
} }
$pathdir = $data['apppath'].BS.'.bf'.BS.'.preview';
$thumbpatharr = $this->mbStrSplit($thumbid,3);
array_pop($thumbpatharr);
$thumbpath = implode(BS,$thumbpatharr);
return array('icon'=>$pathdir.BS.$thumbpath.BS.$thumbid.'.webp');
} }
function mbStrSplit ($string, $len=1) { function mbStrSplit ($string, $len=1) {

View File

@@ -9,12 +9,15 @@ use \fmpeg as fmpeg;
class pichomevappdelete class pichomevappdelete
{ {
public function run($appid) public function run($data)
{ {
C::t("#billfish#billfish_record")->delete_by_appid($appid); if($data['type'] == 2){
C::t("#billfish#billfish_folderrecord")->delete_by_appid($appid); C::t("#billfish#billfish_record")->delete_by_appid($data['appid']);
C::t("#billfish#billfish_tagrecord")->delete_by_appid($appid); C::t("#billfish#billfish_folderrecord")->delete_by_appid($data['appid']);
C::t("#billfish#billfish_taggrouprecord")->delete_by_appid($appid); C::t("#billfish#billfish_tagrecord")->delete_by_appid($data['appid']);
C::t("#billfish#billfish_taggrouprecord")->delete_by_appid($data['appid']);
}
return true;
} }

View File

@@ -85,7 +85,7 @@ class Encode_Core {
$ary[] = "JIS";//日文编码 $ary[] = "JIS";//日文编码
$ary[] = "EUC-JP";//日文编码 $ary[] = "EUC-JP";//日文编码
$encoding= self::detect_utf_encoding($str); $encoding= self::detect_utf_encoding($str);
if(empty($encoding) && self::is_gb2312($str)) return 'GBK'; //if(empty($encoding) && self::is_GBK($str)) return 'GBK';
if(empty($encoding)){ if(empty($encoding)){
$encoding=mb_detect_encoding($str,$ary); $encoding=mb_detect_encoding($str,$ary);
} }

View File

@@ -0,0 +1,732 @@
<?php
if (!defined('IN_OAOOA')) {
exit('Access Denied');
}
@set_time_limit(0);
@ini_set('max_execution_time', 0);
require_once(DZZ_ROOT . './dzz/class/class_encode.php');
require_once './core/class/class_Color.php';
require_once libfile('function/user', '', 'user');
class eagleexport
{
private $path = '';//待执行数据path
private $appid = 0;//库id
private $uid = 0;//用户id
private $username = null;//用户名
private $filenum = 0;//总文件数
private $checkpage = 1;
private $checklimit = 1000;
private $onceexportnum = 1000;
private $checknum = 0;
private $eagledir = DZZ_ROOT . 'library';
private $readtxt = DZZ_ROOT . './data/attachment/cache/';
private $exportstatus = 0;
private $donum = 0;
private $lastid = '';
public function __construct($data = array())
{
//获取导入记录表基本数据
$this->path = str_replace('/', BS, $data['path']);;
$this->appid = $data['appid'];
$this->uid = $data['uid'];
$this->username = $data['username'];
$this->exportstatus = $data['state'];
$this->donum = $data['donum'];
$this->filenum = $data['filenum'];
$this->lastid = $data['lastid'];
}
public function getpathdata($folderdata, $appid, $pathdata = array())
{
foreach ($folderdata as $v) {
$pathdata[$v['id'] . $appid] = $v['name'];
if ($v['children']) {
$tmpchild = $v['children'];
$pathdata = $this->getpathdata($tmpchild, $appid, $pathdata);
}
}
return $pathdata;
}
public function initFoldertag()
{
$jsonfile = $this->path . BS . 'metadata.json';
$mtime = filemtime($jsonfile);
$appdatas = file_get_contents($jsonfile);
//解析出json数据
$appdatas = json_decode($appdatas, true);
//目录数据
$folderdata = $appdatas['folders'];
$efids = C::t('#eagle#eagle_folderrecord')->insert_folderdata_by_appid($this->appid, $folderdata);
$delids = [];
foreach(DB::fetch_all("select id from %t where efid not in(%n) and appid = %s",array('eagle_folderrecord',$efids,$this->appid)) as $delid){
$delids[] = $delid['id'];
}
//删除多余目录
foreach(DB::fetch_all("select f.fid from %t f left join %t ef on f.fid=ef.fid where f.appid = %s and ISNULL(ef.id)",array('pichome_folder','eagle_folderrecord',$this->appid)) as $dv){
C::t('pichome_folder')->delete_by_fids($dv);
}
//对比目录数据
if($delids)C::t('#eagle#eagle_folderrecord')->delete_by_ids($delids);
//标签数据
$tagdata = $appdatas['tagsGroups'];
$currentcids = [];
$tids = [];
foreach ($tagdata as $v) {
$taggroupdata = [
'cid' => $v['id'] . $this->appid,
'catname' => $v['name'],
'appid' => $this->appid,
'dateline' => TIMESTAMP
];
//插入或更新标签分类数据
$cid = C::t('pichome_taggroup')->insert($taggroupdata);
$currentcids[] = $cid;
foreach ($v['tags'] as $val) {
$tid = C::t('pichome_tag')->insert($val, 1);
$tids[] = $tid;
if ($cid) {
$relasetarr = ['cid' => $cid, 'tid' => $tid, 'appid' => $this->appid];
C::t('pichome_tagrelation')->insert($relasetarr);
}
}
}
if ($tids) {
//查询关系表中包含的不存在的标签关系
$drids = [];
foreach (DB::fetch_all("select id from %t where tid not in(%n) and appid = %s", array('pichome_tagrelation', $tids, $this->appid)) as $rv) {
$drids[] = $rv['id'];
}
//删除不存在的标签关系数据
C::t('pichome_tagrelation')->delete($drids);
}
$ocids = C::t('pichome_taggroup')->fetch_cid_by_appid($this->appid);
$delcids = array_diff($ocids, $currentcids);
C::t('pichome_taggroup')->delete_by_cids($delcids);
C::t('pichome_vapp')->update($this->appid, array('dateline' => $mtime));
return true;
}
public function initExport()
{
$filedir = $this->path . BS . 'images';
$readtxt = $this->readtxt . 'eagleexport' . md5($this->path) . '.txt';
$filenum = 0;
if (!is_file($readtxt) || filemtime($readtxt) < filemtime($this->path . BS . 'metadata.json')) {
C::t('pichome_vapp')->update($this->appid, array('state' => 1));
if ($dch = opendir($filedir)) {
$thandle = fopen($readtxt, 'w+');
while (($file = readdir($dch)) != false) {
if ($file != '.' && $file != '..') {
$filePath = $filedir . '/' . $file;
if (is_dir($filePath) && is_file($filePath . '/metadata.json')) {
$filenum++;
fwrite($thandle, $file . "\n");
}
unset($filePath);
unset($file);
}
}
fclose($thandle);
closedir($dch);
if ($filenum) $this->filenum = $filenum;
} else {
C::t('pichome_vapp')->update($this->appid, array('state' => -1));
return array('error' => 'Read Dir Failer');
}
$this->initFoldertag();
C::t('pichome_vapp')->update($this->appid, array('filenum' => $this->filenum, 'state' => 2));
}else{
$this->initFoldertag();
C::t('pichome_vapp')->update($this->appid, array('state' => 2));
}
return array('success' => true);
}
//获取文件可访问的真实地址
public function getFileRealFileName($filepath, $filename, $ext)
{
$charsetarr = ['GBK', 'GB18030'];
$returnname = $filename;
if (!is_file($filepath . BS . $filename . '.' . $ext)) {
foreach ($charsetarr as $v) {
$filemetadataname = diconv($filename, CHARSET, $v);
if (is_file($filepath . BS . $filemetadataname . '.' . $ext)) {
$returnname = $filemetadataname;
break;
}
}
}
return $returnname;
}
//生成主键rid
public function createrid()
{
$microtime = microtime();
list($msec, $sec) = explode(' ', $microtime);
$msec = $msec * 1000000;
$idstr = md5($sec . $msec . random(6) . $this->appid);
if (DB::result_first("select count(rid) from %t where rid = %s", array('pichome_resources', $idstr))) {
$this->create_id();
}
return $idstr;
}
public function execExport($force = false)
{
$filedir = $this->path . BS . 'images';
$readtxt = $this->readtxt . 'eagleexport' . md5($this->path) . '.txt';
if (filesize($readtxt) == 0) {
@unlink($readtxt);
C::t('pichome_vapp')->update($this->appid, array('lastid' => 0, 'percent' => 100, 'donum' => 0, 'state' => 3, 'filenum' => $this->filenum));
return array('success' => true);
}
if ($this->lastid) {
$start = $this->lastid;
} else $start = 0;
$spl_object = new SplFileObject($readtxt, 'rb');
$spl_object->seek($start);
if ($this->lastid < $this->filenum && $this->exportstatus == 2) {
$i = 0;
while (is_file($readtxt) && !$spl_object->eof()) {
$i++;
if ($i > $this->onceexportnum) {
break;
}
$file = $spl_object->current();
$file = trim($file);
$filePath = $filedir . '/' . $file;
$id = trim(str_replace('.info', '', $file));
//文件路径
$tmppath = $filePath;
unset($filePath);
//文件信息文件路径
$metadatajsonfile = $tmppath . BS . 'metadata.json';
//尝试获取记录表记录
$rdata = C::t('#eagle#eagle_record')->fetch_by_eid($id,$this->appid);
$rid = '';
if (!isset($rdata['rid'])) {
$orid = $id . $this->appid;//原来rid格式
if ($lastdate = DB::result_first("select lastdate from %t where rid = %s", array('pichome_resources', $orid))) {
$rid = $orid;
}
} else {
$rid = $rdata['rid'];
$lastdate = $rdata['dateline'];
}
//判断是否含有数据信息文件
if (is_file($metadatajsonfile)) {
$flastdate = filemtime($metadatajsonfile);
$metadata = file_get_contents($metadatajsonfile);
$filemetadata = json_decode($metadata, true);
//如果是删除状态,并且已有数据则执行删除
if ($filemetadata['isDeleted']) {
if($rid)C::t('pichome_resources')->delete_by_rid($rid);
}
else {
//如果不是新生成rid
if ($rid) {
$data = C::t('pichome_resources')->fetch($rid);
//判断最后更新时间
if ($force || $lastdate < $flastdate) {
$filemetadataname = $this->getFileRealFileName($tmppath, $filemetadata['name'], $filemetadata['ext']);
//文件名称
$filename = $filemetadataname . '.' . $filemetadata['ext'];
//缩略图名称
$thumbname = $filemetadataname . '_thumbnail.png';
//文件路径
$file = $tmppath . BS . $filename;
//缩略图路径
$thumbfile = $tmppath . BS . $thumbname;
$realfids = [];
if(!empty($filemetadata['folders'])){
$realfids = C::t('#eagle#eagle_folderrecord')->fetch_fid_by_efid($filemetadata['folders'],$this->appid);
}
$haspassword = false;
if(!empty($realfids)){
//如果目录含有密码则不导入数据直接跳过
$haspassword = C::t('pichome_folder')->check_haspasswrod($realfids, $this->appid);
}
if($haspassword){
C::t('pichome_resources')->delete_by_rid($rid);
}
else{
//如果mtime发生变化则删除原数据重新导入
if ($data['mtime'] < $filemetadata['mtime']) {
C::t('pichome_resources')->delete_by_rid($rid);
$filemetadata['rid'] = $this->createrid();
$filemetadata['filename'] = $filemetadata['name'];
$filemetadata['file'] = $file;
$filemetadata['thumbfile'] = $thumbfile;
$filemetadata['rid'] = $rid;
$filemetadata['mtime'] = $filemetadata['mtime'] ? $filemetadata['mtime'] : $filemetadata['modificationTime'];
$filemetadata['btime'] = $filemetadata['btime'] ? $filemetadata['btime'] : $filemetadata['modificationTime'];
$filemetadata['dateline'] = $filemetadata['lastModified'];
$filemetadata['lastdate'] = $flastdate;
$this->exportfile($id,$filemetadata);
unset($filemetadata);
}
else {
//信息表数据记录
$setarr = [];
$setarr['searchval'] = $filemetadata['name'];
//查询原数据中的属性信息
$attrdata = C::t('pichome_resources_attr')->fetch($rid);
$filename = $filemetadata['name'] . '.' . $filemetadata['ext'];
//检查reources数据变化
$resourcesarr = [
'name' => $filename,
'dateline' => $filemetadata['lastModified'],
'isdelete' => $filemetadata['isDeleted'],
'grade' => $filemetadata['star'] ? intval($filemetadata['star']) : 0,
'lastdate' => $flastdate,
'width' => $filemetadata['width'] ? $filemetadata['width'] : 0,
'height' => $filemetadata['height'] ? $filemetadata['height'] : 0,
'appid'=>$this->appid
];
$file = str_replace('/', BS, $file);
$attachment = str_replace($this->path . BS, '', $file);
$path = str_replace('/', BS, $attachment);
$thumb = (is_file($thumbfile)) ? 1 : 0;
$setarr['path'] = $path;
$resourcesarr['hasthumb'] = $thumb;
$resourcesarr['rid'] = $rid;
if (C::t('#eagle#eagle_record')->insert_data($id, $resourcesarr)) {
//检查标签变化
//标签数据
$tags = $filemetadata['tags'];
$setarr['searchval'] .= implode('', $tags);
//现有标签
$tagids = [];
//原有标签
$oldtids = [];
if ($attrdata['tag']) $oldtids = explode(',', $attrdata['tag']);
if (!empty($tags)) {
$tagids = $this->addtag($tags);
$setarr['tag'] = implode(',', $tagids);
}
$addtags = array_diff($tagids, $oldtids);
$deltags = array_diff($oldtids, $tagids);
if (!empty($deltags)) C::t('pichome_resourcestag')->delete_by_ridtid($rid, $deltags);
foreach ($addtags as $tid) {
$rtag = ['appid' => $this->appid, 'rid' => $rid, 'tid' => $tid];
C::t('pichome_resourcestag')->insert($rtag);
}
//检查标注变化
if (isset($filemetadata['comments'])) {
$cids = [];
foreach ($filemetadata['comments'] as $commentval) {
$tcommentval['id'] = $commentval['id'] . $this->appid;
$tcommentval['appid'] = $this->appid;
$tcommentval['rid'] = $rid;
$tcommentval['x'] = number_format($commentval['x'], 2);
$tcommentval['y'] = number_format($commentval['y'], 2);
$tcommentval['width'] = $commentval['width'];
$tcommentval['height'] = $commentval['height'];
$tcommentval['annotation'] = $commentval['annotation'];
$tcommentval['lastModified'] = $commentval['lastModified'];
try {
C::t('pichome_comments')->insert($tcommentval);
$setarr['searchval'] .= $tcommentval['annotation'];
} catch (Exception $e) {
}
$cids[] = $tcommentval['id'];
unset($tcommentval);
}
$ocids = C::t('pichome_comments')->fetch_id_by_rid($rid);
$delcids = array_diff($ocids, $cids);
if (!empty($delcids)) C::t('pichome_comments')->delete($delcids);
} else {
C::t('pichome_comments')->delete_by_rid($rid);
}
$rfids = [];
$orfids = C::t('pichome_folderresources')->fetch_id_by_rid($rid);
C::t('pichome_folderresources')->delete($orfids);
$setarr['searchval'] .= $resourcesarr['name'];
//检查目录变化
foreach ($realfids as $fv) {
$fid =$fv;
if (!C::t('pichome_folder')->check_password_byfid($fid)) {
$frsetarr = ['appid' => $this->appid, 'rid' => $rid, 'fid' => $fid];
C::t('pichome_folderresources')->insert($frsetarr);
// $fids[] = $fid;
}
}
//尝试更新属性表数据
$setarr['link'] = $filemetadata['url'] ? trim($filemetadata['url']) : '';
//描述数据
$setarr['desc'] = $filemetadata['annotation'] ? $filemetadata['annotation'] : '';
$setarr['searchval'] .= $setarr['desc'] . $setarr['link'];
if ($filemetadata['duration']) $setarr['duration'] = number_format($filemetadata['duration'], 2);
$setarr['rid'] = $rid;
C::t('pichome_resources_attr')->insert($setarr);
unset($filemetadata);
unset($setarr);
}
}
}
}
else{
if(!$rdata){
$setarr = [
'appid'=>$this->appid,
'rid'=>$rid,
'eid'=>$id,
'dateline'=>$flastdate
];
C::t('#eagle#eagle_record')->insert($setarr);
}
}
} else {
$realfids = [];
if(!empty($filemetadata['folders'])){
$realfids = C::t('#eagle#eagle_folderrecord')->fetch_fid_by_efid($filemetadata['folders'],$this->appid);
}
if(!empty($realfids)){
//如果目录含有密码则不导入数据直接跳过
$haspassword = C::t('pichome_folder')->check_haspasswrod($realfids, $this->appid);
}else{
$haspassword = false;
}
if (!$haspassword) {
$filemetadataname = $this->getFileRealFileName($tmppath, $filemetadata['name'], $filemetadata['ext']);
$filename = $filemetadataname . '.' . $filemetadata['ext'];
$thumbname = $filemetadataname . '_thumbnail.png';
//echo $i.'middle:'.memory_get_usage()/1024 . '<br>';
$file = $tmppath . BS . $filename;
$thumbfile = $tmppath . BS . $thumbname;
//$filemd5 = md5_file($file);
$filemetadata['filename'] = $filemetadata['name'];
$filemetadata['file'] = $file;
unset($file);
$filemetadata['thumbfile'] = $thumbfile;
$filemetadata['folders'] = $realfids;
unset($thumbfile);
$filemetadata['rid'] = $this->createrid();
$filemetadata['mtime'] = $filemetadata['mtime'] ? $filemetadata['mtime'] : $filemetadata['modificationTime'];
$filemetadata['btime'] = $filemetadata['btime'] ? $filemetadata['btime'] : $filemetadata['modificationTime'];
$filemetadata['dateline'] = $filemetadata['lastModified'];
$filemetadata['lastdate'] = $flastdate;
$this->exportfile($id,$filemetadata);
unset($filemetadata);
}
}
}
} else {
//如果已有数据删除,否则不做处理
if (!$rid) C::t('pichome_resources')->delete_by_rid($rid);
}
$this->donum += 1;
$percent = floor(($this->donum / $this->filenum) * 100);
//防止因获取文件总个数不准确百分比溢出
$percent = ($percent > 100) ? 100 : $percent;
$state = ($percent >= 100) ? 3 : 2;
if ($state == 3) {
$spl_object = false;
@unlink($this->readtxt . 'eagleexport' . md5($this->path) . '.txt');
$lastid = 0;
$percent = 0;
$this->donum = 0;
} else {
$lastid = $this->donum;
}
//记录导入起始位置,以备中断后从此处,更改导入状态为正在导入
C::t('pichome_vapp')->update($this->appid, array('lastid' => $lastid, 'percent' => $percent, 'donum' => $this->donum, 'state' => $state, 'filenum' => $this->filenum));
if($spl_object) $spl_object->next();
}
}
return array('success' => true);
}
//校验文件
public function execCheckFile()
{
if ($this->exportstatus == 3) {
$total = DB::result_first("select count(rid) from %t where appid = %s ", array('pichome_resources', $this->appid));
//校验文件
$this->check_file($total);
}
return true;
}
public function check_file($total)
{
if ($this->lastid < 1) $this->lastid = 1;
$limitsql = ($this->lastid - 1) * $this->checklimit . ',' . $this->checklimit;
$delrids = [];
$data = DB::fetch_all("select rid,isdelete from %t where appid = %s order by lastdate asc limit $limitsql ", array('pichome_resources', $this->appid));
if (empty($data)) {
C::t('pichome_vapp')->update($this->appid, array('percent' => 0, 'state' => 4, 'lastid' => 0, 'donum' => 0));
//校验完成后更新目录文件数
foreach (DB::fetch_all("select count(rf.id) as num,f.fid from %t f left join %t rf on rf.fid=f.fid where f.appid = %s group by f.fid", array('pichome_folder', 'pichome_folderresources', $this->appid)) as $v) {
C::t('pichome_folder')->update($v['fid'], array('filenum' => $v['num']));
}
//修正eagle对照表数据
//DB::delete('eagle_record',array('appid'=>''));
//修正库中文件数
$total = DB::result_first("select count(rid) from %t where appid = %s ", array('pichome_resources', $this->appid));
$hascatnum = DB::result_first("SELECT count(DISTINCT rid) FROM %t where appid = %s", array('pichome_folderresources', $this->appid));
$nosubfilenum = $total - $hascatnum;
C::t('pichome_vapp')->update($this->appid, array('filenum' => $total, 'nosubfilenum' => $nosubfilenum));
return true;
}
foreach ($data as $v) {
if ($v['isdelete']) {
$delrids[] = $v['rid'];
} else {
$id = C::t('#eagle#eagle_record')->fetch_eid_by_rid($v['rid'],$this->appid);
if(!$id){
//$id = str_replace($this->appid, '', $v['rid']);
$delrids[] = $v['rid'];
}else{
$filejson = $this->path . BS . 'images' . BS . $id . '.info' . BS . 'metadata.json';
if (!is_file($filejson)) {
$delrids[] = $v['rid'];
}
}
}
}
if (!empty($delrids)) {
//如果有需要删除的,删除后,则重新查询上一页数据
C::t('pichome_resources')->delete_by_rid($delrids);
if ($this->lastid == 1) {
$percent = round(($this->checklimit / $total) * 100);
} else {
$percent = round((($this->lastid - 1) * $this->checklimit / $total) * 100);
}
C::t('pichome_vapp')->update($this->appid, array('lastid' => $this->lastid, 'percent' => $percent, 'state' => 3));
} else {
if ($this->lastid == 1) {
$percent = round(($this->checklimit / $total) * 100);
} else {
$percent = round((($this->lastid - 1) * $this->checklimit / $total) * 100);
}
$percent = ($percent > 100) ? 100 : $percent;
C::t('pichome_vapp')->update($this->appid, array('lastid' => $this->lastid + 1, 'percent' => $percent, 'state' => 3));
}
}
public function exportfile($id,$filemetadata)
{
$rid = $filemetadata['rid'];
if (!is_file($filemetadata['file'])) {
return;
}
$filemetadata['file'] = str_replace('/', BS, $filemetadata['file']);
$attachment = str_replace('/', BS, $filemetadata['file']);
$path = str_replace($this->path . BS, '', $attachment);
unset($attachment);
$thumb = (is_file($filemetadata['thumbfile'])) ? 1 : 0;
//echo 'middle1:'.memory_get_usage()/1024 . '<br>';
$type = getTypeByExt($filemetadata['ext']);
$resourcesarr = [
'rid' => $rid,
'uid' => $this->uid,
'username' => $this->username,
'appid' => $this->appid,
'width' => $filemetadata['width'] ? $filemetadata['width'] : 0,
'height' => $filemetadata['height'] ? $filemetadata['height'] : 0,
'name' => $filemetadata['filename'] . '.' . $filemetadata['ext'],
'ext' => $filemetadata['ext'],
'size' => $filemetadata['size'],
'dateline' => $filemetadata['dateline'],
'btime' => $filemetadata['btime'],
'mtime' => $filemetadata['mtime'],
'isdelete' => $filemetadata['isDeleted'],
'hasthumb' => $thumb,
'grade' => $filemetadata['star'] ? intval($filemetadata['star']) : 0,
'type' => $type,
'lastdate' => $filemetadata['lastdate']
];
unset($type);
//插入文件表数据
if (C::t('#eagle#eagle_record')->insert_data($id,$resourcesarr)) {
DB::delete('pichome_folderresources', array('rid' => $rid));
//获取属性表数据
$setarr = [];
$setarr['searchval'] = $resourcesarr['name'];
//$fids = [];
//插入目录关联表数据
foreach ($filemetadata['folders'] as $fv) {
$fid = $fv;
if (!C::t('pichome_folder')->check_password_byfid($fid)) {
$frsetarr = ['appid' => $this->appid, 'rid' => $rid, 'fid' => $fid];
C::t('pichome_folderresources')->insert($frsetarr);
//$fids[] = $fid;
unset($frsetarr);
}
}
/* if(!empty($fids)){
foreach(DB::fetch_all("select fname from %t where fid in(%n)",array('pichome_folder',$fids)) as $foldername){
$setarr['searchval'] .= $foldername['fname'];
}
}*/
//标签数据
$tags = $filemetadata['tags'];
$setarr['searchval'] .= implode('', $tags);
if (!empty($tags)) {
$tagids = $this->addtag($tags);
unset($tags);
foreach ($tagids as $tid) {
$rtag = ['appid' => $this->appid, 'rid' => $rid, 'tid' => $tid];
C::t('pichome_resourcestag')->insert($rtag);
}
$setarr['tag'] = implode(',', $tagids);
unset($tagids);
}
//颜色数据
if (isset($filemetadata['palettes'])) {
$returndata = $this->getColor($filemetadata['palettes'], $resourcesarr['width'], $resourcesarr['height'], $rid);
$setarr['colors'] = $returndata['colors'];
$setarr['gray'] = $returndata['gray'];
$setarr['shape'] = $returndata['shape'];
unset($returndata);
}
//标注数据
if (isset($filemetadata['comments'])) {
foreach ($filemetadata['comments'] as $commentval) {
$tcommentval['id'] = $commentval['id'] . $this->appid;
$tcommentval['appid'] = $this->appid;
$tcommentval['rid'] = $rid;
$tcommentval['x'] = number_format($commentval['x'], 2);
$tcommentval['y'] = number_format($commentval['y'], 2);
$tcommentval['width'] = $commentval['width'];
$tcommentval['height'] = $commentval['height'];
$tcommentval['annotation'] = $commentval['annotation'];
$tcommentval['lastModified'] = $commentval['lastModified'];
C::t('pichome_comments')->insert($tcommentval);
$setarr['searchval'] .= $commentval['annotation'];
unset($tcommentval);
}
}
//时长
if ($filemetadata['duration']) $setarr['duration'] = number_format($filemetadata['duration'], 2);
//链接数据
$setarr['link'] = $filemetadata['url'] ? trim($filemetadata['url']) : '';
//描述数据
$setarr['desc'] = $filemetadata['annotation'] ? $filemetadata['annotation'] : '';
$setarr['searchval'] .= $setarr['desc'] . $setarr['link'];
$setarr['rid'] = $rid;
$setarr['appid'] = $this->appid;
$setarr['path'] = $path;
//echo '属性插入前缓存:'.memory_get_usage()/1024 . '<br>';
//插入数据
C::t('pichome_resources_attr')->insert($setarr);
//echo '属性插入后缓存:'.memory_get_usage()/1024 . '<br>';
} else {
runlog('eagleexport', $rid);
}
}
//判断图片纯色
public function isgray($colors)
{
$i = 0;
if (count($colors) < 1) return 0;
foreach ($colors as $color) {
$color = new Color($color);
$rgb = $color->toRGB();
unset($color);
if (abs($rgb[0] - $rgb[1]) < 10 && abs($rgb[2] - $rgb[1]) < 10) {
$i++;
}
unset($rgb);
}
if ($i == count($colors)) {
return 1;
} else {
return 0;
}
}
//获取颜色数据
public function getColor($colors, $width, $height, $rid)
{
//echo '颜色处理前:'.memory_get_usage()/1024 . '<br>';
$intcolorsarr = $returndata = [];
$i = 1;
foreach ($colors as $c) {
$color = new \Color($c['color']);
//获取颜色整型值
$intcolor = $color->toInt();
$palattedataarr = ['rid' => $rid, 'color' => $intcolor, 'weight' => $c['ratio'], 'r' => $c['color'][0], 'g' => $c['color'][1], 'b' => $c['color'][2]];
$intcolorsarr[] = $intcolor;
//echo "颜色处理中前 $i :".memory_get_usage()/1024 . '<br>';
C::t('pichome_palette')->insert($palattedataarr);
//echo "颜色处理中后 $i :".memory_get_usage()/1024 . '<br>';
$i++;
}
unset($colors);
//颜色整型值数据
// $intcolorsarr= array_keys($palattedataarr);
$returndata['colors'] = implode(',', $intcolorsarr);
$returndata['gray'] = $this->isgray($intcolorsarr);
$returndata['shape'] = round(($width / $height) * 100);
unset($intcolorsarr);
//echo '颜色处理后缓存:'.memory_get_usage()/1024 . '<br>';
return $returndata;
}
//添加标签
public function addtag($tags)
{
$tagids = [];
foreach ($tags as $v) {
if (!preg_match('/^\s*$/', $v)) {
if ($tid = C::t('pichome_tag')->insert($v)) {
$tagids[] = $tid;
}
}
}
unset($tags);
return $tagids;
}
}

View File

@@ -0,0 +1,101 @@
<?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_eagle_folderrecord extends dzz_table
{
public function __construct() {
$this->_table = 'eagle_folderrecord';
$this->_pk = 'id';
parent::__construct();
}
public function createfidby_efidappid($efid,$appid){
//如果没有记录值
if (!$fid = DB::result_first("select fid from %t where efid = %s and appid = %s", array($this->_table, $efid,$appid))){
//检查是否有旧版数据记录值
$fid = $efid.$appid;
if(!DB::result_first("select fid from %t where fid = %s and appid = %s",array('pichome_folder',$fid,$appid))){
$fid = C::t('pichome_folder')->createfidbyappid($appid);
}
$setarr = [
'appid'=>$appid,
'efid'=>$efid,
'fid'=>$fid
];
parent::insert($setarr);
}
return $fid;
}
public function insert_folderdata_by_appid($appid,$folderdata,$pfid='',$pathkey='',$fids=[])
{
foreach ($folderdata as $k => $v) {
$id = $v['id'];
//获取或生成记录fid值
$fid = $this->createfidby_efidappid($id,$appid);
$setarr=[
'fid'=>$fid,
'fname'=>$v['name'],
'dateline'=>TIMESTAMP,
'pfid'=>$pfid,
'appid'=>$appid,
'password'=>$v['password'],
'passwordtips'=>$v['passwordTips'],
'pathkey'=> ($pathkey)?$pathkey.$fid:$fid,
'disp'=>$k];
$fid = C::t('pichome_folder')->insert_data($setarr);
$fids[] = $id;
if($v['children']){
$fids = $this->insert_folderdata_by_appid($appid,$v['children'],$fid,($pathkey)?$pathkey.$fid:$fid,$fids);
}
}
return $fids;
}
public function delete_by_fid($fids,$appid){
if(!is_array($fids)) $fids = (array)$fids;
$delfid = $delid = [];
foreach(DB::fetch_all("select fid,id from %t where fid in(%n) and appid = %s",array($this->_table,$fids,$appid)) as $v){
$delfid[] = $v['fid'];
$delid[] = $v['id'];
}
if(!empty($delfid))C::t('pichome_folder')->delete_by_fids($delfid);
parent::delete($delid);
}
public function delete_by_ids($ids){
if(!array($ids)) $ids = (array)$ids;
$fids = [];
foreach(DB::fetch_all("select fid from %t where id in(%n)",array($this->_table,$ids)) as $v){
$fids[] = $v['fid'];
}
if(!empty($fids))C::t('pichome_folder')->delete_by_fids($fids);
parent::delete($ids);
}
public function delete_by_appid($appid){
DB::delete($this->_table,array('appid'=>$appid));
}
public function fetch_fid_by_efid($efids,$appid){
$fids = [];
foreach(DB::fetch_all("select fid from %t where efid in(%n) and appid = %s",array($this->_table,$efids,$appid)) as $v){
$fids[] = $v['fid'];
}
return $fids;
}
}

View File

@@ -0,0 +1,54 @@
<?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_eagle_record extends dzz_table
{
public function __construct() {
$this->_table = 'eagle_record';
$this->_pk = 'id';
parent::__construct();
}
public function insert_data($eid,$setarr){
if(C::t('pichome_resources')->insert($setarr)){
$setarr1['rid'] = $setarr['rid'];
$setarr1['appid'] = $setarr['appid'];
$setarr1['eid'] = $eid;
$setarr1['dateline']=$setarr['lastdate'];
$id = DB::result_first("select id from %t where eid = %s and appid = %s",array($this->_table,$eid,$setarr['appid']));
if($id){
parent::update($id,$setarr1);
}else{
parent::insert($setarr1);
}
}
return true;
}
public function delete_by_appid($appid){
DB::delete($this->_table,array('appid'=>$appid));
}
public function delete_by_rids($rids){
if (!is_array($rids)) $rids = (array)$rids;
DB::delete($this->_table,'rid in ('.dimplode($rids).')');
}
public function fetch_by_eid($eid,$appid){
return DB::fetch_first("select * from %t where eid = %s and appid = %s",array($this->_table,$eid,$appid));
}
public function fetch_eid_by_rid($rid,$appid){
return DB::result_first("select eid from %t where rid = %s",array($this->_table,$rid,$appid));
}
}

View File

@@ -0,0 +1,20 @@
<?php
namespace dzz\eagle\classes;
use \core as C;
use \DB as DB;
class deleteafter
{
public function run($data)
{
C::t('#eagle#eagle_record')->delete_by_rids($data['rids']);
}
}

View File

@@ -0,0 +1,18 @@
<?php
namespace dzz\eagle\classes;
use \core as C;
use \DB as DB;
use \fmpeg as fmpeg;
class delpichomefolderafter
{
public function run($data)
{
C::t("#eagle#eagle_folderrecord")->delete_by_appid($data['appid']);
}
}

View File

@@ -0,0 +1,48 @@
<?php
namespace dzz\eagle\classes;
use \core as C;
use \DB as DB;
class getpichomethumb
{
public function run(&$data)
{
/*$thumbid = DB::result_first("select thumb from %t where appid = %s and rid = %s", array('billfish_record', $data['appid'], $data['rid']));
if(isset($data['version']) && $data['version'] > 16){
$bid = DB::result_first("select bid from %t where rid = %s",array('billfish_record',$data['rid']));
$thumbdir = dechex($bid);
$thumbdir = (string) $thumbdir;
if(strlen($thumbdir) < 2){
$thumbdir =str_pad($thumbdir,2,0,STR_PAD_LEFT);
}
$pathdir = $data['apppath'].BS.'.bf'.BS.'.preview'.BS.$thumbdir.BS.$bid.'.small.webp';
return array('icon'=>$pathdir);
}else{
if (strlen($thumbid) < 9) {
$thumbid = str_pad($thumbid,9,0,STR_PAD_LEFT);
}
$pathdir = $data['apppath'].BS.'.bf'.BS.'.preview';
$thumbpatharr = $this->mbStrSplit($thumbid,3);
array_pop($thumbpatharr);
$thumbpath = implode(BS,$thumbpatharr);
return array('icon'=>$pathdir.BS.$thumbpath.BS.$thumbid.'.webp');
}*/
}
/* function mbStrSplit ($string, $len=1) {
$start = 0;
$strlen = mb_strlen($string);
while ($strlen) {
$array[] = mb_substr($string,$start,$len,"utf8");
$string = mb_substr($string, $len, $strlen,"utf8");
$strlen = mb_strlen($string);
}
return $array;
}*/
}

View File

@@ -0,0 +1,24 @@
<?php
namespace dzz\eagle\classes;
use \core as C;
use \DB as DB;
use \fmpeg as fmpeg;
class pichomevappdelete
{
public function run($data)
{
if($data['apptype'] == 0){
C::t("#eagle#eagle_record")->delete_by_appid($data['appid']);
C::t("#eagle#eagle_folderrecord")->delete_by_appid($data['appid']);
}
return true;
}
}

View File

@@ -43,6 +43,14 @@ class info
if (isset($info['duration'])) C::t('pichome_resources_attr')->update($data['rid'], array('duration' => $info['duration'])); if (isset($info['duration'])) C::t('pichome_resources_attr')->update($data['rid'], array('duration' => $info['duration']));
if (isset($info['width'])) C::t('pichome_resources')->update($data['rid'], array('width' => $info['width'], 'height' => $info['height'])); if (isset($info['width'])) C::t('pichome_resources')->update($data['rid'], array('width' => $info['width'], 'height' => $info['height']));
C::t('pichome_ffmpeg_record')->update($data['rid'],array('infostatus'=>1)); C::t('pichome_ffmpeg_record')->update($data['rid'],array('infostatus'=>1));
$fdata = C::t('pichome_ffmpeg_record')->fetch($data['rid']);
if($fdata['thumbstatus'] == 1 && $fdata['infostatus'] == 1){
if(!DB::result_first("select isget from %t where rid = %s",array('pichome_resources_attr',$data['rid']))) {
C::t('pichome_resources_attr')->update($data['rid'],array('isget'=>1));
C::t('pichome_vapp')->add_getinfonum_by_appid($data['appid'], 1);
}
}
} }
} catch (\Exception $e) { } catch (\Exception $e) {

View File

@@ -56,6 +56,13 @@ class thumb
C::t('pichome_resources')->update($data['rid'],$resourcesarr); C::t('pichome_resources')->update($data['rid'],$resourcesarr);
C::t('pichome_resources')->update($data['rid'], array('hasthumb' => 1)); C::t('pichome_resources')->update($data['rid'], array('hasthumb' => 1));
C::t('pichome_ffmpeg_record')->update($data['rid'], array('thumbstatus' => 1,'thumb'=>$target)); C::t('pichome_ffmpeg_record')->update($data['rid'], array('thumbstatus' => 1,'thumb'=>$target));
$fdata = C::t('pichome_ffmpeg_record')->fetch($data['rid']);
if($fdata['thumbstatus'] == 1 && $fdata['infostatus'] == 1){
if(!DB::result_first("select isget from %t where rid = %s",array('pichome_resources_attr',$data['rid']))) {
C::t('pichome_resources_attr')->update($data['rid'],array('isget'=>1));
C::t('pichome_vapp')->add_getinfonum_by_appid($data['appid'], 1);
}
}
} }
} }

View File

@@ -6,66 +6,77 @@ if (!defined('IN_OAOOA')) {
@set_time_limit(0); @set_time_limit(0);
ini_set('memory_limit', -1); ini_set('memory_limit', -1);
@ini_set('max_execution_time', 0); @ini_set('max_execution_time', 0);
$appids = []; $appids = [''];
foreach(DB::fetch_all("select appid from %t where `type` = %d and getinfo = %d",array('pichome_vapp',1,1)) as $v){ foreach(DB::fetch_all("select appid from %t where `type` = %d and getinfo = %d and isdelete < 1",array('pichome_vapp',1,1)) as $v){
$appids[] = $v['appid']; $appids[] = $v['appid'];
} }
if(empty($appids)){ if(empty($appids)){
exit('success'); exit('success');
} }
$locked = true; $locked = true;
for($i=0;$i<1;$i++){ /*for($i=0;$i<1;$i++){
$processname = 'DZZ_LOCK_PICHOMEGETINFO'.$i; $processname = 'DZZ_LOCK_PICHOMEGETINFO'.$i;
if (!dzz_process::islocked($processname, 60*60)) { if (!dzz_process::islocked($processname, 60*60)) {
$locked=false; $locked=false;
break; break;
} }
} }*/
$i = 0;
$processname = 'DZZ_LOCK_PICHOMEGETINFO'.$i; $processname = 'DZZ_LOCK_PICHOMEGETINFO'.$i;
$limit = 10; $limit = 10;
$start=$i*$limit; $start=$i*$limit;
if (!dzz_process::islocked($processname, 60*60)) { if (!dzz_process::islocked($processname, 60*30)) {
$locked=false; $locked=false;
} }
if ($locked) { if ($locked) {
exit(json_encode( array('error'=>'进程已被锁定请稍后再试'))); exit(json_encode( array('error'=>'进程已被锁定请稍后再试')));
} }
$datas = DB::fetch_all("select * from %t where infostatus = 0 and appid in(%n)
order by infodonum asc limit $start,$limit",array('pichome_ffmpeg_record',$appids));
use dzz\ffmpeg\classes\info as info; use dzz\ffmpeg\classes\info as info;
$info =new info; if($datas){
foreach(DB::fetch_all("select * from %t where infostatus = 0 and appid in(%n)
order by infodonum asc limit $start,$limit",array('pichome_ffmpeg_record',$appids)) as $v){
$processname1 = 'PICHOMEGETINFO_'.$v['rid'];
if (dzz_process::islocked($processname1, 60*5)) {
continue;
}
$data = C::t('pichome_resources')->fetch_data_by_rid($v['rid']);
if(empty($data)){ $info =new info;
C::t('pichome_ffmpeg_record')->delete($v['rid']); foreach($datas as $v){
dzz_process::unlock($processname1); $processname1 = 'PICHOMEGETINFO_'.$v['rid'];
continue; if (dzz_process::islocked($processname1, 60*5)) {
}else{
//如果信息执行次数大于三次直接赋值为1不再尝试获取
if($v['infodonum'] > 3 && $v['infostatus'] == 0){
$v['infostatus'] = 1;
C::t('pichome_ffmpeg_record')->update($v['rid'],array('infostatus'=>1));
dzz_process::unlock($processname1);
continue; continue;
} }
//如果信息和缩略图标记为已生成,标记该文件信息状态为已获取 $data = C::t('pichome_resources')->fetch_data_by_rid($v['rid']);
if($v['thumbstatus'] == 1 && $v['infostatus'] == 1){
C::t('pichome_resources_attr')->update($v['rid'],array('isget'=>1)); if(empty($data)){
C::t('pichome_ffmpeg_record')->delete($v['rid']);
dzz_process::unlock($processname1); dzz_process::unlock($processname1);
continue; continue;
}else{
//如果信息执行次数大于三次直接赋值为1不再尝试获取
if($v['infodonum'] > 3 && $v['infostatus'] == 0){
$v['infostatus'] = 1;
C::t('pichome_ffmpeg_record')->update($v['rid'],array('infostatus'=>1));
dzz_process::unlock($processname1);
continue;
}
//如果信息和缩略图标记为已生成,标记该文件信息状态为已获取
if($v['thumbstatus'] == 1 && $v['infostatus'] == 1){
if(!DB::result_first("select isget from %t where rid = %s",array('pichome_resources_attr',$v['rid']))) {
C::t('pichome_resources_attr')->update($v['rid'], array('isget' => 1));
C::t('pichome_vapp')->add_getinfonum_by_appid($v['appid'], 1);
}
dzz_process::unlock($processname1);
continue;
}
DB::query("update %t set infodonum=infodonum+%d where rid = %s ", array('pichome_ffmpeg_record', 1, $data['rid']));
$info->rundata($data);
dzz_process::unlock($processname1);
} }
DB::query("update %t set infodonum=infodonum+%d where rid = %s ", array('pichome_ffmpeg_record', 1, $data['rid'])); }
$info->rundata($data); dzz_process::unlock($processname);
dzz_process::unlock($processname1); if(DB::result_first("select * from %t where infostatus = 0 and appid in(%n)",array('pichome_ffmpeg_record',$appids))){
dfsockopen(getglobal('localurl') . 'index.php?mod=ffmpeg&op=getinfo', 0, '', '', false, '', 5*60);
} }
} }
dzz_process::unlock($processname); dzz_process::unlock($processname);
if(DB::result_first("select * from %t where infostatus = 0 ",array('pichome_ffmpeg_record'))){
dfsockopen(getglobal('localurl') . 'index.php?mod=ffmpeg&op=getinfo', 0, '', '', false, '', 0.1);
}
exit('success'); exit('success');

View File

@@ -12,66 +12,74 @@ if (!defined('IN_OAOOA')) {
@set_time_limit(0); @set_time_limit(0);
ini_set('memory_limit', -1); ini_set('memory_limit', -1);
@ini_set('max_execution_time', 0); @ini_set('max_execution_time', 0);
$appids = []; $appids = [''];
foreach(DB::fetch_all("select appid from %t where `type` = %d and getinfo = %d",array('pichome_vapp',1,1)) as $v){ foreach(DB::fetch_all("select appid from %t where `type` = %d and getinfo = %d and isdelete < 1",array('pichome_vapp',1,1)) as $v){
$appids[] = $v['appid']; $appids[] = $v['appid'];
} }
if(empty($appids)){ if(empty($appids)){
exit('success'); exit('success');
} }
$locked = true; $locked = true;
for($i=0;$i<1;$i++){ /*for($i=0;$i<1;$i++){
$processname = 'DZZ_LOCK_PICHOMEGETVIDOTHUMB'.$i; $processname = 'DZZ_LOCK_PICHOMEGETVIDOTHUMB'.$i;
if (!dzz_process::islocked($processname, 60*60)) { if (!dzz_process::islocked($processname, 60*60)) {
$locked=false; $locked=false;
break; break;
} }
} }*/
$i = 0;
$processname = 'DZZ_LOCK_PICHOMEGETVIDOTHUMB'.$i; $processname = 'DZZ_LOCK_PICHOMEGETVIDOTHUMB'.$i;
$limit = 10; $limit = 10;
$start=$i*$limit; $start=$i*$limit;
if (!dzz_process::islocked($processname, 60*60)) { if (!dzz_process::islocked($processname, 60*30)) {
$locked=false; $locked=false;
} }
if ($locked) { if ($locked) {
exit(json_encode( array('error'=>'进程已被锁定请稍后再试'))); exit(json_encode( array('error'=>'进程已被锁定请稍后再试')));
} }
$datas = DB::fetch_all("select * from %t where thumbstatus = 0 and appid in(%n)
order by infodonum asc limit $start,$limit",array('pichome_ffmpeg_record',$appids));
use dzz\ffmpeg\classes\thumb as thumb; use dzz\ffmpeg\classes\thumb as thumb;
if($datas){
$thumb =new thumb;
foreach($datas as $v){
$processname1 = 'PICHOMEGETVIDOTHUMB_'.$v['rid'];
if (dzz_process::islocked($processname1, 60*5)) {
continue;
}
$data = C::t('pichome_resources')->fetch_data_by_rid($v['rid']);
if(empty($data)){
C::t('pichome_ffmpeg_record')->delete($v['rid']);
dzz_process::unlock($processname1);
continue;
}else{
//如果缩略图获取次数大于三次直接赋值为1不再尝试获取
if($v['thumbdonum'] > 3 && $v['thumbstatus'] == 0){
$v['infostatus'] = 1;
C::t('pichome_ffmpeg_record')->update($v['rid'],array('infostatus'=>1));
dzz_process::unlock($processname1);
continue;
}
//如果信息和缩略图标记为已生成,标记该文件信息状态为已获取
if($v['thumbstatus'] == 1 && $v['infostatus'] == 1){
if(!DB::result_first("select isget from %t where rid = %s",array('pichome_resources_attr',$v['rid']))) {
C::t('pichome_resources_attr')->update($v['rid'], array('isget' => 1));
C::t('pichome_vapp')->add_getinfonum_by_appid($v['appid'], 1);
}
dzz_process::unlock($processname1);
continue;
}
DB::query("update %t set thumbdonum=thumbdonum+%d where rid = %s ", array('pichome_ffmpeg_record', 1, $data['rid']));
$thumb->rundata($data);
dzz_process::unlock($processname1);
$thumb =new thumb; }
foreach(DB::fetch_all("select * from %t where thumbstatus = 0 and appid in(%n)
order by thumbdonum asc limit $start,$limit",array('pichome_ffmpeg_record',$appids)) as $v){
$processname1 = 'PICHOMEGETVIDOTHUMB_'.$v['rid'];
if (dzz_process::islocked($processname1, 60*5)) {
continue;
} }
$data = C::t('pichome_resources')->fetch_data_by_rid($v['rid']); dzz_process::unlock($processname);
if(empty($data)){ if(DB::result_first("select * from %t where thumbstatus = 0 and appid in(%n)",array('pichome_ffmpeg_record',$appids))){
C::t('pichome_ffmpeg_record')->delete($v['rid']); dfsockopen(getglobal('localurl') . 'index.php?mod=ffmpeg&op=thumb', 0, '', '', false, '', 5*60);
dzz_process::unlock($processname1);
continue;
}else{
//如果缩略图获取次数大于三次直接赋值为1不再尝试获取
if($v['thumbdonum'] > 3 && $v['thumbstatus'] == 0){
$v['infostatus'] = 1;
C::t('pichome_ffmpeg_record')->update($v['rid'],array('infostatus'=>1));
dzz_process::unlock($processname1);
continue;
}
//如果信息和缩略图标记为已生成,标记该文件信息状态为已获取
if($v['thumbstatus'] == 1 && $v['infostatus'] == 1){
C::t('pichome_resources_attr')->update($v['rid'],array('isget'=>1));
dzz_process::unlock($processname1);
continue;
}
DB::query("update %t set thumbdonum=thumbdonum+%d where rid = %s ", array('pichome_ffmpeg_record', 1, $data['rid']));
$thumb->rundata($data);
dzz_process::unlock($processname1);
} }
} }
dzz_process::unlock($processname); dzz_process::unlock($processname);
if(DB::result_first("select * from %t where thumbstatus = 0 ",array('pichome_ffmpeg_record'))){
dfsockopen(getglobal('localurl') . 'index.php?mod=ffmpeg&op=thumb', 0, '', '', false, '', 0.1);
}
exit('success'); exit('success');

View File

@@ -75,6 +75,8 @@ class getColor
$palette = new ImagePalette($img, 1, 10, $lib, $this->palette); $palette = new ImagePalette($img, 1, 10, $lib, $this->palette);
$palettes = $palette->palette; $palettes = $palette->palette;
} catch (\Exception $e) { } catch (\Exception $e) {
$processname1 = 'PICHOMEGETCOLOR_'.$data['rid'];
\dzz_process::unlock($processname1);
runlog('imageColor', $e->getMessage() . ' img=' . $img); runlog('imageColor', $e->getMessage() . ' img=' . $img);
} }
@@ -87,7 +89,7 @@ class getColor
foreach ($palettes as $k => $v) { foreach ($palettes as $k => $v) {
$color = new \Color($k); $color = new \Color($k);
$rgbcolor = $color->toRgb(); $rgbcolor = $color->toRgb();
$data = [ $tdata = [
'rid' => $data['rid'], 'rid' => $data['rid'],
'color' => $k, 'color' => $k,
'r' => $rgbcolor[0], 'r' => $rgbcolor[0],
@@ -95,9 +97,12 @@ class getColor
'b' => $rgbcolor[2], 'b' => $rgbcolor[2],
'weight' => $v 'weight' => $v
]; ];
C::t('pichome_palette')->insert($data); C::t('pichome_palette')->insert($tdata);
C::t('pichome_imagickrecord')->update($data['rid'], array('colorstatus' => 1)); C::t('pichome_imagickrecord')->update($data['rid'], array('colorstatus' => 1));
C::t('pichome_resources_attr')->update($data['rid'], array('isget' => 1)); if(!DB::result_first("select isget from %t where rid = %s",array('pichome_resources_attr',$data['rid']))) {
C::t('pichome_resources_attr')->update($data['rid'],array('isget'=>1));
C::t('pichome_vapp')->add_getinfonum_by_appid($data['appid'], 1);
}
} }
@@ -144,24 +149,34 @@ class getColor
$im->setResolution($width, $height); //设置图像分辨率 $im->setResolution($width, $height); //设置图像分辨率
$im->setCompressionQuality(80); //压缩比 $im->setCompressionQuality(80); //压缩比
try { try {
$im->readImage($data['realpath'] . '[0]'); //设置读取pdf的第一页 $im->readImage($data['realpath'] . '[0]'); //设置读取pdf的第一页
} catch (\Exception $e) { } catch (\Exception $e) {
runlog('pdfthumb', iconv("gbk", 'utf-8', $e->getMessage())); runlog('pdfthumb', iconv("gbk", 'utf-8', $e->getMessage()));
} }
//$im->thumbnailImage(200, 100, true); // 改变图像的大小 //$im->thumbnailImage(200, 100, true); // 改变图像的大小
$im->scaleImage($width, $height, true); //缩放大小图像 //缩放大小图像
try {
$im->scaleImage($width, $height, true);
}catch (\Exception $e){
runlog('pdfthumb', iconv("gbk", 'utf-8', $e->getMessage()));
}
$filename = getglobal('setting/attachdir') . './' . $target; $filename = getglobal('setting/attachdir') . './' . $target;
try {
if ($im->writeImage($filename) == true) {
$imginfo = @getimagesize($filename);
$resourcesarr = [
'width' => $imginfo[0] ? $imginfo[0]:0,
'height' =>$imginfo[1] ? $imginfo[1]:0
];
C::t('pichome_resources')->update($data['rid'],$resourcesarr);
C::t('pichome_imagickrecord')->update($data['rid'], array('thumbstatus' => 1,'colorstatus'=>1,'path'=>$filename));
C::t('pichome_resources')->update($data['rid'], array('hasthumb' => 1));
}
if ($im->writeImage($filename) == true) { }catch (\Exception $e){
$imginfo = @getimagesize($filename); runlog('pdfthumb', iconv("gbk", 'utf-8', $e->getMessage()));
$resourcesarr = [
'width' => $imginfo[0] ? $imginfo[0]:0,
'height' =>$imginfo[1] ? $imginfo[1]:0
];
C::t('pichome_resources')->update($data['rid'],$resourcesarr);
C::t('pichome_imagickrecord')->update($data['rid'], array('thumbstatus' => 1,'colorstatus'=>1,'path'=>$filename));
C::t('pichome_resources')->update($data['rid'], array('hasthumb' => 1));
} }
} }

View File

@@ -6,81 +6,93 @@ if (!defined('IN_OAOOA')) {
@set_time_limit(0); @set_time_limit(0);
ini_set('memory_limit', -1); ini_set('memory_limit', -1);
@ini_set('max_execution_time', 0); @ini_set('max_execution_time', 0);
$appids = []; $appids = [''];
foreach(DB::fetch_all("select appid from %t where `type` = %d and getinfo = %d",array('pichome_vapp',1,1)) as $v){ foreach(DB::fetch_all("select appid from %t where `type` = %d and getinfo = %d and isdelete < 1",array('pichome_vapp',1,1)) as $v){
$appids[] = $v['appid']; $appids[] = $v['appid'];
} }
if(empty($appids)){ if(empty($appids)){
exit('success'); exit('success');
} }
$locked = true; $locked = true;
for($i=0;$i<1;$i++){ /*for($i=0;$i<1;$i++){
$processname = 'DZZ_LOCK_PICHOMEGETCOLOR'.$i; $processname = 'DZZ_LOCK_PICHOMEGETCOLOR'.$i;
if (!dzz_process::islocked($processname, 60*60)) { if (!dzz_process::islocked($processname, 60*60)) {
$locked=false; $locked=false;
break; break;
} }
} }*/
$i = 0;
$processname = 'DZZ_LOCK_PICHOMEGETCOLOR'.$i; $processname = 'DZZ_LOCK_PICHOMEGETCOLOR'.$i;
$limit = 10; $limit = 10;
$start=$i*$limit; $start=$i*$limit;
if (!dzz_process::islocked($processname, 60*60)) { if (!dzz_process::islocked($processname, 60*30)) {
$locked=false; $locked=false;
} }
//dzz::unlock($processname);
if ($locked) { if ($locked) {
exit(json_encode( array('error'=>'进程已被锁定请稍后再试'))); exit(json_encode( array('error'=>'进程已被锁定请稍后再试')));
} }
$datas = DB::fetch_all("select * from %t where thumbstatus = 0 or colorstatus = 0 and appid in(%n)
order by thumbdonum asc,colordonum asc limit $start,$limit",array('pichome_imagickrecord',$appids));
use dzz\imageColor\classes\getcolor as getcolor; use dzz\imageColor\classes\getcolor as getcolor;
$getcolor =new getcolor; if($datas){
$getcolor =new getcolor;
foreach(DB::fetch_all("select * from %t where thumbstatus = 0 or colorstatus = 0 and appid in(%n) foreach($datas as $v){
order by thumbdonum asc,colordonum asc limit $start,$limit",array('pichome_imagickrecord',$appids)) as $v){ $processname1 = 'PICHOMEGETCOLOR_'.$v['rid'];
$processname1 = 'PICHOMEGETCOLOR_'.$v['rid']; if (dzz_process::islocked($processname1, 60*5)) {
if (dzz_process::islocked($processname1, 60*5)) {
continue;
}
$data = C::t('pichome_resources')->fetch_data_by_rid($v['rid']);
if(empty($data)){
C::t('pichome_imagickrecord')->delete($v['rid']);
dzz_process::unlock($processname1);
continue;
}else{
//如果缩略图执行次数大于三次直接赋值为1不再尝试生成
if($v['thumbdonum'] > 3 && $v['thumbstatus'] == 0){
$v['thumbstatus'] = 1;
//如果当前文件为pdf,直接赋值颜色生成为1
if(strtolower($v['ext']) == 'pdf'){
$v['colorstatus'] = 1;
C::t('pichome_imagickrecord')->update($v['rid'],array('thumbstatus'=>1,'colorstatus'=>1));
}
}
if($v['colordonum'] > 3 && $v['colorstatus'] == 0){
$v['colorstatus'] = 1;
C::t('pichome_imagickrecord')->update($v['rid'],array('colorstatus'=>1));
}
//如果颜色和缩略图标记为已生成,标记该文件信息状态为已获取
if($v['thumbstatus'] == 1 && $v['colorstatus'] == 1){
C::t('pichome_resources_attr')->update($v['rid'],array('isget'=>1));
dzz_process::unlock($processname1);
continue; continue;
} }
// $data['colorstatus'] = $v['colorstatus']; $data = C::t('pichome_resources')->fetch_data_by_rid($v['rid']);
//$data['thumbstatus'] = $v['thumbstatus'];
if(strtolower($data['ext']) == 'pdf'){ if(empty($data)){
DB::query("update %t set thumbdonum=thumbdonum+%d where rid = %s ", array('pichome_imagickrecord', 1, $data['rid'])); C::t('pichome_imagickrecord')->delete($v['rid']);
$getcolor->getpdfthumb($data); dzz_process::unlock($processname1);
continue;
}else{ }else{
if(!$v['colorstatus']) DB::query("update %t set colordonum=colordonum+%d where rid = %s ", array('pichome_imagickrecord', 1, $data['rid'])); //如果缩略图执行次数大于三次直接赋值为1不再尝试生成
if(!$v['thumbstatus']) DB::query("update %t set thumbdonum=thumbdonum+%d where rid = %s ", array('pichome_imagickrecord', 1, $data['rid'])); if($v['thumbdonum'] > 3 && $v['thumbstatus'] == 0){
$getcolor->rundata($data); $v['thumbstatus'] = 1;
//如果当前文件为pdf,直接赋值颜色生成为1
if(strtolower($v['ext']) == 'pdf'){
$v['colorstatus'] = 1;
C::t('pichome_imagickrecord')->update($v['rid'],array('thumbstatus'=>1,'colorstatus'=>1));
}else{
C::t('pichome_imagickrecord')->update($v['rid'],array('thumbstatus'=>1));
}
}
if($v['colordonum'] > 3 && $v['colorstatus'] == 0){
$v['colorstatus'] = 1;
C::t('pichome_imagickrecord')->update($v['rid'],array('colorstatus'=>1));
}
//如果颜色和缩略图标记为已生成,标记该文件信息状态为已获取
if($v['thumbstatus'] == 1 && $v['colorstatus'] == 1){
if(!DB::result_first("select isget from %t where rid = %s",array('pichome_resources_attr',$v['rid']))){
C::t('pichome_resources_attr')->update($v['rid'],array('isget'=>1));
C::t('pichome_vapp')->add_getinfonum_by_appid($v['appid'], 1);
}
dzz_process::unlock($processname1);
continue;
}
// $data['colorstatus'] = $v['colorstatus'];
//$data['thumbstatus'] = $v['thumbstatus'];
if(strtolower($data['ext']) == 'pdf'){
DB::query("update %t set thumbdonum=thumbdonum+%d where rid = %s ", array('pichome_imagickrecord', 1, $data['rid']));
$getcolor->getpdfthumb($data);
}else{
if(!$v['colorstatus']) DB::query("update %t set colordonum=colordonum+%d where rid = %s ", array('pichome_imagickrecord', 1, $data['rid']));
if(!$v['thumbstatus']) DB::query("update %t set thumbdonum=thumbdonum+%d where rid = %s ", array('pichome_imagickrecord', 1, $data['rid']));
$getcolor->rundata($data);
}
} }
dzz_process::unlock($processname1);
}
dzz_process::unlock($processname);
if(DB::result_first("select count(*) from %t where thumbstatus = 0 or colorstatus = 0 and appid in(%n) ",array('pichome_imagickrecord',$appids))){
dfsockopen(getglobal('localurl') . 'index.php?mod=imageColor&op=index', 0, '', '', false, '', 5*60);
} }
dzz_process::unlock($processname1);
} }
dzz_process::unlock($processname); dzz_process::unlock($processname);
if(DB::result_first("select count(*) from %t where thumbstatus = 0 or colorstatus = 0 ",array('pichome_imagickrecord'))){
dfsockopen(getglobal('localurl') . 'index.php?mod=imageColor&op=index', 0, '', '', false, '', 0.1);
}
exit('success'.$i); exit('success'.$i);

View File

@@ -6,81 +6,144 @@
* @link https://www.oaooa.com * @link https://www.oaooa.com
* @author zyx(zyx@oaooa.com) * @author zyx(zyx@oaooa.com)
*/ */
if ( !defined( 'IN_OAOOA' ) ) { if (!defined('IN_OAOOA')) {
exit( 'Access Denied' ); exit('Access Denied');
}
global $_G;
$path = isset($_GET['path']) ? trim($_GET['path']):'';
if(!$path = dzzdecode($path,'',0)){
@header('HTTP/1.1 404 Not Found');
@header('Status: 404 Not Found');
}
$patharr = explode('_',$path);
$perm = isset($patharr[1]) ? intval($patharr[1]):0;
if($perm&1){//是否获取真实文件地址
$rid = $patharr[0];
$hasperm = true;
$resourcesdata = C::t('pichome_resources')->fetch($rid);
if(!$resourcesdata){
exit('file is not exists');
}
$resourattrdata = C::t('pichome_resources_attr')->fetch($rid);
$resourcesdata = array_merge($resourcesdata, $resourattrdata);
$appdata = C::t('pichome_vapp')->fetch($resourcesdata['appid']);
if($perm&2){//判断是否忽略权限
$hasperm = true;
}else{
if($_G['adminid']== 1){
$hasperm = true;
}else{
$hasperm = ($appdata['download']) ? true:false;
}
}
if(!$hasperm){
@header('HTTP/1.1 403 No Perm');
@header('Status: 404 No Perm');
}
$thumbpath = $appdata['path'] . BS . $resourcesdata['path'];
}else{//获取缩略图
$rid = $path;
$resourcesdata = C::t('pichome_resources')->fetch($rid);
if(!$resourcesdata){
exit('file is not exists');
}
$resourattrdata = C::t('pichome_resources_attr')->fetch($rid);
$resourcesdata = array_merge($resourcesdata, $resourattrdata);
$appdata = C::t('pichome_vapp')->fetch($resourcesdata['appid']);
if ($resourcesdata['hasthumb']) {
//如果是本地文件
if ($appdata['type'] == 1) {
$filename = 'pichomethumb' . BS . $resourcesdata['appid'] . BS . md5($resourcesdata['path']) . '.jpg';
$thumbpath = getglobal('setting/attachurl') . $filename;
} elseif ($resourcesdata['apptype'] == 0) {
$resourcesdata['path'] = str_replace('\\', '/', $resourcesdata['path']);
$filepath = dirname($resourcesdata['path']);
$filename = substr($resourcesdata['path'], strrpos($resourcesdata['path'], '/') + 1);
$filename = str_replace(strrchr($filename, "."), "", $filename);
$filepath = str_replace('/', BS, $filepath);
$tmppath = $appdata['path'];
$thumbpath = $tmppath . BS . $filepath . BS . $filename . '_thumbnail.png';
} else {
$hookdata = ['rid' => $resourcesdata['rid'], 'apppath' => $appdata['path'], 'appid' => $resourcesdata['appid'], 'version' => $appdata['version']];
$return = Hook::listen('getpichomethumb', $hookdata);
$thumbpath = str_replace(DZZ_ROOT, '', $return[0]['icon']);
}
} else {
if ($resourcesdata['type'] == 'commonimage') {
$thumbpath = $appdata['path'] . BS . $resourcesdata['path'];
} else {
$thumbpath = geticonfromext($resourcesdata['ext'], $resourcesdata['type']);
}
}
} }
if ( !$path = dzzdecode(rawurldecode( $_GET[ 'path' ] ),'',0 ) ) { $url = $thumbpath;
@header( 'HTTP/1.1 404 Not Found' ); $filename = rtrim($_GET['n'], '.dzz');
@header( 'Status: 404 Not Found' ); $ext = strtolower(substr(strrchr($filename, '.'), 1, 10));
exit( 'Access Denied' ); if (!$ext) $ext = strtolower(substr(strrchr(preg_replace("/\.dzz$/i", '', preg_replace("/\?.*/i", '', $url)), '.'), 1, 10));
} $mime = dzz_mime::get_type($ext);
if (is_file($url)) {
$url = $path;
$filename = rtrim( $_GET[ 'n' ], '.dzz' );
$ext = strtolower( substr( strrchr( $filename, '.' ), 1, 10 ) );
if ( !$ext )$ext = strtolower( substr( strrchr( preg_replace( "/\.dzz$/i", '', preg_replace( "/\?.*/i", '', $url ) ), '.' ), 1, 10 ) );
$mime = dzz_mime::get_type( $ext );
if ( is_file( $url ) ) {
$filename = $url; $filename = $url;
$start = 0; $start = 0;
$total = filesize( $filename ); $total = filesize($filename);
header("Cache-Control: private, max-age=2592000, pre-check=2592000"); header("Cache-Control: private, max-age=2592000, pre-check=2592000");
header("Pragma: private"); header("Pragma: private");
header("Expires: ".date(DATE_RFC822,strtotime(" 30 day"))); header("Expires: " . date(DATE_RFC822, strtotime(" 30 day")));
header('Last-Modified: '.gmdate('D, d M Y H:i:s',filemtime($filename)).' GMT'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s', filemtime($filename)) . ' GMT');
if ( isset( $_SERVER[ 'HTTP_RANGE' ] ) ) { if (isset($_SERVER['HTTP_RANGE'])) {
$range = str_replace( '=', '-', $_SERVER[ 'HTTP_RANGE' ] ); $range = str_replace('=', '-', $_SERVER['HTTP_RANGE']);
$range = explode( '-', $range ); $range = explode('-', $range);
if ( isset( $range[ 2 ] ) && intval( $range[ 2 ] ) > 0 ) { if (isset($range[2]) && intval($range[2]) > 0) {
$end = trim( $range[ 2 ] ); $end = trim($range[2]);
} else { } else {
$end = $total - 1; $end = $total - 1;
} }
$start = trim( $range[ 1 ] ); $start = trim($range[1]);
$size = $end - $start + 1; $size = $end - $start + 1;
header( 'HTTP/1.1 206 Partial Content' ); header('HTTP/1.1 206 Partial Content');
header( 'Content-Length:' . $size ); header('Content-Length:' . $size);
header( 'Content-Range: bytes ' . $start . '-' . $end . '/' . $total ); header('Content-Range: bytes ' . $start . '-' . $end . '/' . $total);
} else { } else {
$size = $end = $total; $size = $end = $total;
header( 'HTTP/1.1 200 OK' ); header('HTTP/1.1 200 OK');
header( 'Content-Length:' . $size ); header('Content-Length:' . $size);
header( 'Content-Range: bytes 0-' . ( $total - 1 ) . '/' . $total ); header('Content-Range: bytes 0-' . ($total - 1) . '/' . $total);
} }
header( 'Accenpt-Ranges: bytes' ); header('Accenpt-Ranges: bytes');
header( 'Content-Type:' . $mime ); header('Content-Type:' . $mime);
$fp = fopen( $filename, 'rb' ); $fp = fopen($filename, 'rb');
fseek( $fp, $start, 0 ); fseek($fp, $start, 0);
$cur = $start; $cur = $start;
@ob_end_clean(); @ob_end_clean();
if ( getglobal( 'gzipcompress' ) )@ob_start( 'ob_gzhandler' ); if (getglobal('gzipcompress')) @ob_start('ob_gzhandler');
while ( !feof( $fp ) && $cur <= $end && ( connection_status() == 0 ) ) { while (!feof($fp) && $cur <= $end && (connection_status() == 0)) {
print fread( $fp, min( 1024 * 16, ( $end - $cur ) + 1 ) ); print fread($fp, min(1024 * 16, ($end - $cur) + 1));
$cur += 1024 * 16; $cur += 1024 * 16;
} }
fclose( $fp ); fclose($fp);
exit(); exit();
} else { } else {
//$cachefile=$_G['siteurl']['attachdir'].'cache/'.play_cache_md5(file).'.'.$ext; //$cachefile=$_G['siteurl']['attachdir'].'cache/'.play_cache_md5(file).'.'.$ext;
//$meta=IO::getMeta($path); //$meta=IO::getMeta($path);
//$size=$meta['size']; //$size=$meta['size'];
header("Cache-Control: private, max-age=2592000, pre-check=2592000"); header("Cache-Control: private, max-age=2592000, pre-check=2592000");
header("Pragma: private"); header("Pragma: private");
header("Expires: ".date(DATE_RFC822,strtotime(" 30 day"))); header("Expires: " . date(DATE_RFC822, strtotime(" 30 day")));
header('Last-Modified: '.gmdate('D, d M Y H:i:s',filemtime($url)).' GMT'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s', filemtime($url)) . ' GMT');
header( 'Content-Type: ' . $mime ); header('Content-Type: ' . $mime);
//header('Content-Length:'.$size); //header('Content-Length:'.$size);
//header('Content-Range: bytes 0-'.($size-1).'/'.$size); //header('Content-Range: bytes 0-'.($size-1).'/'.$size);
@ob_end_clean(); @ob_end_clean();
if ( getglobal( 'gzipcompress' ) )@ob_start( 'ob_gzhandler' ); if (getglobal('gzipcompress')) @ob_start('ob_gzhandler');
@readfile( $url ); @readfile($url);
@flush(); @flush();
@ob_flush(); @ob_flush();
exit(); exit();

View File

@@ -0,0 +1,504 @@
<?php
if (!defined('IN_OAOOA')) {
exit('Access Denied');
}
@set_time_limit(0);
@ini_set('max_execution_time', 0);
require_once(DZZ_ROOT . './dzz/class/class_encode.php');
require_once libfile('function/user', '', 'user');
use \core as C;
use \DB as DB;
use \IO as IO;
use \ImagePalette as ImagePalette;
use \Color as Color;
class localexport
{
public $palette = array(
0x111111, 0xFFFFFF, 0x9E9E9E, 0xA48057, 0xFC85B3, 0xFF2727, 0xFFA34B, 0xFFD534, 0x47C595, 0x51C4C4, 0x2B76E7, 0x6D50ED
);
private $path = '';//待执行数据path
private $appid = 0;//库id
private $uid = 0;//用户id
private $username = null;//用户名
private $filenum = 0;//总文件数
private $getinfosizelimit = 100;//限制获取信心文件大小单位M
private $checklimit = 1000;
private $onceexportnum = 1000;
private $oncegetinfonum = 10000;
private $getinfonum = 0;
private $readtxt = DZZ_ROOT . './data/attachment/cache/';
private $exportstatus = 0;
private $donum = 0;
private $lastid = '';
private $charset = 'UTF-8';
private $allowext = '';
private $notallowext = '';
private $notallowdir = '';
private $getinfo = 0;
public function __construct($data = array())
{
global $Defaultallowext;
//获取导入记录表基本数据
$this->path = str_replace(BS, '/', $data['path']);
$this->appid = $data['appid'];
$this->uid = $data['uid'];
$this->username = $data['username'];
$this->exportstatus = $data['state'];
$this->donum = $data['donum'];
$this->filenum = $data['filenum'];
$this->lastid = $data['lastid'];
$this->getinfonum = $data['getinfonum'];
$this->getinfo = $data['getinfo'];
$data['allowext'] = ($data['allowext']) ? $data['allowext']:getglobal('setting/pichomeimportallowext');
//允许导入后缀
if ($data['allowext']) {
$allowext = str_replace(array('.', ',','+','$',"'",'^','(',')','[',']','{','}'), array('\.', '|','\+','\$',"'",'\^','\(',')','\[','\]','\{','\}'),$data['allowext']);
$this->allowext = str_replace('*', '.*', $allowext);
}
$data['notallowext'] = ($data['notallowext']) ? $data['notallowext']:getglobal('setting/pichomeimportnotallowext');
//禁止导入后缀
if ($data['notallowext']) {
$notallowext = str_replace(array('.', ',','+','$',"'",'^','(',')','[',']','{','}'), array('\.', '|','\+','\$',"'",'\^','\(',')','\[','\]','\{','\}'),$data['notallowext']);
$this->notallowext = str_replace('*', '.*', $notallowext);
}
//获取pichome设置的默认禁止导入目录
$notallowdir = getglobal('setting/pichomeimportnotdir') ? getglobal('setting/pichomeimportnotdir'):implode(',',$Defaultallowext);
//禁止导入目录
if ($notallowdir) {
$notallowdir = str_replace(array('.', ',','+','$',"'",'^','(',')','[',']','{','}'), array('\.', '|','\+','\$',"'",'\^','\(',')','\[','\]','\{','\}'), $notallowdir);
$this->notallowdir = str_replace('*', '.*', $notallowdir);
}
if ($data['charset']) $this->charset = $data['charset'];
}
//获取文件名
public function getbasename($filename)
{
return preg_replace('/^.+[\\\\\\/]/', '', $filename);
}
public function initExport()
{
$filedir = $this->path;
$readtxt = $this->readtxt . 'loaclexport' . md5($this->path) . '.txt';
$filenum = 0;
if (!is_file($readtxt)) {
C::t('pichome_vapp')->update($this->appid, array( 'state' => 1));
$thandle = fopen($readtxt, 'w+');
$fileinfo = $this->readdir($filedir, $thandle, $filenum);
fclose($thandle);
if ($fileinfo['error']) {
C::t('pichome_vapp')->update($this->appid, array('state' => -1));
return $fileinfo;
} else {
C::t('pichome_vapp')->update($this->appid, array('filenum' => $fileinfo['filenum'], 'state' => 2,'percent'=>0,'lastid'=>0,'donum'=>0));
}
}else{
if($this->filenum)C::t('pichome_vapp')->update($this->appid, array('state' => 2,'percent'=>0,'lastid'=>0,'donum'=>0));
else{
C::t('pichome_vapp')->update($this->appid, array('state' => -1));
@unlink($readtxt);
return array('error'=>'导入失败,请重试');
}
}
return array('success' => true);
}
public function readdir($path, $thandle, &$filenum)
{
if (!is_dir($path)) {
return [];
}
$handle = dir($path);
if ($handle) {
while (($filename = $handle->read()) !== false) {
if ($this->charset != CHARSET) $convertfilename = diconv($filename, $this->charset, CHARSET);
else $convertfilename = $filename;
$newPath = $path . BS . $filename;
if (is_dir($newPath) && $filename != '.' && $filename != '..' && $filename != '@eaDir') {
if ((preg_match('/^(' . $this->notallowdir . ')$/i', $convertfilename))) {
continue;
}
//fwrite($thandle, $newPath . "\t" . 'folder' . "\n");
$this->readdir($newPath, $thandle, $filenum);
} elseif (is_file($newPath)) {
if (($this->allowext && !preg_match('/^(' . $this->allowext . ')$/i', $convertfilename)) || ($this->notallowext && preg_match('/^(' . $this->notallowext . ')$/i', $convertfilename))) {
continue;
}
$filenum++;
fwrite($thandle, $newPath . "\n");
}
}
} else {
return array('error' => 'Read Dir Failer');
}
$handle->close();
return array('filenum' => $filenum);
}
public function execExport($force = false)
{
$filedir = $this->path;
$filedir = str_replace(array('/', './', '\\'), BS, $filedir);
$readtxt = $this->readtxt . 'loaclexport' . md5($this->path) . '.txt';
//如果txt为空直接进入下一步
if(filesize($readtxt) == 0){
@unlink($readtxt);
C::t('pichome_vapp')->update($this->appid, array('lastid' => 0, 'percent' => 100, 'donum' => 0, 'state' => 3, 'filenum' => $this->filenum));
return array('success' => true);
}
if ($this->lastid) {
$start = $this->lastid;
} else $start = 0;
$spl_object = new SplFileObject($readtxt, 'rb');
$spl_object->seek($start);
if ($this->lastid < $this->filenum && $this->exportstatus == 2) {
$i = 0;
while (is_file($readtxt) && !$spl_object->eof()) {
$i++;
if ($i > $this->onceexportnum) {
break;
}
$file = $spl_object->current();
$file = trim($file);
$file = str_replace(array('/', './', '\\'), BS, $file);
$filearr = explode("\t", $file);
$filerelativepath = $filearr[0];
$filepath = str_replace($filedir . BS, '', $filerelativepath);
$p = new Encode_Core();
$this->charset = $p->get_encoding($filepath);
//如果是目录直接执行目录导入
if (isset($filearr[1]) && $filearr[1] == 'folder') {
if ($this->charset != CHARSET) $filepath = diconv($filepath, $this->charset, CHARSET);
$fid = $this->createfolerbypath($filepath);
$spl_object->next();
continue;
} else {
$hasrid = 0;
//保存路径,用于之后获取文件使用
$savepath = str_replace(array('/', './', '\\'), '/', $filearr[0]);
$savepath = str_replace($this->path . '/', '', $savepath);
$pathmd5 = md5($savepath.$this->appid);
if($recorddata = DB::fetch_first("select * from %t where id = %s",array('local_record',$pathmd5))){
$rid = $recorddata['rid'];
$hasrid = 1;
}else{
//生成rid
$rid = $this->createRid();
}
$realfilepath = $filedir.BS.$filepath;
//如果文件不存在则删除记录
if (!is_file($realfilepath)) {
if($hasrid)C::t('pichome_resources')->delete_by_rid($rid);
$this->filenum -= 1;
} else {
//修改时间
$mtime = filemtime($realfilepath);
//创建时间
$ctime = filectime($realfilepath);
//获取文件后缀
$ext = substr(strrchr($realfilepath, '.'), 1);
$ext = strtolower($ext);
//获取文件类型
$type = getTypeByExt($ext);
//获取文件大小
$size = filesize($realfilepath);
//获取图片信息,以取得宽高
$imginfo = @getimagesize($realfilepath);
//去掉库路径,以便获取文件相对目录
$filepath = str_replace($filedir . BS, '', $filepath);
if ($this->charset != CHARSET) $filepath = diconv($filepath, $this->charset, CHARSET);
//获取文件名
$filename = $this->getbasename($filepath);
//不符合导入规则文件不允许导入,并减少总数
if (($this->allowext && !preg_match('/^(' . $this->allowext . ')$/i', $filename)) || ($this->notallowext && preg_match('/^(' . $this->notallowext . ')$/i', $filename))) {
if($hasrid) C::t('pichome_resources')->delete_by_rid($rid);
$this->filenum -= 1;
} else {
if (!$hasrid) {
$setarr = [
'rid' => $rid,
'name' => $filename,
'lastdate' => $mtime,
'appid' => $this->appid,
'apptype' => 1,
'size' => $size,
'type' => $type,
'ext' => $ext,
'width' => ($imginfo[0]) ? $imginfo[0] : 0,
'height' => ($imginfo[1]) ? $imginfo[1] : 0,
'mtime' => $ctime * 1000,
'dateline' => $mtime * 1000,
'btime' => TIMESTAMP * 1000,
'editdate'=>$mtime,
'path'=>$savepath
];
if (C::t('#local#local_record')->insert_data($setarr)) {
$attrdata = [
'rid' => $rid,
'appid' => $this->appid,
'isget' => 0,
'path' => $savepath,
'searchval'=>$filename,
];
C::t('pichome_resources_attr')->insert($attrdata);
$dirstr = dirname($filepath);
if ($dirstr != '.' && $dirstr != '..') {
$fid = $this->createfolerbypath($dirstr);
if ($fid) {
$frsetarr = ['appid' => $this->appid, 'rid' => $rid, 'fid' => $fid];
C::t('pichome_folderresources')->insert($frsetarr);
}
}
//插入获取信息数据
Hook::listen('pichomegetinfo',$setarr);
}
}
else {
//查询是否已有数据
// $data = C::t('pichome_resources')->fetch($rid);
if ($mtime > $recorddata['dateline'] || $force) {
$setarr = [
'lastdate' => $mtime,
'appid' => $this->appid,
'apptype' => 1,
'size' => $size,
'type' => $type,
'ext' => $ext,
'mtime' => $ctime * 1000,
'dateline' => $mtime * 1000,
'btime' => TIMESTAMP * 1000,
'width' => ($imginfo[0]) ? $imginfo[0] : 0,
'height' => ($imginfo[1]) ? $imginfo[1] : 0,
'editdate'=>$mtime
];
if (C::t('#local#local_record')->insert_data($setarr)) {
$attrdata = [
'rid' => $rid,
'appid' => $this->appid,
'isget' => 0,
'path' => $savepath,
'searchval'=>$filename,
];
C::t('pichome_resources_attr')->insert($attrdata);
//如果文件被替换强制插入获取信息数据
$hookdata = ['appid'=>$this->appid,'rid'=>$rid,'ext'=>$ext,'isforce'=>1];
Hook::listen('pichomegetinfo',$hookdata);
}
}else{
$hookdata = ['appid'=>$this->appid,'rid'=>$rid,'ext'=>$ext];
//如果文件已存在,尝试插入获取信息数据
Hook::listen('pichomegetinfo',$hookdata);
}
}
$this->donum += 1;
}
}
$percent = floor(($this->donum / $this->filenum) * 100);
$percent = ($percent > 100) ? 100 : $percent;
$state = ($percent >= 100) ? 3 : 2;
if ($state == 3) {
@unlink($readtxt);
$lastid = 0;
} else {
$lastid = $this->donum;
}
//记录导入起始位置,以备中断后从此处,更改导入状态为正在导入
C::t('pichome_vapp')->update($this->appid, array('lastid' => $lastid, 'percent' => $percent, 'donum' => $this->donum, 'state' => $state, 'filenum' => $this->filenum));
}
$spl_object->next();
}
}
return array('success' => true);
}
//生成rid
public function createRid(){
//订单年月
$ridmd = strtoupper(dechex(date('m'))) . date('d');
//订单时间戳
$ridms = substr(time(), -5) . substr(microtime(), 2, 5);
//订单号
$rid = md5($ridmd.$ridms. sprintf('%02d', rand(0, 99)).$this->appid);
return $rid;
}
//根据路径创建目录
public function createfolerbypath($path, $pfid = '')
{
if (!$path) {
return $pfid;
} else {
$patharr = explode(BS, $path);
//生成目录
foreach ($patharr as $fname) {
if (!$fname) continue;
//判断是否含有此目录
if ($fid = DB::result_first("select fid from %t where pfid=%s and appid=%s and fname=%s", array('pichome_folder', $pfid, $this->appid, $fname))) {
$pfid = $fid;
} else {
$parentfolder = C::t('pichome_folder')->fetch($pfid);
$fid = random(13) . $this->appid;
if (DB::result_first("select fid from %t where fid = %s", array('pichome_folder', $fid))) {
$fid = random(13) . $this->appid;
}
if ($parentfolder) {
$pathkey = $parentfolder['pathkey'] . $fid;
} else {
$pathkey = $fid;
}
$setarr = [
'fid' => $fid,
'fname' => $fname,
'appid' => $this->appid,
'dateline' => TIMESTAMP,
'pfid' => $pfid,
'pathkey' => $pathkey
];
if (C::t('pichome_folder')->insert($setarr)) $pfid = $fid;
}
}
}
return $pfid;
}
//校验文件
public function execCheckFile()
{
if ($this->exportstatus == 3) {
$total = DB::result_first("select count(rid) from %t where appid = %s ", array('pichome_resources', $this->appid));
//校验文件
$this->check_file($total);
}
return true;
}
public function check_file($total)
{
if ($this->lastid < 1) $this->lastid = 1;
$limitsql = ($this->lastid - 1) * $this->checklimit . ',' . $this->checklimit;
$delrids = [];
$data = DB::fetch_all("select rid,name,ext from %t where appid = %s order by lastdate asc limit $limitsql ", array('pichome_resources', $this->appid));
if (empty($data)) {
C::t('pichome_vapp')->update($this->appid, array('percent' => 0, 'state' => 4, 'lastid' => 0, 'donum' => 0));
$folderdata = DB::fetch_all("select fid,pathkey from %t where appid = %s",array('pichome_folder',$this->appid));
foreach($folderdata as $v){
$pathkeyarr = explode($this->appid,$v['pathkey']);
$pathkeyarr = array_filter($pathkeyarr);
$idelete = false;
$pfolder =[];
foreach($pathkeyarr as $fv){
$tfid = $fv.$this->appid;
if($tfid){
if($tfname = DB::result_first("select fname from %t where fid = %s and appid = %s",array('pichome_folder',$tfid,$this->appid))){
$pfolder[] = $tfname;
}else{
C::t('pichome_folder')->delete($v['fid']);
$idelete = true;
break;
}
}
}
if($idelete) continue;
$ppath = implode('/',$pfolder);
$folderpath = $this->path.'/'.$ppath;
if(!is_dir($folderpath)){
C::t('pichome_folder')->delete($v['fid']);
}
}
//校验完成后更新目录文件数
foreach (DB::fetch_all("select count(rf.id) as num,f.fid from %t f left join %t rf on rf.fid=f.fid where f.appid = %s group by f.fid", array('pichome_folder', 'pichome_folderresources', $this->appid)) as $v) {
C::t('pichome_folder')->update($v['fid'], array('filenum' => $v['num']));
}
if($this->getinfo){
//开启器获取信息后执行获取文件信息
dfsockopen(getglobal('localurl') . 'index.php?mod=imageColor&op=index', 0, '', '', false, '', 1);
dfsockopen(getglobal('localurl') . 'index.php?mod=ffmpeg&op=getinfo', 0, '', '', false, '', 1);
dfsockopen(getglobal('localurl') . 'index.php?mod=ffmpeg&op=thumb', 0, '', '', false, '', 1);
}
$total = DB::result_first("select count(rid) from %t where appid = %s ", array('pichome_resources', $this->appid));
$hascatnum = DB::result_first("SELECT count(DISTINCT rid) FROM %t where appid = %s",array('pichome_folderresources',$this->appid));
$nosubfilenum = $total - $hascatnum;
$getinfonum = DB::result_first("SELECT count(ra.rid) FROM %t ra left join %t fc on ra.rid = fc.rid left join %t ic on ra.rid= ic.rid
where ra.appid = %s and ((ra.isget = 0 and ISNULL(fc.rid) and ISNULL(ic.rid)) or (ra.isget=1))",
array('pichome_resources_attr','pichome_ffmpeg_record','pichome_imagickrecord',$this->appid));
C::t('pichome_vapp')->update($this->appid,array('filenum'=>$total,'nosubfilenum'=>$nosubfilenum,'getinfonum'=>$getinfonum));
return true;
}
foreach ($data as $v) {
$rid = $v['rid'];
$filepath = DB::result_first("select `path` from %t where rid = %s and appid = %s", array('pichome_resources_attr', $rid, $this->appid));
$filepath = str_replace(array('/', './', '\\'), BS, $this->path . BS . $filepath);
//echo $v['name'].'<br>';
if (!is_file($filepath) || ($this->allowext && !preg_match('/^(' . $this->allowext . ')$/i', $v['name'])) || ($this->notallowext && preg_match('/^(' . $this->notallowext . ')$/i', $v['name']))) {
$delrids[] = $rid;
}
}
if (!empty($delrids)) {
$this->filenum = $this->filenum - count($delrids);
//如果有需要删除的,删除后,则重新查询上一页数据
C::t('pichome_resources')->delete_by_rid($delrids);
if($this->lastid == 1){
$percent = round(($this->checklimit / $total) * 100);
}else{
$percent = round((($this->lastid - 1) * $this->checklimit / $total) * 100);
}
$percent = ($percent > 100) ? 100:$percent;
C::t('pichome_vapp')->update($this->appid, array('lastid' => $this->lastid, 'percent' => $percent, 'state' => 3, 'filenum' => $this->filenum));
} else {
if($this->lastid == 1){
$percent = round(($this->checklimit / $total) * 100);
}else{
$percent = round((($this->lastid - 1) * $this->checklimit / $total) * 100);
}
$percent = ($percent > 100) ? 100:$percent;
C::t('pichome_vapp')->update($this->appid, array('lastid' => $this->lastid + 1, 'percent' => $percent, 'state' => 3));
}
}
}

View File

@@ -0,0 +1,62 @@
<?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_local_record extends dzz_table
{
public function __construct() {
$this->_table = 'local_record';
$this->_pk = 'id';
parent::__construct();
}
public function insert_data($setarr){
$editdateline = $setarr['editdate'];
$path = $setarr['path'];
unset($setarr['editdate']);
unset($setarr['path']);
if(C::t('pichome_resources')->insert($setarr)){
$setarr1['rid'] = $setarr['rid'];
$setarr1['appid'] = $setarr['appid'];
$setarr1['path'] = $path;
$setarr1['dateline'] = $editdateline;
$id = md5($path.$setarr['appid']);
if(DB::result_first("select id from %t where id = %s",array($this->_table,$id))){
parent::update($id,$setarr1);
}else{
$setarr1['id'] = $id;
parent::insert($setarr1);
}
}
return true;
}
public function insert($setarr){
$id = md5($setarr['path'].$setarr['appid']);
if(DB::result_first("select id from %t where id = %s",array($this->_table,$id))){
parent::update($id,$setarr);
}else{
$setarr['id'] = $id;
parent::insert($setarr);
}
return true;
}
public function delete_by_rids($rids){
if (!is_array($rids)) $rids = (array)$rids;
DB::delete($this->_table,'rid in ('.dimplode($rids).')');
}
public function delete_by_appid($appid){
DB::delete($this->_table,array('appid'=>$appid));
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace dzz\local\classes;
use \core as C;
use \DB as DB;
class deleteafter
{
public function run($data)
{
if(!empty($data['rids'])){
$appid = DB::result_first("select appid from %t where rid = %s",array('pichome_resources',$data['rids'][0]));
$appdata = C::t('pichome_vapp')->fetch($appid);
if($appdata['type'] == 1){
$delnum = count($data['rids']);
C::t('pichome_vapp')->add_getinfonum_by_appid($appid,-$delnum);
}
C::t('#local#local_record')->delete_by_rids($data['rids']);
}
}
}

View File

@@ -0,0 +1,22 @@
<?php
namespace dzz\local\classes;
use \core as C;
use \DB as DB;
class pichomevappdelete
{
public function run($data)
{
if($data['apptype'] == 1){
C::t("#local#local_record")->delete_by_appid($data['appid']);
}
return true;
}
}

View File

@@ -2,24 +2,34 @@
if(!defined('IN_OAOOA')) { if(!defined('IN_OAOOA')) {
exit('Access Denied'); exit('Access Denied');
} }
if(!isset($_GET['src']) && !$path=Decode($_GET['path'],'read')){ if(!isset($_GET['src']) && !$rid = dzzdecode($_GET['path'],'',0)){
exit('Access Denied'); exit('Access Denied');
} }
if($_GET['src']){ if($_GET['src']){
//$file = str_replace('+', ' ', urlencode($_GET['src'])); //$file = str_replace('+', ' ', urlencode($_GET['src']));
$file = urldecode($_GET['src']); $file = urldecode($_GET['src']);
}else{ }else{
if(!Decode(rawurldecode($_GET['path']),'download')){ /* if(!Decode(rawurldecode($_GET['path']),'download')){
$perm_download=0; $perm_download=0;
$perm_print=0; $perm_print=0;
}else{ }else{
$perm_download=1; $perm_download=1;
$perm_print=1; $perm_print=1;
}*/
$resourcesdata = C::t('pichome_resources')->fetch($rid);
$appdata = C::t('pichome_vapp')->fetch($resourcesdata['appid']);
if($appdata['download']){
$perm_download=1;
$perm_print=1;
}else{
$perm_download=0;
$perm_print=0;
} }
$file=IO::getFileUri($path); $file = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($rid.'_3', '', 0, 0);
// $file=IO::getFileUri($path);
} }
/*header("Location: /dzz/pdf/web/viewer.html?file=".urlencode($file));
exit();*/
include template('viewer'); include template('viewer');
exit(); exit();

View File

@@ -4,6 +4,7 @@
exit('Access Denied'); exit('Access Denied');
} }
Hook::listen('adminlogin'); Hook::listen('adminlogin');
//管理权限进入 //管理权限进入
$do = isset($_GET['do']) ? trim($_GET['do']) : ''; $do = isset($_GET['do']) ? trim($_GET['do']) : '';
include libfile('function/cache'); include libfile('function/cache');
@@ -24,13 +25,55 @@
}else{ }else{
$waterfilepath = $_G['setting']['attachurl'] . 'sitelogo/sitelogo.png'; $waterfilepath = $_G['setting']['attachurl'] . 'sitelogo/sitelogo.png';
if (!file_exists($waterfilepath)) { if (!file_exists($waterfilepath)) {
$waterfilepath = htmlspecialchars; $waterfilepath = '';
} }
include template('pc/page/adminBasic'); include template('pc/page/adminBasic');
} }
} }
} elseif ($do == 'uploadlogo') {//上传logo }
elseif ($do == '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' );
exit(json_encode(array('success' => true)));
}else{
exit(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('pc/page/adminAuthorize');
}
}
elseif($do == '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 ($do == 'uploadlogo') {//上传logo
global $_G; global $_G;
$files = $_FILES['file']; $files = $_FILES['file'];
if ($files["type"] != 'image/png' || $files['size'] >= 1024 * 1024 * 2) { if ($files["type"] != 'image/png' || $files['size'] >= 1024 * 1024 * 2) {
@@ -39,7 +82,8 @@
$waterfilepath = $_G['setting']['attachurl'] . 'sitelogo/sitelogo.png'; $waterfilepath = $_G['setting']['attachurl'] . 'sitelogo/sitelogo.png';
$return = move_uploaded_file($files["tmp_name"], $waterfilepath); $return = move_uploaded_file($files["tmp_name"], $waterfilepath);
exit(json_encode(array('success' => true))); exit(json_encode(array('success' => true)));
} elseif ($do == 'pagesetting') {//界面设置 }
elseif ($do == 'pagesetting') {//界面设置
if (submitcheck('settingsubmit')) { if (submitcheck('settingsubmit')) {
$settingnew = $_GET['settingnew']; $settingnew = $_GET['settingnew'];
updatesetting($setting, $settingnew); updatesetting($setting, $settingnew);
@@ -48,7 +92,8 @@
$waterfilepath = $_G['setting']['attachurl'] . 'sitelogo/sitelogo.png'; $waterfilepath = $_G['setting']['attachurl'] . 'sitelogo/sitelogo.png';
include template('pc/page/adminPagesetting'); include template('pc/page/adminPagesetting');
} }
} elseif($do == 'importsetting'){ }
elseif($do == 'importsetting'){
if (submitcheck('settingsubmit')) { if (submitcheck('settingsubmit')) {
$settingnew = $_GET['settingnew']; $settingnew = $_GET['settingnew'];
updatesetting($setting, $settingnew); updatesetting($setting, $settingnew);
@@ -57,7 +102,8 @@
$Defaultnotallowdir = json_encode($Defaultnotallowdir); $Defaultnotallowdir = json_encode($Defaultnotallowdir);
include template('pc/page/adminImportsetting'); include template('pc/page/adminImportsetting');
} }
}elseif ($do == 'loginpage') {//登录页设置 }
elseif ($do == 'loginpage') {//登录页设置
if (submitcheck('settingsubmit')) { if (submitcheck('settingsubmit')) {
$settingnew = $_GET['settingnew']; $settingnew = $_GET['settingnew'];
if ($back = trim($settingnew['loginset']['background'])) { if ($back = trim($settingnew['loginset']['background'])) {
@@ -83,24 +129,37 @@
include template('pc/page/adminLoginpage'); include template('pc/page/adminLoginpage');
} }
} elseif ($do == 'fileterset') {//筛选项设置 }
elseif ($do == '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')) { if (submitcheck('settingsubmit')) {
$settingnew = $_GET['settingnew'] ? $_GET['settingnew'] : array(); $settingnew = $_GET['settingnew'] ? $_GET['settingnew'] : array();
if ($settingnew['pichomefilterfileds']) { if($appid!='all'){
$settingnew['pichomefilterfileds'] = serialize($settingnew['pichomefilterfileds']); $setarr = ['filter' => isset($settingnew['pichomefilterfileds']) ? serialize($settingnew['pichomefilterfileds']):''];
} else { C::t('pichome_vapp')->update($appid, $setarr);
$settingnew['pichomefilterfileds'] = serialize(array()); }else{
$settingnew['pichomefilterfileds'] = isset($settingnew['pichomefilterfileds']) ? serialize($settingnew['pichomefilterfileds']):'';
updatesetting($setting, $settingnew);
} }
updatesetting($setting, $settingnew);
exit(json_encode(array('success' => true))); exit(json_encode(array('success' => true)));
} else { } else {
if($setting['pichomefilterfileds']){ if($appid){
$data = json_encode($setting['pichomefilterfileds']); if($appid == 'all'){
}else{ $catdata = array();
$data = json_encode(array()); $data = isset($setting['pichomefilterfileds']) ? $setting['pichomefilterfileds']:[];
} }else{
include template('pc/page/adminFileterset'); $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('pc/page/adminFileterset');
}
} }
} }
function updatesetting($setting, $settingnew){ function updatesetting($setting, $settingnew){

View File

@@ -29,21 +29,27 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
} elseif ($operation == 'getsearchfolder') {//最近搜索目录和目录信息 } elseif ($operation == 'getsearchfolder') {//最近搜索目录和目录信息
$appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; $appid = isset($_GET['appid']) ? trim($_GET['appid']) : '';
$pfids = isset($_GET['pfids']) ? trim($_GET['pfids']):''; $pfids = isset($_GET['pfids']) ? trim($_GET['pfids']):'';
$isall = isset($_GET['isall']) ? intval($_GET['isall']):0;
if($pfids)$pfids = explode(',',$pfids); if($pfids)$pfids = explode(',',$pfids);
else $pfids = []; else $pfids = [];
$folderdatanum = C::t('pichome_folder')->fetch_folder_by_appid_pfid($appid,$pfids); if($isall){
$folderdatanum = C::t('pichome_folder')->fetch_all_folder_by_appid($appid);
}else{
$folderdatanum = C::t('pichome_folder')->fetch_folder_by_appid_pfid($appid,$pfids);
}
exit(json_encode(array( 'folderdatanum' => $folderdatanum))); exit(json_encode(array( 'folderdatanum' => $folderdatanum)));
}elseif($operation == 'searchfolderbyname'){ }elseif($operation == 'searchfolderbyname'){
$appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; $appid = isset($_GET['appid']) ? trim($_GET['appid']) : '';
$keyword = isset($_GET['keyword']) ? trim($_GET['keyword']):''; $keyword = isset($_GET['keyword']) ? trim($_GET['keyword']):'';
$folderdatanum = C::t('pichome_folder')->search_by_fname($keyword,$appid); $folderdatanum = C::t('pichome_folder')->search_by_fname($keyword,$appid);
exit(json_encode(array( 'folderdata' => $folderdatanum))); exit(json_encode(array( 'folderdata' => $folderdatanum)));
} elseif ($operation == 'searchmenu_num') { }
elseif ($operation == 'searchmenu_num') {
$hassub = isset($_GET['hassub']) ? intval($_GET['hassub']) : 0; $hassub = isset($_GET['hassub']) ? intval($_GET['hassub']) : 0;
$page = isset($_GET['page']) ? intval($_GET['page']) : 1; $page = isset($_GET['page']) ? intval($_GET['page']) : 1;
//是否获取标签数量 //是否获取标签数量
$hasnum = isset($_GET['hasnum']) ? intval($_GET['hasnum']):0; $hasnum = isset($_GET['hasnum']) ? intval($_GET['hasnum']):0;
$prepage = 15; $prepage = isset($_GET['prepage']) ? intval($_GET['prepage']):15;
$pagelimit = 'limit '.($page - 1) * $prepage . ',' . $prepage; $pagelimit = 'limit '.($page - 1) * $prepage . ',' . $prepage;
$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']) : '';
@@ -59,6 +65,7 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
$params = ['pichome_resources']; $params = ['pichome_resources'];
} }
$wheresql = " r.isdelete < 1 "; $wheresql = " r.isdelete < 1 ";
$appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; $appid = isset($_GET['appid']) ? trim($_GET['appid']) : '';
$fids = isset($_GET['fids']) ? trim($_GET['fids']) : ''; $fids = isset($_GET['fids']) ? trim($_GET['fids']) : '';
$vappids = []; $vappids = [];
@@ -438,40 +445,66 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
//标签条件 //标签条件
if (isset($_GET['tag'])) { if (isset($_GET['tag'])) {
$tagwherearr = []; $tagwherearr = [];
$tagrelative = isset($_GET['tagrelative']) ? intval($_GET['tagrelative']) : 1; $tagrelative = isset($_GET['tagrelative']) ? intval($_GET['tagrelative']) : 0;
if (!in_array('pichome_resources_attr', $params)) { /* if (!in_array('pichome_resources_attr', $params)) {
$sql .= " left join %t ra on r.rid = ra.rid"; $sql .= "left join %t ra on r.rid = ra.rid";
$params[] = 'pichome_resources_attr'; $params[] = 'pichome_resources_attr';
} }
$tag = trim($_GET['tag']);
if ($tag == -1) {
$wheresql .= " and ra.tag = '' ";
}
else {
$tagval = explode(',', trim($_GET['tag']));
if (!empty($tagval)) {
foreach ($tagval as $v) {
$tagwherearr[] = " find_in_set(%d,ra.tag)";
$para[] = $v;
}
if ($tagrelative) {
$wheresql .= " and (" . implode(" or ", $tagwherearr) . ")";
} else {
$wheresql .= " and (" . implode(" and ", $tagwherearr) . ")";
}
}
}*/
$tagrelative = isset($_GET['tagrelative']) ? intval($_GET['tagrelative']) : 0;
$tag = trim($_GET['tag']); $tag = trim($_GET['tag']);
if ($tag == -1) { if ($tag == -1) {
$wheresql .= " and ra.tag = '' "; 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 { } else {
$tagval = explode(',', trim($_GET['tag']));
if(!empty($tagval)){
$seltagdata=[];
if($appid){
foreach(DB::fetch_all("select t.tagname,t.tid,tr.cid from %t t left join %t tr on t.tid = tr.tid where t.tid in(%n) and tr.appid=%s",array('pichome_tag','pichome_tagrelation',$tagval,$appid)) as $tv){
$seltagdata[] = array('tagname'=>$tv['tagname'],'tid'=>intval($tv['tid']),'cid'=>$tv['cid']);
}
}else{
foreach(DB::fetch_all("select tagname,tid from %t where tid in(%n) ",array('pichome_tag',$tagval)) as $tv){
$seltagdata[] = array('tagname'=>$tv['tagname'],'tid'=>intval($tv['tid']));
}
}
}
foreach ($tagval as $v) {
$tagwherearr[] = " find_in_set(%d,ra.tag)";
$para[] = $v;
}
if ($tagrelative) { if ($tagrelative) {
$wheresql .= " and (" . implode(" or ", $tagwherearr) . ")"; $tagval = explode(',', trim($_GET['tag']));
foreach ($tagval as $k => $v) {
$sql .= ' left join %t rt' . ($k + 1) . ' on rt' . ($k + 1) . '.rid = r.rid and rt' . ($k + 1) . '.tid = %d';
$params[] = 'pichome_resourcestag';
$wheresql .= ' and !isnull(rt' . ($k + 1) . '.tid)';
$params[] = $v;
}
} else { } else {
$wheresql .= " and (" . implode(" and ", $tagwherearr) . ")"; $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 (!in_array('pichome_resourcestag', $params)) {
$sql .= "left join %t rt on r.rid = rt.rid";
$params[] = 'pichome_resourcestag';
}
$wheresql .= ' and rt.tid in(%n) ';
$tagval = explode(',', trim($_GET['tag']));
$para[] = $tagval;*/
} }
} }
} }
$timedataarr = array( $timedataarr = array(
1 => array( 1 => array(
@@ -516,7 +549,8 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
$cid = isset($_GET['cid']) ? $_GET['cid']:''; $cid = isset($_GET['cid']) ? $_GET['cid']:'';
if ($cid) { if ($cid) {
if ($cid == -1) { if ($cid == -1) {
$sql .= " left join %t tr on isnull(tr.cid)"; $sql .= " left join %t tr on rt.tid=tr.tid ";
$wheresql .= " and isnull(tr.cid) ";
$params[] = 'pichome_tagrelation'; $params[] = 'pichome_tagrelation';
} else { } else {
$sql .= " left join %t tr on tr.tid = rt.tid "; $sql .= " left join %t tr on tr.tid = rt.tid ";
@@ -760,7 +794,6 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
} }
} }
//将今天昨天归类到最近七天将最近七天归到最近30天将近30天归到最近90天将最近90天归到最近365天 //将今天昨天归类到最近七天将最近七天归到最近30天将近30天归到最近90天将最近90天归到最近365天
//将今天昨天归类到最近七天将最近七天归到最近30天将近30天归到最近90天将最近90天归到最近365天
$data[-7]['num'] = (isset($data[-7]['num']) ? intval($data[-7]['num']) : 0) + (isset($data[1]['num']) ? intval($data[1]['num']) : 0) + (isset($data[-1]['num']) ? intval($data[-1]['num']) : 0); $data[-7]['num'] = (isset($data[-7]['num']) ? intval($data[-7]['num']) : 0) + (isset($data[1]['num']) ? intval($data[1]['num']) : 0) + (isset($data[-1]['num']) ? intval($data[-1]['num']) : 0);
if ($data[-7]['num']) $data[-7] = array('num' => $data[-7]['num'], 'val' => $timedataarr[-7]['val'], 'label' => $timedataarr[-7]['label']); if ($data[-7]['num']) $data[-7] = array('num' => $data[-7]['num'], 'val' => $timedataarr[-7]['val'], 'label' => $timedataarr[-7]['label']);
$data[-30]['num'] = (isset($data[-30]['num']) ? intval($data[-30]['num']) : 0) + (isset($data[-7]['num']) ? intval($data[-7]['num']) : 0); $data[-30]['num'] = (isset($data[-30]['num']) ? intval($data[-30]['num']) : 0) + (isset($data[-7]['num']) ? intval($data[-7]['num']) : 0);
@@ -805,7 +838,8 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
} }
} }
exit(json_encode($data)); exit(json_encode($data));
} 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']) : ''; $appid = isset($_GET['appid']) ? trim($_GET['appid']) : '';
@@ -824,6 +858,30 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
} }
$wheresql = " r.isdelete < 1 "; $wheresql = " r.isdelete < 1 ";
//用户权限等级
$ulevel = $_G['pichomelevel'];
$leveltids =[];
foreach(DB::fetch_all("select tid,tagname from %t where tagname in(%n)",array('pichome_tag',['LV1','LV2','LV3','LV4','LV5'])) as $v){
$tidperm = str_replace('LV','',$v['tagname']);
$leveltids[$tidperm] = $v['tid'];
}
//用户无权限标签id
$nopermtids = [];
foreach($leveltids as $k =>$val){
if($k > $ulevel){
$nopermtids[] = $val;
}
}
if(!empty($nopermtids)){
$sql .= "left join %t ra on r.rid = ra.rid";
$params[] = 'pichome_resources_attr';
foreach ($nopermtids as $v) {
$tagwherearr[] = " !find_in_set(%d,ra.tag)";
$para[] = $v;
}
$wheresql .= " and (" . implode(" and ", $tagwherearr) . ")";
}
$fids = isset($_GET['fids']) ? trim($_GET['fids']) : ''; $fids = isset($_GET['fids']) ? trim($_GET['fids']) : '';
$vappids = []; $vappids = [];
$vappids = []; $vappids = [];
@@ -940,27 +998,38 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
//标签条件 //标签条件
if (isset($_GET['tag'])) { if (isset($_GET['tag'])) {
$tagwherearr = []; $tagwherearr = [];
$tagrelative = isset($_GET['tagrelative']) ? intval($_GET['tagrelative']) : 1; $tagrelative = isset($_GET['tagrelative']) ? intval($_GET['tagrelative']) : 0;
if (!in_array('pichome_resources_attr', $params)) {
$sql .= " left join %t ra on r.rid = ra.rid"; $tagrelative = isset($_GET['tagrelative']) ? intval($_GET['tagrelative']) : 0;
$params[] = 'pichome_resources_attr';
}
$tag = trim($_GET['tag']); $tag = trim($_GET['tag']);
if ($tag == -1) { if ($tag == -1) {
$wheresql .= " and ra.tag = '' "; if (!in_array('pichome_resourcestag', $params)) {
} else { $sql .= "left join %t rt on r.rid = rt.rid";
$tagval = explode(',', trim($_GET['tag'])); $params[] = 'pichome_resourcestag';
foreach ($tagval as $v) {
$tagwherearr[] = " find_in_set(%d,ra.tag)";
$para[] = $v;
} }
$wheresql .= " and isnull(rt.tid) ";
} else {
if ($tagrelative) { if ($tagrelative) {
$wheresql .= " and (" . implode(" or ", $tagwherearr) . ")"; $tagval = explode(',', trim($_GET['tag']));
foreach ($tagval as $k => $v) {
$sql .= ' left join %t rt' . ($k + 1) . ' on rt' . ($k + 1) . '.rid = r.rid and rt' . ($k + 1) . '.tid = %d';
$params[] = 'pichome_resourcestag';
$wheresql .= ' and !isnull(rt' . ($k + 1) . '.tid) ';
$params[] = $v;
}
} else { } else {
$wheresql .= " and (" . implode(" and ", $tagwherearr) . ")"; $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;
}
} }
} }
} }
//时长条件 //时长条件
@@ -1302,7 +1371,8 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
$data['catdata'] = $catdata; $data['catdata'] = $catdata;
} }
exit(json_encode($data)); exit(json_encode($data));
} elseif ($operation == 'getsearchmenudata') {//获取筛选项 }
elseif ($operation == 'getsearchmenudata') {//获取筛选项
} elseif ($operation == 'setshow') {//设置显示字段 } elseif ($operation == 'setshow') {//设置显示字段
$showfileds = isset($_GET['showfileds']) ? trim($_GET['showfileds']) : ''; $showfileds = isset($_GET['showfileds']) ? trim($_GET['showfileds']) : '';
@@ -1376,7 +1446,8 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
C::t('user_setting')->update_by_skey('pichomeuserscreen', $screen, $uid); C::t('user_setting')->update_by_skey('pichomeuserscreen', $screen, $uid);
exit(json_encode(array('success' => true))); exit(json_encode(array('success' => true)));
} }
} elseif ($operation == 'getscreen') {//获取筛选项 }
elseif ($operation == 'getscreen') {//获取筛选项
$appid = isset($_GET['appid']) ? trim($_GET['appid']) : ''; $appid = isset($_GET['appid']) ? trim($_GET['appid']) : '';
$tagval = $_GET['tag'] ? explode(',',trim($_GET['tag'])):[]; $tagval = $_GET['tag'] ? explode(',',trim($_GET['tag'])):[];
$shape = $_GET['shape'] ? trim($_GET['shape']):''; $shape = $_GET['shape'] ? trim($_GET['shape']):'';
@@ -1391,7 +1462,6 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
$shapelable[] = $lableshape[$s]['val']; $shapelable[] = $lableshape[$s]['val'];
} }
} }
$tagdata=[]; $tagdata=[];
if(!empty($tagval)){ if(!empty($tagval)){
if($appid){ if($appid){
@@ -1411,11 +1481,17 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
$folderdata = []; $folderdata = [];
foreach(DB::fetch_all("select fname,fid,pathkey,appid from %t where fid in(%n)",array('pichome_folder',$fidarr)) as $v){ foreach(DB::fetch_all("select fname,fid,pathkey,appid from %t where fid in(%n)",array('pichome_folder',$fidarr)) as $v){
$folderdata[$v['fid']] = ['fname'=>$v['fname'],'pathkey'=>$v['pathkey'],'appid'=>$v['appid']]; $folderdata[$v['fid']] = ['fname'=>$v['fname'],'pathkey'=>$v['pathkey'],'appid'=>$v['appid']];
$folderdata[$v['fid']]['leaf'] = DB::result_first("select count(*) from %t where pfid = %s",array('pichome_folder',$v['fid'])) ? false:true; $folderdata[$v['fid']]['leaf'] = DB::result_first("select count(fid) from %t where pfid = %s",array('pichome_folder',$v['fid'])) ? false:true;
}
if(!isset($_G['setting']['pichomefilterfileds'])){
$pichomefilterfileds = C::t('setting')->fetch_all('pichomefilterfileds');
}else{
$pichomefilterfileds = $_G['setting']['pichomefilterfileds'];
} }
if ($appid) { if ($appid) {
if ($data = DB::fetch_first("select * from %t where appid=%s ", array('pichome_vapp', $appid))) { if ($data = DB::fetch_first("select * from %t where appid=%s ", array('pichome_vapp', $appid))) {
$data['filter'] = unserialize($data['filter']); array_unshift($pichomefilterfileds,array('key'=>'classify','text'=>'分类','checked'=>1));
$data['filter'] = ($data['filter']) ? unserialize($data['filter']):$pichomefilterfileds;
// if($data['filter']){ // if($data['filter']){
foreach ($data['filter'] as $k => $v) { foreach ($data['filter'] as $k => $v) {
if ($v['key'] == 'tag' && $v['chacked'] == 1) { if ($v['key'] == 'tag' && $v['chacked'] == 1) {
@@ -1438,13 +1514,10 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
} else { } else {
exit(json_encode(array('error' => true))); exit(json_encode(array('error' => true)));
} }
} else { } else{
if (isset($_G['setting']['pichomefilterfileds'])) {
exit(json_encode(array('success' => true, 'data' => $_G['setting']['pichomefilterfileds'],'folderdata'=>$folderdata,'tagdata'=>$tagdata,'shape'=>$shapelable))); exit(json_encode(array('success' => true, 'data' => $pichomefilterfileds,'folderdata'=>$folderdata,'tagdata'=>$tagdata,'shape'=>$shapelable)));
} else {
$setting = C::t('setting')->fetch_all('pichomefilterfileds');
exit(json_encode(array('success' => true, 'data' => $setting['pichomefilterfileds'],'folderdata'=>$folderdata,'tagdata'=>$tagdata,'shape'=>$shapelable)));
}
} }
} elseif ($operation == 'createshare') {//分享 } elseif ($operation == 'createshare') {//分享
@@ -1497,4 +1570,168 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
C::t('user_setting')->update_by_skey('pichomeimageexpanded',$pichomeimageexpanded); C::t('user_setting')->update_by_skey('pichomeimageexpanded',$pichomeimageexpanded);
exit(json_encode(array('success' => true))); exit(json_encode(array('success' => true)));
} }
} elseif($operation == 'tagrelativesetting'){
$pichometagrelative = $_GET['pichometagrelative'];
C::t('user_setting')->update_by_skey('pichometagrelative',$pichometagrelative);
exit(json_encode(array('success' => true)));
} elseif($operation == 'multipleselection'){
$multipleselection = $_GET['multipleselection'];
C::t('user_setting')->update_by_skey('pichomemultipleselection',$multipleselection);
exit(json_encode(array('success' => true)));
}elseif($operation == 'getsearchmenu_data'){
$appid = isset($_GET['appid']) ? trim($_GET['appid']):'';
$skey = isset($_GET['skey']) ? trim($_GET['skey']):'';
$cid = isset($_GET['cid']) ? trim($_GET['cid']):'';
$cids = ($cid) ? explode(',',$cid):[];
$perpage = isset($_GET['perpage']) ? intval($_GET['perpage']):50;
$limitsql = "limit 0," . $perpage;
$skearr = explode(',',$skey);
$datas = [];
foreach($skearr as $v){
if($v == 'tag'){
$datas['tag'] = [];
if($appid){
if(count($cids)){
if(in_array(-1,$cids)){
$nocatindex = array_search(-1,$cids);
unset($cids[$nocatindex]);
foreach(DB::fetch_all("select distinct t.tid,t.tagname,vt.hots from %t vt
left join %t tr on tr.tid=vt.tid
left join %t t on t.tid=vt.tid where isnull(tr.cid) and vt.appid = %s ORDER BY vt.hots DESC $limitsql ",
array('pichome_vapp_tag','pichome_tagrelation','pichome_tag',$appid)) as $tdata){
$datas['tag'][-1]['tags'][] = ['tid'=>$tdata['tid'],'tagname'=>$tdata['tagname']];
$tmpnum += 1;
}
if($tmpnum >= $perpage) $datas['tag'][-1]['next'] = true;
else $datas['tag'][-1]['next'] = false;
}
if(count($cids)){
$taggroupdata = DB::fetch_all("select * from %t where cid in(%n) and appid = %s",array('pichome_taggroup',$cids,$appid));
foreach($taggroupdata as $tg){
$datas['tag'][$tg['cid']] = ['catname'=>$tg['catname'],'cid'=>$tg['cid']];
$datas['tag'][$tg['cid']]['tags'] = [];
$tmpnum = 0;
foreach(DB::fetch_all("select distinct t.tid,t.tagname,vt.hots from %t vt
left join %t tr on tr.tid=vt.tid
left join %t t on t.tid=vt.tid where tr.cid=%s and vt.appid = %s ORDER BY vt.hots DESC $limitsql ",
array('pichome_vapp_tag','pichome_tagrelation','pichome_tag',$tg['cid'],$appid)) as $tdata){
$datas['tag'][$tg['cid']]['tags'][] = ['tid'=>$tdata['tid'],'tagname'=>$tdata['tagname']];
$tmpnum += 1;
}
if($tmpnum >= $perpage) $datas['tag'][$tg['cid']]['next'] = true;
else $datas['tag'][$tg['cid']]['next'] = false;
}
}
}
else{
$params = [ 'pichome_vapp_tag','pichome_tag',$appid];
$tmpnum = 0;
foreach(DB::fetch_all("select distinct t.tid,t.tagname from %t vt left join %t
t on vt.tid=t.tid where vt.appid = %s order by vt.hots desc $limitsql",$params) as $tv){
$datas['tag']['data'][] = ['tid'=>$tv['tid'],'tagname'=>$tv['tagname']];
$tmpnum += 1;
}
if($tmpnum >= $perpage) $datas['tag']['next'] = true;
else $datas['tag']['next'] = false;
// print_r($datas);die;
}
}else{
$params = [ 'pichome_tag'];
$tmpnum = 0;
foreach(DB::fetch_all("select * from %t where 1 order by hots desc $limitsql",$params) as $tv){
$datas['tag']['data'][] = ['tid'=>$tv['tid'],'tagname'=>$tv['tagname']];
$tmpnum += 1;
}
if($tmpnum >= $perpage) $datas['tag']['next'] = true;
else $datas['tag']['next'] = false;
}
}elseif($v == 'ext'){
$params = ['pichome_resources'];
$wheresql = ' isdelete < 1 ';
if($appid){
$params[] = $appid;
$wheresql .= " and appid = %s ";
}
$datas['ext'] =[];
foreach(DB::fetch_all("select ext from %t where $wheresql group by ext", $params) as $ev){
$datas['ext'][] = $ev['ext'];
}
}
}
exit(json_encode($datas));
} }
elseif($operation == 'getMoretag'){
$appid = isset($_GET['appid']) ? trim($_GET['appid']):'';
$cid = isset($_GET['cid']) ? trim($_GET['cid']):'';
$perpage = isset($_GET['perpage']) ? intval($_GET['perpage']):50;
$page = isset($_GET['page']) ? intval($_GET['page']):1;
$start = ($page - 1) * $perpage;
$limitsql = "limit $start," . $perpage;
$datas = [];
if($appid){
if($cid){
if($cid == -1){
$tmpnum = 0;
foreach(DB::fetch_all("select distinct t.tid,t.tagname,vt.hots from %t vt
left join %t tr on tr.tid=vt.tid
left join %t t on t.tid=vt.tid where isnull(tr.cid) and vt.appid = %s ORDER BY vt.hots DESC $limitsql ",
array('pichome_vapp_tag','pichome_tagrelation','pichome_tag',$appid)) as $tdata){
$datas['tag'][] = ['tid'=>$tdata['tid'],'tagname'=>$tdata['tagname']];
$tmpnum += 1;
}
if($tmpnum >= $perpage) $datas['next'] = true;
else $datas['next'] = false;
}else{
$tmpnum = 0;
foreach(DB::fetch_all("select distinct t.tid,t.tagname,vt.hots from %t vt
left join %t tr on tr.tid=vt.tid
left join %t t on t.tid=vt.tid where tr.cid=%s and vt.appid = %s ORDER BY vt.hots DESC $limitsql ",
array('pichome_vapp_tag','pichome_tagrelation','pichome_tag',$cid,$appid)) as $tdata){
$datas['tag'][] = ['tid'=>$tdata['tid'],'tagname'=>$tdata['tagname']];
$tmpnum += 1;
}
if($tmpnum >= $perpage) $datas['next'] = true;
else $datas['next'] = false;
}
}
else{
$params = [ 'pichome_vapp_tag','pichome_tag',$appid];
$tmpnum = 0;
foreach(DB::fetch_all("select distinct t.tid,t.tagname from %t vt left join %t
t on vt.tid=t.tid where vt.appid = %s order by vt.hots desc $limitsql",$params) as $tv){
$datas['tag'][] = ['tid'=>$tv['tid'],'tagname'=>$tv['tagname']];
$tmpnum += 1;
}
if($tmpnum >= $perpage) $datas['next'] = true;
else $datas['next'] = false;
}
}else{
$params = [ 'pichome_vapp_tag','pichome_tag'];
$tmpnum = 0;
foreach(DB::fetch_all("select distinct t.tid,t.tagname from %t vt left join %t
t on vt.tid=t.tid where 1 order by vt.hots desc $limitsql",$params) as $tv){
$datas['tag'][] = ['tid'=>$tv['tid'],'tagname'=>$tv['tagname']];
$tmpnum += 1;
}
if($tmpnum >= $perpage) $datas['next'] = true;
else $datas['next'] = false;
}
exit(json_encode($datas));
}
elseif($operation == 'realfianllypath') {
$rid = isset($_GET['rid']) ? trim($_GET['rid']) : '';
$data = [];
if ($_G['adminid'] == 1) {
$data['realfianllypath'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg' . '&path=' . dzzencode($rid.'_3', '', 0, 0);
}
exit(json_encode($data));
}

View File

@@ -1,4 +0,0 @@
<?php
$a = C::t('pichome_vapp')->fetch('J62mX1');
print_r($a);die;

View File

@@ -144,7 +144,22 @@ class eagleexport
return array('success' => true); return array('success' => true);
} }
//获取文件可访问的真实地址
public function getFileRealFileName($filepath,$filename,$ext){
$charsetarr = ['GBK','GB18030'];
$returnname = $filename;
if(!is_file($filepath.BS.$filename.'.'.$ext)){
foreach ($charsetarr as $v){
$filemetadataname = diconv($filename, CHARSET, $v);
if(is_file($filepath.BS.$filemetadataname.'.'.$ext)){
$returnname = $filemetadataname;
break;
}
}
}
return $returnname;
}
public function execExport($force = false) public function execExport($force = false)
{ {
$filedir = $this->path . BS.'images'; $filedir = $this->path . BS.'images';
@@ -199,9 +214,7 @@ class eagleexport
C::t('pichome_resources')->delete_by_rid($rid); C::t('pichome_resources')->delete_by_rid($rid);
} }
else{ else{
$p = new Encode_Core(); $filemetadataname = $this->getFileRealFileName($tmppath,$filemetadata['name'],$filemetadata['ext']);
$charset = $p->get_encoding($tmppath);
if (CHARSET != $charset) $filemetadataname = diconv($filemetadata['name'], CHARSET, $charset);
//文件名称 //文件名称
$filename = $filemetadataname . '.' . $filemetadata['ext']; $filename = $filemetadataname . '.' . $filemetadata['ext'];
//缩略图名称 //缩略图名称
@@ -339,10 +352,8 @@ class eagleexport
$haspassword = C::t('pichome_folder')->check_haspasswrod($filemetadata['folders'], $this->appid); $haspassword = C::t('pichome_folder')->check_haspasswrod($filemetadata['folders'], $this->appid);
if (!$haspassword){ if (!$haspassword){
$p = new Encode_Core(); $filemetadataname = $this->getFileRealFileName($tmppath,$filemetadata['name'],$filemetadata['ext']);
$charset = $p->get_encoding($tmppath); //echo $filemetadataname;die;
if (CHARSET != $charset) $filemetadataname = diconv($filemetadata['name'], CHARSET, $charset);
$filename = $filemetadataname . '.' . $filemetadata['ext']; $filename = $filemetadataname . '.' . $filemetadata['ext'];
$thumbname = $filemetadataname . '_thumbnail.png'; $thumbname = $filemetadataname . '_thumbnail.png';
//echo $i.'middle:'.memory_get_usage()/1024 . '<br>'; //echo $i.'middle:'.memory_get_usage()/1024 . '<br>';

View File

@@ -175,36 +175,45 @@ class localexport
$file = trim($file); $file = trim($file);
$file = str_replace(array('/', './', '\\'), BS, $file); $file = str_replace(array('/', './', '\\'), BS, $file);
$filearr = explode("\t", $file); $filearr = explode("\t", $file);
$filepath = $filearr[0]; $filerelativepath = $filearr[0];
$filepath = str_replace($filedir . BS, '', $filerelativepath);
$p = new Encode_Core();
$this->charset = $p->get_encoding($filepath);
//如果是目录直接执行目录导入 //如果是目录直接执行目录导入
if (isset($filearr[1]) && $filearr[1] == 'folder') { if (isset($filearr[1]) && $filearr[1] == 'folder') {
$filepath = str_replace($filedir . BS, '', $filepath);
if ($this->charset != CHARSET) $filepath = diconv($filepath, $this->charset, CHARSET); if ($this->charset != CHARSET) $filepath = diconv($filepath, $this->charset, CHARSET);
$fid = $this->createfolerbypath($filepath); $fid = $this->createfolerbypath($filepath);
$spl_object->next(); $spl_object->next();
continue; continue;
} else { } else {
//生成rid $hasrid = 0;
$rid = md5($filepath.$this->appid); if($rid = DB::result_first("select rid from %t where path = %s and appid = %s",
array('pichome_resources_attr',$filepath,$this->appid))){
$hasrid = 1;
}else{
//生成rid
$rid = $this->createRid();
}
$realfilepath = $filedir.BS.$filepath;
//如果文件不存在则删除记录 //如果文件不存在则删除记录
if (!is_file($filepath)) { if (!is_file($realfilepath)) {
C::t('pichome_resources')->delete_by_rid($rid); if($hasrid)C::t('pichome_resources')->delete_by_rid($rid);
$this->filenum -= 1; $this->filenum -= 1;
} else { } else {
//修改时间
$mtime = filemtime($filepath); $mtime = filemtime($realfilepath);
$ctime = filectime($filepath); //创建时间
$ctime = filectime($realfilepath);
//获取文件后缀 //获取文件后缀
$ext = substr(strrchr($filepath, '.'), 1); $ext = substr(strrchr($realfilepath, '.'), 1);
$ext = strtolower($ext); $ext = strtolower($ext);
//获取文件类型 //获取文件类型
$type = getTypeByExt($ext); $type = getTypeByExt($ext);
//获取文件大小 //获取文件大小
$size = filesize($filepath); $size = filesize($realfilepath);
//获取图片信息,以取得宽高 //获取图片信息,以取得宽高
$imginfo = @getimagesize($filepath); $imginfo = @getimagesize($realfilepath);
//保存路径,用于之后获取文件使用 //保存路径,用于之后获取文件使用
$savepath = str_replace(array('/', './', '\\'), '/', $filearr[0]); $savepath = str_replace(array('/', './', '\\'), '/', $filearr[0]);
$savepath = str_replace($this->path . '/', '', $savepath); $savepath = str_replace($this->path . '/', '', $savepath);
@@ -321,7 +330,17 @@ class localexport
return array('success' => true); return array('success' => true);
} }
//生成rid
public function createRid(){
//订单年月
$ridmd = strtoupper(dechex(date('m'))) . date('d');
//订单时间戳
$ridms = substr(time(), -5) . substr(microtime(), 2, 5);
//订单号
$rid = md5($ridmd.$ridms. sprintf('%02d', rand(0, 99)).$this->appid);
return $rid;
}
//根据路径创建目录 //根据路径创建目录
public function createfolerbypath($path, $pfid = '') public function createfolerbypath($path, $pfid = '')
{ {

View File

@@ -1,74 +0,0 @@
<?php
/*
* @copyright QiaoQiaoShiDai Internet Technology(Shanghai)Co.,Ltd
* @license https://www.oaooa.com/licenses/
*
* @link https://www.oaooa.com
* @author zyx(zyx@oaooa.com)
*/
//此页的调用地址 index.php?mod=test;
//同目录的其他php文件调用 index.php?mod=test&op=test1;
if (!defined('IN_OAOOA')) {//所有的php文件必须加上此句防止被外部调用
exit('Access Denied');
}
$ismobile = helper_browser::ismobile();
$overt = getglobal('setting/overt');
if(!$overt && !$overt = C::t('setting')->fetch('overt')){
Hook::listen('check_login');//检查是否登录,未登录跳转到登录界面
}
//主题
$theme = GetThemeColor();
//库
$apps = [];
foreach(DB::fetch_all("select * from %t where isdelete = 0 order by disp ",array('pichome_vapp')) as $v){
$v['path'] = urlencode($v['path']);
$v['leaf'] = DB::result_first("select count(*) from %t where appid = %s",array('pichome_folder',$v['appid'])) ? false:true;
if(!$v['nosubfilenum']){
$hascatnum = DB::result_first("SELECT count(DISTINCT rid) FROM %t where appid = %s",array('pichome_folderresources',$v['appid']));
$v['nosubfilenum'] = $v['filenum'] - $hascatnum;
C::t('pichome_vapp')->update($v['appid'],array('nosubfilenum'=>$v['nosubfilenum']));
}
$apps[] = $v;
}
$apps = json_encode($apps);
//显示子分类内容
$ImageExpanded = C::t('user_setting')->fetch_by_skey('pichomeimageexpanded',$uid);
//筛选
$screen = C::t('user_setting')->fetch_by_skey('pichomeuserscreen',$uid);
$screen = $screen?intval($screen):0;
$setting = $_G['setting'];
$pagesetting = $setting['pichomepagesetting'] ? $setting['pichomepagesetting'] : [];
//排序方式
$pichomesortfileds = C::t('user_setting')->fetch_by_skey('pichomesortfileds',$_G['uid']);
//显示信息
$pichomeshowfileds = C::t('user_setting')->fetch_by_skey('pichomeshowfileds',$_G['uid']);
//布局类型
$pichomelayout = C::t('user_setting')->fetch_by_skey('pichomelayout',$_G['uid']);
if($pichomesortfileds){
$sortdatarr = unserialize($pichomesortfileds);
$sortfilearr = ['btime'=>1,'mtime'=>2,'dateline'=>3,'name'=>4,'size'=>5,'grade'=>6,'duration'=>7,'whsize'=>8];
$pagesetting['sort'] = $sortfilearr[$sortdatarr['filed']];
$pagesetting['desc'] = $sortdatarr['sort'];
}
if($pichomelayout){
$layout = unserialize($pichomelayout);
$pagesetting['layout'] = $layout['layout'];
}
if($pichomeshowfileds){
$pichomeshowfileds = unserialize($pichomeshowfileds);
$pagesetting['show'] = $pichomeshowfileds['filed'];
$pagesetting['other'] = $pichomeshowfileds['other'];
}
$template = 1;
if($pagesetting['template']){
$template = $pagesetting['template'];
}
$pagesetting = json_encode($pagesetting);
include template('pc/page/collection');

View File

@@ -1,133 +0,0 @@
.el-aside {
background-color: var(--bg-header);
border-right: 1px solid var(--border-color-base);
}
.maxWidth {
width: 370px;
}
#center_title {
line-height: 55px;
border-bottom: 1px solid var(--border-color-base);
padding: 0 25px;
color: var(--content-textHover);
font-size: 16px;
}
.el-form-item__label,
.el-checkbox,
.el-radio {
color: var(--content-text);
}
.el-checkbox,
.el-radio {
margin-right: 16px;
margin-left: 0 !important;
}
.tipTxt{
color: var(--tip-color);
font-size: 12px;
line-height: 20px;
margin-top: 6px;
}
.tipTxt:hover {
color: var(--content-text);
}
.avatar-uploader .el-upload {
border: 1px dashed var(--border-color-base);
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
width: 150px;
height: 150px;
display: flex;
justify-content: center;
align-items: center;
}
.avatar-uploader .el-upload:hover {
border-color:var(--color-primary);
}
.avatar-uploader .avatar-uploader-icon {
font-size: 16px;
color: var(--content-text);
}
.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;
background: var(--bg-content);
z-index: 100;
}
.avatar {
max-width: 100%;
max-height: 100%;
display: inline-block;
}
.register-bg-bt{
background-color: transparent;
color: var(--content-text);
margin-left: 6px;
}
.el-checkbox,.el-radio{
min-width: 120px;
margin-bottom: 8px;
}
.theme-block{
margin-right: 12px;
float: left;
}
.theme-block .bg{
height: 40px;
width: 40px;
border: 1px solid var(--border-color-base);
border-radius: 4px;
position: relative;
overflow: hidden;
cursor: pointer;
}
.theme-block .bg.active{
border: 1px solid var(--color-primary);
}
.theme-block .bg .triangle{
position: absolute;
right: 0px;
bottom: 0px;
width: 0;
height: 0;
border-bottom: 30px solid var(--color-primary);
border-left: 30px solid transparent;
display: none;
}
.theme-block .bg .icon{
color: #FFFFFF;
font-size: 14px;
position: absolute;
bottom: 2px;
right: 2px;
display: none;
}
.theme-block .bg.active .triangle,
.theme-block .bg.active .icon{
display: block;
}

View File

@@ -1,445 +0,0 @@
*{
padding: 0;
margin: 0;
box-sizing: border-box;
}
html,
body,
#dzzoffice,
.el-container,
.el-main,
.page-content{
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;
}
.el-header{
color: var(--header-text);
border-bottom: 1px solid var(--border-color-base);
}
.el-color-dropdown{
color: var(--header-text);
background-color: var(--bg-header);
border-bottom: 1px solid var(--border-color-base);
}
body{
background-color: var(--bg-content);
}
[v-cloak]{
display: none;
}
.el-dropdown-menu__item--divided{
border-color: var(--border-color-base);
}
.el-dropdown-menu__item--divided:before{
background-color: transparent;
}
.el-divider.el-divider--horizontal{
margin: 8px 0;
}
.el-input__inner,
.el-textarea__inner{
font-size: 14px;
color: var(--header-text);
background-color: var(--bg-input);
}
.el-input__inner:focus,.el-input__inner:hover,
.el-textarea__inner:focus,.el-textarea__inner:hover{
background-color: var(--bg-inputfocus);
border-color: var(--color-primary);
}
.el-table td, .el-table th.is-leaf{
border-color:var(--border-color-base);
}
.el-table--border::after, .el-table--group::after, .el-table::before{
background-color: var(--border-color-base);
}
.el-table th,.el-table tr{
background-color: var(--bg-content);
}
.el-table--striped .el-table__body tr.el-table__row--striped td{
background-color: var(--td-striped);
}
.el-table--enable-row-hover .el-table__body tr:hover>td{
background-color: var(--bg-content);
}
.el-table--striped .el-table__body tr.el-table__row--striped:hover>td{
background-color: var(--td-striped);
}
.el-dialog,
.el-popper{
background-color: var(--bg-poper);
color: var(--header-text);
border-color:var(--border-color-base);
}
.el-popper[x-placement^=bottom] .popper__arrow{
border-bottom-color:var(--border-color-base) !important;
}
.el-popper[x-placement^=bottom] .popper__arrow::after{
border-bottom-color:var(--bg-poper) !important;
}
.el-popper[x-placement^=left] .popper__arrow{
border-left-color:var(--border-color-base) !important;
}
.el-popper[x-placement^=left] .popper__arrow::after{
border-left-color:var(--bg-poper) !important;
}
.el-dialog .el-dialog__header{
text-align: center;
}
.el-dialog .el-dialog__header .el-dialog__title{
color: var(--header-text);
}
.el-form-item__label{
color: var(--content-textHover);
}
.el-tooltip__popper.is-dark{
color: #FFFFFF;
border: 1px solid var(--border-color-base);
background-color: var(--bg-tooltip);
}
.el-tooltip__popper .popper__arrow{
border-bottom-color:var(--border-color-base) !important;
}
.el-tooltip__popper .popper__arrow::after{
border-bottom-color:var(--bg-tooltip) !important;
}
.el-menu{
background-color: transparent;
border: 0;
}
.el-menu .el-menu-item,
.el-dropdown-menu__item{
color: var(--header-text);
}
.el-menu .el-menu-item:focus,.el-menu .el-menu-item:hover,.el-menu .el-menu-item.is-active,
.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover {
color: var(--header-active);
background-color: var(--bg-poperHover);
}
.el-dropdown,
.el-menu .el-menu-item{
color: var(--header-text);
}
.el-select-dropdown__item{
color: var(--header-text);
}
.el-select-dropdown__item.selected{
color: var(--header-active);
}
.el-select-dropdown__item.hover, .el-select-dropdown__item:hover {
background-color: var(--bg-poperHover);
color: var(--header-active);
}
.el-checkbox,
.el-radio{
color: var(--header-text);
}
.el-checkbox .el-checkbox__inner,
.el-radio .el-radio__inner{
background-color: transparent;
border-color: var(--radio-line);
}
.el-checkbox .el-checkbox__input.is-focus .el-checkbox__inner,
.el-radio .el-radio__input.is-focus .el-radio__inner{
border-color: var(--radio-line);
}
.el-radio__input.is-checked+.el-radio__label,
.el-checkbox__input.is-checked+.el-checkbox__label{
color: var(--header-active);
}
.el-input .el-input__icon{
color: var(--header-text);
}
.el-date-table td.available:hover,
.el-picker-panel__icon-btn:hover,
.el-date-table td.today span{
color: var(--header-active);
}
.el-picker-panel__icon-btn,
.el-date-table td,
.el-date-table th{
color: var(--header-text);
}
.el-date-table td.in-range div,
.el-date-table td.in-range div:hover{
background-color: var(--color-primary);
}
.el-date-range-picker__content.is-left,
.el-date-table th{
border-color:var(--border-color-base) !important;
}
.el-tree,
.el-tree .el-tree-node .el-tree-node__expand-icon{
background: transparent;
color: var(--header-text);
}
.el-tree .el-tree-node .el-tree-node__expand-icon.is-leaf{
color: transparent !important;
}
.el-tree .el-tree-node:focus .el-tree-node__expand-icon{
color: var(--header-active);
}
.el-tree .el-tree-node__content:hover{
color: var(--header-active);
background-color: var(--bg-poperHover);
}
.el-tree .el-tree-node:focus>.el-tree-node__content{
background-color: var(--bg-poperHover);
}
.page-content{
display: flex;
flex-direction: column;
}
.page-component__scroll{
height: 100%;
flex: 1;
}
.page-component__scroll>.el-scrollbar__wrap {
overflow-x: hidden;
}
.Topcarousel{
border-radius: 50%;
text-align: center;
display: inline-block;
font-size: 18px;
width: 100%;
height: 100%;
color: #FFF;
}
#copyInput{
opacity: 0;
position: fixed;
bottom: 0;
left: 0;
}
.img-circle{
border-radius: 50%;
width: 100%;
height: 100%;
}
.hide{
display: none !important;
}
.PopoverNotPadding{
padding: 0;
}
.clearfix:after{
content: '.';
clear: both;
display: block;
height: 0;
visibility: hidden;
font-size: 0;
line-height: 0;
}
ul{
list-style: none;
}
.squareIcon{
height: 48px;
width: 48px;
background: var(--bg-color);
color: var(--text-color1);
padding: 0 8px;
border-radius: 6px;
text-align: center;
line-height: 48px;
display: inline-block;
margin-right: 8px;
flex: 0 0 auto;
}
.squareIcon i{
font-size: 28px;
}
.squareImg{
height: 48px;
width: 48px;
border-radius: 6px;
display: inline-block;
margin-right: 8px;
flex: 0 0 auto;
background: var(--g-colroimg);
display: flex;
align-items: center;
justify-content: center;
}
.squareImg img{
max-width: 100%;
max-height: 100%;
}
.dzz-dropdown-menu .dzz-dropdown-menu__item{
color: var(--header-text);
line-height: 35px;
padding: 0 5px;
border-radius: 4px;
position: relative;
cursor: pointer;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.dzz-dropdown-menu .dzz-dropdown-menu__item:hover{
color: var(--header-active);
background-color: var(--bg-poperHover);
}
.dzz-dropdown-menu .dzz-dropdown-menu__item.nothover:hover{
background-color: transparent;
}
#top_header {
height: 70px;
width: 100%;
padding: 4px 16px;
align-items: center;
display: flex;
}
#top_header .header-content .h-left .el-image {
width: 35px;
height: 35px;
}
#top_header .header-content .h-left .text {
font-size: 16px;
font-weight: 700;
margin-left: 10px;
color: var(--header-active);
}
#top_header .header-content {
display: flex;
height: 56px;
align-items: center;
width: 100%;
}
#top_header .header-content .h-left {
height: 100%;
display: flex;
justify-content: center;
align-items: center;
text-decoration: none;
}
#top_header .header-content .h-center {
flex: 1 1 auto;
height: 100%;
padding: 0 30px;
display: flex;
align-items: center;
}
#top_header .header-content .h-right #dzz_avatar_img {
cursor: pointer;
width: 35px;
height: 35px;
line-height: 35px;
margin-left: 5px;
}
.el-empty{
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
text-align: center;
box-sizing: border-box;
padding: 40px 0;
}
.el-empty__image {
width: 160px;
}
.el-empty__image img{
user-select: none;
width: 100%;
height: 100%;
vertical-align: top;
object-fit: contain;
}
.el-empty__description {
margin-top: 20px;
color: var(--content-textHover);
}
.aboutPichome{
padding: 0;
width: 478px;
}
.aboutPichome .el-message-box__header,
.aboutPichome .el-message-box__btns{
display: none;
}
.aboutPichome .aboutlogo{
text-align: center;
line-height: 0;
padding-top: 40px;
}
.aboutPichome .aboutmessage{
padding: 65px 40px;
font-size: 19px;
padding-bottom: 15px;
}
.aboutPichome .aboutmessage .aboutlist{
margin-bottom: 20px;
overflow: hidden;
}
.aboutPichome a{
text-decoration: none;
}
.aboutPichome .aboutmessage .aboutlist .title{
float: left;
width: 95px;
}
.aboutPichome .aboutmessage .aboutlist .mes{
float: left;
width: calc(100% - 95px);
}
.aboutPichome .aboutmessage .aboutlist .update{
font-size: 12px;
}
#systemNotice .panel-heading {
border-radius: 0;
background: var(--bg-header);
color: var(--header-text);
padding: 10px 15px;
}
#systemNotice .panel-heading .close{
float: right;
border: 0;
font-size: 21px;
color: var(--header-text);
}
#systemNotice .panel-body {
background: var(--bg-input);
color: var(--header-text);
padding: 10px 15px !important;
}
#systemNotice .panel-body img{
max-height: 30px;
vertical-align: bottom;
margin-right: 10px;
}
#systemNotice .panel-body a{
color: var(--header-text);
text-decoration: none;
}

View File

@@ -1,354 +0,0 @@
.el-header,.el-main{
background-color: var(--bg-content);
}
#top_header .header-content .h-right .r-option {
display: flex;
align-items: center;
height: 40px;
}
#top_header .header-content .h-right .right-block {
float: left;
font-size: 24px;
padding: 8px;
cursor: pointer;
border-radius: 50%;
width: 40px;
height: 40px;
margin-right: 5px;
color: var(--header-icon);
}
#top_header .header-content .h-right .right-block:hover {
background: var(--header-textHover);
color: var(--header-iconHover);
}
#top_header .header-content .h-right .right-block i {
vertical-align: top;
}
#top_header .header-content .h-center .imgoperation {
text-align: center;
display: flex;
align-items: center;
justify-content: center;
flex: 1;
}
#top_header .header-content .h-center .imgoperation .proportion{
width: 140px;
}
#top_header .header-content .h-center .imgoperation .text{
display: inline-block;
cursor: default;
margin-left: 10px;
}
#top_header .header-content .h-center .imgoperation .text:hover{
color: var(--header-active);
}
#top_header .header-content .h-center .imgoperation .text .icon{
font-size: 18px;
vertical-align: middle;
font-weight: 700;
}
.carousel__arrow-box{
display: inline-block;
width: 52px;
margin-left: 10px;
}
.carousel__arrow-box .carousel__arrow{
cursor: pointer;
float: left;
margin-left: 5px;
}
.carousel__arrow-box .carousel__arrow:hover{
color: var(--header-active);
}
.carousel__arrow-box .carousel__arrow .icon{
font-size: 18px;
font-weight: 700;
vertical-align: middle;
}
.proportionnum-box .el-dropdown-menu__item{
line-height: 30px;
font-size: 12px;
}
.el-tooltip__popper.color-top {
color: var(--content-text);
background: var(--bg-content);
border: 1px solid var(--border-color-base);
}
.el-tooltip__popper.color-top .popper__arrow {
border-top-color: var(--border-color-base) !important;
}
.el-tooltip__popper.color-top .popper__arrow::after {
border-top-color: var(--bg-tooltip) !important;
}
.el-header {
border-bottom: 0;
}
.el-scrollbar__view{
height: 100%;
}
.el-slider__button-wrapper.grabbing:hover,
.el-slider__button-wrapper.grabbing,
.el-slider__button-wrapper.grabbing .el-slider__button{
cursor: grabbing !important;
}
.details-top {
width: 100%;
height: 100%;
position: relative;
overflow: hidden;
padding: 0 20px;
}
.details-maincontainer{
height: 100%;
}
.floating-layer {
width: 100%;
height: 100%;
position: relative;
padding-right: 360px;
padding-bottom: 8px;
}
.details-top .page-component__scroll .is-horizontal {
display: none;
}
#ImgScroll.move{
cursor: grab;
}
#ImgScroll.move.activemove{
cursor: grabbing;
}
#ImgScroll .is-horizontal {
display: block;
}
#ImgScroll .el-scrollbar__view {
position: relative;
text-align: center;
/* box-sizing: content-box; */
font-size: 0;
width: 100%;
height: 100%;
}
.information-box {
color: var(--content-text);
}
.floating-layer .picture-box {
height: 100%;
position: relative;
width: 100%;
}
.floating-layer.HideInformation{
padding-right: 0px;
}
.floating-layer .picture-box .image-viewer__img {
display: inline-block;
vertical-align: middle;
}
.floating-layer .picture-box .image-viewer__img.max {
max-width: 100%;
max-height: 100%;
}
.floating-layer .picture-box .image-viewer__img.opacity{
display: none;
}
.floating-layer .picture-box .image-viewer__img.thumbnail{
}
.floating-layer .information-box {
position: absolute;
height: 100%;
width: 360px;
padding-left: 20px;
right: 0;
top: 0;
padding-bottom: 8px;
}
.floating-layer.HideInformation .information-box {
display: none;
}
.floating-layer .information-box .el-divider {
margin: 0;
}
.floating-layer .information-box .title {
font-size: 18px;
color: var(--content-textHover);
font-weight: 700;
display: -webkit-box;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
-webkit-box-orient: vertical;
max-height: 48px;
margin-bottom: 16px;
}
.floating-layer .information-box .operation {
padding-bottom: 16px;
margin-left: -4px;
display: flex;
}
.floating-layer .information-box .operation .circular {
color: var(--content-text);
font-size: 17px;
font-weight: 700;
text-decoration: none;
float: left;
width: 45px;
margin: 0 4px;
text-align: center;
line-height: 43px;
cursor: pointer;
background: var(--bg-header);
border: 1px solid var(--border-color-base);
border-radius: 50%;
}
.floating-layer .information-box .operation .circular.bg {
flex: auto;
border-radius: 18px;
}
.floating-layer .information-box .operation .circular:hover {
color: var(--content-textHover);
}
.floating-layer .information-box .message .color {
margin: 0 -3px;
display: flex;
}
.floating-layer .information-box .message .color>li {
height: 28px;
float: left;
padding: 0 3px 6px;
flex: 1;
max-width: 90px;
cursor: pointer;
}
.floating-layer .information-box .message .color>li.opacity {
opacity: 0.3;
}
.floating-layer .information-box .message .color>li .el-dropdown {
width: 100%;
height: 100%;
}
.floating-layer .information-box .message .color>li .bg {
height: 100%;
width: 100%;
border-radius: 4px;
border: 1px solid var(--border-color-base);
}
.floating-layer .information-box .message .label {
/* padding-bottom: 16px; */
}
.floating-layer .information-box .message .label .el-tag {
min-width: 45px;
text-align: center;
margin-bottom: 5px;
float: left;
margin-right: 5px;
background: var(--bg-header);
border: 1px solid var(--border-color-base);
color: var(--content-text);
cursor: pointer;
}
.floating-layer .information-box .message .notes {
font-size: 14px;
/* padding-bottom: 16px; */
line-height: 22px;
word-wrap: break-word;
}
.floating-layer .information-box .message .thesis-wrap {
padding-bottom: 16px;
}
.floating-layer .information-box .message .thesis-wrap .tip-title {
font-size: 16px;
font-weight: 700;
margin-bottom: 6px;
color: var(--content-textHover);
}
.floating-layer .information-box .message .link {
position: relative;
font-size: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
padding-right: 35px;
cursor: pointer;
}
.floating-layer .information-box .message .link:hover {
color: var(--content-textHover);
}
.floating-layer .information-box .message .link i {
position: absolute;
right: 0;
top: 0;
font-size: 25px;
width: 25px;
height: 25px;
bottom: 0;
margin-top: auto;
margin-bottom: auto;
cursor: pointer;
}
.floating-layer .information-box .information {
padding: 18px 0;
}
.floating-layer .information-box .information .tip {
font-size: 18px;
font-weight: 700;
padding-bottom: 16px;
color: var(--content-textHover);
}
.floating-layer .information-box .information .field {
margin-bottom: 6px;
}
.floating-layer .information-box .information .field .name {
font-size: 14px;
}
.floating-layer .information-box .information .field .record {
font-size: 14px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
color: var(--content-textMessage);
text-align: right;
}
.floating-layer .information-box .information .field .record .star {
color: var(--stars);
}
.floating-layer .information-box .information .field .record .star.active {
color: var(--starsActive);
}

File diff suppressed because it is too large Load Diff

View File

@@ -26,6 +26,59 @@ html,body,#dzzoffice{
padding: 0; padding: 0;
overflow: hidden; overflow: hidden;
} }
.header-top{
position: fixed;
top: 0;
left: 0;
width: 100%;
transition: all .3s;
transition: all .3s;
-moz-transition: all .3s;
-webkit-transition: all .3s;
-o-transition: all .3s;
background: var(--bg-content) !important;
}
.header-top.headerhide{
top: -46px;
opacity: 0;
}
.header-top .van-dropdown-menu__bar{
height: 46px;
}
.pic-notice{
position: fixed;
top: 46px;
left: 0;
width: 100%;
z-index: 100;
}
.pic-notice.noticehide{
top: 0px;
}
.bs-main-container{
height: 100%;
width: 100%;
overflow: hidden;
}
.pic-container{
height: 100%;
width: 100%;
overflow: hidden;
}
.pic-container .pic-container-scroll{
height: 100%;
width: 100%;
overflow: auto;
position: relative;
padding-top: 46px;
padding-bottom: 20%;
}
.pic-container .img-container{
min-height: 100% ;
position: relative;
padding: 0 4px;
}
input::-webkit-input-placeholder { /* WebKit, Blink, Edge */ input::-webkit-input-placeholder { /* WebKit, Blink, Edge */
color : var(--tip-color); color : var(--tip-color);
} }
@@ -45,10 +98,83 @@ input:-ms-input-placeholder { /* Internet Explorer 10-11 */
input::-ms-input-placeholder { /* Microsoft Edge */ input::-ms-input-placeholder { /* Microsoft Edge */
color : var(--tip-color); color : var(--tip-color);
} }
[v-cloak] {
display: none;
}
.page-popup{
background: var(--bg-content) !important;
}
.van-action-sheet__cancel, .van-action-sheet__item{
background-color: transparent;
}
.van-action-sheet__gap,
.van-action-sheet__cancel:active,
.van-action-sheet__item:active{
background-color: var(--bg-poperHover);
}
.van-action-sheet__cancel{
color: var(--header-text);
}
.custom-image.van-empty{
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
margin: auto;
}
.img-circle{
width: 2.1875rem;
height: 2.1875rem;
border-radius: 50%;
vertical-align: middle;
}
.Topcarousel{
border-radius: 50%;
text-align: center;
display: inline-block;
font-size: 1rem;
width: 2.1875rem;
height: 2.1875rem;
line-height: 2.1875rem;
color: #FFF;
}
#dzzoffice{
position: relative;
background: var(--bg-content);
}
.pic-logo{
height: 40px;
padding: 5px 0;
}
.pic-logo .h-left{
height: 30px;
display: -webkit-box;
display: -webkit-flex;
display: flex;
align-items: center;
color: var(--header-text);
text-decoration: none;
}
.pic-logo .h-left img{
max-width: 100%;
max-height: 100%;
margin-right: 10px;
}
.van-nav-bar__title{
color: var(--header-text);
}
.van-nav-bar__content{ .van-nav-bar__content{
/* 46px */ /* 46px */
height: 46px; height: 46px;
} }
.van-nav-bar .van-icon{
color: var(--content-textHover);
}
.van-nav-bar__content .van-nav-bar__text{
color: var(--header-text);
}
.van-popup.van-notify.van-notify--warning{ .van-popup.van-notify.van-notify--warning{
background-color: #ff976a; background-color: #ff976a;
color: #fff; color: #fff;
@@ -169,7 +295,9 @@ ul{
.van-cell::after{ .van-cell::after{
border-color: var(--border-color-base); border-color: var(--border-color-base);
} }
.van-cell--clickable:active{
background-color: var(--bg-poperHover);
}
.van-search{ .van-search{
background-color: transparent; background-color: transparent;
} }
@@ -189,6 +317,9 @@ ul{
background-color: transparent; background-color: transparent;
color: var(--header-text); color: var(--header-text);
} }
.van-sidebar-item.van-sidebar-item--disabled{
opacity: 0.7;
}
.van-sidebar-item--select{ .van-sidebar-item--select{
color: var(--header-active); color: var(--header-active);
} }
@@ -268,3 +399,206 @@ ul{
transform: rotate(359deg) transform: rotate(359deg)
} }
} }
.van-cell-group{
background-color: transparent;
}
.about-popup,
.my-popup{
height: 100%;
width: 100%;
background: var(--bg-content);
color: var(--content-textHover);
overflow: hidden;
padding-top: 46px;
}
.about-popup .van-nav-bar,
.my-popup .van-nav-bar{
position: absolute;
top: 0;
left: 0;
width: 100%;
}
.about-popup .scroll-box,
.my-popup .scroll-box{
width: 100%;
height: 100%;
overflow: auto;
padding-top: 0.9375rem;
}
.my-popup .scroll-box .van-cell-group{
background: transparent;
}
.my-popup .scroll-box .van-cell {
background: transparent;
}
.my-popup .scroll-box .van-cell::after{
display: none;
}
.my-popup .scroll-box .van-cell .van-cell__right-icon{
color: var(--header-text);
}
.about-popup .aboutlogo{
text-align: center;
padding-top: 3.125rem;
padding-bottom: 1.875rem;
}
.about-popup .aboutmessage{
padding: 0 2.1875rem;
}
.about-popup .aboutmessage .aboutlist{
margin-bottom: 1.25rem;
overflow: hidden;
font-size: 1rem;
}
.about-popup .aboutmessage .aboutlist .title{
float: left;
}
.about-popup .aboutmessage .aboutlist .address{
color: var(--color-primary);
font-size: 1rem;
vertical-align: sub;
}
@media screen and (min-width: 768px) {
.about-popup .aboutmessage{
padding: 0 6.25rem;
}
}
.pic-toolbar{
position: fixed;
width: 100%;
left: 0;
padding: 0 8%;
transition: all .3s;
transition:all .3s;
-moz-transition:all .3s; /* Firefox 4 */
-webkit-transition:all .3s; /* Safari and Chrome */
-o-transition:all .3s; /* Opera */
z-index: 100;
}
.pic-toolbar.footershow{
bottom: 3%;
opacity: 1;
}
.pic-toolbar.footerhide{
bottom: -2.9375rem;
opacity: 0;
}
.pic-toolbar .tabbar{
display: -webkit-box;
display: -webkit-flex;
display: flex;
border-radius: 39px;
background: var(--bg-poper);
padding: 0.375rem 0;
color: var(--header-text);
/* box-shadow: 0px 0px 5px 1px var(--bg-poperHover); */
}
.pic-toolbar .tab-item{
-webkit-box-flex: 1;
-webkit-flex: 1;
flex: 1;
text-align: center;
font-size: 14px;
justify-content: center;
align-items: center;
display: flex;
}
.pic-toolbar .tab-item .icon{
font-size: var(--font-32);
}
.pic-toolbar .tab-item img{
border-radius: 50%;
width: 2.1875rem;
height: 2.1875rem;
vertical-align: bottom;
}
.van-popup{
overflow: unset;
}
.van-dropdown-menu-scorll .van-popup{
overflow: scroll;
}
.van-popup .vam-popup-title{
height: 40px;
font-weight: 700;
position: absolute;
top: -40px;
left: 0;
width: 100%;
padding: 0 12px;
font-size: 18px;
color: #FFFFFF;
}
.footer-popup{
padding-bottom: 70px;
}
.footer-popup .btn-bottom{
padding: 10px;
height: 70px;
position: absolute;
width: 100%;
bottom: 0;
left: 0;
}
.footer-popup .btn-bottom .van-button{
width: auto;
padding: 15px 20px;
}
.footer-popup .popup-search-input .van-field__right-icon{
padding-right: 0;
}
.footer-popup .popup-search-input .van-field__right-icon .van-icon{
font-size: 1.25rem;
color: var(--header-active);
}
.footer-popup .van-search-box{
position: absolute;
top: 0;
left: 0;
width: 100%;
}
.footer-popup .van-search-box .van-field{
border: 0;
font-size: 0.875rem;
}
.van-notify--success {
background-color: #07c160;
}
.van-notify--danger {
background-color: #ee0a24;
}
.van-notify--warning {
background-color: #ff976a;
}
#systemNotice .panel-heading {
border-radius: 0;
background: var(--bg-header);
color: var(--header-text);
padding: 10px 15px;
}
#systemNotice .panel-heading .close{
float: right;
border: 0;
font-size: 21px;
color: var(--header-text);
background-color: transparent;
}
#systemNotice .panel-body {
background: var(--bg-input);
color: var(--header-text);
padding: 10px 15px !important;
}
#systemNotice .panel-body img{
max-height: 30px;
vertical-align: bottom;
margin-right: 10px;
}
#systemNotice .panel-body a{
color: var(--header-text);
text-decoration: none;
}

View File

@@ -37,10 +37,6 @@
.detail-popup.full .header-top{ .detail-popup.full .header-top{
display: none; display: none;
} }
.van-nav-bar .van-nav-bar__title,
.van-nav-bar .van-icon {
color: var(--content-textHover);
}
.detail-popup .detail-popup-translate{ .detail-popup .detail-popup-translate{
position: relative; position: relative;
@@ -75,7 +71,7 @@
right: 0; right: 0;
bottom: 0; bottom: 0;
margin: auto; margin: auto;
max-height: 100%;
} }
.detail-popup .detail-popup-content .img-box { .detail-popup .detail-popup-content .img-box {
height: 100%; height: 100%;
@@ -125,7 +121,7 @@
display: -webkit-box; display: -webkit-box;
display: -webkit-flex; display: -webkit-flex;
display: flex; display: flex;
z-index: 10000; z-index: 100;
background: var(--bg-content); background: var(--bg-content);
} }
.detail-popup.full .footer-tabbar{ .detail-popup.full .footer-tabbar{
@@ -286,3 +282,23 @@
.detail-popup-message .block .block-item .basic .record .star.active{ .detail-popup-message .block .block-item .basic .record .star.active{
color: var(--starsActive); color: var(--starsActive);
} }
.van-cell::after{
display: none;
}
.van-collapse-item--border::after{
display: none;
}
.screen-popup .screen-classify-collapse .van-cell {
background-color: transparent;
margin-bottom: 6px;
}
.screen-popup .screen-classify-collapse .van-collapse-item__content{
background-color: transparent;
padding: 0;
padding-left: 1rem;
}
.screen-popup .screen-classify-collapse .van-collapse-item.active>.van-cell {
background-color: var(--bg-poperHover);
border-radius: 999px;
}

View File

@@ -0,0 +1,343 @@
#imgContainer .imgitem .imgchecked{
z-index: 5;
position: absolute;
left: 5%;
top: 3%;
}
#imgContainer .imgitem .imgchecked .van-checkbox__icon{
height: 25px;
}
#imgContainer .imgitem .imgchecked .van-checkbox__icon .van-icon{
font-size: 20px;
background-color: #FFFFFF;
}
#imgContainer .imgitem .imgchecked .van-checkbox__icon.van-checkbox__icon--checked .van-icon{
background-color: var(--color-primary);
}
#imgContainer .imgitem .imgbox .bottom-img-message{
text-align: center;
color: var(--content-text);
overflow: hidden;
max-height: 65px;
padding: 0 6px;
}
#imgContainer .imgitem .imgbox .bottom-img-message .name {
max-height: 45px;
display: -webkit-box;
display: -webkit-flex;
display: flex;
overflow: hidden;
justify-content: flex-end;
}
#imgContainer .imgitem .imgbox .bottom-img-message .name .text{
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
font-size: 0.875rem;
width: 100%;
height: 35px;
margin-top: 10px;
word-wrap: break-word;
text-align: left;
}
#imgContainer .imgitem .imgbox .bottom-img-message .name .circulars{
color: var(--content-text);
font-size: 16px;
min-width: 45px;
height: 35px;
text-align: center;
line-height: 35px;
}
#imgContainer .imgitem .imgbox .bottom-img-message .other {
font-size: 0.75rem;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
height: 21px;
padding-top: 5px;
color: var(--content-textMessage);
}
#imgContainer .imgitem .imgbox .bottom-img-message .other .score{
color: var(--stars);
}
#imgContainer .imgitem .imgbox .bottom-img-message .other .score.active{
color: var(--starsActive);
}
#imgContainer .imgitem .imgbox .annotation{
position: absolute;
right: 5px;
top: 5px;
font-size: 14px;
width: 22px;
height: 22px;
border: 2px solid #FFFFFF;
border-radius: 50%;
color: #FFFFFF;
text-align: center;
line-height: 20px;
background: var(--color-primary);
}
#imgContainer{
position: relative;
margin: 0 auto;
}
#imgContainer .imgitem{
position: absolute;
/* transition:all .2s; */
}
#imgContainer .imgitem .imgbox {
padding-left: 4px;
padding-right: 4px;
}
#imgContainer .imgitem .imgbox .imgbox-border {
position: relative;
overflow: hidden;
cursor: zoom-in;
/* min-height: 120px; */
height: 100%;
}
#imgContainer .imgitem .imgbox .imgbox-border.radius{
border-radius: 18px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black {
width: 100%;
height: 100%;
position: relative;
display: -webkit-box;
display: -webkit-flex;
display: flex;
justify-content: center;
align-items: center;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .bck{
width: 100%;
height: 100%;
display: none;
background: var(--bg-poper);
top: 0;
left: 0;
position: absolute;
opacity: 0.7;
}
#imgContainer .imgitem .imgbox .imgbox-border .img {
max-width: 100%;
max-height: 100%;
width: auto;
height: auto;
border-radius: 18px;
}
#imgContainer .imgitem .imgbox .imgbox-border .img.opacity{
opacity: 0;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box{
display: none;
position: absolute;
z-index: 2;
width: 45px;
height: 45px;
border-radius: 50%;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box .circular-item{
width: 45px;
height: 45px;
border-radius: 50%;
color: #333;
z-index: 100;
font-size: 21px;
text-align: center;
line-height: 45px;
background: #ffffff;
position: absolute;
transition: top .3s ease-in-out,left .3s ease-in-out;
/* transition: all .3s ease-in-out; */
top: -22.5px;
left: -22.5px;
transform-origin: 0px;
/* transition-delay: 0.02s; */
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed{
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 100;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .bck{
display: block;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .img{
position: absolute;
z-index: 2;
max-width: inherit;
max-height: inherit;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box{
display: block;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box .round{
position: absolute;
width: 45px;
height: 45px;
border-radius: 50%;
background: transparent;
left: 0px;
top: 0px;
border: 3px solid var(--bg-poper);
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box .circular-item-box{
position: absolute;
left: -67.5px;
top: -67.5px;
border: 90px solid transparent;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top .circular-item.first{
top: -22.5px;
left: -22.5px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top .circular-item.two{
top: 0px;
left: -80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top .circular-item.three{
top: -22.5px;
left: -138.5px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box .circular-item-box .icon{
display: block;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.first{
transform: rotate(0deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.two{
transform: rotate(45deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.two .icon{
transform: rotate(-45deg);
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.three{
transform: rotate(90deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.three .icon{
transform: rotate(-90deg);
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.right .circular-item.first{
top: -80.5px;
left: 1px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.right .circular-item.two{
top: -22.5px;
left: -22.5px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.right .circular-item.three{
top: 0px;
left: -80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.first{
transform: rotate(-45deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.first .icon{
transform: rotate(45deg);
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.two{
transform: rotate(0deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.two .icon{
transform: rotate(0deg);
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.three{
transform: rotate(45deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.three .icon{
transform: rotate(-45deg);
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.left .circular-item.first{
top: 0px;
left: -80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.left .circular-item.two{
top: -22.5px;
left: -136.5px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.left .circular-item.three{
left: -160px;
top: -80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.first{
transform: rotate(45deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.first .icon{
transform: rotate(-45deg);
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.two{
transform: rotate(90deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.two .icon{
transform: rotate(-90deg);
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.three{
transform: rotate(135deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.three .icon{
transform: rotate(-135deg);
}
@media screen and (min-width: 768px) {
.#imgContainer .imgitem {
width: 33.3333%;
}
}
@media screen and (min-width: 992px) {
.#imgContainer .imgitem {
width: 25%;
}
}
@media screen and (min-width: 1024px) {
.#imgContainer .imgitem {
width: 20%;
}
}

View File

@@ -1,59 +1,12 @@
[v-cloak] {
display: none;
}
#dzzoffice{
position: relative;
background: var(--bg-content);
}
.van-tree-select__content{ .van-tree-select__content{
background-color: transparent; background-color: transparent;
} }
.custom-image.van-empty{
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
margin: auto;
}
.van-popup{
overflow: unset;
}
.van-popup .vam-popup-title{
height: 40px;
font-weight: 700;
position: absolute;
top: -40px;
left: 0;
width: 100%;
padding: 0 12px;
font-size: 18px;
color: #FFFFFF;
}
.conter-toast{ .conter-toast{
z-index: 5001 !important; z-index: 5001 !important;
} }
.notScreen{
width: 100%;
height: 100%;
position: relative;
}
.notScreen>div{
height: 80px;
text-align: center;
margin: auto;
position: absolute;
top: 0;
bottom: 0;
right: 0;
left: 0;
font-size: var(--font-14);
color: var(--header-text);
}
.notScreen>div img{
width: 3.125rem;
height: 3.125rem;
}
.screen-textarea{ .screen-textarea{
border-radius: 8px; border-radius: 8px;
} }
@@ -62,75 +15,18 @@
height: 2.1875rem; height: 2.1875rem;
display: inline-block; display: inline-block;
} }
#dzz_avatar_img .Topcarousel{
width: 2.1875rem;
height: 2.1875rem;
display: inline-block;
line-height: 2.1875rem;
border-radius: 50%;
color: #FFFFFF;
}
.library-box{ .library-box{
color: var(--header-text); color: var(--header-text);
} }
.van-nav-bar .library-box .van-icon{ .van-nav-bar .library-box .van-icon{
color: var(--header-text); color: var(--header-text);
} }
.header-top{
position: fixed;
top: 0;
left: 0;
width: 100%;
transition: all .3s;
transition: all .3s;
-moz-transition: all .3s;
-webkit-transition: all .3s;
-o-transition: all .3s;
background: var(--bg-content);
}
.header-top.headerhide{
top: -46px;
opacity: 0;
}
.header-top .van-dropdown-menu__bar{
height: 46px;
}
.footer-popup{
padding-bottom: 70px;
}
.footer-popup .btn-bottom{
padding: 10px;
height: 70px;
position: absolute;
width: 100%;
bottom: 0;
left: 0;
}
.footer-popup .btn-bottom .van-button{
width: auto;
padding: 15px 20px;
}
.footer-popup .popup-search-input .van-field__right-icon{
padding-right: 0;
}
.footer-popup .popup-search-input .van-field__right-icon .van-icon{
font-size: 1.25rem;
color: var(--header-active);
}
.seasrch-popup{ .seasrch-popup{
padding-top: 56px; padding-top: 56px;
} }
.footer-popup .van-search-box{
position: absolute;
top: 0;
left: 0;
width: 100%;
}
.footer-popup .van-search-box .van-field{
border: 0;
font-size: 0.875rem;
}
.seasrch-popup .search-val-box{ .seasrch-popup .search-val-box{
padding: 0 12px; padding: 0 12px;
height: 100%; height: 100%;
@@ -193,278 +89,12 @@
z-index: 1; z-index: 1;
} }
.seasrch-popup .search-val-box .highlight{ .seasrch-popup .search-val-box .highlight{
color: var(--header-active); color: var(--leftTreeColor);
} font-weight: 700;
.sort-popup .van-popup__close-icon--top-right,
.screen-popup .van-popup__close-icon--top-right {
top: 10px;
right: 10px;
}
/* .sort-popup .van-tree-select{
height: calc(100% - 41px) !important;
height: -moz-calc(100% - 41px) !important;
height: -webkit-calc(100% - 41px) !important;
} */
.screen-popup .van-tree-select{
}
.screen-popup .van-tree-select .van-sidebar{
width: 6rem;
-webkit-box-flex: initial;
-webkit-flex: initial;
flex: initial;
}
.screen-popup .van-tree-select__content{
height: 100%;
overflow: hidden;
position: relative;
background-color: transparent;
}
.van-popup .van-tree-select__content .screen-item-box{
height: 100%;
width: 100%;
position: relative;
overflow: hidden;
padding-top: 56px;
}
.van-popup .van-tree-select__content .screen-item .screen-item-option-box{
padding: 0px 8px;
}
.van-popup .van-tree-select__content .screen-item .screen-item-option-box .screen-item-option{
padding: 10px 16px;
margin-bottom: 8px;
border-radius: 8px;
}
.van-popup .van-tree-select__content .screen-item .screen-item-option-box .screen-item-option.active{
background: var(--bg-poperHover);
}
.screen-popup .van-tree-select__content .screen-item{
height: 100%;
overflow: auto;
padding: 0px 10px;
}
.screen-popup .van-tree-select__content .screen-item .swip-row{
border: 1px solid var(--border-color-base);
border-radius: 18px;
overflow: hidden;
}
.screen-popup .van-tree-select__content .screen-item .swip-row .swip{
height: 30px;
line-height: 30px;
text-align: center;
background-color: var(--bg-input);
color: var(--header-text);
}
.screen-popup .van-tree-select__content .screen-item .swip-row .swip.active{
background: var(--color-primary);
color: #FFFFFF;
}
.van-popup .van-tree-select__content .screen-item .van-cell-group .van-cell.van-cell-tag{
margin-bottom: 6px;
border-radius: 999px;
}
.van-popup .van-tree-select__content .screen-item .van-cell-group .van-cell.van-cell-tag.active{
background-color: var(--bg-poperHover);
}
.sort-popup .van-tree-select__content .screen-item .van-cell-group,
.screen-popup .van-tree-select__content .screen-item .van-cell-group{
background-color: transparent;
}
.sort-popup .van-tree-select__content .screen-item .van-cell-group .van-cell,
.screen-popup .van-tree-select__content .screen-item .van-cell-group .van-cell{
background-color: transparent;
} }
.van-calendar__day--end, .van-calendar__day--multiple-middle, .van-calendar__day--multiple-selected, .van-calendar__day--start, .van-calendar__day--start-end{
background-color: var(--color-primary);
}
.screen-popup .van-hairline--top-bottom::after, .screen-popup .van-hairline-unset--top-bottom::after {
border-width: 0;
}
.sort-popup .van-hairline--top-bottom::after, .sort-popup .van-hairline-unset--top-bottom::after {
border-width: 0;
}
.screen-popup .van-tree-select__content .screen-item .color-box .quick{
overflow: hidden;
/* margin-left: -10px; */
}
.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list-box{
width: 20%;
margin-bottom: 0.1875rem;
padding: 0 0.1875rem;
display: inline-block;
}
.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list{
/* float: left;
height: calc(20% / 2);
width: 20%;
height: 2.5rem;
width: 2.5rem;
z-index: 1;
border-radius: 50%;
margin-bottom: 0.625rem;
margin-left: 0.625rem;
border: 1px solid transparent;
position: relative; */
height: 0;
padding: 25% 0;
position: relative;
border-radius: 8px;
}
.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list .van-icon{
position: absolute;
color: #FFFFFF;
margin: auto;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
@media screen and (max-width: 768px) {
.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list .van-icon{
font-size: 18px;
width: 18px;
height: 18px;
}
}
@media screen and (min-width: 768px) {
.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list .van-icon{
font-size: 30px;
width: 30px;
height: 30px;
}
}
.screen-popup .van-tree-select__content .screen-item .color-box .color-input{
position: relative;
margin-bottom: 0.9375rem;
}
.screen-popup .van-tree-select__content .screen-item .color-box .color-input .van-field{
/* padding: 0; */
/* height: 35px; */
padding-left: 35px;
/* height: 35px; */
border-radius: 8px;
}
.screen-popup .van-tree-select__content .screen-item .color-box .color-input .color-show{
position: absolute;
width: 18px;
height: 18px;
z-index: 1;
border-radius: 6px;
margin-top: auto;
margin-bottom: auto;
top: 0;
bottom: 0;
left: 8px;
border: 1px solid transparent;
}
.screen-popup .van-tree-select__content .screen-item .color-box .color-input .color-show.border{
border: 1px solid var(--border-color-base);
}
.screen-popup .van-tree-select__content .screen-item .color-box .color-input .van-field .van-field__button{
padding-left: 8px;
line-height: 35px;
padding-right: 8px;
border-left: 1px solid var(--border-color-base);
}
.screen-popup .van-tree-select__content .screen-item .color-box .color-input .van-field .van-field__button img{
vertical-align: sub;
width: 16px;
height: 16px;
}
.screen-popup .van-tree-select__content .screen-item .color-box .color-slider{
display: -webkit-box;
display: -webkit-flex;
display: flex;
align-items: center;
padding: 15px 0;
}
.screen-popup .van-calendar__popup .van-button--danger{
background-color: var(--color-primary);
border-color: var(--color-primary);
}
.screen-popup .van-calendar__popup .van-calendar__month-mark{
opacity: 0.5;
}
.screen-popup .van-tree-select__content .van-tabs{
height: 100%;
}
.screen-popup .van-tree-select__content .van-tabs--line .van-tabs__wrap{
/* border-bottom: 1px solid var(--slider-line); */
padding-right: 8px;
padding-left: 8px;
}
.screen-popup .van-tree-select__content .van-tabs .van-tabs__content{
height: calc(100% - 44px);
height: -moz-calc(100% - 44px);
height: -webkit-calc(100% - 44px);
}
.screen-popup .van-tree-select__content .van-tabs .van-tabs__content .van-tab__pane{
height: 100%;
padding-top: 10px;
overflow: hidden;
}
.screen-popup .van-tree-select__content .van-tabs__nav{
background-color: transparent;
}
.screen-popup .van-tree-select__content .van-tabs__nav .van-tab{
color: var(--header-text);
}
.screen-popup .van-tree-select__content .van-tabs__nav .van-tab.van-tab--active{
color: var(--header-active);
}
.screen-popup .van-tree-select__content .van-cell .num{
margin-right: 6px;
}
.sort-popup .van-tree-select__content .van-cell::after,
.screen-popup .van-tree-select__content .van-cell::after{
display: none;
}
.screen-popup .screen-classify-collapse .van-cell{
background-color: transparent;
margin-bottom: 6px;
}
.screen-popup .screen-classify-collapse .van-collapse-item.active>.van-cell{
background-color: var(--bg-poperHover);
border-radius: 999px;
}
.screen-popup .screen-classify-collapse .van-hairline--top-bottom::after,
.screen-popup .screen-classify-collapse .van-collapse-item--border::after{
display: none;
}
.screen-popup .screen-classify-collapse .van-collapse-item__content{
background-color: transparent;
padding: 0;
padding-left: 1rem;
}
.screen-popup .screen-classify-collapse .van-cell__value{
flex: none;
}
.van-calendar__day--middle{
color: var(--header-active);
}
.van-calendar__day--start{
border-radius: 16px 0 0 16px;
}
.van-calendar__day--end{
border-radius: 0 16px 16px 0;
}
.screen-cell-input{
margin-bottom: 16px;
border-radius: 8px;
}
.screen-cell-input::after{
display: none;
}
.screen-cell-input .van-field{
border-radius: 8px;
}
.screen-cell-input .van-field{
border-radius: 8px;
}
.library-actionsheet .mint-actionsheet-list{ .library-actionsheet .mint-actionsheet-list{
max-height: 400px; max-height: 400px;
overflow: auto; overflow: auto;
@@ -487,379 +117,10 @@
max-height: 100%; max-height: 100%;
margin-right: 10px; margin-right: 10px;
} }
.pic-container{
height: 100%;
width: 100%;
overflow: hidden;
}
.pic-container .pic-container-scroll{
height: 100%;
width: 100%;
overflow: auto;
position: relative;
padding-top: 46px;
}
.pic-container .img-container{
min-height: 100% ;
position: relative;
padding: 0 4px;
}
.pic-toolbar{
position: fixed;
width: 100%;
left: 0;
padding: 0 8%;
transition: all .3s;
transition:all .3s;
-moz-transition:all .3s; /* Firefox 4 */
-webkit-transition:all .3s; /* Safari and Chrome */
-o-transition:all .3s; /* Opera */
}
.pic-toolbar.footershow{
bottom: 3%;
opacity: 1;
}
.pic-toolbar.footerhide{
bottom: -2.9375rem;
opacity: 0;
}
.pic-toolbar .tabbar{
display: -webkit-box;
display: -webkit-flex;
display: flex;
border-radius: 39px;
background: var(--bg-poper);
padding: 0.375rem 0;
color: var(--header-text);
/* box-shadow: 0px 0px 5px 1px var(--bg-poperHover); */
}
.pic-toolbar .tab-item{
-webkit-box-flex: 1;
-webkit-flex: 1;
flex: 1;
text-align: center;
font-size: 14px;
}
.pic-toolbar .tab-item .icon{
font-size: var(--font-32);
}
.pic-toolbar .tab-item img{
border-radius: 50%;
width: 2.1875rem;
height: 2.1875rem;
vertical-align: bottom;
}
#imgContainer .imgitem .imgbox .bottom-img-message{
text-align: center;
color: var(--content-text);
overflow: hidden;
max-height: 65px;
}
#imgContainer .imgitem .imgbox .bottom-img-message .name {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
font-size: 0.875rem;
margin-top: 10px;
width: 100%;
max-height: 35px;
}
#imgContainer .imgitem .imgbox .bottom-img-message .other {
font-size: 0.75rem;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
height: 21px;
padding-top: 5px;
color: var(--content-textMessage);
}
#imgContainer .imgitem .imgbox .bottom-img-message .other .score{
color: var(--stars);
}
#imgContainer .imgitem .imgbox .bottom-img-message .other .score.active{
color: var(--starsActive);
}
#imgContainer .imgitem .imgbox .annotation{
position: absolute;
right: 5px;
top: 5px;
font-size: 14px;
width: 22px;
height: 22px;
border: 2px solid #FFFFFF;
border-radius: 50%;
color: #FFFFFF;
text-align: center;
line-height: 20px;
background: var(--color-primary);
}
#imgContainer{
position: relative;
margin: 0 auto;
}
#imgContainer .imgitem{
position: absolute;
/* transition:all .2s; */
}
#imgContainer .imgitem .imgbox {
padding-left: 4px;
padding-right: 4px;
}
#imgContainer .imgitem .imgbox .imgbox-border {
position: relative;
overflow: hidden;
cursor: zoom-in;
min-height: 120px;
height: 100%;
}
#imgContainer .imgitem .imgbox .imgbox-border.radius{
border-radius: 18px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black {
width: 100%;
height: 100%;
position: relative;
display: -webkit-box;
display: -webkit-flex;
display: flex;
justify-content: center;
align-items: center;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .bck{
width: 100%;
height: 100%;
display: none;
background: var(--bg-poper);
top: 0;
left: 0;
position: absolute;
opacity: 0.7;
}
#imgContainer .imgitem .imgbox .imgbox-border .img {
max-width: 100%;
max-height: 100%;
width: auto;
height: auto;
border-radius: 18px;
}
#imgContainer .imgitem .imgbox .imgbox-border .img.opacity{
opacity: 0;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box{
display: none;
position: absolute;
z-index: 2;
width: 45px;
height: 45px;
border-radius: 50%;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box .circular-item{
width: 45px;
height: 45px;
border-radius: 50%;
color: #333;
z-index: 100;
font-size: 21px;
text-align: center;
line-height: 45px;
background: #ffffff;
position: absolute;
transition: top .3s ease-in-out,left .3s ease-in-out;
/* transition: all .3s ease-in-out; */
top: -22.5px;
left: -22.5px;
transform-origin: 0px;
/* transition-delay: 0.02s; */
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed{
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 100;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .bck{
display: block;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .img{
position: absolute;
z-index: 2;
max-width: inherit;
max-height: inherit;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box{
display: block;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box .round{
position: absolute;
width: 45px;
height: 45px;
border-radius: 50%;
background: transparent;
left: 0px;
top: 0px;
border: 3px solid var(--bg-poper);
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box .circular-item-box{
position: absolute;
left: -67.5px;
top: -67.5px;
border: 90px solid transparent;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top .circular-item.first{
top: -22.5px;
left: -22.5px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top .circular-item.two{
top: 0px;
left: -80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top .circular-item.three{
top: -22.5px;
left: -138.5px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box .circular-item-box .icon{
display: block;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.first{
transform: rotate(0deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.two{
transform: rotate(45deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.two .icon{
transform: rotate(-45deg);
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.three{
transform: rotate(90deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top .circular-item.three .icon{
transform: rotate(-90deg);
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.right .circular-item.first{
top: -80.5px;
left: 1px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.right .circular-item.two{
top: -22.5px;
left: -22.5px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.right .circular-item.three{
top: 0px;
left: -80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.first{
transform: rotate(-45deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.first .icon{
transform: rotate(45deg);
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.two{
transform: rotate(0deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.two .icon{
transform: rotate(0deg);
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.three{
transform: rotate(45deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.right .circular-item.three .icon{
transform: rotate(-45deg);
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.left .circular-item.first{
top: 0px;
left: -80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.left .circular-item.two{
top: -22.5px;
left: -136.5px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black .circular-box.top.left .circular-item.three{
left: -160px;
top: -80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.first{
transform: rotate(45deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.first .icon{
transform: rotate(-45deg);
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.two{
transform: rotate(90deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.two .icon{
transform: rotate(-90deg);
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.three{
transform: rotate(135deg);
top: -80px;
left: -80px;
transform-origin: 80px 80px;
}
#imgContainer .imgitem .imgbox .imgbox-border .div-black.fixed .circular-box.top.left .circular-item.three .icon{
transform: rotate(-135deg);
}
@media screen and (min-width: 768px) {
.#imgContainer .imgitem {
width: 33.3333%;
}
}
@media screen and (min-width: 992px) {
.#imgContainer .imgitem {
width: 25%;
}
}
@media screen and (min-width: 1024px) {
.#imgContainer .imgitem {
width: 20%;
}
}
.van-nav-bar .van-icon{ .van-nav-bar .van-icon{
color: var(--content-textHover); color: var(--content-textHover);
} }
@@ -867,72 +128,12 @@
color: var(--content-textHover); color: var(--content-textHover);
} }
.screen-popup .van-cell::after{
.about-popup,
.my-popup{
height: 100%;
width: 100%;
background: var(--bg-content);
color: var(--content-textHover);
overflow: hidden;
padding-top: 46px;
}
.about-popup .van-nav-bar,
.my-popup .van-nav-bar{
position: absolute;
top: 0;
left: 0;
width: 100%;
}
.about-popup .scroll-box,
.my-popup .scroll-box{
width: 100%;
height: 100%;
overflow: auto;
padding-top: 0.9375rem;
}
.my-popup .scroll-box .van-cell-group{
background: transparent;
}
.my-popup .scroll-box .van-cell {
background: transparent;
}
.my-popup .scroll-box .van-cell::after{
display: none; display: none;
} }
.my-popup .scroll-box .van-cell .van-cell__right-icon{
color: var(--header-text);
}
.about-popup .aboutlogo{
text-align: center;
padding-top: 3.125rem;
padding-bottom: 1.875rem;
}
.about-popup .aboutmessage{
padding: 0 2.1875rem;
}
.about-popup .aboutmessage .aboutlist{
margin-bottom: 1.25rem;
overflow: hidden;
font-size: 1rem;
}
.about-popup .aboutmessage .aboutlist .title{
float: left;
}
.about-popup .aboutmessage .aboutlist .address{
color: var(--color-primary);
font-size: 1rem;
vertical-align: sub;
}
@media screen and (min-width: 768px) {
.about-popup .aboutmessage{
padding: 0 6.25rem;
}
}

View File

@@ -0,0 +1,296 @@
.notScreen{
width: 100%;
height: 100%;
position: relative;
}
.notScreen>div{
height: 80px;
text-align: center;
margin: auto;
position: absolute;
top: 0;
bottom: 0;
right: 0;
left: 0;
font-size: var(--font-14);
color: var(--header-text);
}
.notScreen>div img{
width: 3.125rem;
height: 3.125rem;
}
.sort-popup .van-popup__close-icon--top-right,
.screen-popup .van-popup__close-icon--top-right {
top: 10px;
right: 10px;
}
/* .sort-popup .van-tree-select{
height: calc(100% - 41px) !important;
height: -moz-calc(100% - 41px) !important;
height: -webkit-calc(100% - 41px) !important;
} */
.screen-popup .van-tree-select{
}
.screen-popup .van-tree-select .van-sidebar{
width: 6rem;
-webkit-box-flex: initial;
-webkit-flex: initial;
flex: initial;
}
.sort-popup .van-tree-select__content,
.screen-popup .van-tree-select__content{
height: 100%;
overflow: hidden;
position: relative;
background-color: transparent;
}
.van-popup .van-tree-select__content .screen-item-box{
height: 100%;
width: 100%;
position: relative;
overflow: hidden;
padding-top: 56px;
}
.van-popup .van-tree-select__content .screen-item .screen-item-option-box{
padding: 0px 8px;
}
.van-popup .van-tree-select__content .screen-item .screen-item-option-box .screen-item-option{
padding: 10px 16px;
margin-bottom: 8px;
border-radius: 8px;
}
.van-popup .van-tree-select__content .screen-item .screen-item-option-box .screen-item-option.active{
background: var(--bg-poperHover);
}
.screen-popup .van-tree-select__content .screen-item{
height: 100%;
overflow: auto;
padding: 0px 10px;
}
.screen-popup .van-tree-select__content .screen-item .swip-row{
border: 1px solid var(--border-color-base);
border-radius: 18px;
overflow: hidden;
}
.screen-popup .van-tree-select__content .screen-item .swip-row .swip{
height: 30px;
line-height: 30px;
text-align: center;
background-color: var(--bg-input);
color: var(--header-text);
}
.screen-popup .van-tree-select__content .screen-item .swip-row .swip.active{
background: var(--color-primary);
color: #FFFFFF;
}
.van-popup .van-tree-select__content .screen-item .van-cell-group .van-cell.van-cell-tag{
margin-bottom: 6px;
border-radius: 999px;
}
.van-popup .van-tree-select__content .screen-item .van-cell-group .van-cell.van-cell-tag.active{
background-color: var(--bg-poperHover);
}
.sort-popup .van-tree-select__content .screen-item .van-cell-group,
.screen-popup .van-tree-select__content .screen-item .van-cell-group{
background-color: transparent;
}
.sort-popup .van-tree-select__content .screen-item .van-cell-group .van-cell,
.screen-popup .van-tree-select__content .screen-item .van-cell-group .van-cell{
background-color: transparent;
}
.van-calendar__day--end, .van-calendar__day--multiple-middle, .van-calendar__day--multiple-selected, .van-calendar__day--start, .van-calendar__day--start-end{
background-color: var(--color-primary);
}
.screen-popup .van-hairline--top-bottom::after, .screen-popup .van-hairline-unset--top-bottom::after {
border-width: 0;
}
.sort-popup .van-hairline--top-bottom::after, .sort-popup .van-hairline-unset--top-bottom::after {
border-width: 0;
}
.screen-popup .van-tree-select__content .screen-item .color-box .quick{
overflow: hidden;
/* margin-left: -10px; */
}
.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list-box{
width: 20%;
margin-bottom: 0.1875rem;
padding: 0 0.1875rem;
display: inline-block;
}
.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list{
/* float: left;
height: calc(20% / 2);
width: 20%;
height: 2.5rem;
width: 2.5rem;
z-index: 1;
border-radius: 50%;
margin-bottom: 0.625rem;
margin-left: 0.625rem;
border: 1px solid transparent;
position: relative; */
height: 0;
padding: 25% 0;
position: relative;
border-radius: 8px;
}
.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list .van-icon{
position: absolute;
color: #FFFFFF;
margin: auto;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
@media screen and (max-width: 768px) {
.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list .van-icon{
font-size: 18px;
width: 18px;
height: 18px;
}
}
@media screen and (min-width: 768px) {
.screen-popup .van-tree-select__content .screen-item .color-box .quick .quick-list .van-icon{
font-size: 30px;
width: 30px;
height: 30px;
}
}
.screen-popup .van-tree-select__content .screen-item .color-box .color-input{
position: relative;
margin-bottom: 0.9375rem;
}
.screen-popup .van-tree-select__content .screen-item .color-box .color-input .van-field{
/* padding: 0; */
/* height: 35px; */
padding-left: 35px;
/* height: 35px; */
border-radius: 8px;
}
.screen-popup .van-tree-select__content .screen-item .color-box .color-input .color-show{
position: absolute;
width: 18px;
height: 18px;
z-index: 1;
border-radius: 6px;
margin-top: auto;
margin-bottom: auto;
top: 0;
bottom: 0;
left: 8px;
border: 1px solid transparent;
}
.screen-popup .van-tree-select__content .screen-item .color-box .color-input .color-show.border{
border: 1px solid var(--border-color-base);
}
.screen-popup .van-tree-select__content .screen-item .color-box .color-input .van-field .van-field__button{
padding-left: 8px;
line-height: 35px;
padding-right: 8px;
border-left: 1px solid var(--border-color-base);
}
.screen-popup .van-tree-select__content .screen-item .color-box .color-input .van-field .van-field__button img{
vertical-align: sub;
width: 16px;
height: 16px;
}
.screen-popup .van-tree-select__content .screen-item .color-box .color-slider{
display: -webkit-box;
display: -webkit-flex;
display: flex;
align-items: center;
padding: 15px 0;
}
.screen-popup .van-calendar__popup .van-button--danger{
background-color: var(--color-primary);
border-color: var(--color-primary);
}
.screen-popup .van-calendar__popup .van-calendar__month-mark{
opacity: 0.5;
}
.screen-popup .van-tree-select__content .van-tabs{
height: 100%;
}
.screen-popup .van-tree-select__content .van-tabs--line .van-tabs__wrap{
/* border-bottom: 1px solid var(--slider-line); */
padding-right: 8px;
padding-left: 8px;
}
.screen-popup .van-tree-select__content .van-tabs .van-tabs__content{
height: calc(100% - 44px);
height: -moz-calc(100% - 44px);
height: -webkit-calc(100% - 44px);
}
.screen-popup .van-tree-select__content .van-tabs .van-tabs__content .van-tab__pane{
height: 100%;
padding-top: 10px;
overflow: hidden;
}
.screen-popup .van-tree-select__content .van-tabs__nav{
background-color: transparent;
}
.screen-popup .van-tree-select__content .van-tabs__nav .van-tab{
color: var(--header-text);
}
.screen-popup .van-tree-select__content .van-tabs__nav .van-tab.van-tab--active{
color: var(--header-active);
}
.screen-popup .van-tree-select__content .van-cell .num{
margin-right: 6px;
}
.screen-popup .van-search{
padding: 0px 6px;
}
.screen-popup .van-search .van-field{
border:0;
}
.sort-popup .van-tree-select__content .van-cell::after,
.screen-popup .van-tree-select__content .van-cell::after{
display: none;
}
.screen-classify-collapse .van-cell{
background-color: transparent;
margin-bottom: 6px;
}
.screen-classify-collapse .van-collapse-item.active>.van-cell{
background-color: var(--bg-poperHover);
border-radius: 999px;
}
.screen-classify-collapse .van-cell::after,
.screen-classify-collapse .van-hairline--top-bottom::after,
.screen-classify-collapse .van-collapse-item--border::after{
display: none;
}
.screen-classify-collapse .van-collapse-item__content{
background-color: transparent;
padding: 0;
padding-left: 1rem;
}
.screen-classify-collapse .van-cell__value{
flex: none;
}
.van-calendar__day--middle{
color: var(--header-active);
}
.van-calendar__day--start{
border-radius: 16px 0 0 16px;
}
.van-calendar__day--end{
border-radius: 0 16px 16px 0;
}
.screen-cell-input{
margin-bottom: 16px;
border-radius: 8px;
}
.screen-cell-input::after{
display: none;
}
.screen-cell-input .van-field{
border-radius: 8px;
}

View File

@@ -1,92 +0,0 @@
#imagelayout .collection-box{
padding: 0 16px;
}
#imagelayout .collection-box .jurisdiction-box{
text-align: center;
padding-bottom: 16px;
}
#imagelayout .collection-box .jurisdiction-box .jurisdiction-ul{
display: inline-block;
}
#imagelayout .collection-box .jurisdiction-box .jurisdiction-ul .jurisdiction-item{
display: inline-block;
margin-left: -16px;
}
#imagelayout .collection-box .jurisdiction-box .jurisdiction-ul .jurisdiction-item:first-child{
margin: 0;
}
#imagelayout .collection-box .jurisdiction-box .jurisdiction-ul .jurisdiction-item .Topcarousel{
width: 48px;
height: 48px;
border: 1px solid var(--border-color-base);
line-height: 48px;
}
#imagelayout .collection-box .jurisdiction-box .jurisdiction-ul .jurisdiction-item .add{
width: 48px;
height: 48px;
border: 1px solid var(--border-color-base);
line-height: 48px;
text-align: center;
border-radius: 50%;
background: var(--bg-poper);
cursor: pointer;
font-size: 20px;
font-weight: 700;
color: var(--header-text);
}
#imagelayout .collection-box .jurisdiction-box .jurisdiction-ul .jurisdiction-item .add:hover{
background: var(--bg-poperHover);
}
#imagelayout .collection-box .file-box .file-message{
overflow: hidden;
padding-bottom: 16px;
color: var(--content-text);
font-size: 16px;
}
#imagelayout .collection-box .file-box .file-message .left{
float: left;
padding: 8px 0;
}
#imagelayout .collection-box .file-box .file-message .right{
float: right;
cursor: pointer;
border-radius: 3px;
padding: 8px;
}
#imagelayout .collection-box .file-box .file-message .right:hover{
color: var(--header-active);
background: var(--bg-poperHover);
}
#imagelayout .collection-box .file-box .file-list{
margin-left: -16px;
padding-bottom: 16px;
}
#imagelayout .collection-box .file-box .file-list .item{
margin-left: 16px;
width: 320px;
display: inline-block;
border-radius: 3px;
margin-bottom: 16px;
overflow: hidden;
}
#imagelayout .collection-box .file-box .file-list .item .img{
overflow: hidden;
}
#imagelayout .collection-box .file-box .file-list .item .block{
width: 107px;
height: 141px;
border-left: 1px solid var(--border-color-base);
float: left;
background: var(--bg-poper);
}
#imagelayout .collection-box .file-box .file-list .item .block:first-child{
width: 106px;
border: 0;
}
#imagelayout .collection-box .file-box .file-list .item .text{
font-size: 18px;
color: var(--content-text);
line-height: 27px;
padding: 8px;
}

View File

@@ -31,13 +31,60 @@ body,
body{ body{
background-color: var(--bg-content); background-color: var(--bg-content);
} }
.el-notification__group{
width: 100%;
}
.el-notification__content p{
word-wrap: break-word;
}
.el-popper[x-placement^=bottom] {
margin-top: 5px
}
.el-popper[x-placement^=right] {
margin-left: 5px
}
.el-popper[x-placement^=top] {
margin-bottom: 5px
}
.el-popper[x-placement^=left] {
margin-right: 5px
}
.el-popper[x-placement^=bottom] .popper__arrow,
.el-popper[x-placement^=top] .popper__arrow,
.el-popper[x-placement^=left] .popper__arrow,
.el-popper[x-placement^=right] .popper__arrow{
display: none;
}
.el-page-header__left{
z-index: 100;
color: var(--header-text);
margin-right: 6px;
}
.el-page-header__left:hover{
color: var(--header-active);
}
.el-page-header__left .el-icon-back{
font-size: 21px;
font-weight: 700;
}
.el-page-header__left .el-page-header__title{
font-size: 16px;
font-weight: 700;
white-space: nowrap;
}
.el-page-header__left::after{
display: none;
}
.tipTxt{ .tipTxt{
color: var(--tip-color); color: var(--tip-color);
font-size: 12px; font-size: 12px;
line-height: 20px; line-height: 20px;
margin-top: 6px; margin-top: 6px;
} }
.highlight {
color: var(--leftTreeColor);
font-weight: 700;
}
.tipTxt:hover { .tipTxt:hover {
color: var(--content-text); color: var(--content-text);
} }
@@ -120,6 +167,9 @@ body{
.el-progress-bar__outer{ .el-progress-bar__outer{
background-color: var(--bg-input); background-color: var(--bg-input);
} }
.el-dropdown-menu{
min-width: 165px;
}
.el-dropdown-menu__item--divided{ .el-dropdown-menu__item--divided{
border-color: var(--border-color-base); border-color: var(--border-color-base);
} }
@@ -302,9 +352,18 @@ body{
height: 100%; height: 100%;
flex: 1; flex: 1;
} }
.page-component__scroll>.el-scrollbar__wrap { .el-scrollbar__wrap {
overflow-x: hidden; overflow-x: hidden;
} }
.el-select-dropdown__wrap.el-scrollbar__wrap {
overflow-x: scroll;
}
#copyInput{
opacity: 0;
position: fixed;
bottom: 0;
left: 0;
}
.Topcarousel{ .Topcarousel{
border-radius: 50%; border-radius: 50%;
text-align: center; text-align: center;
@@ -314,17 +373,27 @@ body{
height: 100%; height: 100%;
color: #FFF; color: #FFF;
} }
#copyInput{
opacity: 0;
position: fixed;
bottom: 0;
left: 0;
}
.img-circle{ .img-circle{
border-radius: 50%; border-radius: 50%;
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.img-circle,.Topcarousel{
width: 40px;
height: 40px;
line-height: 40px;
}
.small .img-circle,.small .Topcarousel{
width: 35px;
height: 35px;
line-height: 35px;
}
.mini .img-circle,.mini .Topcarousel{
width: 24px;
height: 24px;
line-height: 24px;
}
.hide{ .hide{
display: none !important; display: none !important;
} }
@@ -410,11 +479,11 @@ ul{
text-decoration: none; text-decoration: none;
} }
.container2 #top_header .header-content .h-left{ .container2 #top_header .header-content .h-left{
width: 264px; width: 267px;
justify-content: left; justify-content: left;
background: var(--bg-header); background: var(--bg-header);
margin-left: -20px; margin-left: -20px;
min-width: 150px;
} }
#top_header .header-content .h-left>a{ #top_header .header-content .h-left>a{
width: 100%; width: 100%;
@@ -422,6 +491,7 @@ ul{
padding-left: 41px; padding-left: 41px;
text-decoration: none; text-decoration: none;
} }
.container2 #top_header .header-content .h-left>a{ .container2 #top_header .header-content .h-left>a{
width: calc(100% - 45px); width: calc(100% - 45px);
} }
@@ -574,3 +644,18 @@ ul{
color: var(--header-text); color: var(--header-text);
text-decoration: none; text-decoration: none;
} }
.InputKeyword .el-popover-search .search-goback{
position: absolute;
bottom: 0;
width: 100%;
left: 0;
text-align: center;
background-color: var(--bg-input);
z-index: 10;
font-size: 26px;
cursor: pointer;
color: var(--header-active);
}
.InputKeyword .el-popover-search .search-goback:hover{
background:var(--bg-poperHover);
}

View File

@@ -297,6 +297,7 @@
white-space: nowrap; white-space: nowrap;
padding-right: 35px; padding-right: 35px;
cursor: pointer; cursor: pointer;
line-height: 22px;
} }
.floating-layer .information-box .message .link:hover { .floating-layer .information-box .message .link:hover {
@@ -306,7 +307,7 @@
.floating-layer .information-box .message .link i { .floating-layer .information-box .message .link i {
position: absolute; position: absolute;
right: 0; right: 0;
top: 0; top: 5px;
font-size: 25px; font-size: 25px;
width: 25px; width: 25px;
height: 25px; height: 25px;

View File

@@ -1,3 +1,11 @@
#Details_Iframe{
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1000;
}
#container_scroll .el-loading-mask{ #container_scroll .el-loading-mask{
background: var(--bg-content); background: var(--bg-content);
z-index: 20; z-index: 20;
@@ -21,6 +29,11 @@
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
#container_scroll .container-not.center{
display: flex;
justify-content: center;
align-items: center;
}
.image-container{ .image-container{
min-height: 100%; min-height: 100%;
position: relative; position: relative;
@@ -35,11 +48,20 @@
} }
.image-container .image-wrapper .image-item .image-inside{ .image-container .image-wrapper .image-item .image-inside{
padding: 0 4px; padding: 0 4px;
position: relative;
} }
.image-container .image-wrapper .image-item .image-inside .image-single{ .image-container .image-wrapper .image-item .image-inside .image-single{
cursor: pointer; cursor: pointer;
position: relative; position: relative;
background: var(--bg-content); background: var(--bg-content);
border: 1px solid transparent;
}
.image-container .image-wrapper .image-item.checked .image-inside .image-single{
border: 1px solid var(--border-color-base);
border-radius: 18px;
}
.container2 .image-container .image-wrapper .image-item.checked .image-inside .image-single{
border-radius: 3px;
} }
.image-container .image-wrapper .image-item .image-inside .image-single.radius{ .image-container .image-wrapper .image-item .image-inside .image-single.radius{
border-radius: 18px; border-radius: 18px;
@@ -77,6 +99,9 @@
.container2 .image-container .image-wrapper .image-item .image-inside .image-storage .img{ .container2 .image-container .image-wrapper .image-item .image-inside .image-storage .img{
border-radius: 3px; border-radius: 3px;
} }
.container3 .image-container .image-wrapper .image-item .image-inside .image-storage .img{
border-radius: 8px;
}
.image-container .image-wrapper .image-item .image-inside .image-single.imageList .image-storage .img{ .image-container .image-wrapper .image-item .image-inside .image-single.imageList .image-storage .img{
object-fit: contain; object-fit: contain;
} }
@@ -108,14 +133,68 @@
.image-container .image-wrapper .image-item .image-inside .message{ .image-container .image-wrapper .image-item .image-inside .message{
text-align: center; text-align: center;
} }
.image-container .image-wrapper .image-item .image-inside .image-single .topFlex{
.image-container .image-wrapper .image-item .image-inside .el-button-group{
position: absolute; position: absolute;
left: 8px; z-index: 10;
left: 12px;
top: 8px;
display: none;
}
.image-container .image-wrapper .image-item .image-inside:hover .el-button-group{
display: block;
}
.image-container .image-wrapper .image-item .image-inside .el-button-group .reference{
margin-right: -1px;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
float: left;
border-left: 0;
border-top-left-radius: 18px;
border-bottom-left-radius: 18px;
height:36px;
}
.container2 .image-container .image-wrapper .image-item .image-inside .el-button-group .reference{
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
}
.container3 .image-container .image-wrapper .image-item .image-inside .el-button-group .reference{
border-top-left-radius: 8px;
border-bottom-left-radius: 8px;
}
.image-container .image-wrapper .image-item .image-inside .el-button-group.border .reference,
.container2 .image-container .image-wrapper .image-item .image-inside .el-button-group.border .reference{
border-radius: 3px;
border-color: #0072ef;
}
.container3 .image-container .image-wrapper .image-item .image-inside .el-button-group.border .reference{
border-radius: 8px;
border-color: #0072ef;
}
.image-container .image-wrapper .image-item .image-inside .el-button-group .el-dropdown__caret-button{
height: 36px;
padding: 0px 3px;
border-top-right-radius: 18px;
border-bottom-right-radius: 18px;
width: 30px;
}
.container2 .image-container .image-wrapper .image-item .image-inside .el-button-group .el-dropdown__caret-button{
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
}
.container3 .image-container .image-wrapper .image-item .image-inside .el-button-group .el-dropdown__caret-button{
border-top-right-radius: 8px;
border-bottom-right-radius: 8px;
}
.image-container .image-wrapper .image-item .image-inside .topFlex{
position: absolute;
right: 8px;
top: 8px; top: 8px;
overflow: hidden; overflow: hidden;
z-index: 10; z-index: 10;
} }
.image-container .image-wrapper .image-item .image-inside .image-single .circulars{ .image-container .image-wrapper .image-item .image-inside .circulars{
background-color: var(--content-imgbg-btn); background-color: var(--content-imgbg-btn);
color: var(--content-imgbg-txt); color: var(--content-imgbg-txt);
border-radius: 50%; border-radius: 50%;
@@ -130,17 +209,17 @@
display: none; display: none;
z-index: 10; z-index: 10;
} }
.image-container .image-wrapper .image-item .image-inside .image-single.showoperation .circulars{ .image-container .image-wrapper .image-item .image-inside:hover .circulars{
display: block; display: block;
} }
.image-container .image-wrapper .image-item .image-inside .image-single .circulars:first-child{ .image-container .image-wrapper .image-item .image-inside .circulars:first-child{
margin-left: 0; margin-left: 0;
} }
.image-container .image-wrapper .image-item .image-inside .image-single .circulars:hover{ .image-container .image-wrapper .image-item .image-inside .circulars:hover{
color: var(--content-imgbg-txtHover); color: var(--content-imgbg-txtHover);
background-color: var(--content-imgbg-btnHover); background-color: var(--content-imgbg-btnHover);
} }
.image-container .image-wrapper .image-item .image-inside .image-single .circulars.link{ .image-container .image-wrapper .image-item .image-inside .circulars.link{
position: absolute; position: absolute;
bottom: 8px; bottom: 8px;
left: 8px; left: 8px;
@@ -151,13 +230,13 @@
z-index: 2; z-index: 2;
margin-left: 0; margin-left: 0;
} }
.image-container .image-wrapper .image-item .image-inside .image-single .circulars.link .el-link--inner{ .image-container .image-wrapper .image-item .image-inside .circulars.link .el-link--inner{
font-size: 14px; font-size: 14px;
vertical-align: top; vertical-align: top;
} }
.image-container .image-wrapper .image-item .image-inside .image-single .image-playurl .movies-box{ .image-container .image-wrapper .image-item .image-inside .image-playurl .movies-box{
position: absolute; position: absolute;
left: 0; left: 0;
top: 0; top: 0;
@@ -181,10 +260,13 @@
height: 100%; height: 100%;
} }
.image-container .image-wrapper .image-item .image-inside .image-single .image-playurl .movies-box .voice{ .image-container .image-wrapper .image-item .image-inside .image-single .image-playurl .movies-box .voice{
position: absolute; position: absolute;
right: 46px;
top: 7px;
z-index: 2;
}
.image-container .image-wrapper .image-item .image-inside .image-single .image-playurl.exhibit .movies-box .voice{
right: 8px; right: 8px;
top: 8px;
z-index: 2;
} }
.image-container .image-wrapper .image-item .image-inside .image-single .image-playurl .movies-box .voice.yes .no, .image-container .image-wrapper .image-item .image-inside .image-single .image-playurl .movies-box .voice.yes .no,
.image-container .image-wrapper .image-item .image-inside .image-single .image-playurl .movies-box .voice.no .yes{ .image-container .image-wrapper .image-item .image-inside .image-single .image-playurl .movies-box .voice.no .yes{
@@ -278,3 +360,54 @@
.image-container .image-wrapper .image-item .image-inside .message .other .score.active{ .image-container .image-wrapper .image-item .image-inside .message .other .score.active{
color: var(--starsActive); color: var(--starsActive);
} }
.image-container .image-wrapper .image-item .collect-checkeds{
position: absolute;
width: 100%;
height: 100%;
z-index: 20;
display: none;
cursor: pointer;
/* border: 2px solid var(--border-color-base); */
}
.image-container .image-wrapper .image-item.checked .collect-checkeds{
display: block;
}
.image-container .image-wrapper .image-item .collect-checkeds .check{
position: absolute;
left: 12px;
top: 8px;
border-radius: 8px;
background: #000;
width: 24px;
height: 24px;
font-size: 16px;
font-weight: 700;
text-align: center;
line-height: 24px;
color: #FFFFFF;
}
#imagelayout .collects-move-btn-box{
position: fixed;
bottom: 30px;
left: 0;
z-index: 100;
width: 100%;
text-align: center;
}
#imagelayout .collects-move-btn-box .item{
width: 58px;
height: 58px;
text-align: center;
line-height: 58px;
font-size: 22px;
background: var(--header-textHover);
border-radius: 50%;
color: var(--header-text);
display: inline-block;
box-shadow: rgb(0,0,0,0.1) 0px 0px 20px;
cursor: pointer;
}
#imagelayout .collects-move-btn-box .item:hover{
background: var(--header-textHover);
color: var(--header-iconHover);
}

View File

@@ -5,7 +5,7 @@
width: 100%; width: 100%;
} }
.el-header .header-wrapper{ .el-header .header-wrapper{
padding: 0 16px; padding: 0 13px;
background: var(--bg-content); background: var(--bg-content);
} }
.el-header .header-wrapper.shadow{ .el-header .header-wrapper.shadow{
@@ -86,9 +86,6 @@
height: 100%; height: 100%;
width: 100%; width: 100%;
} }
#container_scroll .el-scrollbar__wrap{
overflow-x: hidden;
}
#container_scroll .el-scrollbar__wrap .el-scrollbar__view{ #container_scroll .el-scrollbar__wrap .el-scrollbar__view{
min-height: 100%; min-height: 100%;
width: 100%; width: 100%;
@@ -97,15 +94,7 @@
height: 100%; height: 100%;
} }
#container_scroll .el-scrollbar__bar.is-vertical{ #container_scroll .el-scrollbar__bar.is-vertical{
z-index: 10; z-index: 10000;
}
#Details_Iframe{
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1000;
} }
.container2 .el-header{ .container2 .el-header{
padding: 0; padding: 0;
@@ -169,12 +158,18 @@
.container2 #top_header .header-content .h-center .result-section .InputKeyword:hover{ .container2 #top_header .header-content .h-center .result-section .InputKeyword:hover{
border: 0; border: 0;
} }
.container3 #top_header .header-content .h-center .result-section .InputKeyword{
border-radius: 0px 8px 8px 0px;
}
#top_header .header-content .h-center .result-section .InputKeyword.notradius{ #top_header .header-content .h-center .result-section .InputKeyword.notradius{
border-radius: 0px; border-radius: 0px;
} }
#top_header .header-content .h-center .result-section .radius .InputKeyword{ #top_header .header-content .h-center .result-section .radius .InputKeyword{
border-radius: 20px; border-radius: 20px;
} }
.container3 #top_header .header-content .h-center .result-section .radius .InputKeyword{
border-radius: 8px;
}
#top_header .header-content .h-center .result-section .InputKeyword.focus{ #top_header .header-content .h-center .result-section .InputKeyword.focus{
border: 0; border: 0;
} }
@@ -353,7 +348,9 @@
#top_header .header-content .h-center .result-section .library-classification .block:hover { #top_header .header-content .h-center .result-section .library-classification .block:hover {
color: var(--header-active); color: var(--header-active);
} }
.container3 #top_header .header-content .h-center .result-section .library-classification {
border-radius: 8px 0px 0px 8px;
}
#top_header .header-content .h-right .r-option { #top_header .header-content .h-right .r-option {
display: flex; display: flex;
align-items: center; align-items: center;
@@ -472,12 +469,18 @@
display: none; display: none;
overflow:hidden; overflow:hidden;
} }
.container3 .el-popover-search{
border-radius: 0 8px 8px 8px;
}
.notradius .el-popover-search{ .notradius .el-popover-search{
border-radius: 0; border-radius: 0;
} }
.radius .el-popover-search{ .radius .el-popover-search{
border-radius: 20px; border-radius: 20px;
} }
.container3 .radius .el-popover-search{
border-radius: 8px;
}
.InputKeyword.focus .el-popover-search{ .InputKeyword.focus .el-popover-search{
display: block; display: block;
} }
@@ -508,6 +511,7 @@
max-width: 832px; max-width: 832px;
padding: 8px; padding: 8px;
padding-left: 15px; padding-left: 15px;
padding-bottom:30px;
} }
.popover-search .recent-search .title { .popover-search .recent-search .title {

View File

@@ -1,11 +1,50 @@
.ScreenClassifyPopover{ .ScreenClassifyPopover{
height: 50%;
min-width: 260px; min-width: 260px;
} }
/* .ScreenClassifyPopover .el-scrollbar__wrap{
max-height: 300px;
overflow-x: scroll;
} */
.screen-box { .screen-box {
text-align: center; text-align: center;
padding-bottom: 20px; /* padding-bottom: 20px; */
margin-top: -6px; /* margin-top: -6px; */
position:relative;
height: 45px;
overflow: hidden;
display:flex;
}
.screen-box .screen-scroll-box{
width:100%;
position:relative;
overflow: hidden;
}
.screen-box .screen-scroll{
position:absolute;
top:0px;
left:0;
text-align: center;
white-space: nowrap;
padding-top:8px;
min-width: 100%;
}
.screen-box .arrow{
border: 1px solid var(--border-color-base);
height: 31px;
width: 20px;
text-align: center;
line-height: 31px;
background: var(--bg-content);
cursor: pointer;
border-radius: 4px;
margin-top:8px;
}
.screen-box .left-arrow{
margin-right: 6px;
}
.screen-box .right-arrow{
margin-left: 6px;
} }
.screen-box.notpadding{ .screen-box.notpadding{
padding-bottom: 0px; padding-bottom: 0px;
@@ -14,7 +53,9 @@
display: inline-block; display: inline-block;
margin: 0 6px; margin: 0 6px;
} }
.screen-box .block:first-child {
margin-left:0;
}
.screen-box .field-single { .screen-box .field-single {
border-radius: 4px; border-radius: 4px;
border: 1px solid var(--border-color-base); border: 1px solid var(--border-color-base);
@@ -22,7 +63,7 @@
padding: 5px 10px; padding: 5px 10px;
cursor: pointer; cursor: pointer;
position: relative; position: relative;
margin-top: 6px; /* margin-top: 6px; */
} }
.screen-box .field-single.active { .screen-box .field-single.active {
@@ -250,12 +291,12 @@
padding: 0 12px 12px 12px; padding: 0 12px 12px 12px;
} }
.field-select-box .tags-box .left .logic { .field-select-box .tags-box .logic {
padding: 10px 17px; padding: 10px 17px;
border-top: 1px solid var(--border-color-base); border-top: 1px solid var(--border-color-base);
} }
.field-select-box .tags-box .left .logic .el-dropdown { .field-select-box .tags-box .logic .el-dropdown {
margin-left: 8px; margin-left: 8px;
} }
@@ -348,12 +389,12 @@
.classification-box { .classification-box {
min-width: 280px; min-width: 280px;
height: 100%; height: 100%;
position: relative; position: relative;
} }
.classification-box .el-input{ .classification-box .el-input{
position: absolute;
width: 100%; width: 100%;
padding: 12px;
} }
.classification-box .classification-history-box { .classification-box .classification-history-box {
margin-top: 8px; margin-top: 8px;
@@ -383,8 +424,10 @@
} }
.classification-box .classification-all-box { .classification-box .classification-all-box {
height: 100%; padding-bottom: 12px;
padding-top: 35px; }
.classification-box .classification-all-box .el-scrollbar__wrap{
max-height: 294px;
} }
.classification-box .classification-all-box .el-scrollbar__view{ .classification-box .classification-all-box .el-scrollbar__view{
min-height: 100%; min-height: 100%;
@@ -404,7 +447,9 @@
font-size: 12px; font-size: 12px;
color: var(--tip-color); color: var(--tip-color);
} }
.classification-box .classification-all-box .el-tree{
padding: 0 12px 12px;
}
.classification-box .classification-all-box .el-tree .el-tree-node .file-icon { .classification-box .classification-all-box .el-tree .el-tree-node .file-icon {
font-size: 16px; font-size: 16px;
vertical-align: middle; vertical-align: middle;
@@ -418,3 +463,210 @@
.classification-box .classification-all-box .el-tree .el-tree-node.is-expanded>.el-tree-node__content .file-icon-open { .classification-box .classification-all-box .el-tree .el-tree-node.is-expanded>.el-tree-node__content .file-icon-open {
display: inline-block; display: inline-block;
} }
.classification-box .logic{
padding: 10px 17px;
border-top: 1px solid var(--border-color-base);
}
.screen-box3{
background: var(--bg-poper);
border-radius: 8px;
padding: 8px 16px;
}
.screen-box3 .block{
overflow: hidden;
/* white-space: nowrap; */
border-top: 1px dashed var(--border-color-base);
padding-top: 8px;
padding-bottom: 8px;
}
.screen-box3 .block:first-child{
border:0;
}
.screen-box3 .block .title{
width: 65px;
font-size: 14px;
color: var(--header-active);
float: left;
line-height: 30px;
font-weight: 700;
}
.screen-box3 .block .internet-options{
/* display: inline-block; */
float:left;
width: calc(100% - 160px);
/* padding-bottom: 8px; */
margin-bottom: -5px;
}
.screen-box3 .block .internet-options.auto{
width: calc(100% - 65px);
}
.screen-box3 .block .internet-options .el-scrollbar__wrap{
overflow-x: scroll;
}
.screen-box3 .block .internet-options.more .el-scrollbar__wrap{
max-height: 139px;
}
.screen-box3 .block .internet-options.auto.more .el-scrollbar__wrap{
max-height: unset;
}
.screen-box3 .block .internet-options .internet-options-ul{
font-size: 12px;
color: var(--header-text);
overflow: hidden;
max-height: 70px;
/* margin-bottom: -5px; */
/* overflow: hidden; */
}
.screen-box3 .block .internet-options.more .internet-options-ul{
height:auto !important;
max-height: 100% !important;
}
.screen-box3 .block .internet-options .single{
float: left;
margin-right: 5px;
margin-bottom: 5px;
padding: 0px 8px;
border-radius: 8px;
color: var(--header-text);
cursor: pointer;
height: 30px;
position: relative;
line-height: 32px;
}
.screen-box3 .block .internet-options .single:hover,
.screen-box3 .block .internet-options .single.active{
background:var(--bg-poperHover);
color: var(--leftTreeColor);
}
.screen-box3 .block .internet-options .single.notborder{
border:1px solid transparent !important;
border-radius: 0 !important;
}
.screen-box3 .block .internet-options .single.notborder:hover{
background: transparent;
}
.screen-box3 .block .internet-options .single.notpadding{
padding:0;
}
.screen-box3 .block .internet-options .single .min-width{
width:100px;
}
.screen-box3 .block .internet-options .single .max-width{
width:240px;
}
.screen-box3 .block .internet-options .single .el-date-editor.dateline .el-range-separator{
color: var(--header-active);
width: 20px;
}
.screen-box3 .block .internet-options .single .el-date-editor.dateline .el-range-input{
flex: auto;
color: var(--header-active);
background: transparent;
}
.screen-box3 .block .internet-options .single .el-date-editor.dateline .el-input__icon{
display: none;
}
.screen-box3 .block .ext-box{
/* display: inline-block; */
float:left;
width: 75px;
padding: 7px 15px;
font-size: 12px;
border-radius: 3px;
cursor:pointer;
height:32px;
border:1px solid var(--border-color-base);
}
/* .screen-box3 .block .internet-options-ul.screening-color .single.line{
width: 56px;
border: 1px solid transparent;
background: #f0f0f0;
}
.screen-box3 .block .internet-options-ul.screening-color .single.line .item{
position: absolute;
margin-top: auto;
margin-bottom: auto;
top: 0;
bottom: 0;
left: 0;
width: 100%;
height: 1px;
background: #cecece;
transform: rotate(19deg);
-o-transform: rotate(19deg);
-moz-transform: rotate(19deg);
-webkit-transform: rotate(19deg);
} */
.screen-box3 .block .internet-options-ul.screening-color .single{
min-width: 56px;
border: 1px solid transparent;
}
/* .screen-box3 .block .internet-options-ul.screening-color .single:hover{
border:1px solid var(--border-color-base);
} */
.screen-box3 .block .internet-options-ul.screening-color .single .icon{
font-size: 16px;
color: #FFFFFF;
font-weight: 700;
display: none;
width: 16px;
height: 16px;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
.screen-box3 .block .internet-options-ul.screening-color .single.active .icon{
display: block;
}
.screen-box3 .block .internet-options-ul.screening-color .single .color-disk .show{
width: 17px;
height: 17px;
position: absolute;
left: 4px;
top: 0;
bottom: 0;
margin-top: auto;
margin-bottom: auto;
border-radius: 4px;
z-index: 5;
}
.screen-box3 .block .internet-options-ul.screening-color .single .color-disk .el-input-group__append{
padding: 0;
background: transparent;
border: 0;
}
.screen-box3 .block .internet-options-ul.screening-color .single .color-disk .icon{
height: 32px;
width: 35px;
display: inline-block;
padding: 6px;
border: 1px solid var(--border-color-base);
border-left: 0;
border-radius: 0px 4px 4px 0;
text-align: center;
cursor: pointer;
position: relative;
}
.screen-box3 .block .internet-options-ul.screening-color .single .color-disk .icon img{
max-width: 100%;
max-height: 100%;
}
.screen-box3 .block .internet-options-ul.screening-color .single .color-disk .icon .el-color-picker{
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
opacity: 0;
}
.screen-box3 .block .internet-options-ul.screening-color .single .color-disk .icon .el-color-picker .el-color-picker__trigger{
width: 100%;
height: 100%;
}
.el-tree.classify3-tree .el-tree-node__content{
padding-right: 18px;
}

View File

@@ -8,6 +8,7 @@
--header-screenDel:#C9405A;/* 头部清除筛选的 × 背景色 */ --header-screenDel:#C9405A;/* 头部清除筛选的 × 背景色 */
--bg-content:#1E1E1E;/* 内容背景色 */ --bg-content:#1E1E1E;/* 内容背景色 */
--bg-contentopacity:rgb(30,30,30,0.6);/* 内容背景色透明 */
--content-text:#BCBCBC;/* 内容文字颜色 */ --content-text:#BCBCBC;/* 内容文字颜色 */
--content-textHover:#F4F4F4;/* 内容文字hover颜色 */ --content-textHover:#F4F4F4;/* 内容文字hover颜色 */
--content-imgbg:#161616;/* 图片背景色 */ --content-imgbg:#161616;/* 图片背景色 */

View File

@@ -8,6 +8,7 @@
--header-screenDel:#C33A54;/* 头部清除筛选的 × 背景色 */ --header-screenDel:#C33A54;/* 头部清除筛选的 × 背景色 */
--bg-content:#383838;/* 内容背景色 */ --bg-content:#383838;/* 内容背景色 */
--bg-contentopacity:rgb(56,56,56,0.6);/* 内容背景色透明 */
--content-text:#C4C4C4;/* 内容文字颜色 */ --content-text:#C4C4C4;/* 内容文字颜色 */
--content-textHover:#F6F6F6;/* 内容文字hover颜色 */ --content-textHover:#F6F6F6;/* 内容文字hover颜色 */
--content-imgbg:#303030;/* 图片背景色 */ --content-imgbg:#303030;/* 图片背景色 */

View File

@@ -8,6 +8,7 @@
--header-screenDel:#F66E88;/* 头部清除筛选的 × 背景色 */ --header-screenDel:#F66E88;/* 头部清除筛选的 × 背景色 */
--bg-content:#E2E4E5;/* 内容背景色 */ --bg-content:#E2E4E5;/* 内容背景色 */
--bg-contentopacity:rgb(226,228,229,0.6);/* 内容背景色透明 */
--content-text:#26292A;/* 内容文字颜色 */ --content-text:#26292A;/* 内容文字颜色 */
--content-textHover:#121516;/* 内容文字hover颜色 */ --content-textHover:#121516;/* 内容文字hover颜色 */
--content-imgbg:#FFFFFF;/* 图片背景色 */ --content-imgbg:#FFFFFF;/* 图片背景色 */

View File

@@ -8,6 +8,7 @@
--header-screenDel:#CD4562;/* 头部清除筛选的 × 背景色 */ --header-screenDel:#CD4562;/* 头部清除筛选的 × 背景色 */
--bg-content:#303342;/* 内容背景色 */ --bg-content:#303342;/* 内容背景色 */
--bg-contentopacity:rgb(48,51,66,0.6);/* 内容背景色透明 */
--content-text:#C1C2C7;/* 内容文字颜色 */ --content-text:#C1C2C7;/* 内容文字颜色 */
--content-textHover:#F2F2F3;/* 内容文字hover颜色 */ --content-textHover:#F2F2F3;/* 内容文字hover颜色 */
--content-imgbg:#2A2C39;/* 图片背景色 */ --content-imgbg:#2A2C39;/* 图片背景色 */

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