8 Commits
beta3.o ... 1.0

579 changed files with 109313 additions and 117893 deletions

0
.htaccess Normal file
View File

View File

@@ -1,17 +1,33 @@
## PicHome beta3.0 更新说明 ## PicHome Home1.0 更新说明
### 1.增加普通目录导入支持,普通目录可限定文件导入,默认使用 “站点设置”=>“导入设置”中的“允许导入文件”中的设置值,可根据需要更改。 ### 1.支持升级到团队版,可在站点设置->授权信息界面查看
### 2.支持选择或输入指定目录地址作为库库更改为手动添加以便于自由选择eagle库或者普通目录库目录选择中默认屏蔽了一些由系统生成目录可在站点设置=>导入设置中的“禁止导入目录”中更改。 ### 2.billfish数据支持修复billfish导入有回收站数据导致导入进度不能完成的问题
### 3.普通目录支持部分图片缩略图、颜色获取和部分音视频文件信息和缩略图获取(注:格式可参考 站点设置”=>“导入设置”中的“允许导入文件”此功能pdf格式需有iamgick支持linux下音视频需ffmpeg支持);该功能可在库的“设置”中选择开启或不开启,需要注意的是开启该功能可能会占用大量服务器资源。 ### 3.eagle数据支持修复eagle导入更新数据时目录数据异常问题
### 4.增加新的界面展示模板,可在 “站点设置”=>“界面设置”中切换 ### 4.eagle数据支持修复eagle导入非图片文件缩略图变更后显示异常问题
### 5.导入逻辑优化优化导入效率修复没有文件时一直在导入状态的bug ### 5.普通目录数据支持,整体修改导入逻辑,修复导入错误,提升导入效率
### 6.优化删除库逻辑,删除更改为异步删除 ### 6.优化导入体验,导入增加部分错误提示,修复导入时删除库不断弹出弹窗的错误,以及导入类型提示不匹配问题
### 7.优化访问效率 ### 7.导入增加校验更新,用于修复以往导入产生的错误修正
### 8.其他已知bug修复 ### 7.修复删除库错误,由数据兼容错误导致没有真正删除问题
### 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
6ccaad5c6ef97e4ba59c3d8eb8e37d39 *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,13 +56,15 @@ 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
aab63af8b9c2d8610ba5ab295de6c96a *admin/system/dist/js/index.be6002c4.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
0d548b27371bb03899d61437a8cdf8fa *admin/system/dist/js/system_temp.c7e32270.js 0d548b27371bb03899d61437a8cdf8fa *admin/system/dist/js/system_temp.c7e32270.js
554e1288867238ccbe21a7dc65fe9487 *admin/system/dzz_app_system.xml 554e1288867238ccbe21a7dc65fe9487 *admin/system/dzz_app_system.xml
@@ -109,9 +113,9 @@ bfd0cbd4c4120f0bef89fb2898332f2b *core/class/class_bbcode.php
bcfb2e3e9c3ff2018f356176a1cf43a2 *core/class/class_core.php bcfb2e3e9c3ff2018f356176a1cf43a2 *core/class/class_core.php
723a351225f0f7562784e35f8607ce29 *core/class/class_DbException.php 723a351225f0f7562784e35f8607ce29 *core/class/class_DbException.php
3ce9db683150a76cd033167c7e281391 *core/class/class_Des.php 3ce9db683150a76cd033167c7e281391 *core/class/class_Des.php
b950274816c263377559b82772efaa04 *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,24 +222,25 @@ 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
26298713afbbb276e365e2b440454321 *core/class/table/table_pichome_palette.php a2a946f8d3a0180db50b1c7435d9516a *core/class/table/table_pichome_palette.php
6b369ce49f9a03b0e29a062352b99454 *core/class/table/table_pichome_resources.php 9070977794d2ca52379721d552c3e1e7 *core/class/table/table_pichome_resources.php
8f36fe58bb79975f403ea0fa5e868c85 *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
4fb898320b47959764b3f09a5489418b *core/class/table/table_pichome_searchrecent.php 4fb898320b47959764b3f09a5489418b *core/class/table/table_pichome_searchrecent.php
757655270a99be70f9e781fbae5f6634 *core/class/table/table_pichome_share.php 757655270a99be70f9e781fbae5f6634 *core/class/table/table_pichome_share.php
fafb2bf10eed9314bc2bf2d6b32d84b9 *core/class/table/table_pichome_tag.php fafb2bf10eed9314bc2bf2d6b32d84b9 *core/class/table/table_pichome_tag.php
02ef950574c3af62f7b13fd61a61c2ce *core/class/table/table_pichome_taggroup.php 02ef950574c3af62f7b13fd61a61c2ce *core/class/table/table_pichome_taggroup.php
306a994431aaffaa2faf08f3d5de7d50 *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
59d5d07f70e88fbb93f56f5e4b953c6c *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
d712c1ad304eafdd40573ea7cc9e1609 *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
@@ -262,7 +267,7 @@ d90d23b8deb20cef2c43e66725ec2813 *core/cron/cron_cache_cleanup_week.php
b9d93753f597cf46343c07234d01a37b *core/cron/cron_pichome_getimagecolor.php b9d93753f597cf46343c07234d01a37b *core/cron/cron_pichome_getimagecolor.php
c04ccafee38c3e06208024a7cbe8a656 *core/cron/cron_pichome_getvideoinfo.php c04ccafee38c3e06208024a7cbe8a656 *core/cron/cron_pichome_getvideoinfo.php
3925c2ef1804631507efcdae43ec1108 *core/cron/cron_pichome_getwideothumb.php 3925c2ef1804631507efcdae43ec1108 *core/cron/cron_pichome_getwideothumb.php
3f04fd27593769aa47af32734d542a12 *core/cron/cron_pichome_updatelibrary_file.php dc6a0c77112286b82c5742d0b93c6b6d *core/cron/cron_pichome_updatelibrary_file.php
e437812ec0dbb1050daa691303544d1c *core/dzzstart.php e437812ec0dbb1050daa691303544d1c *core/dzzstart.php
d4c7872572f6965e3173a12153dd758b *core/function/cache/cache_fields_optional.php d4c7872572f6965e3173a12153dd758b *core/function/cache/cache_fields_optional.php
98b3024c7107943c8573cf473d624710 *core/function/cache/cache_fields_register.php 98b3024c7107943c8573cf473d624710 *core/function/cache/cache_fields_register.php
@@ -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
28d0c2d1aacb4500ef061f8eae72200f *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
7a4feb3626ba6a8e2bfad12b6d2b4ff0 *dzz/pichome/ajax.php 3d3aa981f09612419f1cffe5cfa4f4ab *dzz/pichome/ajax.php
c550e347457729fb118592d6be50d050 *dzz/pichome/checkexport.php c550e347457729fb118592d6be50d050 *dzz/pichome/checkexport.php
706bd367941708aa5b026376fc56e6a6 *dzz/pichome/class/class_eagleexport.php b6201d143beca6278320d101db08695f *dzz/pichome/class/class_eagleexport.php
395888f8a190db23bfa5e5af2dac3e55 *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
7a9ae0c0a2a7ccfe1b92949ce1efd330 *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
478715f3a9570d1be58dda7943ec1a4c *dzz/pichome/css/pc/image.css 1b81547e0d91292d2a77153774bbf013 *dzz/pichome/css/pc/image.css
1a7589e0fb94c67ded810b23cceb0ea6 *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
3d037ab39fd205fc01dcb0644dc73594 *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
9a6e6b73f09a721abe91bcadd9d1dbcd *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
6c11a6e69881f44860b2dd8a9b7dde51 *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
2669ef65012ea0cc6ca29e3c5f57bf47 *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
2566cbfc860d4bc3c12812d9d35011ef *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
b07e0746971bb7c6dfc1d88ed2bdc4b2 *dzz/pichome/css/theme/white/root.css 42223aa2673c8b81e62a8ebc481d9da2 *dzz/pichome/css/theme/white/root.css
24100e5ac1435598339350ec3ccf63bc *dzz/pichome/delete.php 7dded9715f7c5c2408f7905b6cddf810 *dzz/pichome/delete.php
0bc21a1af1a289191cf5a48523f2cf8c *dzz/pichome/details.php 0bc21a1af1a289191cf5a48523f2cf8c *dzz/pichome/details.php
2531bc3851ab49b6c3f95d0c09850382 *dzz/pichome/download.php 214cabed470fd756b227851860513e6b *dzz/pichome/download.php
e245c8b1f860c8252eade7f3dec51879 *dzz/pichome/dzz_app_pichome.xml e245c8b1f860c8252eade7f3dec51879 *dzz/pichome/dzz_app_pichome.xml
0d5b36f34930c6f3234ba9482fbcb401 *dzz/pichome/exportfile.php 43f2f7de28bea4de51cde2b4f1f8e82b *dzz/pichome/exportfile.php
2e03b890f6a73541d58e9fa68ab17624 *dzz/pichome/exportfilecheck.php af14eda8139abc2d09e421cc4b27a1b4 *dzz/pichome/exportfilecheck.php
ab80472bc466830bbf05847da7026017 *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
9a21fde6d13f5377bb4c23e1103f65c5 *dzz/pichome/index.php 438384ffb6dbf09c63f9c0254c57340a *dzz/pichome/index.php
4d793d9993042e9beda12a40272576c7 *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
05d2d04e0cd1f4e16bc46c2d5fe7893e *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,12 +1572,12 @@ 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
4f7c5892b56744064e332bd2a9b64852 *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
1f1b56d62e79127ce0b5b78d00dedd9b *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
a2d7aa1c09cf3119740247c2c84dc880 *dzz/pichome/template/pc/components/index/screen/btime/temp.htm a2d7aa1c09cf3119740247c2c84dc880 *dzz/pichome/template/pc/components/index/screen/btime/temp.htm
be0730d952f4744e88b2055c32d1f08b *dzz/pichome/template/pc/components/index/screen/classify/js.htm be0730d952f4744e88b2055c32d1f08b *dzz/pichome/template/pc/components/index/screen/classify/js.htm
@@ -1556,26 +1602,26 @@ a91f8cdb2836930e60e76000e14cd109 *dzz/pichome/template/pc/components/index/scree
026964771fde79d520db8fca996705d5 *dzz/pichome/template/pc/components/index/screen/shape/temp.htm 026964771fde79d520db8fca996705d5 *dzz/pichome/template/pc/components/index/screen/shape/temp.htm
ed778182594282451fdeaf533390504a *dzz/pichome/template/pc/components/index/screen/size/js.htm ed778182594282451fdeaf533390504a *dzz/pichome/template/pc/components/index/screen/size/js.htm
6607851de5183d1db762d74a184220b1 *dzz/pichome/template/pc/components/index/screen/size/temp.htm 6607851de5183d1db762d74a184220b1 *dzz/pichome/template/pc/components/index/screen/size/temp.htm
14b788e3582ec1a59b1df295d645acf6 *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
e99ff61dd48256711bfc0f6b7620d4ab *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
e7d36a2b763f353c1df3bf82d9695673 *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
3434b3277fb32f8dd37684b5d898c24b *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
13a21e3c1168124857f64369e53bc024 *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
37beb2f26d52660fed7d76cc77959e26 *install/data/install.sql b92e6bc4f11bbece12288d800321aa3c *install/data/install.sql
4a35501b2e1fca641c5a8d2d5175e72d *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
@@ -1620,9 +1666,9 @@ fc25acefcabc066437d4b27550387954 *install/images/logo.png
a987af86766c27c565794ffa189cf664 *install/include/install_mysql.php 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
81c8f56afad64263e7f7be6e8f223338 *install/index.php 4c34d50daace82774e12ef92efb93d18 *install/index.php
672ea3abb501cb04f0708a5c69ac2161 *install/language/zh-cn/lang.php 677cacb463b31ea65d0ce771f9c02422 *install/language/zh-cn/lang.php
63947a3a069dd8a3433f1c4a182c96a1 *install/update.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

@@ -1,102 +1,112 @@
<?php <?php
/** php下载类,支持断点续传 /** php下载类,支持断点续传
* Date: 2013-06-30 * Date: 2013-06-30
* Author: test * Author: test
* Ver: 1.0 * Ver: 1.0
* *
* Func: * Func:
* download: 下载文件 * download: 下载文件
* setSpeed: 设置下载速度 * setSpeed: 设置下载速度
* getRange: 获取header中Range * getRange: 获取header中Range
*/ */
class FileDownload{ // class start class FileDownload{ // class start
private $_speed = 512; // 下载速度 private $_speed = 512; // 下载速度
/** 下载 /** 下载
* @param String $file 要下载的文件路径 * @param String $file 要下载的文件路径
* @param String $name 文件名称,为空则与下载的文件名称一样 * @param String $name 文件名称,为空则与下载的文件名称一样
* @param boolean $reload 是否开启断点续传 * @param boolean $reload 是否开启断点续传
*/ */
public function download($file, $name='',$file_size=0,$dateline=0, $reload=false){ public function download($file, $name='',$file_size=0,$dateline=0, $reload=false){
if($name==''){ if($name==''){
$name = basename($file); $name = basename($file);
} }
if(!$dateline){ if(!$dateline){
$dataline=TIMESTAMP; $dataline=TIMESTAMP;
} }
if(!$fp = fopen($file, 'rb')){ if(!$fp = fopen($file, 'rb')){
topshowmessage(lang('file_not_exist1')); topshowmessage(lang('file_not_exist1'));
} }
$db = DB::object(); $charset = CHARSET;
$db->close(); $db = DB::object();
@ob_end_clean(); $db->close();
if(getglobal('gzipcompress')) @ob_start('ob_gzhandler'); @ob_end_clean();
if(!$file_size) $file_size = filesize($file); if(getglobal('gzipcompress')) @ob_start('ob_gzhandler');
$ranges = $this->getRange($file_size); if(!$file_size) $file_size = filesize($file);
$ranges = $this->getRange($file_size);
header('cache-control:public'); header('cache-control:public');
header('Date: '.gmdate('D, d M Y H:i:s', $dateline).' GMT'); header('Date: '.gmdate('D, d M Y H:i:s', $dateline).' GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $dateline).' GMT'); header('Last-Modified: '.gmdate('D, d M Y H:i:s', $dateline).' GMT');
header('content-type:application/octet-stream'); header('content-type:application/octet-stream');
header('content-disposition:attachment; filename='.$name); if (preg_match("/Firefox/", $_SERVER["HTTP_USER_AGENT"])) {
if($reload && $ranges!=null){ // 使用续传 $attachment = 'attachment; filename*='.$charset.'\'\'' . $name;
header('HTTP/1.1 206 Partial Content'); } elseif (!preg_match("/Chrome/", $_SERVER["HTTP_USER_AGENT"]) && preg_match("/Safari/", $_SERVER["HTTP_USER_AGENT"])) {
header('Accept-Ranges:bytes'); $filename = rawurlencode($name); // 注意rawurlencode与urlencode的区别
$attachment = 'attachment; filename*='.$charset.'\'\'' . $filename;
} else{
$attachment = 'attachment; filename='.$name;
}
//header('content-disposition:attachment; filename='.$name);
header('content-disposition:'.$attachment);
if($reload && $ranges!=null){ // 使用续传
header('HTTP/1.1 206 Partial Content');
header('Accept-Ranges:bytes');
// 剩余长度 // 剩余长度
header(sprintf('content-length:%u',$ranges['end']-$ranges['start']+1)); header(sprintf('content-length:%u',$ranges['end']-$ranges['start']+1));
// range信息 // range信息
header(sprintf('content-range:bytes %s-%s/%s', $ranges['start'], $ranges['end'], $file_size)); header(sprintf('content-range:bytes %s-%s/%s', $ranges['start'], $ranges['end'], $file_size));
// fp指针跳到断点位置 // fp指针跳到断点位置
fseek($fp, sprintf('%u', $ranges['start'])); fseek($fp, sprintf('%u', $ranges['start']));
}else{ }else{
header('HTTP/1.1 200 OK'); header('HTTP/1.1 200 OK');
header('content-length:'.$file_size); header('content-length:'.$file_size);
} }
while(!feof($fp)){ while(!feof($fp)){
echo fread($fp, round($this->_speed*1024,0)); echo fread($fp, round($this->_speed*1024,0));
@flush(); @ob_flush(); @flush(); @ob_flush();
// usleep(500); // 用于测试,减慢下载速度 // usleep(500); // 用于测试,减慢下载速度
} }
($fp!=null) && fclose($fp); ($fp!=null) && fclose($fp);
}
/** 设置下载速度
* @param int $speed
*/
public function setSpeed($speed){
if(is_numeric($speed) && $speed>16 && $speed<4096){
$this->_speed = $speed;
} }
}
/** 获取header range信息 /** 设置下载速度
* @param int $file_size 文件大小 * @param int $speed
* @return Array */
*/ public function setSpeed($speed){
private function getRange($file_size){ if(is_numeric($speed) && $speed>16 && $speed<4096){
$this->_speed = $speed;
}
}
if(isset($_SERVER['HTTP_RANGE'])){ /** 获取header range信息
list($a, $range) = explode("=",$_SERVER['HTTP_RANGE'],2); * @param int $file_size 文件大小
list($range) = explode(",",$range,2); * @return Array
list($start, $range_end) = explode("-", $range); */
$start=intval($start); private function getRange($file_size){
if(!$range_end) {
$range_end=$file_size-1; if(isset($_SERVER['HTTP_RANGE'])){
} else { list($a, $range) = explode("=",$_SERVER['HTTP_RANGE'],2);
$range_end=intval($range_end); list($range) = explode(",",$range,2);
} list($start, $range_end) = explode("-", $range);
$range = array('start'=>$start,'end'=>$range_end); $start=intval($start);
return $range; if(!$range_end) {
} $range_end=$file_size-1;
return null; } else {
} $range_end=intval($range_end);
}
$range = array('start'=>$start,'end'=>$range_end);
return $range;
}
return null;
}
} // class end } // class end

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

@@ -82,15 +82,66 @@
} }
return $rgb; return $rgb;
} }
function RGBToHex($rgb){
$regexp = "/^rgb\(([0-9]{0,3})\,\s*([0-9]{0,3})\,\s*([0-9]{0,3})\)/";
$re = preg_match($regexp, $rgb, $match);
$re = array_shift($match);
$hexColor = "";
$hex = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
for ($i = 0; $i < 3; $i++) {
$r = null;
$c = $match[$i];
$hexAr = array();
while ($c > 16) {
$r = $c % 16;
$c = ($c / 16) >> 0;
array_push($hexAr, $hex[$r]);
}
array_push($hexAr, $hex[$c]);
$ret = array_reverse($hexAr);
$item = implode('', $ret);
$item = str_pad($item, 2, '0', STR_PAD_LEFT);
$hexColor .= $item;
}
return $hexColor;
}
public function fetch_colordata_by_rid($rid){ public function fetch_colordata_by_rid($rid){
$data = []; $data = [];
foreach(DB::fetch_all("select color,weight from %t where rid = %s",array($this->_table,$rid)) as $v){ foreach(DB::fetch_all("select r,g,b,weight from %t where rid = %s",array($this->_table,$rid)) as $v){
$rgbdata = 'rgb('.$v['r'].','.$v['g'].','.$v['b'].')';
$weight = $v['weight']*100; $weight = $v['weight']*100;
$data[$weight] = dechex($v['color']); $v['color'] = $this->RGBToHex($rgbdata);
$data[] = ['color'=>$v['color'],'weight'=>$weight];
} }
krsort($data); $distance = [];
return $data; $colordata = [];
foreach($data as $v){
$distance[] = $v['weight'];
}
array_multisort($distance, SORT_DESC, $data);
foreach($data as $v){
$colordata[] = $v['color'];
}
return $colordata;
} }
/* /*
*$colors 该参数需带权重,以键为权重值,此处查询优先权重最大的查询近似颜色值 *$colors 该参数需带权重,以键为权重值,此处查询优先权重最大的查询近似颜色值

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;
@@ -70,7 +75,7 @@ class table_pichome_resources extends dzz_table
$v['dateline'] = dgmdate(round($v['dateline'] / 1000), 'Y/m/d H:i'); $v['dateline'] = dgmdate(round($v['dateline'] / 1000), 'Y/m/d H:i');
$v['name'] = str_replace(strrchr($v['name'], "."), "", $v['name']); $v['name'] = str_replace(strrchr($v['name'], "."), "", $v['name']);
$v['btime'] = dgmdate(round($v['btime'] / 1000), 'Y/m/d H:i'); $v['btime'] = dgmdate(round($v['btime'] / 1000), 'Y/m/d H:i');
$v['dpath'] = dzzencode($v['rid'], '', 0,0); $v['dpath'] = dzzencode($v['rid'], '', 0, 0);
if (in_array($v['ext'], $Opentype['video'])) { if (in_array($v['ext'], $Opentype['video'])) {
$v['opentype'] = 'video'; $v['opentype'] = 'video';
} elseif (in_array($v['ext'], $Opentype['text'])) { } elseif (in_array($v['ext'], $Opentype['text'])) {
@@ -107,16 +112,18 @@ class table_pichome_resources extends dzz_table
return $datas; return $datas;
} }
//获取数据后端使用 //获取数据后端使用
public function fetch_data_by_rid($rid){ public function fetch_data_by_rid($rid)
{
if (!$resourcesdata = parent::fetch($rid)) return array(); if (!$resourcesdata = parent::fetch($rid)) return array();
if ($resourcesdata['isdelete'] > 0) return array(); if ($resourcesdata['isdelete'] > 0) return array();
$downshare = C::t('pichome_vapp')->fetch_all_sharedownlod(); $downshare = C::t('pichome_vapp')->fetch_all_sharedownlod();
if($downshare[$resourcesdata['appid']]['isdelete']) return array(); if ($downshare[$resourcesdata['appid']]['isdelete']) return array();
$attrdata = C::t('pichome_resources_attr')->fetch($rid); $attrdata = C::t('pichome_resources_attr')->fetch($rid);
$resourcesdata = array_merge($resourcesdata, $attrdata); $resourcesdata = array_merge($resourcesdata, $attrdata);
$resourcesdata['realpath'] =$downshare[$resourcesdata['appid']]['path'] . BS . $resourcesdata['path']; $resourcesdata['realpath'] = $downshare[$resourcesdata['appid']]['path'] . BS . $resourcesdata['path'];
return $resourcesdata; return $resourcesdata;
} }
@@ -128,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']);
@@ -142,76 +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));
}
else {
$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);
}
//$thumbpath = 'library/' . $filepath . '/' . $filename . '_thumbnail.png';
//$resourcesdata['icondata'] = $thumbpath;
}
//}
} 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']);
@@ -221,8 +182,8 @@ class table_pichome_resources extends dzz_table
unset($resourcesdata['path']); unset($resourcesdata['path']);
$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;
} }
@@ -243,55 +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 ($v['apptype'] == 1) {
$filename = 'pichomethumb'.BS . $v['appid'] . BS . md5($v['path']) . '.jpg';
$thumbpath = getglobal('setting/attachurl') . $filename;
$v['icondata'] = str_replace('+', '%20', urlencode($thumbpath));
} else {
$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);
}
} $v['icondata'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&hash='.VERHASH.'&path=' . dzzencode($v['rid'],'', 7200, 0);
$thumbwidth = getglobal('config/pichomethumbwidth') ? getglobal('config/pichomethumbwidth') : 900;
$thumbheight = getglobal('config/pichomethumbheight') ? getglobal('config/pichomethumbheight') : 900;
$thumsizearr = $this->getImageThumbsize($v['width'], $v['height'], $thumbwidth, $thumbheight);
$v['thumbwidth'] = $thumsizearr[0];
$v['thumbheight'] = $thumsizearr[1];
if ($v['opentype'] == 'video') {
$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']);
$v['icondata'] = str_replace('+', '%20', urlencode($tmppath . '/' . $v['path']));
} 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']);
@@ -299,53 +222,58 @@ class table_pichome_resources extends dzz_table
} }
return $returndata; return $returndata;
} }
public function geticondata_by_rid($rid){
$resourcesdata = DB::fetch_first("select r.rid,r.appid,r.hasthumb,r.ext,r.type,ra.path as fpath, public function getImageThumbsize($owidth, $oheight, $width, $height)
v.path,r.apptype,v.iswebsitefile 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", if ($owidth > $width || $oheight > $height) {
array($this->_table,'pichome_resources_attr','pichome_vapp',$rid)); $or = $owidth / $oheight;
if ($resourcesdata['hasthumb']) { $r = $width / $height;
//如果是本地文件 if ($r > $or) {
if ($resourcesdata['apptype'] == 1) { if ($oheight < $height) {
$filename = 'pichomethumb'.BS . $resourcesdata['appid'] . BS. md5($resourcesdata['fpath']) . '.jpg'; $height = $oheight;
$thumbpath = getglobal('setting/attachurl') . $filename; $width = $owidth;
$resourcesdata['icondata'] = str_replace('+', '%20', urlencode($thumbpath));
}
else {
$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 { } else {
$tmppath = $resourcesdata['path'];
$thumbpath = $tmppath . BS . $filepath . BS . $filename . '_thumbnail.png'; $width = ceil($height * $or);
$resourcesdata['icondata'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&path=' . dzzencode($thumbpath,'',0,0); if ($width < 242) {
} $width = 242;
} $height = ceil($width / $or);
} 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 { } else {
$resourcesdata['icondata'] = geticonfromext($resourcesdata['ext'], $resourcesdata['type']); 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,
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",
array($this->_table, 'pichome_resources_attr', 'pichome_vapp', $rid));
$resourcesdata['icondata'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&hash='.VERHASH.'&path=' . dzzencode($rid, '', $time, 0);
return $resourcesdata; return $resourcesdata;
} }
public function fetch_like_words($keyword, $limit = 10) public function fetch_like_words($keyword, $limit = 10)
{ {
$likewords = []; $likewords = [];

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,12 +56,15 @@
{ {
if(!is_array($rid)) $rid = (array)$rid; if(!is_array($rid)) $rid = (array)$rid;
$delids = []; $delids = [];
foreach (DB::fetch_all("select id 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_vapp_tag')->delete_by_tid_appid($v['tid'],$v['appid']);
} }
return parent::delete($delids); return parent::delete($delids);
} }
public function fetch_rids_by_tids($tids,$appid,$limit=6,$rid=''){ public function fetch_rids_by_tids($tids,$appid,$limit=6,$rid=''){
if(!is_array($tids)) $tids = (array) $tids; if(!is_array($tids)) $tids = (array) $tids;
$rids = []; $rids = [];

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

@@ -26,4 +26,13 @@
public function fetch_cid_by_gid($gid,$appid){ public function fetch_cid_by_gid($gid,$appid){
return DB::result_first("select cid from %t where gid = %d and appid = %s",array($this->_table,$gid,$appid)); return DB::result_first("select cid from %t where gid = %d and appid = %s",array($this->_table,$gid,$appid));
} }
public function insertdata($setarr){
if($id=DB::result_first("select id from %t where tid = %d and appid = %s",array($this->_table,$setarr['tid'],$setarr['appid']))){
parent::update($id,$setarr);
}else{
parent::insert($setarr);
}
return true;
}
} }

View File

@@ -48,12 +48,7 @@
} }
public function insert($setarr){ public function insert($setarr){
//如果为oaooa库时 //如果为oaooa库时
if($setarr['type'] == 2){ $path = $setarr['path'];
$setarr['path'] =$setarr['did'].'_'.$setarr['kuid'].'_'.$setarr['fid'];
$path = md5($setarr['path']);
}else{
$path = $setarr['path'];
}
if($appid = DB::result_first("select appid from %t where path = %s and isdelete = 0",array($this->_table,$setarr['path']))){ if($appid = DB::result_first("select appid from %t where path = %s and isdelete = 0",array($this->_table,$setarr['path']))){
parent::update($appid,$setarr); parent::update($appid,$setarr);
return $appid; return $appid;
@@ -73,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);
@@ -84,6 +79,7 @@
//删除虚拟应用 //删除虚拟应用
public function delete_vapp_by_appid($appid){ public function delete_vapp_by_appid($appid){
$appdata = parent::fetch($appid);
//删除文件表数据 //删除文件表数据
C::t('pichome_resources')->delete_by_appid($appid); C::t('pichome_resources')->delete_by_appid($appid);
//删除目录表数据 //删除目录表数据
@@ -103,6 +99,10 @@
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){
$hookdata = ['appid'=>$appid,'apptype'=>$appdata['type']];
Hook::listen('pichomevappdelete',$hookdata);
}
return parent::delete($appid); return parent::delete($appid);
} }
@@ -115,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.0'); define('CORE_VERSION', '10.1.0');
define('CORE_VERSION_LEVEL', 'Pichome'); define('CORE_VERSION_LEVEL', 'Home');
define('CORE_RELEASE', '20211208'); define('CORE_RELEASE', '20220429');
define('CORE_FIXBUG' , '03000000'); 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

@@ -6,9 +6,9 @@
@set_time_limit(0); @set_time_limit(0);
$appdata = DB::fetch_all("select * from %t where isdelete = 0 ",array('pichome_vapp')); $appdata = DB::fetch_all("select * from %t where isdelete = 0 ",array('pichome_vapp'));
foreach($appdata as $v){ foreach($appdata as $v){
if($v['state'] == 1){ if($v['state'] == 2){
dfsockopen(getglobal('localurl'). 'index.php?mod=pichome&op=exportfile&appid='.$v['appid'],0, '', '', false, '', 1); dfsockopen(getglobal('localurl'). 'index.php?mod=pichome&op=exportfile&appid='.$v['appid'],0, '', '', false, '', 1);
}elseif($v['state'] == 2){ }elseif($v['state'] == 3){
dfsockopen(getglobal('localurl'). 'index.php?mod=pichome&op=exportfilecheck&appid='.$v['appid'],0, '', '', false, '', 1); dfsockopen(getglobal('localurl'). 'index.php?mod=pichome&op=exportfilecheck&appid='.$v['appid'],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

@@ -0,0 +1,859 @@
<?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 billfishxport
{
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 $checklimit = 1000;
private $onceexportnum = 100;
private $getinfonum = 0;
private $readtxt = DZZ_ROOT . './data/attachment/cache/';
private $exportstatus = 0;
private $donum = 0;
private $lastid = '';
private $charset = 'UTF-8';
private $version = '';
private $notallowext = '';
private $db = null;
public function __construct($data = array())
{
global $Defaultallowext;
//获取导入记录表基本数据
$this->path = $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->version = $data['version'];
if ($data['charset']) $this->charset = $data['charset'];
//尝试连接数据库
$connect = $this->connect_db();
if (!is_object($connect)) {
return $connect;
} else {
$this->db = $connect;
}
}
public function connect_db()
{
$dsn = 'sqlite:' . $this->path . BS . '.bf' . BS . 'billfish.db';
try {
return new PDO($dsn);
} catch (PDOException $e) {
return array('error' => $e->getMessage());
}
}
public function fetch($sql)
{
$q = $this->db->query($sql);
$rows = $q->fetch(PDO::FETCH_ASSOC);
return $rows;
}
public function fetch_all($sql)
{
$q = $this->db->query($sql);
$rows = $q->fetchAll(PDO::FETCH_ASSOC);
return $rows;
}
public function initExport()
{
//修改导入状态为1
$versionsql = " SELECT version from library where 1";
$versions = $this->fetch($versionsql);
$this->version = $versions['version'];
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) {
C::t('pichome_vapp')->update($this->appid, array('state' => 4));
} else {
C::t('pichome_vapp')->update($this->appid, array('state' => 2, 'filenum' => $this->filenum,'donum'=>0,'percent'=>0,'lastid'=>0));
}
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)
{
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) {
$start = $this->lastid;
} else $start = 1;
$lastid = $start;
$start = ($start-1)*$this->onceexportnum;
$sql = "select s.*,p.fid,p.score,p.title,p.origin,p.note,p.action from source s
left join res_prop p on p.iid = s.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['action'] > 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['born']) ? $v['born'] * 1000 : $v['lastw'] * 1000,
'dateline' => $v['lastw'] * 1000,
'btime' => TIMESTAMP * 1000,
'size' => $v['size'],
'width' => $v['width'],
'height' => $v['height'],
'grade' => $v['score'],
'apptype' => 2,
'hasthumb' => $v['thumb'] ? 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['fid']) {
$folderdata = $this->getFolderfid($v['fid']);
//处理目录数据
$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 lid from res_join_tag where iid = $id";//耗时最多
$tiddata = $this->fetch_all($sql);
$tids = [];
foreach ($tiddata as $val) {
$tids[] = $val['lid'];
}
if (!empty($tids)) {
$tidstr = dimplode($tids);
//查询标签分类数据
$sql = "select jg.gid,g.name from tag_join_group jg
left join taggrp g on g.id = jg.gid
where jg.lid 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 tag t
left join tag_join_group j on j.lid = 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 colour where iid = $id";
$bcolordata = $this->fetch_all($sql);
//删除原颜色数据
DB::delete('pichome_palette', array('rid' => $rid));
foreach ($bcolordata as $val) {
$colorarr = ['rid' => $rid,
'color' => $val['bf_clr'],
'weight' => $val['precent'],
'r' => $val['r'],
'g' => $val['g'],
'b' => $val['b']
];
C::t('pichome_palette')->insert($colorarr);
}
//颜色数据处理结束
//处理标注数据
$sql = "select * from comment where iid = $id";
$commentdata = $this->fetch_all($sql);
//删除原标注数据
C::t('pichome_comments')->delete_by_rid($rid);
if ($commentdata) {
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 video where iid = $id";
$videodata = $this->fetch($sql);
if(isset($videodata['duration'])) $attrdata['duration'] = $videodata['duration'];
//查询视频时长
$sql = "select duration from audio where iid = $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));
}
$lastid = $lastid+1;
C::t('pichome_vapp')->update($this->appid,array('lastid' => $lastid));
return array('success' => true);
}
public function getFolderfid($bfid, $dirpath = '')
{
$parentfolderdata = [];
if($this->version < 30){
$sql = "select * from folder where id = $bfid";
}else{
$sql = "select * from bf_folder where id = $bfid";
}
$folderdata = $this->fetch($sql);
$dirpath = $folderdata['name'] . ($dirpath ? BS . $dirpath : '');
if ($folderdata['pid']) {
$parentfolderdata = $this->getFolderfid($folderdata['pid'], $dirpath);
}
if($parentfolderdata['dirpath']) $dirpath = $parentfolderdata['dirpath'];
$setarr = [
'pfid' => isset($parentfolderdata['fid']) ? $parentfolderdata['fid'] : '',
'fname' => $folderdata['name'],
'appid' => $this->appid,
'disp'=>($this->version < 30) ? $folderdata['seq']:round($folderdata['seq']*1000000000)
];
$return = C::t('#billfish#billfish_folderrecord')->insert_data($bfid, $setarr);
$return['dirpath'] = $dirpath;
return $return;
}
//校验文件
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 from %t where appid = %s order by lastdate asc limit $limitsql ", array('pichome_resources', $this->appid));
if (empty($data)) {
//校验完成后更新目录文件数
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']));
}
//检查不存在的目录删除
$foldertotal = DB::result_first("select count(id) from %t where appid = %s",array('billfish_folderrecord',$this->appid));
$this->check_notexists_folder($foldertotal);
//检查不存在的标签删除
$tagtotal = DB::result_first("select count(id) from %t where appid = %s",array('billfish_tagrecord',$this->appid));
$this->check_notexists_tag($tagtotal);
if($this->version < 30){
//删除创建的索引
$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));
$nosubfilenum = $total - $hascatnum;
C::t('pichome_vapp')->update($this->appid, array('percent' => 0, 'state' => 4, 'lastid' => 0, 'donum' => 0,'filenum'=>$total,'nosubfilenum'=>$nosubfilenum));
return true;
}
foreach ($data as $v) {
$rid = $v['rid'];
$iid = DB::result_first("select bid from %t where rid = %s and appid = %s",array('billfish_record',$rid,$this->appid));
if(!$iid){
$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)) {
$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);
}
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));
}
}
//检查目录数据
public function check_notexists_folder($total){
$tmpkey = 'pichomecheckfolder' . $this->appid;
$folderstart = C::t('cache')->fetch($tmpkey);
if (!$folderstart) {
$folderstart = 0;
}
if($folderstart < $total){
$bfids = [];
//检查不存在的目录删除
foreach(DB::fetch_all("select bfr.bfid as bfid from %t f left join %t bfr on bfr.fid=f.fid where f.appid = %s limit $folderstart,100",array('pichome_folder','billfish_folderrecord',$this->appid)) as $v){
$bfids[] = $v['bfid'];
}
if(empty($bfids)){
C::t('cache')->delete($tmpkey);
return true;
}
$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)";
}
//查询不存的目录
$bfolder = $this->fetch_all($sql);
$blfids = [];
foreach ($bfolder as $val){
$blfids[] = $val['id'];
}
$delfids = array_diff($bfids,$blfids);
if(!empty($delfids))C::t('#billfish#billfish_folderrecord')->delete_by_bfid($delfids,$this->appid);
$folderstart += 100;
$setarr = ['cachekey' => $tmpkey, 'cachevalue' => $folderstart, 'dateline' => time()];
C::t('cache')->insert($setarr);
$this->check_notexists_folder($total);
}else{
C::t('cache')->delete($tmpkey);
return true;
}
}
//检查标签对照表数据
public function check_notexists_tag($total){
$tmpkey = 'pichomechecktag'.$this->appid;
$tagstart = C::t('cache')->fetch($tmpkey);
if (!$tagstart) {
$tagstart = 0;
}
if($tagstart < $total){
$lids=[];
foreach(DB::fetch_all("select lid from %t where appid = %s limit $tagstart,100 ",array('billfish_tagrecord',$this->appid)) as $v){
$lids[] = $v['lid'];
}
if(empty($lids)){
C::t('cache')->delete($tmpkey);
return true;
}
$lidstr = dimplode(',',$lids);
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 =[] ;
foreach($this->fetch_all($sql) as $v){
$blids[] = $v['id'];
}
$deblids = array_diff($lids,$blids);
if(!empty($deblids)) DB::delete('billfish_tagrecord','lid in('.dimplode($deblids).')');
$tagstart += 100;
$setarr = ['cachekey' => $tmpkey, 'cachevalue' => $tagstart, 'dateline' => time()];
C::t('cache')->insert($setarr);
$this->check_notexists_tag($total);
}else{
C::t('cache')->delete($tmpkey);
return true;
}
}
}

View File

@@ -0,0 +1,71 @@
<?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_billfish_folderrecord extends dzz_table
{
public function __construct() {
$this->_table = 'billfish_folderrecord';
$this->_pk = 'id';
parent::__construct();
}
public function insert_data($bfid,$setarr){
$returndata =[];
if($fid = DB::result_first("select fid from %t where bfid = %d and appid = %s",array($this->_table,$bfid,$setarr['appid']))){
C::t('pichome_folder')->update($fid,$setarr);
$setarr['fid'] = $fid;
return $setarr;
}else{
$fpathkey = '';
if($setarr['pfid']){
$fpathkey =DB::result_first("select pathkey from %t where fid = %s and appid = %s",array('pichome_folder',$setarr['pfid'],$setarr['appid']));
}
$setarr['fid'] = random(13) . $setarr['appid'];
$setarr['pathkey'] = ($fpathkey) ? $fpathkey.$setarr['fid']:$setarr['fid'];
if(C::t('pichome_folder')->insert($setarr)){
$setarr1 = [
'bfid'=>$bfid,
'fid'=>$setarr['fid'],
'appid'=>$setarr['appid']
];
if(parent::insert($setarr1,1)){
return $setarr;
}else{
C::t('pichome_folder')->delete($setarr['fid']);
return $returndata;
}
}
}
}
public function delete_by_bfid($bfids,$appid){
if(!is_array($bfids)) $bfids = (array)$bfids;
$delfid = $delid = [];
foreach(DB::fetch_all("select fid,id from %t where bfid in(%n) and appid = %s",array($this->_table,$bfids,$appid)) as $v){
$delfid[] = $v['fid'];
$delid[] = $v['id'];
}
DB::delete('pichome_folderresources',"fid in (".dimplode($delfid).")");
DB::delete('pichome_folder',"fid in (".dimplode($delfid).")");
parent::delete($delid);
}
public function delete_by_appid($appid){
DB::delete($this->_table,array('appid'=>$appid));
}
}

View File

@@ -0,0 +1,49 @@
<?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_billfish_record extends dzz_table
{
public function __construct() {
$this->_table = 'billfish_record';
$this->_pk = 'id';
parent::__construct();
}
public function inser_data($bid,$setarr){
$setarr1['thumb'] = $setarr['thumb'];
unset($setarr['thumb']);
if(C::t('pichome_resources')->insert($setarr)){
$setarr1['rid'] = $setarr['rid'];
$setarr1['appid'] = $setarr['appid'];
$setarr1['bid'] = $bid;
$id = DB::result_first("select id from %t where bid = %d and appid = %s",array($this->_table,$bid,$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).')');
}
}

View File

@@ -0,0 +1,42 @@
<?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_billfish_taggrouprecord extends dzz_table
{
public function __construct() {
$this->_table = 'billfish_taggrouprecord';
$this->_pk = 'id';
parent::__construct();
}
public function insert_data($setarr,$appid){
$hasrecord = false;
if($cid = DB::result_first("select cid from %t where bcid=%d and appid = %s",array($this->_table,$setarr['gid'],$appid))){
$data['cid'] = $cid;
$hasrecord = true;
}else{
$data['cid'] = random(13).$appid;
}
$data['catname'] = $setarr['name'];
$data['appid'] = $appid;
$data['dateline'] = TIMESTAMP;
if($cid = C::t('pichome_taggroup')->insert($data)){
if(!$hasrecord) parent::insert(array('cid'=>$cid,'bcid'=>$setarr['gid'],'appid'=>$appid));
return array('bcid'=>$setarr['gid'],'cid'=>$cid);
}
}
public function delete_by_appid($appid){
DB::delete($this->_table,array('appid'=>$appid));
}
}

View File

@@ -0,0 +1,39 @@
<?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_billfish_tagrecord extends dzz_table
{
public function __construct() {
$this->_table = 'billfish_tagrecord';
$this->_pk = 'id';
parent::__construct();
}
public function insert_data($setarr,$appid){
if($id = DB::result_first("select id from %t where lid=%d and appid = %s",array($this->_table,$setarr['lid'],$appid))){
parent::update($id,array('name'=>$setarr['name']));
}else{
$setarr['appid'] = $appid;
parent::insert($setarr);
}
if($tid= DB::result_first("select tid from %t where tagname = %s",array('pichome_tag',$setarr['name']))){
return array('lid'=>$setarr['lid'],'tid'=>$tid);
}else{
$tid = C::t('pichome_tag')->insert($setarr['name']);
}
return array('tid'=>$tid,'lid'=>$setarr['lid']);
}
public function delete_by_appid($appid){
DB::delete($this->_table,array('appid'=>$appid));
}
}

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

@@ -0,0 +1,51 @@
<?php
namespace dzz\billfish\classes;
use \core as C;
use \DB as DB;
use \fmpeg as fmpeg;
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'] >=30){
$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');
}
}
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,26 @@
<?php
namespace dzz\billfish\classes;
use \core as C;
use \DB as DB;
use \fmpeg as fmpeg;
class pichomevappdelete
{
public function run($data)
{
if($data['type'] == 2){
C::t("#billfish#billfish_record")->delete_by_appid($data['appid']);
C::t("#billfish#billfish_folderrecord")->delete_by_appid($data['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,83 +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,11 +65,15 @@ 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 = [];
foreach(DB::fetch_all("select appid from %t where isdelete = 0",array('pichome_vapp')) as $v){ foreach(DB::fetch_all("select appid,path from %t where isdelete = 0",array('pichome_vapp')) as $v){
$vappids[] = $v['appid']; if(is_dir($v['path'])){
$vappids[] = $v['appid'];
}
} }
if(empty($vappids)){ if(empty($vappids)){
$wheresql .= ' and 0'; $wheresql .= ' and 0';
@@ -435,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(
@@ -513,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 ";
@@ -757,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);
@@ -802,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']) : '';
@@ -821,10 +858,38 @@ 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 = [];
foreach(DB::fetch_all("select appid from %t where isdelete = 0",array('pichome_vapp')) as $v){ $vappids = [];
$vappids[] = $v['appid']; foreach(DB::fetch_all("select appid,path from %t where isdelete = 0",array('pichome_vapp')) as $v){
if(is_dir($v['path'])){
$vappids[] = $v['appid'];
}
} }
if(empty($vappids)){ if(empty($vappids)){
$wheresql .= ' and 0'; $wheresql .= ' and 0';
@@ -933,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;
}
} }
} }
} }
//时长条件 //时长条件
@@ -1230,7 +1306,7 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
$wheresql .= " and r.isdelete < 1 "; $wheresql .= " and r.isdelete < 1 ";
$data = array(); $data = array();
if ($skey == 'tag') { if ($skey == 'tag') {
$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 isnull(tr.cid)";
@@ -1242,7 +1318,7 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
$para[] = $cid; $para[] = $cid;
} }
} }*/
$tagkeyword = isset($_GET['tagkeyword']) ? trim($_GET['tagkeyword']):''; $tagkeyword = isset($_GET['tagkeyword']) ? trim($_GET['tagkeyword']):'';
if ($tagkeyword) { if ($tagkeyword) {
$sql .= " left join %t t on t.tid=rt.tid "; $sql .= " left join %t t on t.tid=rt.tid ";
@@ -1268,14 +1344,17 @@ if ($operation == 'addsearch') {//增加关键词搜索次数
$sql .= " left join %t g on g.cid = tr.cid "; $sql .= " left join %t g on g.cid = tr.cid ";
$params[] = 'pichome_taggroup'; $params[] = 'pichome_taggroup';
if (!empty($para)) $params = array_merge($params, $para); if (!empty($para)) $params = array_merge($params, $para);
$sum = 0;
foreach (DB::fetch_all("$sql where $wheresql group by g.cid",$params) as $v) { foreach (DB::fetch_all("$sql where $wheresql group by g.cid",$params) as $v) {
if($v['cid']){ if($v['cid']){
$catdata[]=['cid'=>$v['cid'],'catname'=>$v['catname'],'num'=>$v['num']]; $catdata[]=['cid'=>$v['cid'],'catname'=>$v['catname'],'num'=>$v['num']];
}else{ }else{
$catdata[]=['cid'=>0,'catname'=>'全部','num'=>$v['num']];
$catdata[]=['cid'=>-1,'catname'=>'未分类','num'=>$v['num']]; $catdata[]=['cid'=>-1,'catname'=>'未分类','num'=>$v['num']];
} }
$sum += $v['num'];
} }
$catdata[]=['cid'=>0,'catname'=>'全部','num'=>$sum];
}else{ }else{
//if (!empty($para)) $params = array_merge($params, $para); //if (!empty($para)) $params = array_merge($params, $para);
@@ -1292,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']) : '';
@@ -1366,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']):'';
@@ -1381,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){
@@ -1401,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) {
@@ -1428,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') {//分享
@@ -1487,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

@@ -115,6 +115,7 @@ class eagleexport
$readtxt = $this->readtxt . 'eagleexport' . md5($this->path) . '.txt'; $readtxt = $this->readtxt . 'eagleexport' . md5($this->path) . '.txt';
$filenum = 0; $filenum = 0;
if (!is_file($readtxt) || filemtime($readtxt) < filemtime( $this->path . BS.'metadata.json')) { 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)) { if ($dch = opendir($filedir)) {
$thandle = fopen($readtxt, 'w+'); $thandle = fopen($readtxt, 'w+');
while (($file = readdir($dch)) != false) { while (($file = readdir($dch)) != false) {
@@ -136,28 +137,43 @@ class eagleexport
return array('error' => 'Read Dir Failer'); return array('error' => 'Read Dir Failer');
} }
C::t('pichome_vapp')->update($this->appid, array('filenum' => $this->filenum, 'state' => 1)); C::t('pichome_vapp')->update($this->appid, array('filenum' => $this->filenum, 'state' => 2));
} }
C::t('pichome_vapp')->update($this->appid, array('state' => 1)); C::t('pichome_vapp')->update($this->appid, array('state' => 2));
$this->initFoldertag(); $this->initFoldertag();
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';
$readtxt = $this->readtxt . 'eagleexport' . md5($this->path) . '.txt'; $readtxt = $this->readtxt . 'eagleexport' . md5($this->path) . '.txt';
if(filesize($readtxt) == 0){ if(filesize($readtxt) == 0){
@unlink($readtxt); @unlink($readtxt);
C::t('pichome_vapp')->update($this->appid, array('lastid' => 0, 'percent' => 100, 'donum' => 0, 'state' => 2,'filenum'=>$this->filenum)); C::t('pichome_vapp')->update($this->appid, array('lastid' => 0, 'percent' => 100, 'donum' => 0, 'state' => 3,'filenum'=>$this->filenum));
return array('success'=>true); return array('success'=>true);
} }
if ($this->lastid) { if ($this->lastid) {
$start = $this->lastid * 19; $start = $this->lastid * 19;
} else $start = 0; } else $start = 0;
if ($this->lastid < $this->filenum && $this->exportstatus == 1) { if ($this->lastid < $this->filenum && $this->exportstatus == 2) {
$tfile = fopen($readtxt, 'r'); $tfile = fopen($readtxt, 'r');
$i = 0; $i = 0;
fseek($tfile, $start); fseek($tfile, $start);
@@ -198,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'];
//缩略图名称 //缩略图名称
@@ -338,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>';
@@ -372,8 +384,9 @@ class eagleexport
$this->donum += 1; $this->donum += 1;
$percent = floor(($this->donum / $this->filenum) * 100); $percent = floor(($this->donum / $this->filenum) * 100);
//防止因获取文件总个数不准确百分比溢出 //防止因获取文件总个数不准确百分比溢出
$state = ($percent >= 100) ? 2 : 1; $percent = ($percent > 100) ? 100 : $percent;
if ($state == 2) { $state = ($percent >= 100) ? 3 : 2;
if ($state == 3) {
fclose($tfile); fclose($tfile);
@unlink($this->readtxt . 'eagleexport' . md5($this->path) . '.txt'); @unlink($this->readtxt . 'eagleexport' . md5($this->path) . '.txt');
$tfile = false; $tfile = false;
@@ -396,7 +409,7 @@ class eagleexport
//校验文件 //校验文件
public function execCheckFile() public function execCheckFile()
{ {
if ($this->exportstatus == 2) { if ($this->exportstatus == 3) {
$total = DB::result_first("select count(rid) from %t where appid = %s ", array('pichome_resources', $this->appid)); $total = DB::result_first("select count(rid) from %t where appid = %s ", array('pichome_resources', $this->appid));
//校验文件 //校验文件
$this->check_file($total); $this->check_file($total);
@@ -411,7 +424,7 @@ class eagleexport
$delrids = []; $delrids = [];
$data = DB::fetch_all("select rid,isdelete from %t where appid = %s order by lastdate asc limit $limitsql ", array('pichome_resources', $this->appid)); $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)) { if (empty($data)) {
C::t('pichome_vapp')->update($this->appid, array('percent' => 0, 'state' => 3, 'lastid' => 0, 'donum' => 0)); 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){ 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'])); C::t('pichome_folder')->update($v['fid'],array('filenum'=>$v['num']));
@@ -419,7 +432,9 @@ class eagleexport
} }
//修正库中文件数 //修正库中文件数
$total = DB::result_first("select count(rid) from %t where appid = %s ", array('pichome_resources', $this->appid)); $total = DB::result_first("select count(rid) from %t where appid = %s ", array('pichome_resources', $this->appid));
C::t('pichome_vapp')->update($this->appid,array('filenum'=>$total)); $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; return true;
} }
@@ -439,11 +454,20 @@ class eagleexport
if (!empty($delrids)) { if (!empty($delrids)) {
//如果有需要删除的,删除后,则重新查询上一页数据 //如果有需要删除的,删除后,则重新查询上一页数据
C::t('pichome_resources')->delete_by_rid($delrids); C::t('pichome_resources')->delete_by_rid($delrids);
$percent = round((($this->lastid - 1) * $this->checklimit / $total) * 100); if($this->lastid == 1){
C::t('pichome_vapp')->update($this->appid, array('lastid' => $this->lastid, 'percent' => $percent, 'state' => 2)); $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 { } else {
$percent = round((($this->lastid - 1) * $this->checklimit / $total) * 100); if($this->lastid == 1){
C::t('pichome_vapp')->update($this->appid, array('lastid' => $this->lastid + 1, 'percent' => $percent, 'state' => 2)); $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

@@ -91,6 +91,7 @@ class localexport
$filenum = 0; $filenum = 0;
if (!is_file($readtxt)) { if (!is_file($readtxt)) {
C::t('pichome_vapp')->update($this->appid, array( 'state' => 1));
$thandle = fopen($readtxt, 'w+'); $thandle = fopen($readtxt, 'w+');
$fileinfo = $this->readdir($filedir, $thandle, $filenum); $fileinfo = $this->readdir($filedir, $thandle, $filenum);
fclose($thandle); fclose($thandle);
@@ -98,10 +99,10 @@ class localexport
C::t('pichome_vapp')->update($this->appid, array('state' => 0)); C::t('pichome_vapp')->update($this->appid, array('state' => 0));
return $fileinfo; return $fileinfo;
} else { } else {
C::t('pichome_vapp')->update($this->appid, array('filenum' => $fileinfo['filenum'], 'state' => 1)); C::t('pichome_vapp')->update($this->appid, array('filenum' => $fileinfo['filenum'], 'state' => 2));
} }
} }
C::t('pichome_vapp')->update($this->appid, array('state' => 1)); C::t('pichome_vapp')->update($this->appid, array('state' => 2));
return array('success' => true); return array('success' => true);
} }
@@ -148,7 +149,7 @@ class localexport
//如果txt为空直接进入下一步 //如果txt为空直接进入下一步
if(filesize($readtxt) == 0){ if(filesize($readtxt) == 0){
@unlink($readtxt); @unlink($readtxt);
C::t('pichome_vapp')->update($this->appid, array('lastid' => 0, 'percent' => 100, 'donum' => 0, 'state' => 2, 'filenum' => $this->filenum)); C::t('pichome_vapp')->update($this->appid, array('lastid' => 0, 'percent' => 100, 'donum' => 0, 'state' => 3, 'filenum' => $this->filenum));
return array('success' => true); return array('success' => true);
} }
@@ -161,7 +162,7 @@ class localexport
$spl_object = new SplFileObject($readtxt, 'rb'); $spl_object = new SplFileObject($readtxt, 'rb');
$spl_object->seek($start); $spl_object->seek($start);
if ($this->lastid < $this->filenum && $this->exportstatus == 1) { if ($this->lastid < $this->filenum && $this->exportstatus == 2) {
$i = 0; $i = 0;
while (is_file($readtxt) && !$spl_object->eof()) { while (is_file($readtxt) && !$spl_object->eof()) {
$i++; $i++;
@@ -174,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);
@@ -302,8 +312,8 @@ class localexport
} }
$percent = floor(($this->donum / $this->filenum) * 100); $percent = floor(($this->donum / $this->filenum) * 100);
$percent = ($percent > 100) ? 100 : $percent; $percent = ($percent > 100) ? 100 : $percent;
$state = ($percent >= 100) ? 2 : 1; $state = ($percent >= 100) ? 3 : 2;
if ($state == 2) { if ($state == 3) {
@unlink($readtxt); @unlink($readtxt);
$lastid = 0; $lastid = 0;
} else { } else {
@@ -320,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 = '')
{ {
@@ -367,7 +387,7 @@ class localexport
//校验文件 //校验文件
public function execCheckFile() public function execCheckFile()
{ {
if ($this->exportstatus == 2) { if ($this->exportstatus == 3) {
$total = DB::result_first("select count(rid) from %t where appid = %s ", array('pichome_resources', $this->appid)); $total = DB::result_first("select count(rid) from %t where appid = %s ", array('pichome_resources', $this->appid));
//校验文件 //校验文件
$this->check_file($total); $this->check_file($total);
@@ -382,7 +402,7 @@ class localexport
$delrids = []; $delrids = [];
$data = DB::fetch_all("select rid,name from %t where appid = %s order by lastdate asc limit $limitsql ", array('pichome_resources', $this->appid)); $data = DB::fetch_all("select rid,name from %t where appid = %s order by lastdate asc limit $limitsql ", array('pichome_resources', $this->appid));
if (empty($data)) { if (empty($data)) {
C::t('pichome_vapp')->update($this->appid, array('percent' => 0, 'state' => 3, 'lastid' => 0, 'donum' => 0)); 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) { 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'])); C::t('pichome_folder')->update($v['fid'], array('filenum' => $v['num']));
@@ -394,6 +414,10 @@ class localexport
dfsockopen(getglobal('localurl') . 'index.php?mod=ffmpeg&op=getinfo', 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); 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;
C::t('pichome_vapp')->update($this->appid,array('filenum'=>$total,'nosubfilenum'=>$nosubfilenum));
return true; return true;
} }
foreach ($data as $v) { foreach ($data as $v) {
@@ -409,11 +433,21 @@ class localexport
$this->filenum = $this->filenum - count($delrids); $this->filenum = $this->filenum - count($delrids);
//如果有需要删除的,删除后,则重新查询上一页数据 //如果有需要删除的,删除后,则重新查询上一页数据
C::t('pichome_resources')->delete_by_rid($delrids); C::t('pichome_resources')->delete_by_rid($delrids);
$percent = round((($this->lastid - 1) * $this->checklimit / $total) * 100); if($this->lastid == 1){
C::t('pichome_vapp')->update($this->appid, array('lastid' => $this->lastid, 'percent' => $percent, 'state' => 2, 'filenum' => $this->filenum)); $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 { } else {
$percent = round((($this->lastid - 1) * $this->checklimit / $total) * 100); if($this->lastid == 1){
C::t('pichome_vapp')->update($this->appid, array('lastid' => $this->lastid + 1, 'percent' => $percent, 'state' => 2)); $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

@@ -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,3 +1,6 @@
/* color-primary
color-text-placeholder
border-color-base */
*{ *{
padding: 0; padding: 0;
margin: 0; margin: 0;
@@ -28,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);
} }
@@ -117,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);
} }
@@ -299,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;
@@ -311,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;
} }
@@ -407,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%;
@@ -419,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);
} }
@@ -571,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;
} }
@@ -99,7 +124,7 @@
height: 100%; height: 100%;
opacity: 0; opacity: 0;
overflow: hidden; overflow: hidden;
z-index: 5; z-index: 1;
} }
.image-container .image-wrapper .image-item .image-inside .image-single .image-playurl.show{ .image-container .image-wrapper .image-item .image-inside .image-single .image-playurl.show{
opacity: 1; opacity: 1;
@@ -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;
@@ -148,22 +227,22 @@
width: auto; width: auto;
border-radius: 8px; border-radius: 8px;
padding: 0 5px; padding: 0 5px;
z-index: 10; 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;
width: 100%; width: 100%;
height: 100%; height: 100%;
z-index: 4; z-index: 2;
background: var(--content-imgbg); background: var(--content-imgbg);
cursor: auto; cursor: auto;
} }
@@ -177,14 +256,17 @@
bottom: 0; bottom: 0;
margin-top: auto; margin-top: auto;
margin-bottom: auto; margin-bottom: auto;
z-index: 4; z-index: 2;
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: 10;
} }
.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{
@@ -51,6 +51,14 @@
text-overflow: ellipsis; text-overflow: ellipsis;
min-width: 80px; min-width: 80px;
} }
.left-tree .el-tree-node__content .custom-tree-node .num{
color: var(--content-textMessage);
font-size: 14px;
}
.left-tree .el-tree-node__content .tree-node-color.custom-tree-node .name,
.left-tree .el-tree-node__content .tree-node-color.custom-tree-node .num{
color: var(--leftTreeColor);
}
.el-aside .classify-search{ .el-aside .classify-search{
position: absolute; position: absolute;
left: 0; left: 0;
@@ -78,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%;
@@ -89,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;
@@ -161,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;
} }
@@ -345,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;
@@ -464,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;
} }
@@ -500,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;
}

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