Compare commits
17 Commits
34
UPDATE.md
34
UPDATE.md
@@ -1,9 +1,33 @@
|
|||||||
## PicHome beta1.1 更新说明
|
## PicHome Home1.0 更新说明
|
||||||
|
|
||||||
### 1.导入逻辑优化,修复库导入文件和实际文件严重不符问题,支持合并库和导入库等文件库的导入,以及导入效率优化
|
### 1.支持升级到团队版,可在站点设置->授权信息界面查看
|
||||||
|
|
||||||
### 2.修复库设置中“分类(文件夹)”筛选项丢失的问题
|
### 2.billfish数据支持,修复billfish导入有回收站数据导致导入进度不能完成的问题
|
||||||
|
|
||||||
### 3.在站点设置=>界面设置内增加“默认打开文件窗口方式”设置,支持文件在当前窗口打开,详情页显示和功能优化
|
### 3.eagle数据支持,修复eagle导入更新数据时目录数据异常问题
|
||||||
|
|
||||||
### 4.其他已知bug修复
|
### 4.eagle数据支持,修复eagle导入非图片文件缩略图变更后显示异常问题
|
||||||
|
|
||||||
|
### 5.普通目录数据支持,整体修改导入逻辑,修复导入错误,提升导入效率
|
||||||
|
|
||||||
|
### 6.优化导入体验,导入增加部分错误提示,修复导入时删除库不断弹出弹窗的错误,以及导入类型提示不匹配问题
|
||||||
|
|
||||||
|
### 7.导入增加校验更新,用于修复以往导入产生的错误修正
|
||||||
|
|
||||||
|
### 7.修复删除库错误,由数据兼容错误导致没有真正删除问题
|
||||||
|
|
||||||
|
### 8.增加文件访问永久地址获取(仅管理员可用)
|
||||||
|
|
||||||
|
### 9.文件访问地址使用动态地址增强安全性(非永久地址)
|
||||||
|
|
||||||
|
### 10.开放库筛选项设置,可在站点设置->筛选器设置中修改,支持标签分类作为单独筛选项展示;若库未设置筛选项,默认使用“全部库”筛选项,并依其变化而变化
|
||||||
|
|
||||||
|
### 11.修复分享的移动端问题
|
||||||
|
|
||||||
|
### 12.新增模板3(适用标签类筛选的内容)
|
||||||
|
|
||||||
|
### 13.优化访问效率
|
||||||
|
|
||||||
|
### 14.优化界面展示效果
|
||||||
|
|
||||||
|
### 15.其他已知bug修复
|
||||||
@@ -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" />';
|
||||||
|
|||||||
@@ -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']):'static/image/common/logo.png').'" />';
|
$avastar ='<img src="data/attachment/sitelogo/sitelogo.png" />';
|
||||||
}else{
|
}else{
|
||||||
$avastar = avatar_block($uid);
|
$avastar = avatar_block($uid);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ d8a7e6b6f5a2f94640bc7b5397f6585d *admin/language/zh-CN/lang.php
|
|||||||
51bcacee1c7fed967c6f91b256e9c139 *admin/login/images/adminlogin.css
|
51bcacee1c7fed967c6f91b256e9c139 *admin/login/images/adminlogin.css
|
||||||
d3af6beed6f4c5941d8474d8c30de6ab *admin/login/images/bg_login.gif
|
d3af6beed6f4c5941d8474d8c30de6ab *admin/login/images/bg_login.gif
|
||||||
0f31ffb005308e69393850d6704a5743 *admin/login/images/login_title.gif
|
0f31ffb005308e69393850d6704a5743 *admin/login/images/login_title.gif
|
||||||
c3ed53246c61a74dca37236067d3ba56 *admin/login/login.php
|
8b43d60b9f6b725670aae0a0eefc1761 *admin/login/login.php
|
||||||
2ccb26dbc4099faa5579c6c0d5727623 *admin/login/updatesession.php
|
2ccb26dbc4099faa5579c6c0d5727623 *admin/login/updatesession.php
|
||||||
cd5af5197f085d31563c357bf2b3f933 *admin/scripts/admin.js
|
cd5af5197f085d31563c357bf2b3f933 *admin/scripts/admin.js
|
||||||
a6964db4b95a3d7fc276d190f92a9542 *admin/system/common.php
|
a6964db4b95a3d7fc276d190f92a9542 *admin/system/common.php
|
||||||
@@ -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,13 +34,15 @@ 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
|
||||||
e2f8d2bdc0ed43b3e740d749bef566a1 *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
|
||||||
14d1eb5255f59b744a0e86b76e999f8c *admin/system/dist/js/chunk-2d0bdbc6.53098007.js
|
14d1eb5255f59b744a0e86b76e999f8c *admin/system/dist/js/chunk-2d0bdbc6.53098007.js
|
||||||
3b0a51a1b72121d6fc0609eb6baa3777 *admin/system/dist/js/chunk-2d0dd46d.0816c17e.js
|
3b0a51a1b72121d6fc0609eb6baa3777 *admin/system/dist/js/chunk-2d0dd46d.0816c17e.js
|
||||||
f1356ba4b41b1c2d0db9158645cfd968 *admin/system/dist/js/chunk-2d0dd46d.bd431129.js
|
f1356ba4b41b1c2d0db9158645cfd968 *admin/system/dist/js/chunk-2d0dd46d.bd431129.js
|
||||||
|
4e26cdd7c793a4c00c5c2e7b028ed164 *admin/system/dist/js/chunk-2d0dd46d.e13ddeba.js
|
||||||
9db135fe644e548e0a4fe5b93f720402 *admin/system/dist/js/chunk-2d0efd3c.44a093d1.js
|
9db135fe644e548e0a4fe5b93f720402 *admin/system/dist/js/chunk-2d0efd3c.44a093d1.js
|
||||||
9db135fe644e548e0a4fe5b93f720402 *admin/system/dist/js/chunk-2d0efd3c.e5ca30a9.js
|
9db135fe644e548e0a4fe5b93f720402 *admin/system/dist/js/chunk-2d0efd3c.e5ca30a9.js
|
||||||
00fe7bb4722b6d823eafdb62c12eb80f *admin/system/dist/js/chunk-2d20fcd9.50f81306.js
|
00fe7bb4722b6d823eafdb62c12eb80f *admin/system/dist/js/chunk-2d20fcd9.50f81306.js
|
||||||
@@ -53,18 +56,21 @@ f1356ba4b41b1c2d0db9158645cfd968 *admin/system/dist/js/chunk-2d0dd46d.bd431129.j
|
|||||||
240a2f188b2b072ac8200cd0a3cc153a *admin/system/dist/js/chunk-76f23146.0d2957ed.js
|
240a2f188b2b072ac8200cd0a3cc153a *admin/system/dist/js/chunk-76f23146.0d2957ed.js
|
||||||
60e968e5f5a74243077cee14c95528ee *admin/system/dist/js/chunk-77c8d08e.3e576953.js
|
60e968e5f5a74243077cee14c95528ee *admin/system/dist/js/chunk-77c8d08e.3e576953.js
|
||||||
80880cf301a3788dc9bee90756f7e93d *admin/system/dist/js/chunk-7828662a.e587f025.js
|
80880cf301a3788dc9bee90756f7e93d *admin/system/dist/js/chunk-7828662a.e587f025.js
|
||||||
|
55515e2cd3f2bb776a090112418eae77 *admin/system/dist/js/chunk-801d4da6.0f74a3ea.js
|
||||||
55253ec60403c36280aecd7a278c8737 *admin/system/dist/js/chunk-9f9c2568.538835dd.js
|
55253ec60403c36280aecd7a278c8737 *admin/system/dist/js/chunk-9f9c2568.538835dd.js
|
||||||
0b209b8b1a24238e609f30444e59741f *admin/system/dist/js/chunk-9f9c2568.877eae72.js
|
0b209b8b1a24238e609f30444e59741f *admin/system/dist/js/chunk-9f9c2568.877eae72.js
|
||||||
037a3c1f50e8e47edde48a7ff4d45130 *admin/system/dist/js/chunk-af3b1b98.850ec152.js
|
037a3c1f50e8e47edde48a7ff4d45130 *admin/system/dist/js/chunk-af3b1b98.850ec152.js
|
||||||
25f102fba0aba57fcad60998d1e1c334 *admin/system/dist/js/chunk-e730cc06.3ce9a994.js
|
25f102fba0aba57fcad60998d1e1c334 *admin/system/dist/js/chunk-e730cc06.3ce9a994.js
|
||||||
328be3371bb7c2536befbfddcc64e417 *admin/system/dist/js/chunk-vendors.3b95dfe3.js
|
328be3371bb7c2536befbfddcc64e417 *admin/system/dist/js/chunk-vendors.3b95dfe3.js
|
||||||
|
b4c690180b4c0268240bb8544d252b67 *admin/system/dist/js/index.5892fe49.js
|
||||||
5247e802fd0efbbe8eb80cd9f6a34540 *admin/system/dist/js/index.b5ff203c.js
|
5247e802fd0efbbe8eb80cd9f6a34540 *admin/system/dist/js/index.b5ff203c.js
|
||||||
|
e6b823145386281984301ad83fcf96fe *admin/system/dist/js/index.d36cff59.js
|
||||||
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
|
||||||
239eb22317126a0067173db3fcf2b72d *admin/system/index.php
|
239eb22317126a0067173db3fcf2b72d *admin/system/index.php
|
||||||
cd0e9a1fce04adee53b60b2fef50a460 *admin/system/interface.php
|
cd0e9a1fce04adee53b60b2fef50a460 *admin/system/interface.php
|
||||||
428aa41021aaa0baa182abf834d66f8b *admin/system/intsystemupgrade.php
|
cf27e39ac4900fcee0aa0f6e2f7a11ac *admin/system/intsystemupgrade.php
|
||||||
56cfc3e9d0b5e12680907b08abaa704b *admin/system/language/en-US/lang.php
|
56cfc3e9d0b5e12680907b08abaa704b *admin/system/language/en-US/lang.php
|
||||||
8c248279a72f8cc2dc116afcd3894b7f *admin/system/language/zh-CN/lang.php
|
8c248279a72f8cc2dc116afcd3894b7f *admin/system/language/zh-CN/lang.php
|
||||||
2e29e753720225abad58e29934b1812b *admin/system/systemupgrade.php
|
2e29e753720225abad58e29934b1812b *admin/system/systemupgrade.php
|
||||||
@@ -75,7 +81,7 @@ ca1b28e030ced95bc1b2d3a8395a0c12 *admin/system/template/database.htm
|
|||||||
e75e7d98ec5df282d171f0e91b189ee8 *admin/system/template/upgrade.htm
|
e75e7d98ec5df282d171f0e91b189ee8 *admin/system/template/upgrade.htm
|
||||||
08fc7d5efcabe2051ed6b5d35653cf08 *admin/system/template/upgrade_iframe.htm
|
08fc7d5efcabe2051ed6b5d35653cf08 *admin/system/template/upgrade_iframe.htm
|
||||||
6a3755f9351b38a13f1dee06a662cb8b *admin/system/updatecache.php
|
6a3755f9351b38a13f1dee06a662cb8b *admin/system/updatecache.php
|
||||||
5c52541348e0e25d1e9930ea4bc1fddd *admin/system/upgradeinterface.php
|
ae1fa5e1948b4748d7426fe887646a7f *admin/system/upgradeinterface.php
|
||||||
518d358371d639f89c13606502bc9a76 *admin/systemlog/admin.php
|
518d358371d639f89c13606502bc9a76 *admin/systemlog/admin.php
|
||||||
a1f9ec6e949f265a869e5e2dd9115aeb *admin/systemlog/classes/systemlog.php
|
a1f9ec6e949f265a869e5e2dd9115aeb *admin/systemlog/classes/systemlog.php
|
||||||
1266e0a961f6092def97c6e62c4c61ee *admin/systemlog/dzz_app_systemlog.xml
|
1266e0a961f6092def97c6e62c4c61ee *admin/systemlog/dzz_app_systemlog.xml
|
||||||
@@ -91,7 +97,7 @@ abe78a94ae6f33d188e25d7047f5b0f2 *admin/systemlog/template/admin.htm
|
|||||||
5bb95d9914284024bfbde8e8cb60286f *admin/template/header_left.htm
|
5bb95d9914284024bfbde8e8cb60286f *admin/template/header_left.htm
|
||||||
853b016ecacafd2eccc8f35a5ab8b276 *admin.php
|
853b016ecacafd2eccc8f35a5ab8b276 *admin.php
|
||||||
5e5eb249d06b26d6c26cc8fb30b78892 *avatar.php
|
5e5eb249d06b26d6c26cc8fb30b78892 *avatar.php
|
||||||
d0029be05cb9f585dcbcc8dd34817b81 *config/config_default.php
|
7c0fc1919713ed9e6dd9982bc2bc401b *config/config_default.php
|
||||||
a316f263465d0751621451addf43c399 *config/config_frame.php
|
a316f263465d0751621451addf43c399 *config/config_frame.php
|
||||||
77fc6ae224ef71e20a515569babe71db *core/adminstart.php
|
77fc6ae224ef71e20a515569babe71db *core/adminstart.php
|
||||||
9173cf90c5a53af23a011e81dc6e926a *core/class/cache/cache_file.php
|
9173cf90c5a53af23a011e81dc6e926a *core/class/cache/cache_file.php
|
||||||
@@ -107,10 +113,10 @@ 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
|
||||||
af51c6833e10f995e5a1ccb1afcec04d *core/class/class_image.php
|
fda45a96b7be48e159007eb8434a9685 *core/class/class_image.php
|
||||||
e99bae42416330fb30a5d601e3849fee *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
|
||||||
8987c817fd10d12a23dc995a40e00869 *core/class/class_PHPExcel.php
|
8987c817fd10d12a23dc995a40e00869 *core/class/class_PHPExcel.php
|
||||||
@@ -133,7 +139,7 @@ aa439e22adcd2c891dc614294517c6f4 *core/class/dzz/apprun.php
|
|||||||
9c2c276408444f71e3e446d8d6b3cf85 *core/class/dzz/config.php
|
9c2c276408444f71e3e446d8d6b3cf85 *core/class/dzz/config.php
|
||||||
df04f6a6a7204e01a17da726e0568990 *core/class/dzz/Datareturn.php
|
df04f6a6a7204e01a17da726e0568990 *core/class/dzz/Datareturn.php
|
||||||
59cf921f33bd5d5389829c76a4375398 *core/class/dzz/dzz_admincp.php
|
59cf921f33bd5d5389829c76a4375398 *core/class/dzz/dzz_admincp.php
|
||||||
821501a8c839ea0889b6709e582f5298 *core/class/dzz/dzz_app.php
|
832d56c7f9f2f4f750ce2905f0fb0d3b *core/class/dzz/dzz_app.php
|
||||||
06e1a108fe8f8945f27acc196d698578 *core/class/dzz/dzz_base.php
|
06e1a108fe8f8945f27acc196d698578 *core/class/dzz/dzz_base.php
|
||||||
90f9c47b4835ebe4512b15d8249c8d0c *core/class/dzz/dzz_censor.php
|
90f9c47b4835ebe4512b15d8249c8d0c *core/class/dzz/dzz_censor.php
|
||||||
067b118a5932dcc4e68b68cde8fc24c9 *core/class/dzz/dzz_container.php
|
067b118a5932dcc4e68b68cde8fc24c9 *core/class/dzz/dzz_container.php
|
||||||
@@ -141,7 +147,7 @@ df04f6a6a7204e01a17da726e0568990 *core/class/dzz/Datareturn.php
|
|||||||
7ef4a92373abeb30aa39a3b2eb207f9f *core/class/dzz/dzz_database.php
|
7ef4a92373abeb30aa39a3b2eb207f9f *core/class/dzz/dzz_database.php
|
||||||
dfd91831160826dad2b6103f17917e21 *core/class/dzz/dzz_error.php
|
dfd91831160826dad2b6103f17917e21 *core/class/dzz/dzz_error.php
|
||||||
d403c1ad69bcff351d1190dce2149e39 *core/class/dzz/dzz_ftp.php
|
d403c1ad69bcff351d1190dce2149e39 *core/class/dzz/dzz_ftp.php
|
||||||
fd7a9da1373125b0d37910be8c2979c2 *core/class/dzz/dzz_io.php
|
8875d1f5668a8d89f1a2e95d8c3a34e4 *core/class/dzz/dzz_io.php
|
||||||
fc1a94ac8a1490bd69b1880395f69999 *core/class/dzz/dzz_memory.php
|
fc1a94ac8a1490bd69b1880395f69999 *core/class/dzz/dzz_memory.php
|
||||||
eb5c167211bc5df07bcb8dad61c3649a *core/class/dzz/dzz_mime.php
|
eb5c167211bc5df07bcb8dad61c3649a *core/class/dzz/dzz_mime.php
|
||||||
05d0c988894ba7e0de9c0a905bdee20b *core/class/dzz/dzz_mode.php
|
05d0c988894ba7e0de9c0a905bdee20b *core/class/dzz/dzz_mode.php
|
||||||
@@ -193,11 +199,19 @@ c78bc70a04ffabf583c0ba733679d38f *core/class/table/table_app_relative.php
|
|||||||
d75145f67e4bc4e6e7466fbcdcce70f6 *core/class/table/table_app_user.php
|
d75145f67e4bc4e6e7466fbcdcce70f6 *core/class/table/table_app_user.php
|
||||||
a3446196ae1775b239f4c6973de5633b *core/class/table/table_attachment.php
|
a3446196ae1775b239f4c6973de5633b *core/class/table/table_attachment.php
|
||||||
968a04f0828be632577394f16153cee3 *core/class/table/table_cache.php
|
968a04f0828be632577394f16153cee3 *core/class/table/table_cache.php
|
||||||
|
1eac3ff80cda050e351addd992101fde *core/class/table/table_connect.php
|
||||||
|
9a1ca8983e818b981f100273b6901ea2 *core/class/table/table_connect_disk.php
|
||||||
|
6fb492decbc1d6a30208a4736a542ff0 *core/class/table/table_connect_ftp.php
|
||||||
|
82080cb532120942f7ff5f2c58ec294b *core/class/table/table_connect_onedrive.php
|
||||||
|
3aea5f157c299f32393d75a7a89861d9 *core/class/table/table_connect_pan.php
|
||||||
|
9f0b065a0b534383933e15da5dfd4acb *core/class/table/table_connect_storage.php
|
||||||
51535981c41dfd78d748944eb07cf214 *core/class/table/table_cron.php
|
51535981c41dfd78d748944eb07cf214 *core/class/table/table_cron.php
|
||||||
f62eb658ab84ebc0d4d29304db39c1ee *core/class/table/table_district.php
|
f62eb658ab84ebc0d4d29304db39c1ee *core/class/table/table_district.php
|
||||||
5b47c663f64792c001ece96a7b93536d *core/class/table/table_failedlogin.php
|
5b47c663f64792c001ece96a7b93536d *core/class/table/table_failedlogin.php
|
||||||
718833cec496c58540ec6f5a6200b6c5 *core/class/table/table_hooks.php
|
718833cec496c58540ec6f5a6200b6c5 *core/class/table/table_hooks.php
|
||||||
379f64b4546595c05c5ee8dca0c5b768 *core/class/table/table_imagetype.php
|
379f64b4546595c05c5ee8dca0c5b768 *core/class/table/table_imagetype.php
|
||||||
|
d406545402b932f027d01d0eea077d09 *core/class/table/table_local_router.php
|
||||||
|
c6e3522aaedb7b8d240c818b424777c0 *core/class/table/table_local_storage.php
|
||||||
b333c9e8748737d29d090f31a502a147 *core/class/table/table_mailcron.php
|
b333c9e8748737d29d090f31a502a147 *core/class/table/table_mailcron.php
|
||||||
01da2848647c78326eb66e42b4d6b695 *core/class/table/table_mailqueue.php
|
01da2848647c78326eb66e42b4d6b695 *core/class/table/table_mailqueue.php
|
||||||
437f394ff257753b19aa059e0d18973f *core/class/table/table_notification.php
|
437f394ff257753b19aa059e0d18973f *core/class/table/table_notification.php
|
||||||
@@ -208,19 +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
|
||||||
5758c6bf142b4bf50c6b05ec908e1604 *core/class/table/table_pichome_folder.php
|
dc169efe36fdf79623277fb5a538c673 *core/class/table/table_pichome_ffmpeg_record.php
|
||||||
3737c426a306d4bea84af3b62abcc98d *core/class/table/table_pichome_folderresources.php
|
1cbfd07fc6cc2ec4ce28cae9d5334a95 *core/class/table/table_pichome_folder.php
|
||||||
26298713afbbb276e365e2b440454321 *core/class/table/table_pichome_palette.php
|
15cc26415b076bb08eeed7f76c40c45b *core/class/table/table_pichome_folderresources.php
|
||||||
f87c22d75232ca68d29ef25f6fe600a9 *core/class/table/table_pichome_resources.php
|
fb390b2cfce67236a7263549a430868b *core/class/table/table_pichome_folder_relation.php
|
||||||
2c3c0805dc3570b1c396c99d6bf21e18 *core/class/table/table_pichome_resourcestag.php
|
180233f6f8d234986280df5c3821fe24 *core/class/table/table_pichome_imagickrecord.php
|
||||||
74c9554b3b2424e3225b6deb0319e445 *core/class/table/table_pichome_resources_attr.php
|
a2a946f8d3a0180db50b1c7435d9516a *core/class/table/table_pichome_palette.php
|
||||||
3c4654178b6881addc9ff4d22e53f4dc *core/class/table/table_pichome_searchrecent.php
|
9070977794d2ca52379721d552c3e1e7 *core/class/table/table_pichome_resources.php
|
||||||
|
534452d059df927d062dac5bcd7b0de6 *core/class/table/table_pichome_resourcestag.php
|
||||||
|
c08ce988dad5ccead193db0a7f79b4f2 *core/class/table/table_pichome_resources_attr.php
|
||||||
|
09db8f5c9d2966f503bee5a4c6d6cc32 *core/class/table/table_pichome_resources_relation.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
|
||||||
aeceea90c6f02af3977b0e8bc4b93430 *core/class/table/table_pichome_taggroup.php
|
02ef950574c3af62f7b13fd61a61c2ce *core/class/table/table_pichome_taggroup.php
|
||||||
d47609a71b53ed6e9f782bd1c8ed9f21 *core/class/table/table_pichome_tagrelation.php
|
d36c3e504e4666b6a9301699ebeeeaa5 *core/class/table/table_pichome_taggroup_relation.php
|
||||||
ca284293fe8ad50612314166a5a42910 *core/class/table/table_pichome_vapp.php
|
1969387f935173b42f34c33c426e1fb7 *core/class/table/table_pichome_tagrelation.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
|
||||||
@@ -239,13 +259,15 @@ 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
|
||||||
b335e80b81831d8e322f43e404124d1d *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
|
||||||
d6f619ef3f14590fc5abc6ce76954d25 *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
|
||||||
56383d04d4bbd0537c55ff7ed42536f8 *core/cron/cron_database_backup.php
|
822967cb3ea4c82e3512d23af1a72f77 *core/cron/cron_pichome_delete.php
|
||||||
d0cc3acfbff044dbb11da3ba9019c58d *core/cron/cron_pichome_check_library.php
|
b9d93753f597cf46343c07234d01a37b *core/cron/cron_pichome_getimagecolor.php
|
||||||
8e19dc5a19821962504d18efc6e06bdf *core/cron/cron_pichome_updatelibrary_file.php
|
c04ccafee38c3e06208024a7cbe8a656 *core/cron/cron_pichome_getvideoinfo.php
|
||||||
|
3925c2ef1804631507efcdae43ec1108 *core/cron/cron_pichome_getwideothumb.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
|
||||||
@@ -286,10 +308,17 @@ d319f5d1c4053a4f85e52230cb2d9610 *core/template/default/common/header_simple_sta
|
|||||||
6e84ec265ebde27f99afe48722ac0324 *core/template/default/common/header_simple_start_none.htm
|
6e84ec265ebde27f99afe48722ac0324 *core/template/default/common/header_simple_start_none.htm
|
||||||
074801b30c5e8b069f72818e630edccc *core/template/default/common/header_simple_start_shou.htm
|
074801b30c5e8b069f72818e630edccc *core/template/default/common/header_simple_start_shou.htm
|
||||||
be29b10ff591a7ba8b75a7ab5c5795fa *core/template/default/common/header_start.htm
|
be29b10ff591a7ba8b75a7ab5c5795fa *core/template/default/common/header_start.htm
|
||||||
|
d24fa8de99184e15ae29538095c86ca5 *core/template/default/common/mobile_about.htm
|
||||||
|
3a2064d77bccd225deefdebb889a60a9 *core/template/default/common/mobile_simple_process.htm
|
||||||
|
9f398a015b731731c1ebf0f679392ff7 *core/template/default/common/mobile_simple_start.htm
|
||||||
c2e9e848f0ebc7bfd0849091242553b0 *core/template/default/common/safechk.htm
|
c2e9e848f0ebc7bfd0849091242553b0 *core/template/default/common/safechk.htm
|
||||||
79fa787397d5da73910266ef70cb3c34 *core/template/default/common/seccheck.htm
|
79fa787397d5da73910266ef70cb3c34 *core/template/default/common/seccheck.htm
|
||||||
1cb4d8cee04c97c0a580f882bc9da940 *core/template/default/common/showmessage.htm
|
1cb4d8cee04c97c0a580f882bc9da940 *core/template/default/common/showmessage.htm
|
||||||
5311bfefd0c1e992725939ec7822db95 *core/template/default/common/showtips.htm
|
5311bfefd0c1e992725939ec7822db95 *core/template/default/common/showtips.htm
|
||||||
|
258c2c32ae45bc1c86894e4f7de3e7cf *core/template/default/common/wx_ajax.htm
|
||||||
|
6bac1116a4ed718d8b22c9d724d5b4b3 *core/template/default/common/wx_appinfo.htm
|
||||||
|
9990d7555fdf8210fa4a2a8672f20fd5 *core/template/default/common/wx_menu.htm
|
||||||
|
768cfd48e43c4a205b1d40ab82acde57 *core/template/default/common/wx_mpinfo.htm
|
||||||
b3264d636cfbc3e4e435c55864714f97 *cron.php
|
b3264d636cfbc3e4e435c55864714f97 *cron.php
|
||||||
10a6d028457a6f41b495f3cfac282839 *data/attachment/appico/201712/21/094100vm3fpb41fo6a3x3f.png
|
10a6d028457a6f41b495f3cfac282839 *data/attachment/appico/201712/21/094100vm3fpb41fo6a3x3f.png
|
||||||
bbcc53d0fdd2a6d7ffcb6d093666d82c *data/attachment/appico/201712/21/095758ft5y66jma56y66vj.png
|
bbcc53d0fdd2a6d7ffcb6d093666d82c *data/attachment/appico/201712/21/095758ft5y66jma56y66vj.png
|
||||||
@@ -333,6 +362,7 @@ bbcc53d0fdd2a6d7ffcb6d093666d82c *data/attachment/appico/201712/21/183821do7f3qj
|
|||||||
2e04f226be54274ad6f1e2a2743c1fe9 *data/attachment/appico/201712/21/184312rthhhg9oujti9tuu.png
|
2e04f226be54274ad6f1e2a2743c1fe9 *data/attachment/appico/201712/21/184312rthhhg9oujti9tuu.png
|
||||||
c2185a7016a3def7be9915a6c645aa85 *data/attachment/appico/201712/21/210318m408uxuuq0464820.png
|
c2185a7016a3def7be9915a6c645aa85 *data/attachment/appico/201712/21/210318m408uxuuq0464820.png
|
||||||
76b1f31f8f51dec811759dc9a341b440 *data/attachment/appico/201712/21/210531aarsufnolsrao88u.png
|
76b1f31f8f51dec811759dc9a341b440 *data/attachment/appico/201712/21/210531aarsufnolsrao88u.png
|
||||||
|
d41d8cd98f00b204e9800998ecf8427e *data/attachment/qrcode/index.html
|
||||||
2894a0aaf1160440c47ecd1685115ed8 *data/attachment/sitelogo/sitelogo.png
|
2894a0aaf1160440c47ecd1685115ed8 *data/attachment/sitelogo/sitelogo.png
|
||||||
e447756e3a0f0ee86acc80120ad2e7af *data/avatar/camera.swf
|
e447756e3a0f0ee86acc80120ad2e7af *data/avatar/camera.swf
|
||||||
d41d8cd98f00b204e9800998ecf8427e *data/avatar/index.html
|
d41d8cd98f00b204e9800998ecf8427e *data/avatar/index.html
|
||||||
@@ -346,7 +376,335 @@ 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
|
||||||
|
bc4ab81b4c26d1a67a97a9f105201e7e *dzz/ffmpeg/classes/info.php
|
||||||
|
d8ed7668f7e78a7618f80db40f88f2b8 *dzz/ffmpeg/classes/thumb.php
|
||||||
|
b0ef25e19c4aa9e96c06f5fb6f091883 *dzz/ffmpeg/composer.json
|
||||||
|
a962e01165e345d26a86a07e9e098239 *dzz/ffmpeg/composer.lock
|
||||||
|
808d6119fa0a890a2554fa07e600ba7d *dzz/ffmpeg/convert.php
|
||||||
|
b49d7db7da975848af00a7597333d12e *dzz/ffmpeg/ffmpeg/avcodec-57.dll
|
||||||
|
21ec4a51425e9afcbba190f49c67b5c5 *dzz/ffmpeg/ffmpeg/avdevice-57.dll
|
||||||
|
3ab822e6d0012eb4770597e781c14e99 *dzz/ffmpeg/ffmpeg/avfilter-6.dll
|
||||||
|
88a743faddeaf1655939b817b71ef341 *dzz/ffmpeg/ffmpeg/avformat-57.dll
|
||||||
|
189344b6d3e26d671e8e0a1f7d6cae53 *dzz/ffmpeg/ffmpeg/avutil-55.dll
|
||||||
|
82a57a3cc2fff0522baca0192a953f99 *dzz/ffmpeg/ffmpeg/ffmpeg.exe
|
||||||
|
8daea3e9e525c00efa6e02156e2844bc *dzz/ffmpeg/ffmpeg/ffplay.exe
|
||||||
|
1619f9b6ef0f64109530fc1562e30452 *dzz/ffmpeg/ffmpeg/ffprobe.exe
|
||||||
|
109731440511e75afa2c4dcbe5b2d069 *dzz/ffmpeg/ffmpeg/postproc-54.dll
|
||||||
|
91ca5f81f37690d1e05772947b38e8a0 *dzz/ffmpeg/ffmpeg/swresample-2.dll
|
||||||
|
4f49c26e951e69007d60edf054d2a37a *dzz/ffmpeg/ffmpeg/swscale-4.dll
|
||||||
|
54eb4c59cb02380010cabc5d69aae021 *dzz/ffmpeg/getinfo.php
|
||||||
|
c81877414511a5f8c1e919c61526da2a *dzz/ffmpeg/thumb.php
|
||||||
|
723b27a2bb73cccf492ed827bc528a5c *dzz/ffmpeg/vendor/alchemy/binary-driver/LICENSE
|
||||||
|
9608b8205db23a377edd4f328af949bd *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/AbstractBinary.php
|
||||||
|
96d510df2561b5a55bc62b0d04db9861 *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/BinaryDriverTestCase.php
|
||||||
|
8a896d9d707fb67f1962f6a976e5d231 *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/BinaryInterface.php
|
||||||
|
0fd46f40c4e3202a8164737a714264cf *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/Configuration.php
|
||||||
|
0954b1eef6121b68dad4d80c21894215 *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ConfigurationAwareInterface.php
|
||||||
|
af7c5c6f7cfa3f1c126beee3a411c242 *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ConfigurationInterface.php
|
||||||
|
68d2357cdae12d1ec480769225fb1301 *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/Exception/ExceptionInterface.php
|
||||||
|
f801ad0033116492e4ad41279c809297 *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/Exception/ExecutableNotFoundException.php
|
||||||
|
6f2f62e174ef158d61faf6e152a6e929 *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/Exception/ExecutionFailureException.php
|
||||||
|
dd366e3976e72bae0a361f09a2e9b083 *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/Exception/InvalidArgumentException.php
|
||||||
|
ba6a4cd48e3e6860444ea98172efa81e *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/Listeners/DebugListener.php
|
||||||
|
e8044cd614f729099aaf06cec098ee39 *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/Listeners/ListenerInterface.php
|
||||||
|
b90a16f125bbaa495fa237f47608cf2b *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/Listeners/Listeners.php
|
||||||
|
a8cd3209927f31a8dc2ba30f9f2a9596 *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessBuilderFactory.php
|
||||||
|
410478165a365ce9137de8f4b2c96394 *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessBuilderFactoryAwareInterface.php
|
||||||
|
696828fe1a99af54fd769010a7414186 *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessBuilderFactoryInterface.php
|
||||||
|
bae08a03039e18b99ab2c54af139bece *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessRunner.php
|
||||||
|
9b93428a45daf67408d24308d5fee8a0 *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessRunnerAwareInterface.php
|
||||||
|
a4f633a45e925b74f9e6183860ea5afe *dzz/ffmpeg/vendor/alchemy/binary-driver/src/Alchemy/BinaryDriver/ProcessRunnerInterface.php
|
||||||
|
00a1dde07d5a01b87b8d88144d28801e *dzz/ffmpeg/vendor/autoload.php
|
||||||
|
8645d3a4e3ad87e7cf4d88a46717aab4 *dzz/ffmpeg/vendor/composer/autoload_classmap.php
|
||||||
|
6c4d89647de36d487eb4df5a15811ca2 *dzz/ffmpeg/vendor/composer/autoload_files.php
|
||||||
|
ebd044dc40fc5b9a604f2cbedae3ed50 *dzz/ffmpeg/vendor/composer/autoload_namespaces.php
|
||||||
|
b2ddf323d41ad0ca5a7b03e222b3370e *dzz/ffmpeg/vendor/composer/autoload_psr4.php
|
||||||
|
dd75da54153df0b1f03c313210fc1959 *dzz/ffmpeg/vendor/composer/autoload_real.php
|
||||||
|
d1d9b5c6305953362eebbff9674e7bc2 *dzz/ffmpeg/vendor/composer/autoload_static.php
|
||||||
|
a0899dd7d97c25fe1d872a542afa6081 *dzz/ffmpeg/vendor/composer/ClassLoader.php
|
||||||
|
9afc807b5b1b559c7ad25d6888bf81f1 *dzz/ffmpeg/vendor/composer/installed.json
|
||||||
|
955d5fe58c231244f6b49000f383b5e2 *dzz/ffmpeg/vendor/composer/LICENSE
|
||||||
|
a50fd5393dcb41620fc41c3f518bcf4c *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php
|
||||||
|
e35ef24b12fbe5f2f84ccc672f98cdb0 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcuCache.php
|
||||||
|
618e9af3b12fe878cea9ce5e423eca20 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ArrayCache.php
|
||||||
|
b5d73afc161bfed166625924c8ea762b *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/Cache.php
|
||||||
|
26d87077569e295c6756c1570f77a09f *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php
|
||||||
|
4a964374647e8e382d3b27a3cc9a9e31 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ChainCache.php
|
||||||
|
98f3f773762ebc38ce061247c4efed42 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ClearableCache.php
|
||||||
|
12e4b88c5d898376c87ed9479e0dd2cc *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseBucketCache.php
|
||||||
|
d8e9b8d2642d1a29d0aa7213798b63d4 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseCache.php
|
||||||
|
bc8beef2fe80e0d04cb928f510fba851 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ExtMongoDBCache.php
|
||||||
|
312b27938b2fdc1c70c6901e5bc33057 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php
|
||||||
|
ee7c6d7c0e1a14d0aa1f5c903e918815 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php
|
||||||
|
0f64b4439430153933765736a9ece6f8 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/FlushableCache.php
|
||||||
|
f74ee5c840f2c5d271f39e209079314f *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/LegacyMongoDBCache.php
|
||||||
|
3fdf86427a4f0109ce9341dc50fd8269 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcacheCache.php
|
||||||
|
88bc9e093e2eec68eef288b087bca15b *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcachedCache.php
|
||||||
|
bf868cd271e3d6eb99d9ab3d12b5b539 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MongoDBCache.php
|
||||||
|
f816fa843b55fb7c778714d306123f40 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiDeleteCache.php
|
||||||
|
5414d3be44a1ecaf0bfc6639482282da *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiGetCache.php
|
||||||
|
9d62291c86b91e00a2e6edfbabf48a10 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiOperationCache.php
|
||||||
|
3c2d9b2edcb0762627106a72a9978ca6 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiPutCache.php
|
||||||
|
7cf3f4c5e5ed5fb510a29e45e67e82eb *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/PhpFileCache.php
|
||||||
|
ed133f1e310c867bc9491be1b1dd218f *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/PredisCache.php
|
||||||
|
37071709227fafb6d2367192fb152ca7 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/RedisCache.php
|
||||||
|
7df56816c0abbae3416f818b12af2c58 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/RiakCache.php
|
||||||
|
0db5e9f19f4759cf6799d64c60a6fea5 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/SQLite3Cache.php
|
||||||
|
762a9eeeaeb3beeb0d4d98a8c6bff3ad *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/Version.php
|
||||||
|
227a4b0d014902b28174694e70320f96 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/VoidCache.php
|
||||||
|
e850799dda7685b2f751233ae87ce0af *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/WinCacheCache.php
|
||||||
|
1ce542c953e7b3331919275f0b6ec787 *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/XcacheCache.php
|
||||||
|
b99e9832e2dca5d3959db88eae740abf *dzz/ffmpeg/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ZendDataCache.php
|
||||||
|
6eb5e32a565f247832c2a00cf90ded7c *dzz/ffmpeg/vendor/doctrine/cache/LICENSE
|
||||||
|
d80f695b57baf75c3debfcfd1ac556ee *dzz/ffmpeg/vendor/evenement/evenement/LICENSE
|
||||||
|
93f10e7029e0340b10df1cbcfa398ebc *dzz/ffmpeg/vendor/evenement/evenement/src/Evenement/EventEmitter.php
|
||||||
|
29c942ea1b2d4f5578739c0bcd378a95 *dzz/ffmpeg/vendor/evenement/evenement/src/Evenement/EventEmitterInterface.php
|
||||||
|
dbb142914df6f2cca7573ae649ce2a9c *dzz/ffmpeg/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php
|
||||||
|
b9ec4658695d81c2087bb974eabc8adf *dzz/ffmpeg/vendor/monolog/monolog/LICENSE
|
||||||
|
2873d712055688c2b5b669c19b68b8f4 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/ErrorHandler.php
|
||||||
|
85f1ca2b1e239ba8d8c0e55c1d6e28e9 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Formatter/ChromePHPFormatter.php
|
||||||
|
8be3318942ea2a823a0508c2f3df9795 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Formatter/ElasticaFormatter.php
|
||||||
|
ba10a9093d8c9fe1a2b2acbbc52803fd *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Formatter/FlowdockFormatter.php
|
||||||
|
e992598b2f929f75aacd6de842eade90 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Formatter/FluentdFormatter.php
|
||||||
|
6393c1db9899b0f9e3fc4ad3d6a898dd *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php
|
||||||
|
83aaf607fb20ee8ea58ccba235dc2886 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Formatter/GelfMessageFormatter.php
|
||||||
|
228d3c0e1ef63cb6ed003fd65265c3b3 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Formatter/HtmlFormatter.php
|
||||||
|
27360f4944089a943597a2c0c08518ee *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php
|
||||||
|
d0242dde02733795e07ea48132b97611 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php
|
||||||
|
f5a72f125c3028e31dcc502c74ddc8e6 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Formatter/LogglyFormatter.php
|
||||||
|
73bd07ce780cf8deb8c4216c8b0f7829 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Formatter/LogstashFormatter.php
|
||||||
|
069d640fae028a0a9aeee615beb178ab *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php
|
||||||
|
a6010a1af0a4f21bcc55867afd40e161 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php
|
||||||
|
9934bbe7fbf1a7536cbabf0bb31fac8b *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Formatter/ScalarFormatter.php
|
||||||
|
0834b1ae7cf8f9db2d3ccf40c9e8238b *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Formatter/WildfireFormatter.php
|
||||||
|
63f1d9ccfadec8e2f6ebd22ff041bd69 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php
|
||||||
|
837be8c4a76bc37c36ef1f37d83de8b8 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php
|
||||||
|
3e697fe71a14d7052558ef2637a463a8 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/AbstractSyslogHandler.php
|
||||||
|
89ef97bd70a1876bbf0a151914a4ce26 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/AmqpHandler.php
|
||||||
|
0645ca35376e49867ebf7ccb634e8ca1 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/BrowserConsoleHandler.php
|
||||||
|
3ebccf758cc0a237686c060d1b78de6b *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/BufferHandler.php
|
||||||
|
40763f1c347ac1c67d4ef49f3f5edaa5 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php
|
||||||
|
dabb90eb921328aeb4d8a0c8df2b4e2b *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/CouchDBHandler.php
|
||||||
|
c73840367d25bd3fd774c84e0b791aa2 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/CubeHandler.php
|
||||||
|
03a2418311682d52f8ac22ff5652cd4a *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php
|
||||||
|
112f1ead45ef6f90324676d7d0f1ec6b *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/DeduplicationHandler.php
|
||||||
|
abc48686f395a089e55a2ec1a4fe4b78 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/DoctrineCouchDBHandler.php
|
||||||
|
f2dd1a8fce0c3bb7d81a858af3ce9e8d *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/DynamoDbHandler.php
|
||||||
|
8b14afbfb4ec910b55be774e612d79f0 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/ElasticSearchHandler.php
|
||||||
|
60ed22e1b4289a5210f9d8358b3d8f24 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/ErrorLogHandler.php
|
||||||
|
2d087808e02f95080212cc392aa5b2c5 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/FilterHandler.php
|
||||||
|
87e09424f9437e095915c57aad7f05e0 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ActivationStrategyInterface.php
|
||||||
|
b0d0c657952bc1d8a8337a6516abd097 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ChannelLevelActivationStrategy.php
|
||||||
|
f31a9ad59022efe0de63808d275a0031 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossed/ErrorLevelActivationStrategy.php
|
||||||
|
d858b5b5a26b7f8a60c6f687d8dbd0be *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/FingersCrossedHandler.php
|
||||||
|
b878045f62f8872d866d24fb23b47b44 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php
|
||||||
|
0c3e3f8711aa3641227a7cfd11dfa100 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php
|
||||||
|
94c7a4507949751276a6fef75b92a529 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php
|
||||||
|
f9577a2c76bd8b9da97907dda0da0899 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/GelfHandler.php
|
||||||
|
7eaa5f44f2c8c9bcefbfa8ddd82beba7 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php
|
||||||
|
a14d882a9afb7d9e3a5e2daa912cb3f5 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php
|
||||||
|
a1f1650992d82ebb8fd99fb8a1ad011a *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/HandlerWrapper.php
|
||||||
|
5594ae8adf68ccffb00232e97a887d72 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php
|
||||||
|
65fd860619a84b5b548d803f1450f18f *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/IFTTTHandler.php
|
||||||
|
8149a123e81e3dfee9185d5f14eccfc0 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php
|
||||||
|
c5b8e8b997dad122fb26d420d7eed287 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/LogEntriesHandler.php
|
||||||
|
beee53f1c85666d49978d0d8c0324a2c *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/LogglyHandler.php
|
||||||
|
e4702d256f19f3a3b6ee8f61c84d3a2b *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/MailHandler.php
|
||||||
|
780cc72b741c1299f2886e21a80188d5 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/MandrillHandler.php
|
||||||
|
99ec7108652f07752a6e4585f781ee92 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/MissingExtensionException.php
|
||||||
|
44ade8a7a6002a6210b36c26c89cbacb *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php
|
||||||
|
119019e45d2c65cbe85a3aadc28771fe *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/NativeMailerHandler.php
|
||||||
|
77c5f0d82d6498b12f3eee4a0a282b2a *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php
|
||||||
|
252c1e7aa89297f3b65138c5aa12f222 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/NullHandler.php
|
||||||
|
31553b7fa8087df65179bdc673d678ae *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php
|
||||||
|
e8c8672646919427bb614bf2e7fe8710 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/PsrHandler.php
|
||||||
|
807422b20660ffffc7fb99c106ceb4dc *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/PushoverHandler.php
|
||||||
|
efd4fa559b9b67d87d7ae287fae71345 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php
|
||||||
|
b94192bac0cab9928cbce17b8dfa9d6f *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/RedisHandler.php
|
||||||
|
99bfe1a418679c198c97a3270eb46cb3 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/RollbarHandler.php
|
||||||
|
c1d51504a874d216a73d7a16d8d74b15 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php
|
||||||
|
85fc2f7a5cf4f34749aa70cbc8c732e6 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/SamplingHandler.php
|
||||||
|
139c7285b82094a3673cccf7a3c86841 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/Slack/SlackRecord.php
|
||||||
|
2229f1f8a0b544bc9d6e4d8810150b0f *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php
|
||||||
|
7a0b448bef960dd749c97effcd77bf33 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/SlackHandler.php
|
||||||
|
81c05f3ced53a5e674f292b085c766d5 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/SlackWebhookHandler.php
|
||||||
|
76a96570463de4d20951fd93fff8f891 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/SocketHandler.php
|
||||||
|
6f3198651a1f726042b35d10dfbea267 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
|
||||||
|
852668d8e8374f7954025a30620cb6fd *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php
|
||||||
|
ac625636dc450133b90c5821d98e2a7a *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/SyslogHandler.php
|
||||||
|
3585d916f9c3280d9d2c61abc6aa8c0a *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdp/UdpSocket.php
|
||||||
|
647b72900ad2b1c62809ca2e5a34b7b5 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php
|
||||||
|
0bb921323349e1bc2f5d46ce693efd85 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php
|
||||||
|
402e708018cbc501302c2f6640601d77 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php
|
||||||
|
dc2ee6716c9dee2ef3d420c41ac0dc2b *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php
|
||||||
|
62f20f9746a11f097467f627b0b93abe *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Logger.php
|
||||||
|
07c3c7e0d7e876400abfde105de7ac81 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Processor/IntrospectionProcessor.php
|
||||||
|
b753a93665221b4ec3bb9b7e673a94a6 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Processor/MemoryPeakUsageProcessor.php
|
||||||
|
da2d9c474d01225142b3278e0e6c88e3 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Processor/MemoryProcessor.php
|
||||||
|
6497ea95b20d9ae90826819cbc6d0676 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Processor/MemoryUsageProcessor.php
|
||||||
|
aec839697dce14f2b35662ec83f8098d *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php
|
||||||
|
62476ed0523a188b116ecccebac90a2a *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Processor/ProcessIdProcessor.php
|
||||||
|
5dd810e614913d06486955e380fee8d2 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php
|
||||||
|
21547825abf621432f105ca2bd7a1514 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Processor/PsrLogMessageProcessor.php
|
||||||
|
9ae9918278d274d04294edcf850fc715 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Processor/TagProcessor.php
|
||||||
|
3d6404d4111a427bb6c7801be5cc7d58 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Processor/UidProcessor.php
|
||||||
|
55fb49548b06dbb2e082d1a133b37c09 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Processor/WebProcessor.php
|
||||||
|
d84f57e474a31a4285ad62a37ed8fa94 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Registry.php
|
||||||
|
9d15d64a9f3654e872927409135b1435 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/ResettableInterface.php
|
||||||
|
759781d77e90492c3b976c436103c834 *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/SignalHandler.php
|
||||||
|
e11e634ee0a8b5ad5fedeec5de216c5a *dzz/ffmpeg/vendor/monolog/monolog/src/Monolog/Utils.php
|
||||||
|
7956ad02ea6a9f0c01dc81190ba7f2f2 *dzz/ffmpeg/vendor/neutron/temporary-filesystem/LICENSE
|
||||||
|
0939f19b04832d77188eb84aa16b6a33 *dzz/ffmpeg/vendor/neutron/temporary-filesystem/src/Neutron/TemporaryFilesystem/IOException.php
|
||||||
|
0a42ed50c5a66fdc90e796aede545df7 *dzz/ffmpeg/vendor/neutron/temporary-filesystem/src/Neutron/TemporaryFilesystem/Manager.php
|
||||||
|
472569cbbccad4b6621260e1f70f52f4 *dzz/ffmpeg/vendor/neutron/temporary-filesystem/src/Neutron/TemporaryFilesystem/TemporaryFilesystem.php
|
||||||
|
03250e9c659f57f70fecb4bd9d995eca *dzz/ffmpeg/vendor/neutron/temporary-filesystem/src/Neutron/TemporaryFilesystem/TemporaryFilesystemInterface.php
|
||||||
|
e47f941daf18beb04ec67ea5a52e56f1 *dzz/ffmpeg/vendor/php-ffmpeg/extras/LICENSE
|
||||||
|
30a05a2e2c6cf5b33941193809adbd3a *dzz/ffmpeg/vendor/php-ffmpeg/extras/src/FFMpeg/Format/Video/ThreeGP.php
|
||||||
|
b3ef8932ab56ebb4d73fa83c06f8f76a *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/LICENSE
|
||||||
|
3f2a1eefc632db5dd2a49eb54d16417c *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Coordinate/AspectRatio.php
|
||||||
|
6178ac75e06de4c9ad3e67114562184b *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Coordinate/Dimension.php
|
||||||
|
382ea0955ea7110b53fd48a4b989d5f3 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Coordinate/FrameRate.php
|
||||||
|
96644e05e69c59d7b518e372e098705d *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Coordinate/Point.php
|
||||||
|
d5e84f590ae637cfd23754a91c906b87 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Coordinate/TimeCode.php
|
||||||
|
147c06c64f4ce5a3831409375708e00f *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Driver/FFMpegDriver.php
|
||||||
|
e350c25b7015ec5e969f5d717b666810 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Driver/FFProbeDriver.php
|
||||||
|
2d4aa994e3325f9b377920196d9fbe9a *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Exception/ExceptionInterface.php
|
||||||
|
2555733d86c055a47da88b9ad95a360e *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Exception/ExecutableNotFoundException.php
|
||||||
|
614dd1c1c3222a31aa2258d5d6d10361 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Exception/InvalidArgumentException.php
|
||||||
|
2659810700f9fd3beeb30af95404e75f *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Exception/LogicException.php
|
||||||
|
b52e3759036a2aa049e3368c3dbf1975 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Exception/RuntimeException.php
|
||||||
|
5c44c830e35b78a5ff6edd618af9690b *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/FFMpeg.php
|
||||||
|
ab47b03fdcb63ab4f5b9e40ed2ac672b *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/FFMpegServiceProvider.php
|
||||||
|
27e863827f829793f7a94da133bcef0d *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/FFProbe/DataMapping/AbstractData.php
|
||||||
|
bc530a2abb7d914097a5d9148290942b *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/FFProbe/DataMapping/Format.php
|
||||||
|
e4eb8d24f7e958635425deb244d06ef4 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/FFProbe/DataMapping/Stream.php
|
||||||
|
15b696d8f4ef6f8b56e6b83848deac11 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/FFProbe/DataMapping/StreamCollection.php
|
||||||
|
c418c676e5e8467b85fb108a16463c7d *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/FFProbe/Mapper.php
|
||||||
|
773f68f6c606afe3fbc30fa6b9155419 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/FFProbe/MapperInterface.php
|
||||||
|
7246e80fbc397aa9c589b89d7fa2b38c *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/FFProbe/OptionsTester.php
|
||||||
|
3d4092a943efcbca1edd156ff7dd5391 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/FFProbe/OptionsTesterInterface.php
|
||||||
|
2f5ff5ae6ea7930acba43f7acab76881 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/FFProbe/OutputParser.php
|
||||||
|
35f114cd7032a223568cc84832575577 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/FFProbe/OutputParserInterface.php
|
||||||
|
3d324e881fbce87903dfc53d25c182c5 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/FFProbe.php
|
||||||
|
7d44e30f33387edc5716d853aa710b17 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Audio/AddMetadataFilter.php
|
||||||
|
6b4d69a11dca487b12e8994d2ef428c6 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Audio/AudioClipFilter.php
|
||||||
|
dcb7f2ea9cd7907204b4b96b2cf28c4a *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Audio/AudioFilterInterface.php
|
||||||
|
312ec0e6e04e518cf8954e00442cd5c9 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Audio/AudioFilters.php
|
||||||
|
b08a4f2881233642b8bceeef28d53c9a *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Audio/AudioResamplableFilter.php
|
||||||
|
f7167e2e888d4408c19ea81cb0381c8b *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Audio/SimpleFilter.php
|
||||||
|
9ce164a0c303ec49d0fd76dae79120a9 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Concat/ConcatFilterInterface.php
|
||||||
|
845459dc4adfc32853c0c696874404ca *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Concat/ConcatFilters.php
|
||||||
|
03b697960d53dec79dac6a82fe0f9607 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/FilterInterface.php
|
||||||
|
3601be2f8b76c4bfe6b2f0fea253e1ab *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/FiltersCollection.php
|
||||||
|
06325fbce354b51d7f0d6b604c5cdbf2 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Frame/DisplayRatioFixerFilter.php
|
||||||
|
e5d0b0a311f14116b11a961d12f279db *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Frame/FrameFilterInterface.php
|
||||||
|
3bd2e53a26a2ffd73daea172484b85ae *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Frame/FrameFilters.php
|
||||||
|
e8689404dc110579b660ab9e7b2d66e4 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Gif/GifFilterInterface.php
|
||||||
|
62b3a00f0657c8630b3f8bad7d763f8b *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Gif/GifFilters.php
|
||||||
|
a8d5eff219ab95e28e8e82dd5744488b *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Video/ClipFilter.php
|
||||||
|
f710db74c58bcf3d6c5f3f8b59a9604a *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Video/CropFilter.php
|
||||||
|
d6b03a4ae4440de4bf8e96d0c70001b2 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Video/CustomFilter.php
|
||||||
|
7daa1dd49ddf8e7a788bb7ad0aa46761 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Video/ExtractMultipleFramesFilter.php
|
||||||
|
cb9e484907a06f2b6b914bbf1cdb7bfc *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Video/FrameRateFilter.php
|
||||||
|
050d2a56c655cc64cb049e0da29c5f01 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Video/PadFilter.php
|
||||||
|
17b73c06e261c7552ef17aa0f6e5193e *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Video/ResizeFilter.php
|
||||||
|
4ab87ee2139ab91734d5324a1a000bef *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Video/RotateFilter.php
|
||||||
|
ad492156eb5c8c54d453be6488c57157 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Video/SynchronizeFilter.php
|
||||||
|
fbae25bbadb0138dbf63a13d596fa276 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Video/VideoFilterInterface.php
|
||||||
|
6cbabb4a04368afae6487f20cd5d4f27 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Video/VideoFilters.php
|
||||||
|
ebd757acb0a7e0e97068a62d820bf645 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Video/WatermarkFilter.php
|
||||||
|
59e99e26cb91df3f94dbeea6ae0c0774 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Waveform/WaveformDownmixFilter.php
|
||||||
|
09b397a7b85684697e5a9fb863822dda *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Waveform/WaveformFilterInterface.php
|
||||||
|
052f1eb21bf150eff7543e73c200054a *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Filters/Waveform/WaveformFilters.php
|
||||||
|
119dabdbf2f0a41e4500704d90e30d64 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/Audio/Aac.php
|
||||||
|
0fddd883da53bfc64636337742a4fe6f *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/Audio/DefaultAudio.php
|
||||||
|
2f7789a7803431f8371ed99653cec5ce *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/Audio/Flac.php
|
||||||
|
30ff3328e6ae80465f5a4012343c79c4 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/Audio/Mp3.php
|
||||||
|
eb67afc073c2425a45e6a4f8e70252bb *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/Audio/Vorbis.php
|
||||||
|
a7c3e586a578ad6bd57fd9837c92dded *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/Audio/Wav.php
|
||||||
|
4d5f4f25e22a4ffef7503982d1d49e16 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/AudioInterface.php
|
||||||
|
705ca1b2113661670a4c4f4abc718239 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/FormatInterface.php
|
||||||
|
119c2a28226b1ae6fb4da3fe6930c202 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/FrameInterface.php
|
||||||
|
e8ee4fab9636a6bd02b261471b50c7c3 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/ProgressableInterface.php
|
||||||
|
eb72702d76cdba4a02a46feaad786354 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/ProgressListener/AbstractProgressListener.php
|
||||||
|
5aa358a639d421e67129080e5b4c3abd *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/ProgressListener/AudioProgressListener.php
|
||||||
|
bf1e3c74b57299ff363e52a37015afeb *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/ProgressListener/VideoProgressListener.php
|
||||||
|
ebc2e8c3a07cbb66b344e8ad33e606b8 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/Video/DefaultVideo.php
|
||||||
|
e2c9560c1b5df92aaddeb0096731f981 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/Video/Ogg.php
|
||||||
|
f134d00a49485bc75bbee2d22b13ad70 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/Video/WebM.php
|
||||||
|
b5144368c4ed52763d180e5016c7d3b3 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/Video/WMV.php
|
||||||
|
b0bcc8152a69d326ce563484ea977de2 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/Video/WMV3.php
|
||||||
|
6b9720266a5866018ab037c6db9974cb *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/Video/X264.php
|
||||||
|
ca6dea2723ca79d6355393dfff66d320 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Format/VideoInterface.php
|
||||||
|
59f5b0b1d8c73ee52056feceeb66ceb6 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Media/AbstractMediaType.php
|
||||||
|
2676e4bbba4bdccdb6e0ec5ff51447ee *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Media/AbstractStreamableMedia.php
|
||||||
|
73ed41edf44e106623c66161b4117118 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Media/Audio.php
|
||||||
|
ebbd534ae0ed523948266824d1122130 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Media/Concat.php
|
||||||
|
e79b77c96d11939c32734176456a6a7f *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Media/Frame.php
|
||||||
|
72092853ac6af732f97a7a6897b6fb55 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Media/Gif.php
|
||||||
|
175de54f072fceb90f8ad1cc0b86e153 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Media/MediaTypeInterface.php
|
||||||
|
c02497b7b7cad4d4a1f1e764b0d5365f *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Media/Video.php
|
||||||
|
2b4112b532509052b3b94ee90803ffd5 *dzz/ffmpeg/vendor/php-ffmpeg/php-ffmpeg/src/FFMpeg/Media/Waveform.php
|
||||||
|
1a74629072fd794937be394ab689327e *dzz/ffmpeg/vendor/psr/log/LICENSE
|
||||||
|
26eb607e5318188016615326bd89a9be *dzz/ffmpeg/vendor/psr/log/Psr/Log/AbstractLogger.php
|
||||||
|
7d2f0bd1583524d739fff12f0507de65 *dzz/ffmpeg/vendor/psr/log/Psr/Log/InvalidArgumentException.php
|
||||||
|
cfac6d4dc3ebf2c7f0e49f74d1bcd44a *dzz/ffmpeg/vendor/psr/log/Psr/Log/LoggerAwareInterface.php
|
||||||
|
221f47ac7d3da4800d2c0e26cdfb351b *dzz/ffmpeg/vendor/psr/log/Psr/Log/LoggerAwareTrait.php
|
||||||
|
1ae09682227159416a299d0ea940d34e *dzz/ffmpeg/vendor/psr/log/Psr/Log/LoggerInterface.php
|
||||||
|
d1152080b1b7a8812f6a3023b63f0fc0 *dzz/ffmpeg/vendor/psr/log/Psr/Log/LoggerTrait.php
|
||||||
|
cc226142fd5d390d030b39c61cf97843 *dzz/ffmpeg/vendor/psr/log/Psr/Log/LogLevel.php
|
||||||
|
d66f51c1fc729b09e54fd8821c7dfe46 *dzz/ffmpeg/vendor/psr/log/Psr/Log/NullLogger.php
|
||||||
|
4cf3d5257fbeda527d3f9d8e1245a5fa *dzz/ffmpeg/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
|
||||||
|
67b883e281582c75c5f95125c7bdeac3 *dzz/ffmpeg/vendor/psr/log/Psr/Log/Test/TestLogger.php
|
||||||
|
b14dc5c2f06a5bc04c45d88afd84884d *dzz/ffmpeg/vendor/symfony/filesystem/Exception/ExceptionInterface.php
|
||||||
|
6164d7968ea4b20f372bf9b15c00dabd *dzz/ffmpeg/vendor/symfony/filesystem/Exception/FileNotFoundException.php
|
||||||
|
fefaaa9c9dc136c8e7fb3ea7c3ccbae9 *dzz/ffmpeg/vendor/symfony/filesystem/Exception/InvalidArgumentException.php
|
||||||
|
19c3d259651ef07ece9b1cadc421a7e6 *dzz/ffmpeg/vendor/symfony/filesystem/Exception/IOException.php
|
||||||
|
b0c33767d71094ea350851390caa359f *dzz/ffmpeg/vendor/symfony/filesystem/Exception/IOExceptionInterface.php
|
||||||
|
ec0811c83a3a3c4fd53be9a6ea0ff890 *dzz/ffmpeg/vendor/symfony/filesystem/Filesystem.php
|
||||||
|
e0fbf93ee3e79762c694682e010f721d *dzz/ffmpeg/vendor/symfony/filesystem/LICENSE
|
||||||
|
638f69786aaefa6c38c98251a50bb9bf *dzz/ffmpeg/vendor/symfony/polyfill-ctype/bootstrap.php
|
||||||
|
20ecd9afc6e70ab709984cc5c8258b12 *dzz/ffmpeg/vendor/symfony/polyfill-ctype/composer.json
|
||||||
|
72cb4d141eac1392c3de359dba4d44e0 *dzz/ffmpeg/vendor/symfony/polyfill-ctype/Ctype.php
|
||||||
|
f082cc77e5ce76aa7e7fad8aa1d0cbeb *dzz/ffmpeg/vendor/symfony/polyfill-ctype/LICENSE
|
||||||
|
5d377fc96f58b9fb6acc171e2b93162a *dzz/ffmpeg/vendor/symfony/polyfill-ctype/README.md
|
||||||
|
723a4615b94a21c979c9cfe85d81e50a *dzz/ffmpeg/vendor/symfony/process/Exception/ExceptionInterface.php
|
||||||
|
b3c8598f88e6ac643dda6cb6f29fb3ba *dzz/ffmpeg/vendor/symfony/process/Exception/InvalidArgumentException.php
|
||||||
|
72ef3efed027815b107a71f4e987754d *dzz/ffmpeg/vendor/symfony/process/Exception/LogicException.php
|
||||||
|
90c118a801c9f293c2f341fffa30a14a *dzz/ffmpeg/vendor/symfony/process/Exception/ProcessFailedException.php
|
||||||
|
00f760a2731cbd7e7a145e02b30316f6 *dzz/ffmpeg/vendor/symfony/process/Exception/ProcessTimedOutException.php
|
||||||
|
5173fb5053527af7b83077085b192d67 *dzz/ffmpeg/vendor/symfony/process/Exception/RuntimeException.php
|
||||||
|
cbc4b041f47b68813926f969d1efb3aa *dzz/ffmpeg/vendor/symfony/process/ExecutableFinder.php
|
||||||
|
15de8d8c8304dac15e5c0d02002d5be2 *dzz/ffmpeg/vendor/symfony/process/InputStream.php
|
||||||
|
e0fbf93ee3e79762c694682e010f721d *dzz/ffmpeg/vendor/symfony/process/LICENSE
|
||||||
|
60202cced0024b3c169042784e6d9970 *dzz/ffmpeg/vendor/symfony/process/PhpExecutableFinder.php
|
||||||
|
952eb026f14ebf3970f7414b7cf2cf53 *dzz/ffmpeg/vendor/symfony/process/PhpProcess.php
|
||||||
|
955fe0e12dc2ee1e63cbca26dd165082 *dzz/ffmpeg/vendor/symfony/process/Pipes/AbstractPipes.php
|
||||||
|
7cd7e2e866c93db5d68f77a51626a43b *dzz/ffmpeg/vendor/symfony/process/Pipes/PipesInterface.php
|
||||||
|
612a165aa73ba1d9a7a42c480e3b8b05 *dzz/ffmpeg/vendor/symfony/process/Pipes/UnixPipes.php
|
||||||
|
5ccc8e5e3bd352e3bbcaddf1059c9a1a *dzz/ffmpeg/vendor/symfony/process/Pipes/WindowsPipes.php
|
||||||
|
882fab9690637ec4cf9746b825b21e15 *dzz/ffmpeg/vendor/symfony/process/Process.php
|
||||||
|
2a3b661974c0cd7432f29595ccdb6a93 *dzz/ffmpeg/vendor/symfony/process/ProcessBuilder.php
|
||||||
|
13625bd3819dabb00e70409aa8b8cc54 *dzz/ffmpeg/vendor/symfony/process/ProcessUtils.php
|
||||||
|
634039b168dae271922c99af9b144e4b *dzz/imageColor/classes/getcolor.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
|
||||||
@@ -360,7 +718,7 @@ a35efffbc8ffb84994c399cac01fb592 *dzz/images/addUser.png
|
|||||||
a69a0a404fedd3a334f295db86001589 *dzz/images/default/loading.gif
|
a69a0a404fedd3a334f295db86001589 *dzz/images/default/loading.gif
|
||||||
25b023c9a97dc186e7ef8283c67af083 *dzz/images/default/loading.png
|
25b023c9a97dc186e7ef8283c67af083 *dzz/images/default/loading.png
|
||||||
338655a5d330e7af1ef36a314c689637 *dzz/images/default/new.gif
|
338655a5d330e7af1ef36a314c689637 *dzz/images/default/new.gif
|
||||||
2894a0aaf1160440c47ecd1685115ed8 *dzz/images/default/notice_system.png
|
a949e13639231f3ab4192465ff2538ac *dzz/images/default/notice_system.png
|
||||||
57141c24c019986b50b2d21e2f0dd49d *dzz/images/default/system/ALIOSS.png
|
57141c24c019986b50b2d21e2f0dd49d *dzz/images/default/system/ALIOSS.png
|
||||||
9da1d1376afbe5d5223013f4cbc83d56 *dzz/images/default/system/baiduPCS.png
|
9da1d1376afbe5d5223013f4cbc83d56 *dzz/images/default/system/baiduPCS.png
|
||||||
0ff58bff7e319cdc192ca22c43ed8af9 *dzz/images/default/system/bucket.png
|
0ff58bff7e319cdc192ca22c43ed8af9 *dzz/images/default/system/bucket.png
|
||||||
@@ -628,17 +986,20 @@ bae84af37dba1b272ef439708d1b8e9f *dzz/images/extimg_small/xml.png
|
|||||||
837ef96d27e248682869b7678b73943a *dzz/images/extimg_small/y.png
|
837ef96d27e248682869b7678b73943a *dzz/images/extimg_small/y.png
|
||||||
3d8f7e76431bd2009e5e949156358be5 *dzz/images/extimg_small/zip.png
|
3d8f7e76431bd2009e5e949156358be5 *dzz/images/extimg_small/zip.png
|
||||||
50c5e3e79b276c92df6cc52caeb464f0 *dzz/images/loading.gif
|
50c5e3e79b276c92df6cc52caeb464f0 *dzz/images/loading.gif
|
||||||
2894a0aaf1160440c47ecd1685115ed8 *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
|
||||||
|
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
|
||||||
7f4ee1937cdefb0a21e54182115ca399 *dzz/pdf/build/pdf.worker.js.map
|
7f4ee1937cdefb0a21e54182115ca399 *dzz/pdf/build/pdf.worker.js.map
|
||||||
1a7e0ce8221581ed65bfac95a3551ac6 *dzz/pdf/dzz_app_pdf.xml
|
1a7e0ce8221581ed65bfac95a3551ac6 *dzz/pdf/dzz_app_pdf.xml
|
||||||
722e520dc55f03433da72d8688b12064 *dzz/pdf/index.php
|
f0abf463edbab20153b02a621c71e493 *dzz/pdf/index.php
|
||||||
e85831f11e1b0a5f779431998958a899 *dzz/pdf/template/viewer.htm
|
e85831f11e1b0a5f779431998958a899 *dzz/pdf/template/viewer.htm
|
||||||
6d23b789047f6fa8f6923e7ae411d642 *dzz/pdf/web/cmaps/78-EUC-H.bcmap
|
6d23b789047f6fa8f6923e7ae411d642 *dzz/pdf/web/cmaps/78-EUC-H.bcmap
|
||||||
5d7d0e488fb52b2a4f8d240b0d572e89 *dzz/pdf/web/cmaps/78-EUC-V.bcmap
|
5d7d0e488fb52b2a4f8d240b0d572e89 *dzz/pdf/web/cmaps/78-EUC-V.bcmap
|
||||||
@@ -1037,12 +1398,14 @@ eba5f5cecbb2a1cf2064e55c8c0de177 *dzz/pdf/web/locale/vi/viewer.properties
|
|||||||
92a90fc7c9d2368a1f327355cf4280fd *dzz/pdf/web/locale/zu/viewer.properties
|
92a90fc7c9d2368a1f327355cf4280fd *dzz/pdf/web/locale/zu/viewer.properties
|
||||||
612418155cdf17524db3bc6514cda751 *dzz/pdf/web/viewer.css
|
612418155cdf17524db3bc6514cda751 *dzz/pdf/web/viewer.css
|
||||||
badeea57fda90d27e54a9f9488ac4c43 *dzz/pdf/web/viewer.html
|
badeea57fda90d27e54a9f9488ac4c43 *dzz/pdf/web/viewer.html
|
||||||
6cf3b8dd7fae022af726634be28de37d *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
|
||||||
9702eb58e8b17ea4d968e2f0f6a7d14e *dzz/pichome/admin.php
|
57cbaacb499474a5ca6c14a86d411512 *dzz/pichome/admin.php
|
||||||
8d4800ca355e9f6a54e78f5349717829 *dzz/pichome/ajax.php
|
3d3aa981f09612419f1cffe5cfa4f4ab *dzz/pichome/ajax.php
|
||||||
0ca8de11ebaf13e2a461dc37a5182f65 *dzz/pichome/checkexport.php
|
c550e347457729fb118592d6be50d050 *dzz/pichome/checkexport.php
|
||||||
fc77d297675059d228b072772c97071b *dzz/pichome/class/class_eagleexport.php
|
b6201d143beca6278320d101db08695f *dzz/pichome/class/class_eagleexport.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
|
||||||
@@ -1056,55 +1419,88 @@ 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
|
||||||
29640dfed0df1100d9c8e4d819b4c593 *dzz/pichome/css/pc/admin.css
|
87163334cb48cff22fdabe3e8e615cc7 *dzz/pichome/css/mobile/common.css
|
||||||
8106960af48c6ce411b168662f3a4386 *dzz/pichome/css/pc/common.css
|
0f7c873eb385eefd56b37a025b978eb4 *dzz/pichome/css/mobile/details.css
|
||||||
|
ed97c351d8b9390710c7421c4197bcf1 *dzz/pichome/css/mobile/image.css
|
||||||
|
86078d14becfe840e42b75da9b7193ec *dzz/pichome/css/mobile/index.css
|
||||||
|
f1e227b4a2e8a0345daaf6141e1856dd *dzz/pichome/css/mobile/personal.css
|
||||||
|
3af6f1b9febc5c78806ac865f8d18ebb *dzz/pichome/css/mobile/screen.css
|
||||||
|
cc6d3bf279ed780dd69d0dcc250bd442 *dzz/pichome/css/mobile/share.css
|
||||||
|
d56b57b7000fef922f9031726810a467 *dzz/pichome/css/pc/AddcollectionDialog.css
|
||||||
|
509deac393472e307756fc9deee67276 *dzz/pichome/css/pc/admin.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
|
||||||
73f2dc27a3b58222ac1c0cfebb8bd4cb *dzz/pichome/css/pc/index.css
|
1b81547e0d91292d2a77153774bbf013 *dzz/pichome/css/pc/image.css
|
||||||
|
c0a5a61c77eb071519b9e148edafdacd *dzz/pichome/css/pc/index.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
|
||||||
e19d97f977fa3d2316168bbe8e4101e5 *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
|
||||||
a735516da3ba332a53a8bfad48610aea *dzz/pichome/details.php
|
7dded9715f7c5c2408f7905b6cddf810 *dzz/pichome/delete.php
|
||||||
8cbb24ea1bf37279c62c847f69984107 *dzz/pichome/download.php
|
0bc21a1af1a289191cf5a48523f2cf8c *dzz/pichome/details.php
|
||||||
|
214cabed470fd756b227851860513e6b *dzz/pichome/download.php
|
||||||
e245c8b1f860c8252eade7f3dec51879 *dzz/pichome/dzz_app_pichome.xml
|
e245c8b1f860c8252eade7f3dec51879 *dzz/pichome/dzz_app_pichome.xml
|
||||||
15b6fca48208432cea1930bb57e0db5a *dzz/pichome/exportfile.php
|
43f2f7de28bea4de51cde2b4f1f8e82b *dzz/pichome/exportfile.php
|
||||||
06880b4a650311dd50933bf9a5aece2a *dzz/pichome/filelist.php
|
af14eda8139abc2d09e421cc4b27a1b4 *dzz/pichome/exportfilecheck.php
|
||||||
ae3317853c4561197a9a649000597886 *dzz/pichome/function/function_common.php
|
f0b8396b0798d20e257802e0284c1c99 *dzz/pichome/filelist.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
|
||||||
f308fd14dbe2e06349ef366d6f9aa2c7 *dzz/pichome/image/palette.png
|
f308fd14dbe2e06349ef366d6f9aa2c7 *dzz/pichome/image/palette.png
|
||||||
efdb2935803c55f32f283c48abed9dbd *dzz/pichome/image/phlogo.png
|
d51db8efca781201f641a41b57420dfe *dzz/pichome/image/phlogo.png
|
||||||
fcb60dfc7f223068eac9d35e8028617c *dzz/pichome/index.php
|
438384ffb6dbf09c63f9c0254c57340a *dzz/pichome/index.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
|
||||||
|
d37b5113b01a2ef9fb6cf447a5dcff89 *dzz/pichome/js/mobile/pinchzoom.js
|
||||||
|
57c1fe0c8799e3ad619c0ef6e719bfbc *dzz/pichome/js/mobile/plug/colorPicker/jquery.minicolors.css
|
||||||
|
043afc4dc77f0ef3f9923c38170c52cf *dzz/pichome/js/mobile/plug/colorPicker/jquery.minicolors.min.js
|
||||||
|
d36c75e3d8880ebfece375fd7cd46787 *dzz/pichome/js/mobile/plug/colorPicker/jquery.minicolors.png
|
||||||
|
b5d4479aca9121ce9ed95af5d77c10d9 *dzz/pichome/js/mobile/plug/vant/index.css
|
||||||
|
3d5fcccab75bba76cc259351e875d42a *dzz/pichome/js/mobile/plug/vant/vant.min.js
|
||||||
29b8b6254aaaa263cbb0fe8272f05a59 *dzz/pichome/js/pc/audioPlay.js
|
29b8b6254aaaa263cbb0fe8272f05a59 *dzz/pichome/js/pc/audioPlay.js
|
||||||
cda62b1eb2f8a116c0016cd3a603e014 *dzz/pichome/js/pc/headerMethods.js
|
27f51d96c2a6cca4ec0abbce6e0a24db *dzz/pichome/js/pc/components/addcollect.js
|
||||||
d752d1878252e486cc0244887cfadbae *dzz/pichome/js/pc/headerWatch.js
|
1bfeb0538751df45e883d9751aae14a3 *dzz/pichome/js/pc/components/collect.js
|
||||||
|
56972b38bc78798895d3bb917f4aeb5e *dzz/pichome/js/pc/components/collectdialog.js
|
||||||
|
2ffc868ac18c18d948c3ae5576afa98b *dzz/pichome/js/pc/headerMethods.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
|
||||||
7fe276a3e0d5ed3a6f2c84a9440c4add *dzz/pichome/js/pc/plug/wavesurfer.js
|
7292e14f4f8fad306d40a6d7d586b225 *dzz/pichome/js/pc/plug/wavesurfer.js
|
||||||
|
ef4591bffb23a90c8d9e0d02a7b5c15f *dzz/pichome/js/pc/row-grid.js
|
||||||
|
ec0f395ef389b9e369cf0bf354d2dd01 *dzz/pichome/js/pc/waterfall.js
|
||||||
72dbef2b0dd2644f4fb4e72ddbb7013b *dzz/pichome/js/plug/DomResize.js
|
72dbef2b0dd2644f4fb4e72ddbb7013b *dzz/pichome/js/plug/DomResize.js
|
||||||
8a788a8d0bfb2d3c1988bddb4aef4b4b *dzz/pichome/js/plug/element-ui.js
|
8a788a8d0bfb2d3c1988bddb4aef4b4b *dzz/pichome/js/plug/element-ui.js
|
||||||
dc3ea9ad3b70dda4a5250f14e9f2a36a *dzz/pichome/js/plug/jquery.row-grid.js
|
dc3ea9ad3b70dda4a5250f14e9f2a36a *dzz/pichome/js/plug/jquery.row-grid.js
|
||||||
@@ -1117,32 +1513,120 @@ 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
|
||||||
2d494f5deef41265f95908bd33a902dd *dzz/pichome/library.php
|
9b1430e306b95dff41087a2fca148484 *dzz/pichome/library.php
|
||||||
ccef8b340c90fc0061c6dd645fecc8df *dzz/pichome/setting.php
|
ccef8b340c90fc0061c6dd645fecc8df *dzz/pichome/setting.php
|
||||||
cecf65f580b3a209dcf80cd8560ec6bb *dzz/pichome/share.php
|
30a3b6a3143136ebf197c3e58e6bcfe8 *dzz/pichome/share.php
|
||||||
1b2b3b2922d7e02373b1b9862c7a5ef7 *dzz/pichome/template/pc/components/headerAdmin/index.htm
|
892a7e59f327bc5f273fc0fe2cd2679b *dzz/pichome/template/mobile/components/classify.htm
|
||||||
75ece58d5e173d62a72275aefc2ea7ec *dzz/pichome/template/pc/components/headerindex/index.htm
|
23b99d3824aa02a61621667b100dbacb *dzz/pichome/template/mobile/components/index/image/classify.htm
|
||||||
5518c2bc4f44f3636e63d6a3ebe6e508 *dzz/pichome/template/pc/components/headerindex/screen.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
|
||||||
|
493f25784b802d691a49b22d55345e19 *dzz/pichome/template/mobile/components/index/JsImages.htm
|
||||||
|
507954354bef6b8905158c9037d38e8a *dzz/pichome/template/mobile/components/index/JsIndex.htm
|
||||||
|
d1051b51dd34c88927309c4e82744553 *dzz/pichome/template/mobile/components/index/JsMy.htm
|
||||||
|
a09a548c0637e1dfc7397410ac056711 *dzz/pichome/template/mobile/components/index/JsScreen.htm
|
||||||
|
76399fc5b4e7a84ee75ed49e34e483c9 *dzz/pichome/template/mobile/components/index/JsSearch.htm
|
||||||
|
aa8df8e4c660d9136bbff54070a2522a *dzz/pichome/template/mobile/components/index/JsSort.htm
|
||||||
|
a6eb66e190d0ba70ff30d521047a63e2 *dzz/pichome/template/mobile/components/index/screen/btime/temp.htm
|
||||||
|
0bda41757437fb9c3a7efda0f43c109e *dzz/pichome/template/mobile/components/index/screen/classify/js.htm
|
||||||
|
39df4c1ff10e49ae7168cb99518d6253 *dzz/pichome/template/mobile/components/index/screen/classify/temp.htm
|
||||||
|
b51b1ba798335a69ed3697ae96f8663f *dzz/pichome/template/mobile/components/index/screen/color/temp.htm
|
||||||
|
075bdae5e3a3a38b440dfe5e85ba958e *dzz/pichome/template/mobile/components/index/screen/dateline/temp.htm
|
||||||
|
ce2c75378cef55687fd93d4f0e768a02 *dzz/pichome/template/mobile/components/index/screen/desc/temp.htm
|
||||||
|
d28186b8bca0adc5ff95ec392d041fb1 *dzz/pichome/template/mobile/components/index/screen/duration/temp.htm
|
||||||
|
3ab7ef5c8f16a496e219830eb5bd05a5 *dzz/pichome/template/mobile/components/index/screen/ext/temp.htm
|
||||||
|
60059bbaace52506f7506d00b89cffa6 *dzz/pichome/template/mobile/components/index/screen/grade/temp.htm
|
||||||
|
91114c9caab1b9d79c7b278a1f5ff4cc *dzz/pichome/template/mobile/components/index/screen/link/temp.htm
|
||||||
|
23bb6550be82aa1bea16aac57f729600 *dzz/pichome/template/mobile/components/index/screen/mtime/temp.htm
|
||||||
|
652b15268999816d7875d8a46b9f820f *dzz/pichome/template/mobile/components/index/screen/shape/temp.htm
|
||||||
|
16d928da24c57980a043f956a15021c3 *dzz/pichome/template/mobile/components/index/screen/size/temp.htm
|
||||||
|
ae8d0557008c6f19458bed5c49db2167 *dzz/pichome/template/mobile/components/index/screen/tag/temp.htm
|
||||||
|
8f54b82e6d2f9cb4d7ba43d09a39f088 *dzz/pichome/template/mobile/frame/footer_simple.htm
|
||||||
|
ae502b90b2b31175892efe56867bc2e7 *dzz/pichome/template/mobile/frame/header_simple_end.htm
|
||||||
|
fdc74d5e180321fc338ae91a1a90e22e *dzz/pichome/template/mobile/frame/header_simple_start.htm
|
||||||
|
385067e1775bcc445b1dbc978d543ac0 *dzz/pichome/template/mobile/page/details.htm
|
||||||
|
e34a4b13baa25f03bddc82608964ffd7 *dzz/pichome/template/mobile/page/index.htm
|
||||||
|
be7755b8e73e2ffa49557e8c3891027a *dzz/pichome/template/mobile/page/personal.htm
|
||||||
|
59d6f74af0683d8c3dee09e7e09f9787 *dzz/pichome/template/mobile/page/share.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
|
||||||
|
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
|
||||||
fc0a8c88bf39abe81695ab58de8d6a9f *dzz/pichome/template/pc/components/index/images.htm
|
e3cbbf2cf1281dfe69ee59584debe8dc *dzz/pichome/template/pc/components/image/ImageAudioPlay.htm
|
||||||
0b479ca8b7c107cd66492c3b5e9a7bce *dzz/pichome/template/pc/components/index/indexVuex.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
|
||||||
|
710efaf3e9e92603f55599af84e07f2b *dzz/pichome/template/pc/components/index/header/JsHdeaderSearch2.htm
|
||||||
|
aa36103d6b45e77c11a97dc34f5fa38c *dzz/pichome/template/pc/components/index/header/JsHdeaderSearchInput.htm
|
||||||
|
44afb76ddd1106c3081e901b74ccd350 *dzz/pichome/template/pc/components/index/header/JsHdeaderSearchScreen.htm
|
||||||
|
cdfdeb7826e501fc2d0dabbe4545bba6 *dzz/pichome/template/pc/components/index/header/JsHeaderRight.htm
|
||||||
|
2dcef9d94e0d12773e17f32cf9c84720 *dzz/pichome/template/pc/components/index/header/JsHeaderRightAvatar.htm
|
||||||
|
a5629a36eef6a8c0d3aec35f3a679d86 *dzz/pichome/template/pc/components/index/header/JsHeaderRightBtn.htm
|
||||||
|
754c1ae954a2bd706a9ca808225927c9 *dzz/pichome/template/pc/components/index/image/ImageAudioPlay.htm
|
||||||
|
8719049c86e5ed162ef840352086ee8f *dzz/pichome/template/pc/components/index/image/ImageList.htm
|
||||||
|
f394ee2d8177fe42a05aeb7c5d1b783a *dzz/pichome/template/pc/components/index/image/ImageRowGrid.htm
|
||||||
|
506a3a316c9b37a48c65ed71c7435f33 *dzz/pichome/template/pc/components/index/image/ImageWaterfall.htm
|
||||||
|
e75f2d5563b6d12d345ee4414e2840f9 *dzz/pichome/template/pc/components/index/images.htm
|
||||||
|
0764f300b91acf6e60925fa91c528941 *dzz/pichome/template/pc/components/index/indexVuex.htm
|
||||||
|
f18d9fc925dd80b5682ea9b65afb96c0 *dzz/pichome/template/pc/components/index/JsCommon.htm
|
||||||
|
d88649d33a48388af9e95f4b7b3aeea8 *dzz/pichome/template/pc/components/index/JsHeader1.htm
|
||||||
|
eb3a364123d4c0982dfc2497683adc29 *dzz/pichome/template/pc/components/index/JsHeader2.htm
|
||||||
|
203fade598d5f1f14bd0cbe612f400c9 *dzz/pichome/template/pc/components/index/Jsimage.htm
|
||||||
|
e5f81267932b2e39355c4bff620d11b6 *dzz/pichome/template/pc/components/index/JsLibrary.htm
|
||||||
|
7a925a4631acb01fc275bbb237250d92 *dzz/pichome/template/pc/components/index/JsScreen.htm
|
||||||
|
ca1f90529303acc461fb2ce08fb6e7fc *dzz/pichome/template/pc/components/index/screen/btime/js.htm
|
||||||
|
a2d7aa1c09cf3119740247c2c84dc880 *dzz/pichome/template/pc/components/index/screen/btime/temp.htm
|
||||||
|
be0730d952f4744e88b2055c32d1f08b *dzz/pichome/template/pc/components/index/screen/classify/js.htm
|
||||||
|
ae9283ed126a9b5d58ec8da79b82b916 *dzz/pichome/template/pc/components/index/screen/classify/temp.htm
|
||||||
|
7aae5f55c409fdd6a4ec43d0aaf46fb5 *dzz/pichome/template/pc/components/index/screen/color/js.htm
|
||||||
|
f8281ed2c6f2b291bd177b30ece427c2 *dzz/pichome/template/pc/components/index/screen/color/temp.htm
|
||||||
|
afb7f926245e36860f30e6f1bc20164d *dzz/pichome/template/pc/components/index/screen/dateline/js.htm
|
||||||
|
f431bf7fa29b542d4bf18550c0b710a3 *dzz/pichome/template/pc/components/index/screen/dateline/temp.htm
|
||||||
|
da497cf5e22fa3dc4356f727c8a06dc8 *dzz/pichome/template/pc/components/index/screen/desc/js.htm
|
||||||
|
5b4d5d3a7b3566c24b3de893c4668c3e *dzz/pichome/template/pc/components/index/screen/desc/temp.htm
|
||||||
|
86008adc04b4086d3dbadb06bb1802c8 *dzz/pichome/template/pc/components/index/screen/duration/js.htm
|
||||||
|
86ffb0d927567631ad6c45fe2be3d07a *dzz/pichome/template/pc/components/index/screen/duration/temp.htm
|
||||||
|
d77bb8e4d0264dedb2caa82ccbc503ce *dzz/pichome/template/pc/components/index/screen/ext/js.htm
|
||||||
|
7d22e56f2a2eb124e5ecec7eba8c4c81 *dzz/pichome/template/pc/components/index/screen/ext/temp.htm
|
||||||
|
6241347b44cd051db85cd683cb23ec66 *dzz/pichome/template/pc/components/index/screen/grade/js.htm
|
||||||
|
cb007588e09dfeddc7f5c9a66540155b *dzz/pichome/template/pc/components/index/screen/grade/temp.htm
|
||||||
|
b24829a69162eab6ef8e51362c02726c *dzz/pichome/template/pc/components/index/screen/link/js.htm
|
||||||
|
1b5c317c7ad96875866bc15f322ebffe *dzz/pichome/template/pc/components/index/screen/link/temp.htm
|
||||||
|
a91f8cdb2836930e60e76000e14cd109 *dzz/pichome/template/pc/components/index/screen/mtime/js.htm
|
||||||
|
71df18ff5f6a0428941d33e7409b2a9f *dzz/pichome/template/pc/components/index/screen/mtime/temp.htm
|
||||||
|
848e5d358ece04426ef40c055db4815a *dzz/pichome/template/pc/components/index/screen/shape/js.htm
|
||||||
|
026964771fde79d520db8fca996705d5 *dzz/pichome/template/pc/components/index/screen/shape/temp.htm
|
||||||
|
ed778182594282451fdeaf533390504a *dzz/pichome/template/pc/components/index/screen/size/js.htm
|
||||||
|
6607851de5183d1db762d74a184220b1 *dzz/pichome/template/pc/components/index/screen/size/temp.htm
|
||||||
|
ce8f0dddfb2446e04ed00da108a9d5ff *dzz/pichome/template/pc/components/index/screen/tag/js.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
|
||||||
|
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
|
||||||
6b71a79c84f6349ee7756391c94dd889 *dzz/pichome/template/pc/page/adminBasic.htm
|
f45c9ec8917e94bf4b61a7b5bbacf3e5 *dzz/pichome/template/pc/page/adminBasic.htm
|
||||||
cc96dd261e08e02dc52f76cd93f2b606 *dzz/pichome/template/pc/page/adminFileterset.htm
|
d46f3035458009aa3d87d579da8848c3 *dzz/pichome/template/pc/page/adminFileterset.htm
|
||||||
109683e420385c288d86639466b6a1d8 *dzz/pichome/template/pc/page/adminLoginpage.htm
|
ef3300e59bc7be272f56ade943326d88 *dzz/pichome/template/pc/page/adminImportsetting.htm
|
||||||
e066dec8e0303fabf007c8a74eb4625e *dzz/pichome/template/pc/page/adminPagesetting.htm
|
ea578588242396cb021031f41dd4bc69 *dzz/pichome/template/pc/page/adminLeft.htm
|
||||||
0920466b526ad2b5b6e20c8b2acead53 *dzz/pichome/template/pc/page/adminPersonal.htm
|
0e57e8ab9dbccead521f9b18fe8a2de2 *dzz/pichome/template/pc/page/adminLoginpage.htm
|
||||||
ad552124940206341e350aceaedc0e16 *dzz/pichome/template/pc/page/details.htm
|
624c95c6ba1998d1f0538493c510fed1 *dzz/pichome/template/pc/page/adminPagesetting.htm
|
||||||
ed7a4b32a51a8fb8dd3f5760d76d493a *dzz/pichome/template/pc/page/index.htm
|
3ad11c89ea7b41c55b63d2f5d29004fb *dzz/pichome/template/pc/page/adminPersonal.htm
|
||||||
4cc95ff5505efa436d8cce73dd456cfe *dzz/pichome/template/pc/page/library.htm
|
364cd2b3bba93563c86ebf33102a6ba9 *dzz/pichome/template/pc/page/details.htm
|
||||||
953101b30d9f9f7e303a7891ade351f3 *dzz/pichome/template/pc/page/share.htm
|
8e351bacc90f2855e890cc3cb0ef9fc2 *dzz/pichome/template/pc/page/index.htm
|
||||||
|
22d1d385387e15a52c90b35eb6ed3a55 *dzz/pichome/template/pc/page/index1.htm
|
||||||
|
b672309ad39f5e67246c0aabe7811306 *dzz/pichome/template/pc/page/index2.htm
|
||||||
|
c339f4670ef6db9e27f37f497e36f566 *dzz/pichome/template/pc/page/library.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
|
||||||
efbd03954c4e8df90891d9d6f338619f *dzz/pichome/upload.php
|
efbd03954c4e8df90891d9d6f338619f *dzz/pichome/upload.php
|
||||||
91a4166d72ff4c926e1f5a73c804466c *dzz/pichome/user.php
|
e79dc819cafad7450fda2748ee3989dd *dzz/pichome/user.php
|
||||||
3d037ab39fd205fc01dcb0644dc73594 *dzz/textviewer/css/theme/black/root.css
|
3d037ab39fd205fc01dcb0644dc73594 *dzz/textviewer/css/theme/black/root.css
|
||||||
e19d97f977fa3d2316168bbe8e4101e5 *dzz/textviewer/css/theme/darkgrey/root.css
|
e19d97f977fa3d2316168bbe8e4101e5 *dzz/textviewer/css/theme/darkgrey/root.css
|
||||||
732389ded34cb9c52dd88271f1345af9 *dzz/textviewer/css/theme/fonts/element-icons.ttf
|
732389ded34cb9c52dd88271f1345af9 *dzz/textviewer/css/theme/fonts/element-icons.ttf
|
||||||
@@ -1157,20 +1641,20 @@ dad4a000799b858b5b77d7b171f03482 *dzz/textviewer/dzz_app_textviewer.xml
|
|||||||
75082d3e76c9416b1a1037cb210aa10f *dzz/textviewer/template/textviewer.htm
|
75082d3e76c9416b1a1037cb210aa10f *dzz/textviewer/template/textviewer.htm
|
||||||
0a6164e73ba1c02f0159bf2e9a476a86 *dzz/textviewer/text.js
|
0a6164e73ba1c02f0159bf2e9a476a86 *dzz/textviewer/text.js
|
||||||
e352fc27892fdd084f7267152ffb8622 *dzz/xgplayer/dzz_app_xgplayer.xml
|
e352fc27892fdd084f7267152ffb8622 *dzz/xgplayer/dzz_app_xgplayer.xml
|
||||||
66e2509fe1db35f128216db3d4e8fee3 *dzz/xgplayer/index.php
|
02c0c15cce75b757a58ee66f873a9fcc *dzz/xgplayer/index.php
|
||||||
0b0d2b77a3d90ee01f9966d01aa19e1d *dzz/xgplayer/js/xgplayer-flv.js
|
0b0d2b77a3d90ee01f9966d01aa19e1d *dzz/xgplayer/js/xgplayer-flv.js
|
||||||
2b5cfcb2534b8d53dafc8e8f13825f1e *dzz/xgplayer/js/xgplayer-hls.js
|
2b5cfcb2534b8d53dafc8e8f13825f1e *dzz/xgplayer/js/xgplayer-hls.js
|
||||||
cb39caa80f5f0fac7037c0abcd68b9fc *dzz/xgplayer/js/xgplayer-shaka.js
|
cb39caa80f5f0fac7037c0abcd68b9fc *dzz/xgplayer/js/xgplayer-shaka.js
|
||||||
8f401af25e9ba2e695fe0473b4fecb11 *dzz/xgplayer/js/xgplayer.js
|
8f401af25e9ba2e695fe0473b4fecb11 *dzz/xgplayer/js/xgplayer.js
|
||||||
b0bb6c733a343afcddcd03baaeff31b0 *dzz/xgplayer/js/xgplayer.music.js
|
b0bb6c733a343afcddcd03baaeff31b0 *dzz/xgplayer/js/xgplayer.music.js
|
||||||
04fa4e918e031085cb524446cd4a27f2 *dzz/xgplayer/language/zh-CN/lang.php
|
04fa4e918e031085cb524446cd4a27f2 *dzz/xgplayer/language/zh-CN/lang.php
|
||||||
a875bc67c5d7db47c918a3cfe5318a57 *dzz/xgplayer/template/main.htm
|
8119f6d1c45038a11269aa47ccdff186 *dzz/xgplayer/template/main.htm
|
||||||
3250b96edf6c6c3627871d38a223499b *dzz/xgplayer/template/progress.htm
|
3250b96edf6c6c3627871d38a223499b *dzz/xgplayer/template/progress.htm
|
||||||
5cb9422375b907e05eb6b7dc36fcd895 *favicon.ico
|
5cb9422375b907e05eb6b7dc36fcd895 *favicon.ico
|
||||||
8e55bdb192a3aefe82e03292527819ca *htaccess_default.txt
|
8e55bdb192a3aefe82e03292527819ca *htaccess_default.txt
|
||||||
55d39f5cf3916ab6a9336d95c671ab53 *index.php
|
55d39f5cf3916ab6a9336d95c671ab53 *index.php
|
||||||
149ca09a781fa0fd9ee90ceb0a409006 *install/data/install.sql
|
b92e6bc4f11bbece12288d800321aa3c *install/data/install.sql
|
||||||
6add5cf682c64601c21a727302a46431 *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
|
||||||
@@ -1178,13 +1662,13 @@ fc25acefcabc066437d4b27550387954 *install/images/logo.png
|
|||||||
94b02097d5c11c5ca1c1f7ee563a3d82 *install/images/sel.png
|
94b02097d5c11c5ca1c1f7ee563a3d82 *install/images/sel.png
|
||||||
7d7bb734d5e82ccbb7900e974b0b623a *install/images/seled.png
|
7d7bb734d5e82ccbb7900e974b0b623a *install/images/seled.png
|
||||||
8e31c9744d7cdd6bf748d3b95c6a89f7 *install/images/style.css
|
8e31c9744d7cdd6bf748d3b95c6a89f7 *install/images/style.css
|
||||||
971abc1c4c5d1b68696a51ea48d6b3d1 *install/include/install_function.php
|
414d49adb5b2e405eef17b23285c9369 *install/include/install_function.php
|
||||||
a987af86766c27c565794ffa189cf664 *install/include/install_mysql.php
|
a987af86766c27c565794ffa189cf664 *install/include/install_mysql.php
|
||||||
249b244097610688130b93721d1c2bd1 *install/include/install_mysqli.php
|
249b244097610688130b93721d1c2bd1 *install/include/install_mysqli.php
|
||||||
d7d7fef7dc366413340be8ad3da41709 *install/include/install_var.php
|
effd4ff5bdac95bbc9e360de443f335c *install/include/install_var.php
|
||||||
5c2f5c9042a9e66bc8f5af0b638cf1de *install/index.php
|
4c34d50daace82774e12ef92efb93d18 *install/index.php
|
||||||
8eca1f167c0b805d9fda97804379a962 *install/language/zh-cn/lang.php
|
677cacb463b31ea65d0ce771f9c02422 *install/language/zh-cn/lang.php
|
||||||
9df77036c7ebea501feaa23661852767 *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
|
||||||
@@ -1195,9 +1679,9 @@ b4315dcb6c81d9952f4ec624380d40fa *misc/seluser.php
|
|||||||
18cf2d930221489abbcbd036f29bcf59 *misc/sendwx.php
|
18cf2d930221489abbcbd036f29bcf59 *misc/sendwx.php
|
||||||
ff6abf5b6ce1f3256d2aad8fdd24f646 *misc/setunrun.php
|
ff6abf5b6ce1f3256d2aad8fdd24f646 *misc/setunrun.php
|
||||||
45c256cd29506798392534301ac3047f *misc/stat.php
|
45c256cd29506798392534301ac3047f *misc/stat.php
|
||||||
816b79cd9baa7e76f4058a0d38568593 *misc/syscache.php
|
38a88c2ea2cd34b23b1704d561e8995b *misc/syscache.php
|
||||||
d365238875a6457eaea991f1e7913309 *misc/template/misc_seluser.htm
|
d365238875a6457eaea991f1e7913309 *misc/template/misc_seluser.htm
|
||||||
89c90d955c3bfda0f63dce1449021924 *misc/upgrade.php
|
776f099f11c79bc936a33b0fbd486c9f *misc/upgrade.php
|
||||||
170b9709fad7d1a8479d03c5c5913bae *misc.php
|
170b9709fad7d1a8479d03c5c5913bae *misc.php
|
||||||
eb11382b6241b03f598530206c21e0a1 *short.php
|
eb11382b6241b03f598530206c21e0a1 *short.php
|
||||||
a4167122758dd580e234395e98987bcb *static/bootstrap/css/bootstrap-slider.css
|
a4167122758dd580e234395e98987bcb *static/bootstrap/css/bootstrap-slider.css
|
||||||
@@ -1230,13 +1714,61 @@ fa2772327f55d8198301fdb8bcfc8158 *static/bootstrap/fonts/glyphicons-halflings-re
|
|||||||
ccb7f3909e30b1eb8f65a24393c6e12b *static/bootstrap/js/npm.js
|
ccb7f3909e30b1eb8f65a24393c6e12b *static/bootstrap/js/npm.js
|
||||||
9cccbcd9bc6aed2bb14df1013e185ce3 *static/bootstrap/js/respond.min.js
|
9cccbcd9bc6aed2bb14df1013e185ce3 *static/bootstrap/js/respond.min.js
|
||||||
3f34091dd7e93143bf4e94df93ac0cff *static/css/app_manage.css
|
3f34091dd7e93143bf4e94df93ac0cff *static/css/app_manage.css
|
||||||
|
0558805a20efbceaea35039a548fab7f *static/css/calendar.css
|
||||||
3c7b7885051c739119294ba3aaee1246 *static/css/checkbox.css
|
3c7b7885051c739119294ba3aaee1246 *static/css/checkbox.css
|
||||||
0c84eeac1e35a0f370b2679ad826648b *static/css/common.css
|
0c84eeac1e35a0f370b2679ad826648b *static/css/common.css
|
||||||
|
12813c6cae76dcdcf0ca0673a085362b *static/css/jquery-ui-1.10.4.custom.min.css
|
||||||
|
2ad158db1f748f93e608bbb264f4ea93 *static/css/mabile_common.css
|
||||||
|
de5cc99580baf95f1bc098b92245a547 *static/css/pc-commer-header.css
|
||||||
|
1f85070b3a3652886cba741f23b9eef2 *static/css/smilies.css
|
||||||
|
b3d07bda63452a4c717858f586653c28 *static/css/tip.css
|
||||||
20f7dec08bcdab872f92e5fd00658bf7 *static/dzzicon/fonts/dzz.eot
|
20f7dec08bcdab872f92e5fd00658bf7 *static/dzzicon/fonts/dzz.eot
|
||||||
bab5426c2e41cac25a364bca0d0687bf *static/dzzicon/fonts/dzz.svg
|
bab5426c2e41cac25a364bca0d0687bf *static/dzzicon/fonts/dzz.svg
|
||||||
2545315cf884316f38d4ca50e07f5bc3 *static/dzzicon/fonts/dzz.ttf
|
2545315cf884316f38d4ca50e07f5bc3 *static/dzzicon/fonts/dzz.ttf
|
||||||
68e44d78b03d25cb3d817eb619920fc2 *static/dzzicon/fonts/dzz.woff
|
68e44d78b03d25cb3d817eb619920fc2 *static/dzzicon/fonts/dzz.woff
|
||||||
09b33a5885a3ff265ca5ce6684031bb0 *static/dzzicon/icon.css
|
09b33a5885a3ff265ca5ce6684031bb0 *static/dzzicon/icon.css
|
||||||
|
325472601571f31e1bf00674c368d335 *static/image/common/b.gif
|
||||||
|
b247df6c12a919291ee599eb53fe620e *static/image/common/check_error.gif
|
||||||
|
67140a21f80675f4d9a781c2b8673e2f *static/image/common/check_right.gif
|
||||||
|
c62559524d105e0199b3e00c8bd261b9 *static/image/common/close.gif
|
||||||
|
69739b9046f1d000a2992b4e7142a096 *static/image/common/delete.png
|
||||||
|
d777c1d9caca98016c795c64c52b6bdc *static/image/common/error.png
|
||||||
|
3eef7a774c904f6b2d3ab826d00a2e14 *static/image/common/ic-filtrate.png
|
||||||
|
38d1a8e23d1bc2ab3846822af9e57f4b *static/image/common/icon_main.png
|
||||||
|
ab46e1d967fb57c6e634800026dda3bc *static/image/common/info.png
|
||||||
|
071c62d99c36ab0aa44891a6bd5a0ae1 *static/image/common/left_drager.png
|
||||||
|
69de2edd002c585dbde1c11b04fcaf0f *static/image/common/left_drager_op1.gif
|
||||||
|
f00e672de1fcb2414944584fdb9bad2a *static/image/common/left_drager_op2.gif
|
||||||
|
05235af1889d21cd47ed3fbf8cced673 *static/image/common/loading.gif
|
||||||
|
25b023c9a97dc186e7ef8283c67af083 *static/image/common/loading.png
|
||||||
|
2894a0aaf1160440c47ecd1685115ed8 *static/image/common/logo.png
|
||||||
|
169e39863c8c46883c5ec51a9c235934 *static/image/common/noFilePage-fail.png
|
||||||
|
78fcf9ba53821a5e6da060414178895d *static/image/common/noFilePage-successful.png
|
||||||
|
bf7d3e1972b3fe5bfe8c119fee05e89d *static/image/common/none.gif
|
||||||
|
ee9ca73d9ee8b9bd5606e576d375a8f1 *static/image/common/ownwatermark.png
|
||||||
|
091ad73692cb58a15a91a48df233bd4c *static/image/common/passlevel.png
|
||||||
|
40178d7ea9e0e84080418fd3df6e987b *static/image/common/player.swf
|
||||||
|
2c00b1029439ac146931beaa56336655 *static/image/common/popupcredit_bg.gif
|
||||||
|
13cdfe50e5dfb3f1c5797a94c5952aa1 *static/image/common/popuptext_bg.gif
|
||||||
|
44bf00ace335179432cf9baf2fbeb21f *static/image/common/qq.gif
|
||||||
|
36de48f2ece310da91a9d7cdb1c12405 *static/image/common/qq_big.gif
|
||||||
|
955f51d16c5e3f50834b424c43d6982e *static/image/common/qq_bind.gif
|
||||||
|
2772bb5963055ab01078bd491f7e2669 *static/image/common/qq_bind_small.gif
|
||||||
|
5303890a49bf80d5d9227155cc844e29 *static/image/common/qq_login.gif
|
||||||
|
8a2896873d73ab8a17b50c0c60974970 *static/image/common/rank1.png
|
||||||
|
93b8ff2a38e2e4a840985232f422dc80 *static/image/common/rank2.png
|
||||||
|
8a560d48b5c115aafd683a0bb47ff3fa *static/image/common/rank3.png
|
||||||
|
d9ff43f18d468615f2ae13bba9ff634c *static/image/common/right.gif
|
||||||
|
f639a922a4ba5d476ee1f65329139846 *static/image/common/right.png
|
||||||
|
4cb37af1099b93a01f328671f37b8b2a *static/image/common/tip_bottom.png
|
||||||
|
57171a556f08080e3143434016f2f549 *static/image/common/tip_top.png
|
||||||
|
89f8da465fe6b53db230d9f9d28d288e *static/image/common/tip_up.gif
|
||||||
|
6fcf8bd102a9f3a4fe1d04d2e53d6c82 *static/image/common/tip_up_grey.gif
|
||||||
|
3747b712cf2168054bb45fceb4ebf926 *static/image/common/tree_heng.gif
|
||||||
|
f671ff097fcd491e54914ae4860513ae *static/image/common/tree_heng1.gif
|
||||||
|
2710209ef9e7469cb79c6c23d9e968b5 *static/image/common/tree_su.gif
|
||||||
|
a69a0a404fedd3a334f295db86001589 *static/image/common/wloading.gif
|
||||||
|
25b023c9a97dc186e7ef8283c67af083 *static/image/common/wloading.png
|
||||||
7215ee9c7d9dc229d2921a40e899ec5f *static/index.htm
|
7215ee9c7d9dc229d2921a40e899ec5f *static/index.htm
|
||||||
6c57b762589f13ea5b3579ca5e6c369b *static/jquery/jquery-migrate-1.4.1.js
|
6c57b762589f13ea5b3579ca5e6c369b *static/jquery/jquery-migrate-1.4.1.js
|
||||||
04a4db2983450a2970c459ba87b4210a *static/jquery/jquery-ui.js
|
04a4db2983450a2970c459ba87b4210a *static/jquery/jquery-ui.js
|
||||||
@@ -1278,6 +1810,12 @@ d90a69d4131a7b4b0fadb54a5b4501b6 *static/js/touch-0.2.14.min.js
|
|||||||
01ab6b3a4cb87f8549b2ddb55b7d83a7 *static/js/ZeroClipboard/ZeroClipboard.js
|
01ab6b3a4cb87f8549b2ddb55b7d83a7 *static/js/ZeroClipboard/ZeroClipboard.js
|
||||||
9e8d8599a9eee6835a6124b6db3dfb2c *static/js/ZeroClipboard/ZeroClipboard.min.js
|
9e8d8599a9eee6835a6124b6db3dfb2c *static/js/ZeroClipboard/ZeroClipboard.min.js
|
||||||
3ef2e4d603a8b4600daebb249d1d9928 *static/js/ZeroClipboard/ZeroClipboard.swf
|
3ef2e4d603a8b4600daebb249d1d9928 *static/js/ZeroClipboard/ZeroClipboard.swf
|
||||||
|
c183d09005a5c15879398e629da9c96a *static/popbox/jquery.popbox.js
|
||||||
|
50c5e3e79b276c92df6cc52caeb464f0 *static/popbox/loading.gif
|
||||||
|
4283777f23ada6131e77cf87959e1042 *static/popbox/loading.svg
|
||||||
|
50c5e3e79b276c92df6cc52caeb464f0 *static/popbox/loading1.gif
|
||||||
|
f2fe97d43271ba5a1aaca87b054554d3 *static/popbox/oval.svg
|
||||||
|
90b26d67b569e554a902865099864554 *static/popbox/popbox.css
|
||||||
d1ad8ccaadf9ebe30b27c63084cd4ac2 *user/ajax.php
|
d1ad8ccaadf9ebe30b27c63084cd4ac2 *user/ajax.php
|
||||||
470a63ab208a9bb51e652b95898e18e4 *user/classes/checklogin.php
|
470a63ab208a9bb51e652b95898e18e4 *user/classes/checklogin.php
|
||||||
d8a41c8fbd7289ae2ecb61479f062f86 *user/classes/init.php
|
d8a41c8fbd7289ae2ecb61479f062f86 *user/classes/init.php
|
||||||
@@ -1311,14 +1849,14 @@ c086d7adbe5aab566b96a8311fd56a75 *user/login/template/getpasswd.htm
|
|||||||
fd044a68a07006f09f8afefe8212b84a *user/login/template/getpasswd_sms_success.htm
|
fd044a68a07006f09f8afefe8212b84a *user/login/template/getpasswd_sms_success.htm
|
||||||
fbd9c74e9b4c5ebfcb7d520a07d972dd *user/login/template/login_copyright.htm
|
fbd9c74e9b4c5ebfcb7d520a07d972dd *user/login/template/login_copyright.htm
|
||||||
3dd808f2a4d82e7a40536e3941e37d74 *user/login/template/login_single1.htm
|
3dd808f2a4d82e7a40536e3941e37d74 *user/login/template/login_single1.htm
|
||||||
a4705f131c2766b6f1e78dc74e7662c5 *user/login/template/login_single2.htm
|
d2ce2f26ffe01669c05f27f678dede40 *user/login/template/login_single2.htm
|
||||||
c06a447a0c9d131913d08020e784e758 *user/login/template/login_single3.htm
|
c06a447a0c9d131913d08020e784e758 *user/login/template/login_single3.htm
|
||||||
f368efa39460e484371148a4e1163a98 *user/login/template/login_single4.htm
|
f368efa39460e484371148a4e1163a98 *user/login/template/login_single4.htm
|
||||||
4ae58655385cf4d0d9d0f106786d581d *user/login/template/login_single_demo.htm
|
4ae58655385cf4d0d9d0f106786d581d *user/login/template/login_single_demo.htm
|
||||||
f82562f1c60ed08dc1ae50887aa18097 *user/login/template/login_single_mobile.htm
|
f82562f1c60ed08dc1ae50887aa18097 *user/login/template/login_single_mobile.htm
|
||||||
d28233af369fb8dbff23ae32ed050102 *user/login/template/login_skip.htm
|
d28233af369fb8dbff23ae32ed050102 *user/login/template/login_skip.htm
|
||||||
1f31bf4b7a42849835aaca7314412521 *user/login/template/login_sms_auth.htm
|
1f31bf4b7a42849835aaca7314412521 *user/login/template/login_sms_auth.htm
|
||||||
c1a1ad4b853e82912c3b544f6dc6d26b *user/login/template/lostpasswd.htm
|
1ea581b6b099021c2cc066fe73bb7720 *user/login/template/lostpasswd.htm
|
||||||
a154bb56352271963f02ded25548a27e *user/scripts/hammer.js
|
a154bb56352271963f02ded25548a27e *user/scripts/hammer.js
|
||||||
dbfbf51750774d4fd974029ba5440b63 *user/scripts/jquery.cropbox.css
|
dbfbf51750774d4fd974029ba5440b63 *user/scripts/jquery.cropbox.css
|
||||||
6ea230d704b460f9ac1c94cd139ea63d *user/scripts/jquery.cropbox.js
|
6ea230d704b460f9ac1c94cd139ea63d *user/scripts/jquery.cropbox.js
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
.max-width[data-v-6168216d]{width:360px}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
.wait-files[data-v-00939ee2]{line-height:25px;border:1px solid #dcdfe6;margin-bottom:10px;padding:5px;font-size:14px}
|
|
||||||
@@ -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}
|
||||||
@@ -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}
|
||||||
2
admin/system/dist/index.html
vendored
2
admin/system/dist/index.html
vendored
@@ -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.0816c17e.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.b5ff203c.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.b5ff203c.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>
|
||||||
@@ -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}}]);
|
||||||
@@ -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}}]);
|
|
||||||
@@ -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}}]);
|
|
||||||
@@ -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}}]);
|
|
||||||
1
admin/system/dist/js/chunk-2d0dd46d.e13ddeba.js
vendored
Normal file
1
admin/system/dist/js/chunk-2d0dd46d.e13ddeba.js
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0dd46d"],{8164:function(e,t,s){"use strict";s.r(t);var n=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}]},[s("el-card",{staticClass:"box-card",staticStyle:{background:"rgb(240, 249, 235)","text-align":"center"},attrs:{shadow:"hover"}},[s("p",{staticStyle:{"margin-bottom":"0"}},[s("el-link",{attrs:{type:"success",underline:!1}},[e._v(e._s(e.$t("upgrade_successful1")))])],1),s("p",{staticStyle:{margin:"0"}},[s("el-link",{attrs:{type:"success",underline:!1}},[e._v(e._s(e.version))])],1),s("p",{staticStyle:{"margin-bottom":"0"}},[s("el-link",{attrs:{type:"success",underline:!1}},[e._v(e._s(e.$t("upgrade_successful3",{dir:e.dir})))])],1),s("p",{staticStyle:{margin:"0"}},[s("el-link",{attrs:{type:"success",underline:!1}},[e._v(e._s(e.$t("upgrade_successful4",{backdir:e.backdir})))])],1)])],1)},a=[],r=(s("96cf"),s("1da1")),i={data:function(){return{loading:!1,version:"",dir:"",backdir:""}},created:function(){this.getData()},methods:{getData:function(){var e=this;return Object(r["a"])(regeneratorRuntime.mark((function t(){var s,n;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:s=t.sent,n=s.data,e.version=e.$t("upgrade_successful2",{msg:n.version}),e.dir=n.dir,e.backdir=n.backdir,e.loading=!1;case 9:case"end":return t.stop()}}),t)})))()}},components:{},mounted:function(){}},c=i,d=s("2877"),o=Object(d["a"])(c,n,a,!1,null,"321830d5",null);t["default"]=o.exports}}]);
|
||||||
@@ -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}}]);
|
|
||||||
@@ -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
@@ -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}}]);
|
|
||||||
@@ -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){}}]);
|
|
||||||
1
admin/system/dist/js/chunk-7aef2525.35b8efb8.js
vendored
Normal file
1
admin/system/dist/js/chunk-7aef2525.35b8efb8.js
vendored
Normal 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}}]);
|
||||||
@@ -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}}]);
|
|
||||||
1
admin/system/dist/js/index.b5ff203c.js
vendored
1
admin/system/dist/js/index.b5ff203c.js
vendored
File diff suppressed because one or more lines are too long
1
admin/system/dist/js/index.b9edc49b.js
vendored
Normal file
1
admin/system/dist/js/index.b9edc49b.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
admin/system/dist/js/index.d77cc092.js
vendored
1
admin/system/dist/js/index.d77cc092.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -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', '');
|
||||||
@@ -240,7 +243,7 @@ if ($operation == 'patch' || $operation == 'cross') {
|
|||||||
$dzz_upgrade -> rmdirs(DZZ_ROOT . $old_update_dir);
|
$dzz_upgrade -> rmdirs(DZZ_ROOT . $old_update_dir);
|
||||||
$dzz_upgrade -> rmdirs(DZZ_ROOT . $old_back_dir);
|
$dzz_upgrade -> rmdirs(DZZ_ROOT . $old_back_dir);
|
||||||
upgradeinformation(0);
|
upgradeinformation(0);
|
||||||
exit(json_encode(array('dir'=>$new_update_dir,'backdir'=>$new_back_dir)));
|
exit(json_encode(array('version' => $version,'dir'=>$new_update_dir,'backdir'=>$new_back_dir)));
|
||||||
// $msg = lang('upgrade_successful', array('version' => $version, 'save_update_dir' => $new_update_dir, 'save_back_dir' => $new_back_dir, 'upgradeurl' => upgradeinformation(0)));
|
// $msg = lang('upgrade_successful', array('version' => $version, 'save_update_dir' => $new_update_dir, 'save_back_dir' => $new_back_dir, 'upgradeurl' => upgradeinformation(0)));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -291,6 +291,8 @@ if ($operation == 'patch' || $operation == 'cross') {
|
|||||||
dheader('Location: ' . $url);
|
dheader('Location: ' . $url);
|
||||||
|
|
||||||
} elseif ($step == 5) {
|
} elseif ($step == 5) {
|
||||||
|
print_r(1111);
|
||||||
|
die;
|
||||||
$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');
|
||||||
|
|||||||
@@ -166,4 +166,21 @@ $_config['userlogin']['checkip'] = 1; //用户登录错误验证ip,对于
|
|||||||
|
|
||||||
//$_config['system_os'] = 'linux'; //windows,linux,mac,系统会自动判断
|
//$_config['system_os'] = 'linux'; //windows,linux,mac,系统会自动判断
|
||||||
//$_config['system_charset']='utf-8'; //操作系统编码,不设置系统将根据操作系统类型来判断linux:utf-8;windows:gbk;
|
//$_config['system_charset']='utf-8'; //操作系统编码,不设置系统将根据操作系统类型来判断linux:utf-8;windows:gbk;
|
||||||
|
|
||||||
|
//pichome宽高
|
||||||
|
$_config['pichomethumbwidth']= 900;
|
||||||
|
$_config['pichomethumbheight']= 900;
|
||||||
|
//pichome缩略图颜色允许后缀
|
||||||
|
$_config['getcolorextlimit'] = ['jpg','png','jpeg','gif','webp','pdf'];
|
||||||
|
//ffmpeg位置
|
||||||
|
$_config['pichomeffmpegposition'] = '';
|
||||||
|
$_config['pichomeffprobposition'] = '';
|
||||||
|
|
||||||
|
//支持获取音视频信息的后缀
|
||||||
|
$_config['pichomeffmpeggetvieoinoext']= [ 'avi', 'rm', 'rmvb', 'mkv', 'mov', 'wmv', 'asf', 'mpg', 'mpe', 'mpeg', 'mp4', 'm4v', 'mpeg', 'f4v', 'vob', 'ogv', 'mts', 'm2ts',
|
||||||
|
'3gp', 'webm', 'flv', 'wav', 'mp3', 'ogg', 'midi', 'wma', 'vqf', 'ra', 'aac', 'flac', 'ape', 'amr', 'aiff', 'au', 'm4a'];
|
||||||
|
//支持获取音视频缩略图后缀
|
||||||
|
$_config['pichomeffmpeggetthumbext']= [ 'avi', 'rm', 'rmvb', 'mkv', 'mov', 'wmv', 'asf', 'mpg', 'mpe', 'mpeg', 'mp4', 'm4v', 'mpeg', 'f4v', 'vob', 'ogv', 'mts', 'm2ts',
|
||||||
|
'3gp', 'webm', 'flv', 'wav', 'mp3', 'ogg', 'midi', 'wma', 'vqf', 'ra', 'aac', 'flac', 'ape', 'amr', 'aiff', 'au', 'm4a'];
|
||||||
|
|
||||||
return $_config;
|
return $_config;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -238,10 +238,11 @@ class ImagePalette implements IteratorAggregate
|
|||||||
protected function setWorkingImageImagick()
|
protected function setWorkingImageImagick()
|
||||||
{
|
{
|
||||||
$file = file_get_contents($this->file);
|
$file = file_get_contents($this->file);
|
||||||
$temp = tempnam("/tmp", uniqid("ImagePalette_", true));
|
$temp = tempnam(DZZ_ROOT.'./data/attachment/cache', uniqid("ImagePalette_", true));
|
||||||
if(!file_put_contents($temp, $file)) return false;
|
if(!file_put_contents($temp, $file)) return false;
|
||||||
$this->loadedImage = new Imagick($temp);
|
$this->loadedImage = new Imagick($temp);
|
||||||
$this->loadedImage ->thumbnailImage(64,64,true);
|
$this->loadedImage ->thumbnailImage(64,64,true);
|
||||||
|
@unlink($temp);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -375,11 +389,12 @@ class image {
|
|||||||
return array($width,$height);
|
return array($width,$height);
|
||||||
}
|
}
|
||||||
function Thumb_IM() {
|
function Thumb_IM() {
|
||||||
|
|
||||||
switch($this->param['thumbtype']) {
|
switch($this->param['thumbtype']) {
|
||||||
case 'fixnone':
|
case 'fixnone':
|
||||||
case 1:
|
case 1:
|
||||||
if($this->imginfo['width'] >= $this->param['thumbwidth'] || $this->imginfo['height'] >= $this->param['thumbheight']) {
|
if($this->imginfo['width'] >= $this->param['thumbwidth'] || $this->imginfo['height'] >= $this->param['thumbheight']) {
|
||||||
$im = new Imagick(realpath($this->source));
|
$im = new Imagick(realpath($this->source));
|
||||||
$this->autoRotateImage($im);
|
$this->autoRotateImage($im);
|
||||||
$im->stripImage(); //去除图片信息
|
$im->stripImage(); //去除图片信息
|
||||||
$im->setIteratorIndex(0);
|
$im->setIteratorIndex(0);
|
||||||
|
|||||||
@@ -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;
|
||||||
@@ -373,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']);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -506,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')){
|
||||||
|
|||||||
@@ -158,10 +158,24 @@
|
|||||||
return $return;
|
return $return;
|
||||||
} else return false;
|
} else return false;
|
||||||
}
|
}
|
||||||
public function getAllFiles($path,$fid){
|
public function getAllFiles($path,$fid,$page=1,$limit=100){
|
||||||
$path = self::clean($path);
|
$path = self::clean($path);
|
||||||
if ($io = self::initIO($path)) {
|
if ($io = self::initIO($path)) {
|
||||||
$return = $io->getAllFiles($path,$fid);
|
$return = $io->getAllFiles($path,$fid,$page,$limit);
|
||||||
|
return $return;
|
||||||
|
} else return false;
|
||||||
|
}
|
||||||
|
public function getAlltag($path){
|
||||||
|
$path = self::clean($path);
|
||||||
|
if ($io = self::initIO($path)) {
|
||||||
|
$return = $io->getAlltag($path);
|
||||||
|
return $return;
|
||||||
|
} else return false;
|
||||||
|
}
|
||||||
|
public function getAlltaggroup($path){
|
||||||
|
$path = self::clean($path);
|
||||||
|
if ($io = self::initIO($path)) {
|
||||||
|
$return = $io->getAlltaggroup($path);
|
||||||
return $return;
|
return $return;
|
||||||
} else return false;
|
} else return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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',
|
||||||
|
|||||||
@@ -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
26
core/class/dzz/sysreg.php
Normal 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);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
2
core/class/dzz/ulimit.php
Normal file
2
core/class/dzz/ulimit.php
Normal file
File diff suppressed because one or more lines are too long
77
core/class/table/table_connect.php
Normal file
77
core/class/table/table_connect.php
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
<?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');
|
||||||
|
}
|
||||||
|
//所有用户应用
|
||||||
|
//uid=0 的表示为默认应用
|
||||||
|
|
||||||
|
class table_connect extends dzz_table
|
||||||
|
{
|
||||||
|
public function __construct() {
|
||||||
|
|
||||||
|
$this->_table = 'connect';
|
||||||
|
$this->_pk = 'bz';
|
||||||
|
$this->_pre_cache_key = 'connect_';
|
||||||
|
$this->_cache_ttl = 60*60;
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
public function fetch_all_by_available($onlyuser=false){
|
||||||
|
$data=array();
|
||||||
|
if($onlyuser) $available=1;
|
||||||
|
else $available=0;
|
||||||
|
$query=DB::query("SELECT * FROM ".DB::table($this->_table)." WHERE available > '{$available}' and type!='local' ORDER BY disp");
|
||||||
|
while($value=DB::fetch($query)){
|
||||||
|
//检测可用性
|
||||||
|
if($value['type']=='pan' && (empty($value['key']) || empty($value['secret']))){
|
||||||
|
$value['available']=0;
|
||||||
|
$value['warning']=lang('please_open_after_setting');
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(!is_file(DZZ_ROOT.'./core/class/io/io_'.($value['bz']).'.php')){
|
||||||
|
$value['available']=0;
|
||||||
|
$value['warning']='api'.lang('typename_attach').':io_'.($value['bz']).'.php'.lang('inexistence').'!';
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$data[$value['bz']]=$value;
|
||||||
|
}
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function fetch_all_folderdata($uid){
|
||||||
|
$data=self::fetch_all_by_available();
|
||||||
|
$folderdata=array();
|
||||||
|
foreach($data as $value){
|
||||||
|
foreach(DB::fetch_all("select id from ".DB::table($value['dname'])." where uid>0 && uid='{$uid}'") as $value1){
|
||||||
|
|
||||||
|
$arr=C::t($value['dname'])->fetch_by_id($value1['id']);
|
||||||
|
$folderdata[$arr['fid']]=$arr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $folderdata;
|
||||||
|
}
|
||||||
|
public function fetch_all_bz(){
|
||||||
|
$data=array();
|
||||||
|
foreach(DB::fetch_all("select bz from %t where 1",array($this->_table)) as $value){
|
||||||
|
$data[]=$value['bz'];
|
||||||
|
}
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
public function delete_by_bz($bz){
|
||||||
|
if($bz=='dzz') return false; //dzz是内置,不能删除
|
||||||
|
$data=self::fetch($bz);
|
||||||
|
if(is_file(DZZ_ROOT.'./core/class/table/table_'.$data['dname'].'.php')){
|
||||||
|
C::t($data['dname'])->delete_by_bz($bz);
|
||||||
|
}
|
||||||
|
return self::delete($bz);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
82
core/class/table/table_connect_disk.php
Normal file
82
core/class/table/table_connect_disk.php
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
<?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');
|
||||||
|
}
|
||||||
|
//所有用户应用
|
||||||
|
//uid=0 的表示为默认应用
|
||||||
|
|
||||||
|
class table_connect_disk extends dzz_table
|
||||||
|
{
|
||||||
|
public function __construct() {
|
||||||
|
|
||||||
|
$this->_table = 'connect_disk';
|
||||||
|
$this->_pk = 'id';
|
||||||
|
$this->_pre_cache_key = 'connect_disk_';
|
||||||
|
$this->_cache_ttl = 300;
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
public function fetch_by_id($id){
|
||||||
|
|
||||||
|
$value=parent::fetch($id);
|
||||||
|
$cloud=DB::fetch_first("select * from ".DB::table('connect')." where bz='{$value['bz']}'");
|
||||||
|
$data=array(
|
||||||
|
'id'=>$value['id'],
|
||||||
|
'fid'=>md5($cloud['bz'].':'.$value['id'].':'.$cloud['root']),
|
||||||
|
'pfid'=>0,
|
||||||
|
'fname'=>$value['cloudname'],
|
||||||
|
'ficon'=>'dzz/images/default/system/'.$cloud['bz'].'.png',
|
||||||
|
'bz'=>$cloud['bz'].':'.$value['id'].':',
|
||||||
|
'path'=>$cloud['bz'].':'.$value['id'].':'.$cloud['root'],
|
||||||
|
'type'=>'disk',
|
||||||
|
'fsperm'=>perm_FolderSPerm::flagPower($cloud['bz']),
|
||||||
|
'perm'=>perm_binPerm::getGroupPower('all'),
|
||||||
|
'flag'=>$cloud['bz'],
|
||||||
|
'iconview'=>1,
|
||||||
|
'disp'=>'0',
|
||||||
|
);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
public function fetch_all_by_id($ids){
|
||||||
|
$data=array();
|
||||||
|
foreach($ids as $id){
|
||||||
|
$value=self::fetch_by_id($id);
|
||||||
|
$data[$value['fid']]=$value;
|
||||||
|
}
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
public function delete_by_id($id){
|
||||||
|
$return=array();
|
||||||
|
$data=parent::fetch($id);
|
||||||
|
if(parent::delete($id)){
|
||||||
|
$return['msg']='success';
|
||||||
|
//C::t('source_shortcut')->delete_by_bz($data['bz'].':'.$id.':',true);//删除快捷方式;
|
||||||
|
//删除图片缓存文件
|
||||||
|
$imgcache=getglobal('setting/attachdir').'./imgcache/'.$data['bz'].'/'.$id.'/';
|
||||||
|
removedirectory($imgcache);
|
||||||
|
}
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
public function delete_by_uid($uid){
|
||||||
|
if(!$uid) return 0;
|
||||||
|
foreach(DB::fetch_all("select id from %t where uid=%d",array($this->_table,$uid)) as $value){
|
||||||
|
self::delete_by_id($value['id']);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function delete_by_bz($bz){
|
||||||
|
foreach(DB::fetch_all("select id from %t where bz=%s",array($this->_table,$bz)) as $value){
|
||||||
|
self::delete_by_id($value['id']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
82
core/class/table/table_connect_ftp.php
Normal file
82
core/class/table/table_connect_ftp.php
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
<?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');
|
||||||
|
}
|
||||||
|
//所有用户应用
|
||||||
|
//uid=0 的表示为默认应用
|
||||||
|
|
||||||
|
class table_connect_ftp extends dzz_table
|
||||||
|
{
|
||||||
|
public function __construct() {
|
||||||
|
|
||||||
|
$this->_table = 'connect_ftp';
|
||||||
|
$this->_pk = 'id';
|
||||||
|
$this->_pre_cache_key = 'connect_ftp_';
|
||||||
|
$this->_cache_ttl = 300;
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
public function fetch_by_id($id){
|
||||||
|
|
||||||
|
$value=self::fetch($id);
|
||||||
|
$cloud=DB::fetch_first("select * from ".DB::table('connect')." where bz='{$value['bz']}'");
|
||||||
|
$data=array(
|
||||||
|
'id'=>$value['id'],
|
||||||
|
'fid'=>md5($cloud['bz'].':'.$value['id'].':'.$cloud['root']),
|
||||||
|
'pfid'=>0,
|
||||||
|
'fname'=>$value['cloudname'],
|
||||||
|
'ficon'=>'dzz/images/default/system/'.$cloud['bz'].'.png',
|
||||||
|
'bz'=>$cloud['bz'].':'.$value['id'].':',
|
||||||
|
'path'=>$cloud['bz'].':'.$value['id'].':'.$cloud['root'],
|
||||||
|
'type'=>'ftp',
|
||||||
|
'fsperm'=>perm_FolderSPerm::flagPower($cloud['bz']),
|
||||||
|
'perm'=>perm_binPerm::getGroupPower('all'),
|
||||||
|
'flag'=>$cloud['bz'],
|
||||||
|
'iconview'=>1,
|
||||||
|
'disp'=>'0',
|
||||||
|
);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
public function fetch_all_by_id($ids){
|
||||||
|
$data=array();
|
||||||
|
foreach($ids as $id){
|
||||||
|
$value=self::fetch_by_id($id);
|
||||||
|
$data[$value['fid']]=$value;
|
||||||
|
}
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
public function delete_by_id($id){
|
||||||
|
$return=array();
|
||||||
|
$data=parent::fetch($id);
|
||||||
|
if(parent::delete($id)){
|
||||||
|
$return['msg']='success';
|
||||||
|
//C::t('source_shortcut')->delete_by_bz($data['bz'].':'.$id.':',true);//删除快捷方式;
|
||||||
|
//删除图片缓存文件
|
||||||
|
$imgcache=getglobal('setting/attachdir').'./imgcache/'.$data['bz'].'/'.$id.'/';
|
||||||
|
removedirectory($imgcache);
|
||||||
|
}
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
public function delete_by_uid($uid){
|
||||||
|
if(!$uid) return 0;
|
||||||
|
foreach(DB::fetch_all("select id from %t where uid=%d",array($this->_table,$uid)) as $value){
|
||||||
|
self::delete_by_id($value['id']);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function delete_by_bz($bz){
|
||||||
|
foreach(DB::fetch_all("select id from %t where bz=%s",array($this->_table,$bz)) as $value){
|
||||||
|
self::delete_by_id($value['id']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
83
core/class/table/table_connect_onedrive.php
Normal file
83
core/class/table/table_connect_onedrive.php
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
<?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');
|
||||||
|
}
|
||||||
|
//所有用户应用
|
||||||
|
//uid=0 的表示为默认应用
|
||||||
|
|
||||||
|
class table_connect_onedrive extends dzz_table
|
||||||
|
{
|
||||||
|
public function __construct() {
|
||||||
|
|
||||||
|
$this->_table = 'connect_onedrive';
|
||||||
|
$this->_pk = 'id';
|
||||||
|
$this->_pre_cache_key = 'connect_onedrive_';
|
||||||
|
$this->_cache_ttl = 300;
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
public function fetch_by_id($id){
|
||||||
|
|
||||||
|
$value=self::fetch($id);
|
||||||
|
$cloud=DB::fetch_first("select * from ".DB::table('connect')." where bz='{$value['bz']}'");
|
||||||
|
if(!$value['cloudname']) $value['cloudname']=$cloud['name'].':'.($value['cusername']?$value['cusername']:$cloud['cuid']);
|
||||||
|
$data=array(
|
||||||
|
'id'=>$value['id'],
|
||||||
|
'fid'=>md5($cloud['bz'].':'.$value['id'].':'.$cloud['root']),
|
||||||
|
'pfid'=>0,
|
||||||
|
'fname'=>$value['cloudname'],
|
||||||
|
'ficon'=>'dzz/images/default/system/'.$cloud['bz'].'.png',
|
||||||
|
'bz'=>$cloud['bz'].':'.$value['id'].':',
|
||||||
|
'path'=>$cloud['bz'].':'.$value['id'].':'.$cloud['root'],
|
||||||
|
'type'=>'pan',
|
||||||
|
'fsperm'=>perm_FolderSPerm::flagPower($cloud['bz']),
|
||||||
|
'perm'=>perm_binPerm::getGroupPower('all'),
|
||||||
|
'flag'=>$cloud['bz'],
|
||||||
|
'iconview'=>1,
|
||||||
|
'disp'=>'0',
|
||||||
|
);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
public function fetch_all_by_id($ids){
|
||||||
|
$data=array();
|
||||||
|
foreach($ids as $id){
|
||||||
|
$value=self::fetch_by_id($id);
|
||||||
|
$data[$value['fid']]=$value;
|
||||||
|
}
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
public function delete_by_id($id){
|
||||||
|
$return=array();
|
||||||
|
$data=parent::fetch($id);
|
||||||
|
if(parent::delete($id)){
|
||||||
|
$return['msg']='success';
|
||||||
|
//C::t('source_shortcut')->delete_by_bz($data['bz'].':'.$id.':',true);//删除快捷方式;
|
||||||
|
//删除图片缓存文件
|
||||||
|
$imgcache=getglobal('setting/attachdir').'./imgcache/'.$data['bz'].'/'.$id.'/';
|
||||||
|
removedirectory($imgcache);
|
||||||
|
}
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
public function delete_by_uid($uid){
|
||||||
|
if(!$uid) return 0;
|
||||||
|
foreach(DB::fetch_all("select id from %t where uid=%d",array($this->_table,$uid)) as $value){
|
||||||
|
self::delete_by_id($value['id']);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function delete_by_bz($bz){
|
||||||
|
foreach(DB::fetch_all("select id from %t where bz=%s",array($this->_table,$bz)) as $value){
|
||||||
|
self::delete_by_id($value['id']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
83
core/class/table/table_connect_pan.php
Normal file
83
core/class/table/table_connect_pan.php
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
<?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');
|
||||||
|
}
|
||||||
|
//所有用户应用
|
||||||
|
//uid=0 的表示为默认应用
|
||||||
|
|
||||||
|
class table_connect_pan extends dzz_table
|
||||||
|
{
|
||||||
|
public function __construct() {
|
||||||
|
|
||||||
|
$this->_table = 'connect_pan';
|
||||||
|
$this->_pk = 'id';
|
||||||
|
$this->_pre_cache_key = 'connect_pan_';
|
||||||
|
$this->_cache_ttl = 300;
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
public function fetch_by_id($id){
|
||||||
|
|
||||||
|
$value=self::fetch($id);
|
||||||
|
$cloud=DB::fetch_first("select * from ".DB::table('connect')." where bz='{$value['bz']}'");
|
||||||
|
if(!$value['cloudname']) $value['cloudname']=$cloud['name'].':'.($value['cusername']?$value['cusername']:$cloud['cuid']);
|
||||||
|
$data=array(
|
||||||
|
'id'=>$value['id'],
|
||||||
|
'fid'=>md5($cloud['bz'].':'.$value['id'].':'.$cloud['root']),
|
||||||
|
'pfid'=>0,
|
||||||
|
'fname'=>$value['cloudname'],
|
||||||
|
'ficon'=>'dzz/images/default/system/'.$cloud['bz'].'.png',
|
||||||
|
'bz'=>$cloud['bz'].':'.$value['id'].':',
|
||||||
|
'path'=>$cloud['bz'].':'.$value['id'].':'.$cloud['root'],
|
||||||
|
'type'=>'pan',
|
||||||
|
'fsperm'=>perm_FolderSPerm::flagPower($cloud['bz']),
|
||||||
|
'perm'=>perm_binPerm::getGroupPower('all'),
|
||||||
|
'flag'=>$cloud['bz'],
|
||||||
|
'iconview'=>1,
|
||||||
|
'disp'=>'0',
|
||||||
|
);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
public function fetch_all_by_id($ids){
|
||||||
|
$data=array();
|
||||||
|
foreach($ids as $id){
|
||||||
|
$value=self::fetch_by_id($id);
|
||||||
|
$data[$value['fid']]=$value;
|
||||||
|
}
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
public function delete_by_id($id){
|
||||||
|
$return=array();
|
||||||
|
$data=parent::fetch($id);
|
||||||
|
if(parent::delete($id)){
|
||||||
|
$return['msg']='success';
|
||||||
|
//C::t('source_shortcut')->delete_by_bz($data['bz'].':'.$id.':',true);//删除快捷方式;
|
||||||
|
//删除图片缓存文件
|
||||||
|
$imgcache=getglobal('setting/attachdir').'./imgcache/'.$data['bz'].'/'.$id.'/';
|
||||||
|
removedirectory($imgcache);
|
||||||
|
}
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
public function delete_by_uid($uid){
|
||||||
|
if(!$uid) return 0;
|
||||||
|
foreach(DB::fetch_all("select id from %t where uid=%d",array($this->_table,$uid)) as $value){
|
||||||
|
self::delete_by_id($value['id']);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function delete_by_bz($bz){
|
||||||
|
foreach(DB::fetch_all("select id from %t where bz=%s",array($this->_table,$bz)) as $value){
|
||||||
|
self::delete_by_id($value['id']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
84
core/class/table/table_connect_storage.php
Normal file
84
core/class/table/table_connect_storage.php
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
<?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');
|
||||||
|
}
|
||||||
|
//所有用户应用
|
||||||
|
//uid=0 的表示为默认应用
|
||||||
|
|
||||||
|
class table_connect_storage extends dzz_table
|
||||||
|
{
|
||||||
|
public function __construct() {
|
||||||
|
|
||||||
|
$this->_table = 'connect_storage';
|
||||||
|
$this->_pk = 'id';
|
||||||
|
/*$this->_pre_cache_key = 'connect_storage_';
|
||||||
|
$this->_cache_ttl = 0;*/
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
public function fetch_by_id($id){
|
||||||
|
|
||||||
|
$value=self::fetch($id);
|
||||||
|
$cloud=DB::fetch_first("select * from ".DB::table('connect')." where bz='{$value['bz']}'");
|
||||||
|
$value['access_id']=authcode($value['access_id'],'DECODE',$value['bz'])?authcode($value['access_id'],'DECODE',$value['bz']):$value['access_id'];
|
||||||
|
if(!$value['cloudname']) $value['cloudname']=$cloud['name'].':'.($value['bucket']?$value['bucket']:cutstr($value['access_id'], 4, ''));
|
||||||
|
if($value['bucket']) $value['bucket'].='/';
|
||||||
|
$data=array(
|
||||||
|
'id'=>$value['id'],
|
||||||
|
'fid'=>md5($cloud['bz'].':'.$value['id'].':'.$value['bucket']),
|
||||||
|
'pfid'=>0,
|
||||||
|
'fname'=>$value['cloudname'],
|
||||||
|
'ficon'=>'dzz/images/default/system/'.$cloud['bz'].'.png',
|
||||||
|
'bz'=>$cloud['bz'].':'.$value['id'].':',
|
||||||
|
'path'=>$cloud['bz'].':'.$value['id'].':'.$value['bucket'],
|
||||||
|
'type'=>'storage',
|
||||||
|
'fsperm'=>$value['bucket']?'0':perm_FolderSPerm::flagPower($cloud['bz'].'_root'),
|
||||||
|
'perm'=>perm_binPerm::getGroupPower('all'),
|
||||||
|
'flag'=>$cloud['bz'],
|
||||||
|
'iconview'=>1,
|
||||||
|
'disp'=>'0',
|
||||||
|
);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
public function fetch_all_by_id($ids){
|
||||||
|
$data=array();
|
||||||
|
foreach($ids as $id){
|
||||||
|
if($value=self::fetch_by_id($id)) $data[$value['fid']]=$value;
|
||||||
|
}
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
public function delete_by_id($id){
|
||||||
|
//删除此应用的快捷方式
|
||||||
|
$return=array();
|
||||||
|
$data=parent::fetch($id);
|
||||||
|
if(parent::delete($id)){
|
||||||
|
$return['msg']='success';
|
||||||
|
//C::t('source_shortcut')->delete_by_bz($data['bz'].':'.$id.':',true);//删除快捷方式;
|
||||||
|
//删除图片缓存文件
|
||||||
|
$imgcache=getglobal('setting/attachdir').'./imgcache/'.$data['bz'].'/'.$id.'/';
|
||||||
|
removedirectory($imgcache);
|
||||||
|
}
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
public function delete_by_uid($uid){
|
||||||
|
if(!$uid) return 0;
|
||||||
|
foreach(DB::fetch_all("select id from %t where uid=%d",array($this->_table,$uid)) as $value){
|
||||||
|
self::delete_by_id($value['id']);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function delete_by_bz($bz){
|
||||||
|
foreach(DB::fetch_all("select id from %t where bz=%s",array($this->_table,$bz)) as $value){
|
||||||
|
self::delete_by_id($value['id']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
102
core/class/table/table_local_router.php
Normal file
102
core/class/table/table_local_router.php
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
<?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');
|
||||||
|
}
|
||||||
|
//所有用户应用
|
||||||
|
//uid=0 的表示为默认应用
|
||||||
|
|
||||||
|
class table_local_router extends dzz_table
|
||||||
|
{
|
||||||
|
public function __construct() {
|
||||||
|
|
||||||
|
$this->_table = 'local_router';
|
||||||
|
$this->_pk = 'routerid';
|
||||||
|
//$this->_pre_cache_key = 'local_router_';
|
||||||
|
//$this->_cache_ttl = 0;
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
public function fetch_by_routerid($routerid){
|
||||||
|
$data=self::fetch($routerid);
|
||||||
|
$data['router']=unserialize($data['router']);
|
||||||
|
$data['drouter']=self::getRouterDetail($data['router']);
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
public function fetch_all_orderby_priority($available=false){
|
||||||
|
$data=array();
|
||||||
|
$where='1';
|
||||||
|
if($available){
|
||||||
|
$where.=' and `available`>0';
|
||||||
|
}
|
||||||
|
foreach(DB::fetch_all("SELECT * FROM %t WHERE $where ORDER BY priority DESC ",array($this->_table)) as $value){
|
||||||
|
$value['router']=unserialize($value['router']);
|
||||||
|
$value['drouter']=self::getRouterDetail($value['router']);
|
||||||
|
$data[$value['routerid']]=$value;
|
||||||
|
}
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
public function getRouterDetail($router){
|
||||||
|
$html='';
|
||||||
|
foreach($router as $type =>$value){
|
||||||
|
|
||||||
|
switch($type){
|
||||||
|
case 'exts':
|
||||||
|
if($value) $html.="文件后缀:".implode(',',$value);
|
||||||
|
else $html.="文件后缀:不限制";
|
||||||
|
break;
|
||||||
|
case 'size':
|
||||||
|
$sizearr=array();
|
||||||
|
if(is_numeric($value['lt'])) $sizearr[]="大于".formatsize($value['lt']*1024*1024);
|
||||||
|
if(is_numeric($value['gt'])) $sizearr[]="小于".formatsize($value['gt']*1024*1024);
|
||||||
|
if($sizearr) $html.='<br>文件大小:'.implode(' and ',$sizearr);
|
||||||
|
else $html.='<br>文件大小:不限制';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $html;
|
||||||
|
}
|
||||||
|
public function insert($setarr){
|
||||||
|
$setarr['router']=serialize($setarr['router']);
|
||||||
|
return parent::insert($setarr,1);
|
||||||
|
}
|
||||||
|
public function update($routerid,$setarr){
|
||||||
|
if($setarr['router']) $setarr['router']=serialize($setarr['router']);
|
||||||
|
return parent::update($routerid,$setarr);
|
||||||
|
}
|
||||||
|
public function delete_by_remoteid($remoteid){
|
||||||
|
return DB::delete($this->_table,"remoteid='{$remoteid}'");
|
||||||
|
}
|
||||||
|
//根据路由规则筛选出存储位置
|
||||||
|
public function getRemoteId($data){
|
||||||
|
$remoteid=0;
|
||||||
|
$guize=self::fetch_all_orderby_priority(true);
|
||||||
|
foreach($guize as $value){
|
||||||
|
//没有此存储位置
|
||||||
|
if(!$ldata = C::t('local_storage')->fetch($value['remoteid'])){
|
||||||
|
continue;
|
||||||
|
}else{
|
||||||
|
$available = DB::result_first("select available from %t where bz = %s", array('connect',$ldata['bz']));
|
||||||
|
if($available <1) continue;
|
||||||
|
}
|
||||||
|
//云停用跳转
|
||||||
|
if($available<1) continue;
|
||||||
|
if($value['router']['exts']){
|
||||||
|
if(!in_array(strtolower($data['filetype']),$value['router']['exts'])) continue;
|
||||||
|
}
|
||||||
|
if(is_numeric($value['router']['size']['lt']) && $data['filesize']<$value['router']['size']['lt']*1024*1024) continue;
|
||||||
|
if(is_numeric($value['router']['size']['gt']) && $data['filesize']>$value['router']['size']['gt']*1024*1024) continue;
|
||||||
|
return $value['remoteid'];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $remoteid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
119
core/class/table/table_local_storage.php
Normal file
119
core/class/table/table_local_storage.php
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
<?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_storage extends dzz_table
|
||||||
|
{
|
||||||
|
public function __construct() {
|
||||||
|
|
||||||
|
$this->_table = 'local_storage';
|
||||||
|
$this->_pk = 'remoteid';
|
||||||
|
/*$this->_pre_cache_key = 'local_storage_';
|
||||||
|
$this->_cache_ttl = 300;*/
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function fetch_by_remoteid($remoteid){
|
||||||
|
$remoteid=intval($remoteid);
|
||||||
|
if(!$data=self::fetch($remoteid)){
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
if($connect=C::t('connect')->fetch($data['bz'])){
|
||||||
|
$data=array_merge($connect,$data);
|
||||||
|
}
|
||||||
|
if($data['dname'] && $data['did']){
|
||||||
|
if($pan=C::t($data['dname'])->fetch($data['did'])) $data=array_merge($pan,$data);
|
||||||
|
}
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
public function getBzByRemoteid($remoteid){ //通过remoteid获取bz,默认返回dzz
|
||||||
|
if(!($data=self::fetch_by_remoteid($remoteid))){
|
||||||
|
return 'dzz';
|
||||||
|
}
|
||||||
|
if($data['type']=='pan') $bz=$data['bz'].':'.$data['id'].':'.$data['root'];
|
||||||
|
elseif($data['type']=='storage') $bz=$data['bz'].':'.$data['id'].':'.$data['bucket'];
|
||||||
|
elseif($data['type']=='ftp') $bz=$data['bz'].':'.$data['id'].':'.$data['root'];
|
||||||
|
elseif($data['type']=='disk') $bz=$data['bz'].':'.$data['id'].':'.$data['root'];
|
||||||
|
else $bz='dzz';
|
||||||
|
return $bz;
|
||||||
|
}
|
||||||
|
public function fetch_all_orderby_disp(){
|
||||||
|
$data=array();
|
||||||
|
foreach(DB::fetch_all("SELECT s.*,c.available FROM %t s LEFT JOIN %t c ON c.bz=s.bz WHERE 1 ORDER BY s.disp ",array($this->_table,'connect')) as $value){
|
||||||
|
$data[$value['remoteid']]=$value;
|
||||||
|
}
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
public function update_usesize_by_remoteid($remoteid,$ceof){
|
||||||
|
if(!$remoteid) $remoteid=DB::result_first("select remoteid from %t where bz='dzz' limit 1",array($this->_table));
|
||||||
|
$ceof=intval($ceof);
|
||||||
|
try{
|
||||||
|
if($ceof>0){
|
||||||
|
DB::query("update %t set usesize=usesize+%d where remoteid=%d",array($this->_table,$ceof,$remoteid));
|
||||||
|
}else{
|
||||||
|
DB::query("update %t set usesize=usesize-%d where remoteid=%d",array($this->_table,abs($ceof),$remoteid));
|
||||||
|
}
|
||||||
|
$this->clear_cache($remoteid);
|
||||||
|
}catch(Exception $e){}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public function update_sizecount_by_remoteid($remoteid){
|
||||||
|
if($arr=self::getQuota($remoteid)){
|
||||||
|
self::update($remoteid,$arr);
|
||||||
|
return $arr;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getQuota($remoteid){
|
||||||
|
global $_G;
|
||||||
|
$data=self::fetch_by_remoteid($remoteid);
|
||||||
|
$return=array();
|
||||||
|
if($data['type']=='local'){
|
||||||
|
$return['usesize']=C::t('attachment')->getSizeByRemote($remoteid);
|
||||||
|
$return['totalsize']=disk_free_space($_G['setting']['attachdir']);
|
||||||
|
}elseif($data['type']=='pan'){
|
||||||
|
$bz=$data['bz'].':'.$data['id'].':';
|
||||||
|
$arr=IO::getQuota($bz);
|
||||||
|
$return['usesize']=C::t('attachment')->getSizeByRemote($remoteid);
|
||||||
|
if(is_numeric($arr['quota']) && is_numeric($arr['used'])) $return['totalsize']=($arr['quota'])-($arr['used']);
|
||||||
|
}elseif($data['type']=='storage'){
|
||||||
|
$return['usesize']=C::t('attachment')->getSizeByRemote($remoteid);
|
||||||
|
$return['totalsize']=0;
|
||||||
|
}elseif($data['type']=='ftp'){
|
||||||
|
$bz=$data['bz'].':'.$data['id'].':';
|
||||||
|
$return['usesize']=C::t('attachment')->getSizeByRemote($remoteid);
|
||||||
|
$return['totalsize']=0;
|
||||||
|
}elseif($data['type']=='disk'){
|
||||||
|
$bz=$data['bz'].':'.$data['id'].':';
|
||||||
|
$return['usesize']=C::t('attachment')->getSizeByRemote($remoteid);
|
||||||
|
$return['totalsize']=disk_free_space($data['attachdir']);
|
||||||
|
}else{
|
||||||
|
$return['usesize']=C::t('attachment')->getSizeByRemote($remoteid);
|
||||||
|
$return['totalsize']=0;
|
||||||
|
}
|
||||||
|
return $return;
|
||||||
|
}
|
||||||
|
public function delete_by_remoteid($remoteid){
|
||||||
|
$data=self::fetch($remoteid);
|
||||||
|
if($data['bz']=='dzz') return array('error'=>'内置,不能删除');
|
||||||
|
if(C::t('attachment')->getSizeByRemote($remoteid)>0) return array('error'=>'有文件未迁移,不能删除');
|
||||||
|
C::t('local_router')->delete_by_remoteid($remoteid);
|
||||||
|
if($data['dname'] && $data['did']) C::t($data['dname'])->delete_by_id($data['did']);//删除链接
|
||||||
|
return self::delete($remoteid);
|
||||||
|
}
|
||||||
|
public function getRemoteId(){
|
||||||
|
return DB::result_first("select s.remoteid from ".DB::table('local_storage')." s LEFT JOIN ".DB::table('connect')." c ON s.bz=c.bz where c.available>0 order by s.isdefault DESC, s.disp ASC");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
432
core/class/table/table_pichome_collectlist.php
Normal file
432
core/class/table/table_pichome_collectlist.php
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
30
core/class/table/table_pichome_ffmpeg_record.php
Normal file
30
core/class/table/table_pichome_ffmpeg_record.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
if(!defined('IN_OAOOA')) {
|
||||||
|
exit('Access Denied');
|
||||||
|
}
|
||||||
|
class table_pichome_ffmpeg_record extends dzz_table
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->_table = 'pichome_ffmpeg_record';
|
||||||
|
$this->_pk = 'rid';
|
||||||
|
$this->_pre_cache_key = 'pichome_ffmpeg_record';
|
||||||
|
$this->_cache_ttl = 3600;
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
public function insert($setarr,$isforce = 0){
|
||||||
|
$rid = $setarr['rid'];
|
||||||
|
if(DB::result_first("select rid from %t where rid = %s",array($this->_table,$rid))){
|
||||||
|
if(!$isforce) return $rid;
|
||||||
|
else {
|
||||||
|
parent::delete($rid);
|
||||||
|
return parent::insert($setarr);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
return parent::insert($setarr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,107 +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.$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(!parent::insert($setarr))continue;
|
|
||||||
}
|
|
||||||
$folderarr[] = $setarr;
|
|
||||||
if ($v['children']) {
|
|
||||||
$tmpchild = $v['children'];
|
|
||||||
foreach($tmpchild as $child){
|
|
||||||
$cfid = $child['id'].$appid;
|
|
||||||
$setarr=['fname'=>$child['name'],'dateline'=>TIMESTAMP,'pfid'=>$fid,'appid'=>$appid,'pathkey'=>$pathkey.$fid.$cfid];
|
|
||||||
if($child['coverId']) $setarr['cover'] = $child['coverId'].$appid;
|
|
||||||
if($child['password']) $setarr['password'] = $child['password'];
|
|
||||||
if($v['passwordTips']) $setarr['passwordtips'] = trim($child['passwordTips']);
|
|
||||||
}
|
|
||||||
$folderarr = $this->insert_folderdata_by_appid($appid,$tmpchild,$folderarr,$fid,$pathkey.$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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
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;
|
||||||
//转义查询语句当中的path
|
if ($v['children']) {
|
||||||
public function path_transferred_meaning($path){
|
$tmpchild = $v['children'];
|
||||||
return str_replace(array('\'','(',')','+','^','$','{','}','[',']','#'),array("\'",'\(','\)','\+','\^','\$','\{','\}','\[','\]','\#'),$path);
|
foreach($tmpchild as $child){
|
||||||
}
|
$cfid = $child['id'].$appid;
|
||||||
|
$folderarr = $this->insert_folderdata_by_appid($appid,[$child],$folderarr,$fid,($pathkey) ? $pathkey.$cfid:$fid.$cfid);
|
||||||
|
}
|
||||||
|
|
||||||
public function fetch_all_folder_by_appid($appid,$pfid=''){
|
|
||||||
foreach(DB::fetch_all("select fid,fname from %t where appid = %s and password = '' and pfid = %s",array($this->_table,$appid,$pfid)) as $v){
|
}
|
||||||
$v['num'] = C::t('pichome_folderresources')->get_sum_by_fid($v['fid']);
|
}
|
||||||
$v['children'] = $this->fetch_all_folder_by_appid($appid,$v['fid']);
|
return $folderarr;
|
||||||
$returndata[] = $v;
|
}
|
||||||
}
|
|
||||||
return $returndata;
|
public function insert_data($setarr){
|
||||||
|
$fid = $setarr['fid'];
|
||||||
|
if($fname = DB::result_first("select count(fid) from %t where fid = %s and appid = %s",array($this->_table,$setarr['fid'],$setarr['appid']))){
|
||||||
|
unset($setarr['fid']);
|
||||||
|
parent::update($fid,$setarr);
|
||||||
|
}else{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
//根据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);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function fetch_all_folder_by_appid($appid,$pfid='',$i=1){
|
||||||
|
if($i>5) return [];
|
||||||
|
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['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
|
||||||
|
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;
|
||||||
|
$folderdata[] = $v;
|
||||||
|
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
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
|
||||||
|
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'].'%'));
|
||||||
|
$v['leaf'] = DB::result_first("select count(*) from %t where pfid = %s",array($this->_table,$v['fid'])) ? false:true;
|
||||||
|
$folderdata[] = $v;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $folderdata;
|
||||||
|
}
|
||||||
|
public function search_by_fname($keyword,$appid=''){
|
||||||
|
$folderdata = [];
|
||||||
|
$wheresql = ' fname like %s ';
|
||||||
|
$params = array($this->_table,'%'.$keyword.'%');
|
||||||
|
if($appid){
|
||||||
|
$wheresql .= ' and appid = %s ';
|
||||||
|
$params[] = $appid;
|
||||||
|
}
|
||||||
|
foreach(DB::fetch_all("select fname,fid,pathkey,appid,pfid from %t where $wheresql",$params)as $v ){
|
||||||
|
$folderdata[$v['fid']] = $v;
|
||||||
|
}
|
||||||
|
foreach ($folderdata as $k=>$v){
|
||||||
|
$len=strlen($folderdata[$k]['pathkey']);
|
||||||
|
|
||||||
|
$folderdata[$k]['len']=$len;
|
||||||
|
}
|
||||||
|
$cloumarr = array_column($folderdata,'len');
|
||||||
|
array_multisort($cloumarr,SORT_ASC,$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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
24
core/class/table/table_pichome_folder_relation.php
Normal file
24
core/class/table/table_pichome_folder_relation.php
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
if (!defined('IN_OAOOA')) {
|
||||||
|
exit('Access Denied');
|
||||||
|
}
|
||||||
|
|
||||||
|
class table_pichome_folder_relation extends dzz_table
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->_table = 'pichome_folder_relation';
|
||||||
|
$this->_pk = 'id';
|
||||||
|
$this->_pre_cache_key = 'pichome_folder_relation';
|
||||||
|
$this->_cache_ttl = 3600;
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function fetch_by_ofid_appid($ofid,$appid){
|
||||||
|
return DB::fetch_first("select * from %t where nfid = %d and appid = %s",array($this->_table,$ofid,$appid));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -14,9 +14,14 @@
|
|||||||
parent::__construct();
|
parent::__construct();
|
||||||
}
|
}
|
||||||
public function insert($setarr){
|
public function insert($setarr){
|
||||||
if($id = DB::result_first("select id from %t where rid = %s and fid =%s",array($this->_table,$setarr['rid'],$setarr['fid']))){
|
if($id = DB::result_first("select id from %t where rid = %s and fid =%s and appid = %s",array($this->_table,$setarr['rid'],$setarr['fid'],$setarr['appid']))){
|
||||||
return $id;
|
return $id;
|
||||||
}else{
|
}else{
|
||||||
|
if($id = DB::result_first("select id from %t where rid = %s and fid = %s and appid = %s",array($this->_table,$setarr['rid'],$setarr['fid'],$setarr['appid']))){
|
||||||
|
$rid = $setarr['rid'];
|
||||||
|
unset($setarr['rid']);
|
||||||
|
return parent::update($rid,$setarr);
|
||||||
|
}
|
||||||
return parent::insert($setarr);
|
return parent::insert($setarr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
30
core/class/table/table_pichome_imagickrecord.php
Normal file
30
core/class/table/table_pichome_imagickrecord.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
if(!defined('IN_OAOOA')) {
|
||||||
|
exit('Access Denied');
|
||||||
|
}
|
||||||
|
class table_pichome_imagickrecord extends dzz_table
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->_table = 'pichome_imagickrecord';
|
||||||
|
$this->_pk = 'rid';
|
||||||
|
$this->_pre_cache_key = 'pichome_imagickrecord';
|
||||||
|
$this->_cache_ttl = 3600;
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
public function insert($setarr,$isforce = 0){
|
||||||
|
$rid = $setarr['rid'];
|
||||||
|
if(DB::result_first("select rid from %t where rid = %s",array($this->_table,$rid))){
|
||||||
|
if(!$isforce) return $rid;
|
||||||
|
else {
|
||||||
|
parent::delete($rid);
|
||||||
|
return parent::insert($setarr);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
return parent::insert($setarr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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 该参数需带权重,以键为权重值,此处查询优先权重最大的查询近似颜色值
|
||||||
|
|||||||
@@ -1,235 +1,289 @@
|
|||||||
<?php
|
<?php
|
||||||
if (!defined('IN_OAOOA')) {
|
if (!defined('IN_OAOOA')) {
|
||||||
exit('Access Denied');
|
exit('Access Denied');
|
||||||
}
|
}
|
||||||
|
|
||||||
class table_pichome_resources extends dzz_table
|
class table_pichome_resources extends dzz_table
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
{
|
{
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
|
|
||||||
$this->_table = 'pichome_resources';
|
$this->_table = 'pichome_resources';
|
||||||
$this->_pk = 'rid';
|
$this->_pk = 'rid';
|
||||||
$this->_pre_cache_key = 'pichome_resources';
|
$this->_pre_cache_key = 'pichome_resources';
|
||||||
$this->_cache_ttl = 3600;
|
$this->_cache_ttl = 3600;
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function insert($setarr)
|
||||||
|
{
|
||||||
|
if (DB::result_first("select count(rid) from %t where rid = %s", array($this->_table, $setarr['rid']))) {
|
||||||
|
$rid = $setarr['rid'];
|
||||||
|
unset($setarr['rid']);
|
||||||
|
parent::update($rid, $setarr);
|
||||||
|
} else {
|
||||||
|
parent::insert($setarr);
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public function insert($setarr)
|
public function delete_by_appid($appid)
|
||||||
{
|
{
|
||||||
if (DB::result_first("select count(*) from %t where rid = %s", array($this->_table, $setarr['rid']))) {
|
$data = C::t('pichome_vapp')->fetch($appid);
|
||||||
$rid = $setarr['rid'];
|
//$i = 0;
|
||||||
unset($setarr['rid']);
|
$rids = [];
|
||||||
return parent::update($rid, $setarr);
|
foreach (DB::fetch_all("select rid from %t where appid = %s limit 0,100", array($this->_table, $appid)) as $v) {
|
||||||
|
$rids[] = $v['rid'];
|
||||||
|
}
|
||||||
|
if ($rids) $this->delete_by_rid($rids, $data['deluid'], $data['delusername']);
|
||||||
|
//return $i;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function fetch_by_path($path)
|
||||||
|
{
|
||||||
|
$path = trim($path);
|
||||||
|
return DB::result_first("select * from %t where path = %s", array($this->_table, $path));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function delete_by_rid($rids, $uid = 0, $username = '')
|
||||||
|
{
|
||||||
|
if (!is_array($rids)) $rids = (array)$rids;
|
||||||
|
C::t('pichome_resources_attr')->delete_by_rid($rids);
|
||||||
|
C::t('pichome_folderresources')->delete_by_rid($rids);
|
||||||
|
C::t('pichome_palette')->delete_by_rid($rids);
|
||||||
|
C::t('pichome_comments')->delete_by_rid($rids);
|
||||||
|
C::t('pichome_resourcestag')->delete_by_rid($rids);
|
||||||
|
C::t('pichome_share')->delete_by_rid($rids);
|
||||||
|
C::t('pichome_ffmpeg_record')->delete($rids);
|
||||||
|
C::t('pichome_imagickrecord')->delete($rids);
|
||||||
|
$deldata = ['rids' => $rids, 'deluid' => $uid, 'delusername' => $username];
|
||||||
|
Hook::listen('pichomedatadeleteafter', $deldata);
|
||||||
|
|
||||||
|
return $this->delete($rids);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function fetch_by_rids($rids)
|
||||||
|
{
|
||||||
|
global $Opentype;
|
||||||
|
if (!is_array($rids)) $rids = (array)$rids;
|
||||||
|
|
||||||
|
$datas = $tmpdatas = [];
|
||||||
|
foreach (parent::fetch_all($rids) as $v) {
|
||||||
|
$v['fsize'] = formatsize($v['size']);
|
||||||
|
$v['mtime'] = dgmdate(round($v['mtime'] / 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['btime'] = dgmdate(round($v['btime'] / 1000), 'Y/m/d H:i');
|
||||||
|
$v['dpath'] = dzzencode($v['rid'], '', 0, 0);
|
||||||
|
if (in_array($v['ext'], $Opentype['video'])) {
|
||||||
|
$v['opentype'] = 'video';
|
||||||
|
} elseif (in_array($v['ext'], $Opentype['text'])) {
|
||||||
|
$v['opentype'] = 'text';
|
||||||
|
} elseif (in_array($v['ext'], $Opentype['pdf'])) {
|
||||||
|
$v['opentype'] = 'pdf';
|
||||||
|
} elseif (in_array($v['ext'], $Opentype['image'])) {
|
||||||
|
$v['opentype'] = 'image';
|
||||||
} else {
|
} else {
|
||||||
return parent::insert($setarr);
|
$v['opentype'] = 'other';
|
||||||
}
|
}
|
||||||
|
$tmpdatas[$v['rid']] = $v;
|
||||||
}
|
}
|
||||||
|
foreach ($rids as $rid) {
|
||||||
public function delete_by_appid($appid)
|
$datas[$rid] = $tmpdatas[$rid];
|
||||||
{
|
}
|
||||||
$rids = [];
|
foreach (C::t('pichome_resources_attr')->fetch_all($rids) as $v) {
|
||||||
foreach (DB::fetch_all("select rid from %t where appid = %s", array($this->_table, $appid)) as $v) {
|
$datas[$v['rid']]['path'] = $v['path'];
|
||||||
$rids[] = $v['rid'];
|
//$datas[$v['rid']]['hasthumb'] = $v['hasthumb'];
|
||||||
|
$colorsarr = [];
|
||||||
|
//获取颜色数据
|
||||||
|
$colordata = C::t('pichome_palette')->fetch_colordata_by_rid($v['rid']);
|
||||||
|
foreach ($colordata as $cv) {
|
||||||
|
$colorsarr[] = $cv;
|
||||||
}
|
}
|
||||||
return $this->delete_by_rid($rids);
|
$datas[$v['rid']]['color'] = $colorsarr[0];
|
||||||
|
$datas[$v['rid']]['link'] = $v['link'];
|
||||||
|
}
|
||||||
|
//array_multisort($datas, 'rid', SORT_ASC, $rids);
|
||||||
|
foreach (C::t('pichome_resourcestag')->fetch_all_tag_by_rids($rids) as $k => $v) {
|
||||||
|
$datas[$k]['tags'] = $v;
|
||||||
|
// $datas[$k]['tags'] = '•'.implode('•',$v);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function fetch_by_path($path)
|
return $datas;
|
||||||
{
|
}
|
||||||
$path = trim($path);
|
|
||||||
return DB::result_first("select * from %t where path = %s", array($this->_table, $path));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function delete_by_rid($rids)
|
//获取数据后端使用
|
||||||
{
|
public function fetch_data_by_rid($rid)
|
||||||
if (!is_array($rids)) $rids = (array)$rids;
|
{
|
||||||
C::t('pichome_resources_attr')->delete_by_rid($rids);
|
|
||||||
C::t('pichome_folderresources')->delete_by_rid($rids);
|
|
||||||
C::t('pichome_palette')->delete_by_rid($rids);
|
|
||||||
C::t('pichome_comments')->delete_by_rid($rids);
|
|
||||||
C::t('pichome_resourcestag')->delete_by_rid($rids);
|
|
||||||
C::t('pichome_share')->delete_by_rid($rids);
|
|
||||||
return parent::delete($rids);
|
|
||||||
}
|
|
||||||
|
|
||||||
//以rid获取文件缩略图
|
if (!$resourcesdata = parent::fetch($rid)) return array();
|
||||||
public function get_icon_by_rids($rids)
|
if ($resourcesdata['isdelete'] > 0) return array();
|
||||||
{
|
$downshare = C::t('pichome_vapp')->fetch_all_sharedownlod();
|
||||||
if (!is_array($rids)) $rids = (array)$rids;
|
if ($downshare[$resourcesdata['appid']]['isdelete']) return array();
|
||||||
$icondatas = [];
|
$attrdata = C::t('pichome_resources_attr')->fetch($rid);
|
||||||
foreach (DB::fetch_all("select r.rid,r.type,r.hasthumb,ra.path from %t r left join %t ra on r.rid=ra.rid where rid in(%n) ", array($this->_table, $rids)) as $v) {
|
$resourcesdata = array_merge($resourcesdata, $attrdata);
|
||||||
if ($v['hasthumb']) {
|
$resourcesdata['realpath'] = $downshare[$resourcesdata['appid']]['path'] . BS . $resourcesdata['path'];
|
||||||
$filename = str_replace(strrchr($v['name'], "."), "", $v['name']);
|
return $resourcesdata;
|
||||||
$filepath = dirname($v['path']);
|
}
|
||||||
$thumbpath = $filepath . $filename . '_thumb.png';
|
|
||||||
// if (!file_exists($thumbpath)) $thumbpath = iconv('UTF-8', 'GB2312', $thumbpath);
|
public function fetch_by_rid($rid)
|
||||||
$icondatas[$v['rid']] = $thumbpath;
|
{
|
||||||
|
global $Opentype;
|
||||||
|
if (!$resourcesdata = parent::fetch($rid)) return array();
|
||||||
|
if ($resourcesdata['isdelete'] > 0) return array();
|
||||||
|
//获取所有库分享和下载权限
|
||||||
|
$downshare = C::t('pichome_vapp')->fetch_all_sharedownlod();
|
||||||
|
$attrdata = C::t('pichome_resources_attr')->fetch($rid);
|
||||||
|
if ($attrdata['desc']) $attrdata['desc'] = strip_tags($attrdata['desc']);
|
||||||
|
$resourcesdata = array_merge($resourcesdata, $attrdata);
|
||||||
|
$resourcesdata['colors'] = C::t('pichome_palette')->fetch_colordata_by_rid($rid);
|
||||||
|
$resourcesdata['ext'] = strtolower($resourcesdata['ext']);
|
||||||
|
if (in_array($resourcesdata['ext'], $Opentype['video'])) {
|
||||||
|
$resourcesdata['opentype'] = 'video';
|
||||||
|
} elseif (in_array($resourcesdata['ext'], $Opentype['text'])) {
|
||||||
|
$resourcesdata['opentype'] = 'text';
|
||||||
|
} elseif (in_array($resourcesdata['ext'], $Opentype['pdf'])) {
|
||||||
|
$resourcesdata['opentype'] = 'pdf';
|
||||||
|
} elseif (in_array($resourcesdata['ext'], $Opentype['image'])) {
|
||||||
|
$resourcesdata['opentype'] = 'image';
|
||||||
|
} else {
|
||||||
|
$resourcesdata['opentype'] = 'other';
|
||||||
|
}
|
||||||
|
$resourcesdata['icondata'] = getglobal('siteurl') . 'index.php?mod=io&op=getImg&hash='.VERHASH.'&path=' . dzzencode($rid, '', 7200, 0);
|
||||||
|
|
||||||
|
$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['download'] = $downshare[$resourcesdata['appid']]['download'];
|
||||||
|
|
||||||
|
$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['fsize'] = formatsize($resourcesdata['size']);
|
||||||
|
$resourcesdata['mtime'] = dgmdate(round($resourcesdata['mtime'] / 1000), 'Y/m/d H:i');
|
||||||
|
$resourcesdata['dateline'] = dgmdate(round($resourcesdata['dateline'] / 1000), 'Y/m/d H:i');
|
||||||
|
$resourcesdata['btime'] = dgmdate(round($resourcesdata['btime'] / 1000), 'Y/m/d H:i');
|
||||||
|
unset($resourcesdata['path']);
|
||||||
|
$resourcesdata['foldernames'] = C::t('pichome_folderresources')->get_foldername_by_rid($rid);
|
||||||
|
$resourcesdata['tag'] = C::t('pichome_resourcestag')->fetch_tag_by_rid($rid);
|
||||||
|
$resourcesdata['dpath'] = dzzencode($rid, '', 0, 0);
|
||||||
|
|
||||||
|
|
||||||
|
return $resourcesdata;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getdatasbyrids($rids)
|
||||||
|
{
|
||||||
|
$returndata = [];
|
||||||
|
//文件数据
|
||||||
|
$resourcesdata = $this->fetch_by_rids($rids);
|
||||||
|
//获取所有库分享和下载权限,以及编码数据
|
||||||
|
$downshare = C::t('pichome_vapp')->fetch_all_sharedownlod();
|
||||||
|
//文件附属表数据
|
||||||
|
// $attrdata = C::t('pichome_resources_attr')->fetch_by_rids($rids);
|
||||||
|
//文件标注数
|
||||||
|
$annonationnumdata = C::t('pichome_comments')->fetch_annonationnum_by_rids($rids);
|
||||||
|
foreach ($resourcesdata as $v) {
|
||||||
|
//echo $v['hasthumb'];die;
|
||||||
|
$v['annonationnum'] = $annonationnumdata[$v['rid']]['num'];
|
||||||
|
$v['share'] = $downshare[$v['appid']]['share'];
|
||||||
|
$v['download'] = $downshare[$v['appid']]['download'];
|
||||||
|
|
||||||
|
$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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
unset($v['path']);
|
||||||
|
$returndata[] = $v;
|
||||||
|
}
|
||||||
|
return $returndata;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getImageThumbsize($owidth, $oheight, $width, $height)
|
||||||
|
{
|
||||||
|
if ($owidth > $width || $oheight > $height) {
|
||||||
|
$or = $owidth / $oheight;
|
||||||
|
$r = $width / $height;
|
||||||
|
if ($r > $or) {
|
||||||
|
if ($oheight < $height) {
|
||||||
|
$height = $oheight;
|
||||||
|
$width = $owidth;
|
||||||
} else {
|
} else {
|
||||||
if ($v['type'] == 'commonimage') {
|
|
||||||
$v['icondata'] = $v['path'];
|
$width = ceil($height * $or);
|
||||||
} else {
|
if ($width < 242) {
|
||||||
$v['icondata'] = geticonfromext($v['ext'], $v['type']);
|
$width = 242;
|
||||||
|
$height = ceil($width / $or);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if ($owidth < $width) {
|
||||||
|
$height = $oheight;
|
||||||
|
$width = $owidth;
|
||||||
|
} else {
|
||||||
|
$height = ceil($width / $or);
|
||||||
|
$width = ceil($height * $or);
|
||||||
|
if ($width < 242) {
|
||||||
|
$width = 242;
|
||||||
|
$height = ceil($width / $or);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $icondatas;
|
|
||||||
}
|
} else {
|
||||||
|
$width = $owidth;
|
||||||
public function fetch_by_rids($rids)
|
$height = $oheight;
|
||||||
{
|
|
||||||
global $Opentype;
|
|
||||||
if (!is_array($rids)) $rids = (array)$rids;
|
|
||||||
|
|
||||||
$datas = $tmpdatas = [];
|
|
||||||
foreach (parent::fetch_all($rids) as $v) {
|
|
||||||
$v['fsize'] = formatsize($v['size']);
|
|
||||||
$v['mtime'] = dgmdate(round($v['mtime'] / 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['btime'] = dgmdate(round($v['btime'] / 1000), 'Y/m/d H:i');
|
|
||||||
$v['dpath'] = dzzencode($v['rid'], '', 0);
|
|
||||||
if (in_array($v['ext'], $Opentype['video'])) {
|
|
||||||
$v['opentype'] = 'video';
|
|
||||||
} elseif (in_array($v['ext'], $Opentype['text'])) {
|
|
||||||
$v['opentype'] = 'text';
|
|
||||||
} elseif (in_array($v['ext'], $Opentype['pdf'])) {
|
|
||||||
$v['opentype'] = 'pdf';
|
|
||||||
} elseif (in_array($v['ext'], $Opentype['image'])) {
|
|
||||||
$v['opentype'] = 'image';
|
|
||||||
} else {
|
|
||||||
$v['opentype'] = 'other';
|
|
||||||
}
|
|
||||||
$tmpdatas[$v['rid']] = $v;
|
|
||||||
}
|
|
||||||
foreach($rids as $rid){
|
|
||||||
$datas[$rid] = $tmpdatas[$rid];
|
|
||||||
}
|
|
||||||
foreach (C::t('pichome_resources_attr')->fetch_all($rids) as $v) {
|
|
||||||
if ($datas[$v['rid']]['hasthumb']) {
|
|
||||||
|
|
||||||
$filepath = dirname($v['path']);
|
|
||||||
$filename = substr($v['path'],strrpos($v['path'],'/')+1);
|
|
||||||
$filename = str_replace(strrchr($filename, "."),"",$filename);
|
|
||||||
$thumbpath = 'library/' . $filepath . '/' . $filename . '_thumbnail.png';
|
|
||||||
$datas[$v['rid']]['icondata'] = str_replace('+',' ',urlencode($thumbpath));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if ($datas[$v['rid']]['type'] == 'commonimage') {
|
|
||||||
$datas[$v['rid']]['icondata'] = str_replace('+',' ',urlencode('library/' . $v['path']));
|
|
||||||
} else {
|
|
||||||
$datas[$v['rid']]['icondata'] = geticonfromext($datas[$v['rid']]['ext'], $datas[$v['rid']]['type']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$datas[$v['rid']]['realpath'] = str_replace('+',' ',urlencode('library/' . $v['path']));
|
|
||||||
$colorsarr = [];
|
|
||||||
//获取颜色数据
|
|
||||||
$colordata = C::t('pichome_palette')->fetch_colordata_by_rid($v['rid']);
|
|
||||||
foreach ($colordata as $cv) {
|
|
||||||
$colorsarr[] = $cv;
|
|
||||||
}
|
|
||||||
$datas[$v['rid']]['color'] = $colorsarr[0];
|
|
||||||
$datas[$v['rid']]['link'] = $v['link'];
|
|
||||||
}
|
|
||||||
//array_multisort($datas, 'rid', SORT_ASC, $rids);
|
|
||||||
foreach (C::t('pichome_resourcestag')->fetch_all_tag_by_rids($rids) as $k => $v) {
|
|
||||||
$datas[$k]['tags'] = $v;
|
|
||||||
// $datas[$k]['tags'] = '•'.implode('•',$v);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $datas;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public function fetch_by_rid($rid)
|
|
||||||
{
|
|
||||||
global $Opentype;
|
|
||||||
if (!$resourcesdata = parent::fetch($rid)) return array();
|
|
||||||
if ($resourcesdata['isdelete'] > 0) return array();
|
|
||||||
$attrdata = C::t('pichome_resources_attr')->fetch($rid);
|
|
||||||
$resourcesdata = array_merge($resourcesdata, $attrdata);
|
|
||||||
$resourcesdata['colors'] = C::t('pichome_palette')->fetch_colordata_by_rid($rid);
|
|
||||||
if (in_array($resourcesdata['ext'], $Opentype['video'])) {
|
|
||||||
$resourcesdata['opentype'] = 'video';
|
|
||||||
} elseif (in_array($resourcesdata['ext'], $Opentype['text'])) {
|
|
||||||
$resourcesdata['opentype'] = 'text';
|
|
||||||
} elseif (in_array($resourcesdata['ext'], $Opentype['pdf'])) {
|
|
||||||
$resourcesdata['opentype'] = 'pdf';
|
|
||||||
} elseif (in_array($resourcesdata['ext'], $Opentype['image'])) {
|
|
||||||
$resourcesdata['opentype'] = 'image';
|
|
||||||
} else {
|
|
||||||
$resourcesdata['opentype'] = 'other';
|
|
||||||
}
|
|
||||||
if ($resourcesdata['hasthumb']) {
|
|
||||||
$filepath = dirname($resourcesdata['path']);
|
|
||||||
$filename = substr($resourcesdata['path'],strrpos($resourcesdata['path'],'/')+1);
|
|
||||||
$filename = str_replace(strrchr($filename, "."),"",$filename);
|
|
||||||
$thumbpath = 'library/' . $filepath . '/' . $filename . '_thumbnail.png';
|
|
||||||
$resourcesdata['icondata'] = $thumbpath;
|
|
||||||
//}
|
|
||||||
} else {
|
|
||||||
if ($resourcesdata['type'] == 'commonimage') {
|
|
||||||
$resourcesdata['icondata'] = 'library/' . $resourcesdata['path'];
|
|
||||||
|
|
||||||
} else {
|
|
||||||
$resourcesdata['icondata'] = geticonfromext($resourcesdata['ext'], $resourcesdata['type']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$imginfo = @getimagesize($resourcesdata['icondata']);
|
|
||||||
$resourcesdata['iconwidth'] = $imginfo[0];
|
|
||||||
$resourcesdata['iconheight'] = $imginfo[1];
|
|
||||||
$resourcesdata['icondata'] = str_replace('+',' ',urlencode($resourcesdata['icondata']));
|
|
||||||
|
|
||||||
//获取所有库分享和下载权限
|
|
||||||
$downshare = C::t('pichome_vapp')->fetch_all_sharedownlod();
|
|
||||||
$resourcesdata['share'] = $downshare[$resourcesdata['appid']]['share'];
|
|
||||||
$resourcesdata['download'] = $downshare[$resourcesdata['appid']]['download'];
|
|
||||||
$resourcesdata['originalimg'] = str_replace('+',' ',urlencode('library/' . $resourcesdata['path']));
|
|
||||||
$resourcesdata['realpath'] = str_replace('+',' ',urlencode('library/' . $resourcesdata['path']));
|
|
||||||
$resourcesdata['name'] = str_replace(strrchr($resourcesdata['name'], "."), "", $resourcesdata['name']);
|
|
||||||
$resourcesdata['fsize'] = formatsize($resourcesdata['size']);
|
|
||||||
$resourcesdata['mtime'] = dgmdate(round($resourcesdata['mtime'] / 1000), 'Y/m/d H:i');
|
|
||||||
$resourcesdata['dateline'] = dgmdate(round($resourcesdata['dateline'] / 1000), 'Y/m/d H:i');
|
|
||||||
$resourcesdata['btime'] = dgmdate(round($resourcesdata['btime'] / 1000), 'Y/m/d H:i');
|
|
||||||
unset($resourcesdata['path']);
|
|
||||||
$resourcesdata['foldernames'] = C::t('pichome_folderresources')->get_foldername_by_rid($rid);
|
|
||||||
$resourcesdata['tag'] = C::t('pichome_resourcestag')->fetch_tag_by_rid($rid);
|
|
||||||
$resourcesdata['dpath'] = dzzencode($rid, '', 0);
|
|
||||||
|
|
||||||
|
|
||||||
return $resourcesdata;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getdatasbyrids($rids)
|
|
||||||
{
|
|
||||||
$returndata = [];
|
|
||||||
//文件数据
|
|
||||||
$resourcesdata = $this->fetch_by_rids($rids);
|
|
||||||
//获取所有库分享和下载权限
|
|
||||||
$downshare = C::t('pichome_vapp')->fetch_all_sharedownlod();
|
|
||||||
//文件附属表数据
|
|
||||||
// $attrdata = C::t('pichome_resources_attr')->fetch_by_rids($rids);
|
|
||||||
//文件标注数
|
|
||||||
$annonationnumdata = C::t('pichome_comments')->fetch_annonationnum_by_rids($rids);
|
|
||||||
foreach ($resourcesdata as $v) {
|
|
||||||
$v['annonationnum'] = $annonationnumdata[$v['rid']]['num'];
|
|
||||||
$v['share'] = $downshare[$v['appid']]['share'];
|
|
||||||
$v['download'] = $downshare[$v['appid']]['download'];
|
|
||||||
$returndata[] = $v;
|
|
||||||
}
|
|
||||||
return $returndata;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function fetch_like_words($keyword, $limit = 10)
|
|
||||||
{
|
|
||||||
$likewords = [];
|
|
||||||
$presql = " case when name like %s then 3 when name like %s then 2 when name like %s then 1 end as rn";
|
|
||||||
$wheresql = " name like %s";
|
|
||||||
$params = [$keyword . '%', '%' . $keyword, '%' . $keyword . '%', $this->_table, '%' . $keyword . '%'];
|
|
||||||
foreach (DB::fetch_all("select name,$presql from %t where $wheresql order by rn desc limit 0,$limit", $params) as $v) {
|
|
||||||
$likewords[] = $v['name'];
|
|
||||||
}
|
|
||||||
return $likewords;
|
|
||||||
}
|
}
|
||||||
|
//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;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function fetch_like_words($keyword, $limit = 10)
|
||||||
|
{
|
||||||
|
$likewords = [];
|
||||||
|
$presql = " case when name like %s then 3 when name like %s then 2 when name like %s then 1 end as rn";
|
||||||
|
$wheresql = " name like %s";
|
||||||
|
$params = [$keyword . '%', '%' . $keyword, '%' . $keyword . '%', $this->_table, '%' . $keyword . '%'];
|
||||||
|
foreach (DB::fetch_all("select name,$presql from %t where $wheresql order by rn desc limit 0,$limit", $params) as $v) {
|
||||||
|
$likewords[] = $v['name'];
|
||||||
|
}
|
||||||
|
return $likewords;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -18,24 +18,9 @@
|
|||||||
$rid = trim($setarr['rid']);
|
$rid = trim($setarr['rid']);
|
||||||
if($attrdata = parent::fetch($rid)){
|
if($attrdata = parent::fetch($rid)){
|
||||||
unset($setarr['rid']);
|
unset($setarr['rid']);
|
||||||
if($setarr['tag']){
|
|
||||||
$tagarr = explode(',',$setarr['tag']);
|
|
||||||
$otagarr = explode(',',$attrdata['tag']);
|
|
||||||
$delrtids = [];
|
|
||||||
foreach(DB::fetch_all("select id,tid from %t where rid = %s and tid not in(%n)",array('pichome_resourcestag',$rid,$tagarr)) as $v){
|
|
||||||
$delrtids[] = $v['id'];
|
|
||||||
C::t('pichome_tag')->delete_by_tid($v['tid']);
|
|
||||||
}
|
|
||||||
if(!empty($delrtids)) C::t('pichome_resourcestag')->delete($delrtids);
|
|
||||||
$addrtids = array_diff($tagarr,$otagarr);
|
|
||||||
foreach ($addrtids as $tid){
|
|
||||||
$rtag = ['appid' => $attrdata['appid'], 'rid' => $rid, 'tid' => $tid];
|
|
||||||
C::t('pichome_resourcestag')->insert($rtag);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return parent::update($rid,$setarr);
|
return parent::update($rid,$setarr);
|
||||||
}else{
|
}else{
|
||||||
return parent::insert($setarr,1);
|
return parent::insert($setarr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//删除文件属性数据
|
//删除文件属性数据
|
||||||
|
|||||||
34
core/class/table/table_pichome_resources_relation.php
Normal file
34
core/class/table/table_pichome_resources_relation.php
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
if (!defined('IN_OAOOA')) {
|
||||||
|
exit('Access Denied');
|
||||||
|
}
|
||||||
|
|
||||||
|
class table_pichome_resources_relation extends dzz_table
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->_table = 'pichome_resources_relation';
|
||||||
|
$this->_pk = 'id';
|
||||||
|
$this->_pre_cache_key = 'pichome_resources_relation';
|
||||||
|
$this->_cache_ttl = 3600;
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function insert($setarr)
|
||||||
|
{
|
||||||
|
if (DB::result_first("select count(rid) from %t where rid = %s", array($this->_table, $setarr['rid']))) {
|
||||||
|
$rid = $setarr['rid'];
|
||||||
|
unset($setarr['rid']);
|
||||||
|
return parent::update($rid, $setarr);
|
||||||
|
} else {
|
||||||
|
return parent::insert($setarr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public function fetch_by_orid_appid($orid,$appid){
|
||||||
|
return DB::fetch_first("select * from %t where orid = %s and appid = %s",$this->_table,$orid,$appid);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
@@ -53,13 +54,17 @@
|
|||||||
}
|
}
|
||||||
public function delete_by_rid($rid)
|
public function delete_by_rid($rid)
|
||||||
{
|
{
|
||||||
|
if(!is_array($rid)) $rid = (array)$rid;
|
||||||
$delids = [];
|
$delids = [];
|
||||||
foreach (DB::fetch_all("select id from %t where rid = %s", 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 = [];
|
||||||
|
|||||||
@@ -1,178 +1,162 @@
|
|||||||
<?php
|
<?php
|
||||||
if (!defined('IN_OAOOA')) {
|
if (!defined('IN_OAOOA')) {
|
||||||
exit('Access Denied');
|
exit('Access Denied');
|
||||||
}
|
}
|
||||||
|
|
||||||
class table_pichome_searchrecent extends dzz_table
|
class table_pichome_searchrecent extends dzz_table
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
{
|
{
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
|
|
||||||
$this->_table = 'pichome_searchrecent';
|
$this->_table = 'pichome_searchrecent';
|
||||||
$this->_pk = 'id';
|
$this->_pk = 'id';
|
||||||
$this->_pre_cache_key = 'pichome_searchrecent';
|
$this->_pre_cache_key = 'pichome_searchrecent';
|
||||||
$this->_cache_ttl = 3600;
|
$this->_cache_ttl = 3600;
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function add_search($keyword, $appid = '', $ktype = 0)
|
||||||
|
{
|
||||||
|
global $_G;
|
||||||
|
$wheresql = ' keywords = %s and ktype=%d ';
|
||||||
|
$params = array($this->_table, $keyword, $ktype);
|
||||||
|
if ($_G['uid']) {
|
||||||
|
$wheresql .= ' and uid = %d ';
|
||||||
|
$params[] = $_G['uid'];
|
||||||
}
|
}
|
||||||
|
if ($appid) {
|
||||||
public function add_search($keyword, $appid = '', $ktype = 0)
|
$wheresql .= ' and appid = %s ';
|
||||||
{
|
$params[] = $appid;
|
||||||
global $_G;
|
|
||||||
$wheresql = ' keywords = %s and ktype=%d ';
|
|
||||||
$params = array($this->_table, $keyword, $ktype);
|
|
||||||
if ($_G['uid']) {
|
|
||||||
$wheresql .= ' and uid = %d ';
|
|
||||||
$params[] = $_G['uid'];
|
|
||||||
}
|
|
||||||
if ($appid) {
|
|
||||||
$wheresql .= ' and appid = %s ';
|
|
||||||
$params[] = $appid;
|
|
||||||
}
|
|
||||||
if ($data = DB::fetch_first("select id,hots from %t where$wheresql", $params)) {
|
|
||||||
$hots = $data['hots'] + 1;
|
|
||||||
return parent::update($data['id'], array('hots' => $hots, 'dateline' => TIMESTAMP));
|
|
||||||
} else {
|
|
||||||
$setarr = [
|
|
||||||
'keywords' => $keyword,
|
|
||||||
'ktype' => $ktype,
|
|
||||||
'dateline' => TIMESTAMP,
|
|
||||||
'uid' => isset($_G['uid']) ? $_G['uid'] : 0,
|
|
||||||
'hots' => 1,
|
|
||||||
'appid' => $appid
|
|
||||||
];
|
|
||||||
return parent::insert($setarr);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if ($data = DB::fetch_first("select id,hots from %t where$wheresql", $params)) {
|
||||||
//查询最近搜索标签
|
$hots = $data['hots'] + 1;
|
||||||
public function fetch_renctent_search_tag($appid = '', $limit = 8)
|
return parent::update($data['id'], array('hots' => $hots, 'dateline' => TIMESTAMP));
|
||||||
{
|
} else {
|
||||||
global $_G;
|
$setarr = [
|
||||||
$wheresql = ' s.ktype = 1 ';
|
'keywords' => $keyword,
|
||||||
$params = array($this->_table, 'pichome_tag');
|
'ktype' => $ktype,
|
||||||
if ($appid) {
|
'dateline' => TIMESTAMP,
|
||||||
$wheresql .= ' and s.appid = %s ';
|
'uid' => isset($_G['uid']) ? $_G['uid'] : 0,
|
||||||
$params[] = $appid;
|
'hots' => 1,
|
||||||
}
|
'appid' => $appid
|
||||||
if ($_G['uid']) {
|
];
|
||||||
$wheresql .= ' and s.uid = %d';
|
return parent::insert($setarr);
|
||||||
$params[] = $_G['uid'];
|
|
||||||
}
|
|
||||||
$datas = [];
|
|
||||||
foreach (DB::fetch_all("select s.keywords,t.tid from %t s left join %t t on s.keywords = t.tagname where
|
|
||||||
$wheresql and t.tid > 0 order by s.hots desc,s.dateline desc limit 0,$limit", $params) as $v) {
|
|
||||||
$datas[$v['tid']] = $v['keywords'];
|
|
||||||
}
|
|
||||||
return $datas;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function fetch_hotkeyword_by_appid($appid = '', $limit = 16,$noids=array(),$datas=array())
|
|
||||||
{
|
|
||||||
$start = strtotime(date("Y-m-d", strtotime("-7 day")));
|
|
||||||
$end = strtotime(dgmdate(time(), 'Y-m-d')) + 86400;
|
|
||||||
$params = array($this->_table/*, $start, $end*/);
|
|
||||||
/* //$wheresql = " dateline <= %d and dateline > %d";
|
|
||||||
if ($appid) {
|
|
||||||
$wheresql .= ' and appid =%s ';
|
|
||||||
$params[] = $appid;
|
|
||||||
}
|
|
||||||
if($noids){
|
|
||||||
$wheresql .= ' and id not in(%n) ';
|
|
||||||
$params[] = $noids;
|
|
||||||
}*/
|
|
||||||
$count = DB::result_first("select count(id) from %t where 1 order by hots desc limit 0,$limit", $params);
|
|
||||||
foreach (DB::fetch_all("select keywords,id from %t where 1 order by hots desc limit 0,$limit", $params) as $v) {
|
|
||||||
$data = $this->get_data_by_keyword($v['keywords'],$v['id']);
|
|
||||||
if(!$data){
|
|
||||||
parent::delete($v['id']);
|
|
||||||
}else{
|
|
||||||
$datas[$v['id']] = $data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$resultcount = count($datas);
|
|
||||||
//如果有关键词没有结果,并且结果数量大于查询出来的数量
|
|
||||||
if($resultcount < $limit && $count > $limit){
|
|
||||||
$ids = array_keys($datas);
|
|
||||||
$limit = $limit - $resultcount;
|
|
||||||
$datas = $this->fetch_hotkeyword_by_appid($appid,$limit,$ids,$datas);
|
|
||||||
}
|
|
||||||
return $datas;
|
|
||||||
}
|
|
||||||
public function get_data_by_keyword($keyword){
|
|
||||||
$tmpdata = DB::fetch_first("select r.rid,r.name,ra.path,r.hasthumb,r.ext,r.type from %t r
|
|
||||||
left join %t ra on ra.rid=r.rid LEFT JOIN %t c on c.rid = r.rid
|
|
||||||
left join %t rt on r.rid = rt.rid left join %t t on rt.tid= t.tid where r.name like%s or ra.link like %s or ra.desc LIKE %s or c.annotation LIKE %s or t.tagname LIKE %s
|
|
||||||
order by rand() limit 1 ",
|
|
||||||
array('pichome_resources', 'pichome_resources_attr', 'pichome_comments', 'pichome_resourcestag', 'pichome_tag', '%' . $keyword . '%',
|
|
||||||
'%' . $keyword . '%', '%' . $keyword . '%', '%' . $keyword . '%', '%' . $keyword . '%'));
|
|
||||||
if (!$tmpdata) {
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
if ($tmpdata['hasthumb']) {
|
|
||||||
$filename = str_replace(strrchr($tmpdata['name'], "."), "", $tmpdata['name']);
|
|
||||||
$filepath = dirname($tmpdata['path']);
|
|
||||||
$thumbpath = DZZ_ROOT . 'library/' . $filepath . '/' . $filename . '_thumbnail.png';
|
|
||||||
$thumbpath = str_replace(DZZ_ROOT, '', $thumbpath);
|
|
||||||
$tmpdata['icondata'] = $thumbpath;
|
|
||||||
} else {
|
|
||||||
if ($tmpdata['type'] == 'commonimage') {
|
|
||||||
$tmpdata['icondata'] = 'library/' . $tmpdata['path'];
|
|
||||||
} else {
|
|
||||||
$tmpdata['icondata'] = geticonfromext($tmpdata['ext'], $tmpdata['type']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$tmpdata['keyword'] = $keyword;
|
|
||||||
}
|
|
||||||
return $tmpdata;
|
|
||||||
}
|
|
||||||
//查询最近搜索分类
|
|
||||||
public function fetch_renctent_search_foldername($appid, $limit = 10)
|
|
||||||
{
|
|
||||||
global $_G;
|
|
||||||
$wheresql = ' s.ktype = 2 and s.appid = %s';
|
|
||||||
$params = array($this->_table, 'pichome_folder', $appid);
|
|
||||||
|
|
||||||
if ($_G['uid']) {
|
|
||||||
$wheresql .= ' and s.uid = %d';
|
|
||||||
$params[] = $_G['uid'];
|
|
||||||
}
|
|
||||||
$datas = [];
|
|
||||||
foreach (DB::fetch_all("select s.keywords,f.fid from %t s left join %t f on f.fname = s.keywords and f.appid = s.appid
|
|
||||||
where $wheresql and f.fid !='' and s.hots > 0 order by s.hots desc,s.dateline desc limit 0,$limit", $params) as $v) {
|
|
||||||
$datas[$v['fid']]['name'] = $v['keywords'];
|
|
||||||
$datas[$v['fid']]['fid'] = $v['fid'];
|
|
||||||
}
|
|
||||||
$fids = array_keys($datas);
|
|
||||||
if (!empty($fids)) {
|
|
||||||
foreach (DB::fetch_all("select f.fname,f.fid,count(fr.rid) as num from %t fr
|
|
||||||
left join %t f on f.fid=fr.fid where fr.fid in(%n) group by fr.fid", array('pichome_folderresources', 'pichome_folder', $fids)) as $val) {
|
|
||||||
$datas[$val['fid']]['sum'] = $val['num'];
|
|
||||||
$datas[$val['fid']]['fname'] = $val['fname'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return $datas;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function fetch_like_words($keyword, $limit = 10)
|
|
||||||
{
|
|
||||||
$likewords = [];
|
|
||||||
$presql = " case when keywords like %s then 3 when keywords like %s then 2 when keywords like %s then 1 end as rn";
|
|
||||||
$wheresql = " keywords like %s";
|
|
||||||
$params = [$keyword . '%', '%' . $keyword, '%' . $keyword . '%', $this->_table, '%' . $keyword . '%'];
|
|
||||||
foreach (DB::fetch_all("select keywords,$presql from %t where $wheresql order by rn desc limit 0,$limit", $params) as $v) {
|
|
||||||
$likewords[] = $v['keywords'];
|
|
||||||
}
|
|
||||||
return $likewords;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function delete_by_appid($appid)
|
|
||||||
{
|
|
||||||
$delid = [];
|
|
||||||
foreach (DB::fetch_all("select id from %t where appid = %s", array($this->_table, $appid)) as $v) {
|
|
||||||
$delid[] = $v['id'];
|
|
||||||
}
|
|
||||||
return parent::delete($delid);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//查询最近搜索标签
|
||||||
|
public function fetch_renctent_search_tag($appid = '', $limit = 8)
|
||||||
|
{
|
||||||
|
global $_G;
|
||||||
|
$wheresql = ' s.ktype = 1 ';
|
||||||
|
$params = array($this->_table, 'pichome_tag');
|
||||||
|
if ($appid) {
|
||||||
|
$wheresql .= ' and s.appid = %s ';
|
||||||
|
$params[] = $appid;
|
||||||
|
}
|
||||||
|
if ($_G['uid']) {
|
||||||
|
$wheresql .= ' and s.uid = %d';
|
||||||
|
$params[] = $_G['uid'];
|
||||||
|
}
|
||||||
|
$datas = [];
|
||||||
|
foreach (DB::fetch_all("select s.keywords,t.tid from %t s left join %t t on s.keywords = t.tagname where
|
||||||
|
$wheresql and t.tid > 0 order by s.hots desc,s.dateline desc limit 0,$limit", $params) as $v) {
|
||||||
|
$datas[$v['tid']] = $v['keywords'];
|
||||||
|
}
|
||||||
|
return $datas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function fetch_hotkeyword_by_appid($appid = '', $limit = 8, $noids = array(), $datas = array())
|
||||||
|
{
|
||||||
|
/* $start = strtotime(date("Y-m-d", strtotime("-7 day")));
|
||||||
|
$end = strtotime(dgmdate(time(), 'Y-m-d')) + 86400;*/
|
||||||
|
$params = array($this->_table/*, $start, $end*/);
|
||||||
|
|
||||||
|
$count = DB::result_first("select count(id) from %t where 1 order by hots desc limit 0,$limit", $params);
|
||||||
|
//print_r(DB::fetch_all("select keywords,id from %t where 1 order by hots desc limit 0,$limit", $params));die;
|
||||||
|
foreach (DB::fetch_all("select keywords,id from %t where 1 order by hots desc limit 0,$limit", $params) as $v) {
|
||||||
|
$data = $this->get_data_by_keyword($v['keywords']);
|
||||||
|
if (!$data) {
|
||||||
|
parent::delete($v['id']);
|
||||||
|
} else {
|
||||||
|
$datas[$v['id']] = $data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// print_r($datas);die;
|
||||||
|
$resultcount = count($datas);
|
||||||
|
//如果有关键词没有结果,并且结果数量大于查询出来的数量
|
||||||
|
if ($resultcount < $limit && $count > $limit) {
|
||||||
|
$ids = array_keys($datas);
|
||||||
|
$limit = $limit - $resultcount;
|
||||||
|
$datas = $this->fetch_hotkeyword_by_appid($appid, $limit, $ids, $datas);
|
||||||
|
}
|
||||||
|
return $datas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_data_by_keyword($keyword)
|
||||||
|
{
|
||||||
|
$rid = DB::result_first("select r.rid from %t r left join %t ra on ra.rid=r.rid
|
||||||
|
where ra.searchval LIKE %s order by rand() limit 0,1 ",
|
||||||
|
array('pichome_resources', 'pichome_resources_attr', '%' . $keyword . '%'));
|
||||||
|
|
||||||
|
$tmpdata = C::t('pichome_resources')->geticondata_by_rid($rid);
|
||||||
|
|
||||||
|
if (!$tmpdata) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
$tmpdata['keyword'] = $keyword;
|
||||||
|
}
|
||||||
|
return $tmpdata;
|
||||||
|
}
|
||||||
|
|
||||||
|
//查询最近搜索分类
|
||||||
|
public function fetch_renctent_search_foldername($appid, $limit = 10)
|
||||||
|
{
|
||||||
|
global $_G;
|
||||||
|
$wheresql = ' s.ktype = 2 and s.appid = %s';
|
||||||
|
$params = array($this->_table, 'pichome_folder', $appid);
|
||||||
|
|
||||||
|
if ($_G['uid']) {
|
||||||
|
$wheresql .= ' and s.uid = %d';
|
||||||
|
$params[] = $_G['uid'];
|
||||||
|
}
|
||||||
|
$datas = [];
|
||||||
|
foreach (DB::fetch_all("select s.keywords,f.fid from %t s left join %t f on f.fname = s.keywords and f.appid = s.appid
|
||||||
|
where $wheresql and f.fid !='' and s.hots > 0 order by s.hots desc,s.dateline desc limit 0,$limit", $params) as $v) {
|
||||||
|
$datas[$v['fid']]['name'] = $v['keywords'];
|
||||||
|
$datas[$v['fid']]['fid'] = $v['fid'];
|
||||||
|
}
|
||||||
|
$fids = array_keys($datas);
|
||||||
|
if (!empty($fids)) {
|
||||||
|
foreach (DB::fetch_all("select f.fname,f.fid,count(fr.rid) as num from %t fr
|
||||||
|
left join %t f on f.fid=fr.fid where fr.fid in(%n) group by fr.fid", array('pichome_folderresources', 'pichome_folder', $fids)) as $val) {
|
||||||
|
$datas[$val['fid']]['sum'] = $val['num'];
|
||||||
|
$datas[$val['fid']]['fname'] = $val['fname'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return $datas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function fetch_like_words($keyword, $limit = 10)
|
||||||
|
{
|
||||||
|
$likewords = [];
|
||||||
|
$presql = " case when keywords like %s then 3 when keywords like %s then 2 when keywords like %s then 1 end as rn";
|
||||||
|
$wheresql = " keywords like %s";
|
||||||
|
$params = [$keyword . '%', '%' . $keyword, '%' . $keyword . '%', $this->_table, '%' . $keyword . '%'];
|
||||||
|
foreach (DB::fetch_all("select keywords,$presql from %t where $wheresql order by rn desc limit 0,$limit", $params) as $v) {
|
||||||
|
$likewords[] = $v['keywords'];
|
||||||
|
}
|
||||||
|
return $likewords;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function delete_by_appid($appid)
|
||||||
|
{
|
||||||
|
$delid = [];
|
||||||
|
foreach (DB::fetch_all("select id from %t where appid = %s", array($this->_table, $appid)) as $v) {
|
||||||
|
$delid[] = $v['id'];
|
||||||
|
}
|
||||||
|
return parent::delete($delid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -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 = [];
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
public function insert($setarr)
|
public function insert($setarr)
|
||||||
{
|
{
|
||||||
$cid = $setarr['cid'];
|
$cid = $setarr['cid'];
|
||||||
if ($taggroup = DB::fetch_first("select * from %t where cid = %s", array($this->_table, $cid))) {
|
if ($taggroup = DB::fetch_first("select * from %t where cid = %s and appid = %s", array($this->_table, $cid,$setarr['appid']))) {
|
||||||
unset($setarr['cid']);
|
unset($setarr['cid']);
|
||||||
if ($taggroup['catname'] != $setarr['catname']) parent::update($cid, $setarr);
|
if ($taggroup['catname'] != $setarr['catname']) parent::update($cid, $setarr);
|
||||||
return $cid;
|
return $cid;
|
||||||
|
|||||||
38
core/class/table/table_pichome_taggroup_relation.php
Normal file
38
core/class/table/table_pichome_taggroup_relation.php
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
if (!defined('IN_OAOOA')) {
|
||||||
|
exit('Access Denied');
|
||||||
|
}
|
||||||
|
|
||||||
|
class table_pichome_taggroup_relation extends dzz_table
|
||||||
|
{
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->_table = 'pichome_taggroup_relation';
|
||||||
|
$this->_pk = 'id';
|
||||||
|
$this->_pre_cache_key = 'pichome_taggroup_relation';
|
||||||
|
$this->_cache_ttl = 3600;
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取库下所有标签分类对应数据
|
||||||
|
public function fetch_by_appid($appid){
|
||||||
|
$data = [];
|
||||||
|
foreach(DB::fetch_all("select * from %t where appid = %s",array($this->_table,$appid)) as $v){
|
||||||
|
$data[$v['gid']] = $v;
|
||||||
|
}
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
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));
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
}else{
|
}else{
|
||||||
//同一库下一个标签只能归属于一个分类
|
//同一库下一个标签只能归属于一个分类
|
||||||
$this->delete_by_tpid($setarr['tid'],$setarr['appid']);
|
$this->delete_by_tpid($setarr['tid'],$setarr['appid']);
|
||||||
return parent::insert($setarr,1);
|
return parent::insert($setarr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public function delete_by_tpid($tid,$appid){
|
public function delete_by_tpid($tid,$appid){
|
||||||
|
|||||||
@@ -28,19 +28,36 @@
|
|||||||
return $show;
|
return $show;
|
||||||
}
|
}
|
||||||
public function getSid($url) {
|
public function getSid($url) {
|
||||||
$url = crc32($url);
|
$microtime = microtime();
|
||||||
|
list($msec, $sec) = explode(' ', $microtime);
|
||||||
|
$msec = $msec * 1000000;
|
||||||
|
$url = crc32($url.$sec.random(6).$msec);
|
||||||
$result = sprintf("%u", $url);
|
$result = sprintf("%u", $url);
|
||||||
return self::code62($result);
|
$sid = self::code62($result);
|
||||||
|
$len = strlen($sid);
|
||||||
|
if($len < 6){
|
||||||
|
$sid .= random(1);
|
||||||
|
}
|
||||||
|
if(strlen($sid) > 6){
|
||||||
|
$sid = substr($sid,0,6);
|
||||||
|
}
|
||||||
|
if(DB::result_first("select appid from %t where appid = %s",array($this->_table,$sid))){
|
||||||
|
$sid = $this->getSid($url);
|
||||||
|
}
|
||||||
|
return $sid;
|
||||||
}
|
}
|
||||||
public function insert($setarr){
|
public function insert($setarr){
|
||||||
|
//如果为oaooa库时
|
||||||
$path = $setarr['path'];
|
$path = $setarr['path'];
|
||||||
if($appid = DB::result_first("select appid from %t where path = %s",array($this->_table,$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);
|
||||||
return $appid;
|
return $appid;
|
||||||
}else{
|
}
|
||||||
$setarr['appid'] = $this->getSid($setarr['path']);
|
//生成appid
|
||||||
if(parent::insert($setarr)){
|
$setarr['appid'] = $this->getSid($path);
|
||||||
return $setarr['appid'];
|
|
||||||
}
|
if(parent::insert($setarr)){
|
||||||
|
return $setarr['appid'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,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);
|
||||||
@@ -62,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);
|
||||||
//删除目录表数据
|
//删除目录表数据
|
||||||
@@ -74,14 +92,43 @@
|
|||||||
C::t('pichome_tagrelation')->delete_by_appid($appid);
|
C::t('pichome_tagrelation')->delete_by_appid($appid);
|
||||||
//删除最近搜索表数据
|
//删除最近搜索表数据
|
||||||
C::t('pichome_searchrecent')->delete_by_appid($appid);
|
C::t('pichome_searchrecent')->delete_by_appid($appid);
|
||||||
return parent::delete($appid);
|
//resources表数据未完成删除前不允许删除vapp表
|
||||||
|
if(DB::result_first("select count(rid) from %t where appid = %s",array('pichome_resources',$appid))){
|
||||||
|
return ;
|
||||||
|
}else{
|
||||||
|
if(is_dir(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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function fetch_all_sharedownlod(){
|
public function fetch_all_sharedownlod(){
|
||||||
$downshare = array();
|
$downshare = array();
|
||||||
foreach(DB::fetch_all("select appid,download,share from %t where 1",array($this->_table)) as $v){
|
foreach(DB::fetch_all("select * from %t where 1",array($this->_table)) as $v){
|
||||||
$downshare[$v['appid']]=['share'=>$v['share'],'download'=>$v['download']];
|
$downshare[$v['appid']]=$v;
|
||||||
}
|
}
|
||||||
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
45
core/class/table/table_pichome_vapp_tag.php
Normal file
45
core/class/table/table_pichome_vapp_tag.php
Normal 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']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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');//路由操作键名
|
||||||
|
|||||||
@@ -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', 'beta1.1');
|
define('CORE_VERSION', '10.1.0');
|
||||||
define('CORE_VERSION_LEVEL', 'Pichome');
|
define('CORE_VERSION_LEVEL', 'Home');
|
||||||
define('CORE_RELEASE', '20210923');
|
define('CORE_RELEASE', '20220429');
|
||||||
define('CORE_FIXBUG' , '01100000');
|
define('CORE_FIXBUG' , '10100000');
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
if(!defined('IN_OAOOA')) {
|
if(!defined('IN_OAOOA')) {
|
||||||
exit('Access Denied');
|
exit('Access Denied');
|
||||||
}
|
}
|
||||||
gnore_user_abort(true);
|
ignore_user_abort(true);
|
||||||
@set_time_limit(0);
|
@set_time_limit(0);
|
||||||
$percachename = 'pichome_searchhot';
|
$percachename = 'pichome_searchhot';
|
||||||
$alldata = C::t('pichome_searchrecent')->fetch_hotkeyword_by_appid();
|
$alldata = C::t('pichome_searchrecent')->fetch_hotkeyword_by_appid();
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
||||||
@@ -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);
|
|
||||||
8
core/cron/cron_pichome_delete.php
Normal file
8
core/cron/cron_pichome_delete.php
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
if (!defined('IN_OAOOA')) {
|
||||||
|
exit('Access Denied');
|
||||||
|
}
|
||||||
|
ignore_user_abort(true);
|
||||||
|
@set_time_limit(0);
|
||||||
|
dfsockopen(getglobal('localurl') . 'index.php?mod=pichome&op=delete', 0, '', '', false, '', 1);
|
||||||
7
core/cron/cron_pichome_getimagecolor.php
Normal file
7
core/cron/cron_pichome_getimagecolor.php
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
if(!defined('IN_OAOOA')) {
|
||||||
|
exit('Access Denied');
|
||||||
|
}
|
||||||
|
ignore_user_abort(true);
|
||||||
|
@set_time_limit(0);
|
||||||
|
dfsockopen(getglobal('localurl'). 'index.php?mod=imageColor&op=index',0, '', '', false, '', 1);
|
||||||
8
core/cron/cron_pichome_getvideoinfo.php
Normal file
8
core/cron/cron_pichome_getvideoinfo.php
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?php
|
||||||
|
if(!defined('IN_OAOOA')) {
|
||||||
|
exit('Access Denied');
|
||||||
|
}
|
||||||
|
ignore_user_abort(true);
|
||||||
|
@set_time_limit(0);
|
||||||
|
dfsockopen(getglobal('localurl'). 'index.php?mod=ffmpeg&op=getinfo',0, '', '', false, '', 1);
|
||||||
|
|
||||||
7
core/cron/cron_pichome_getvideothumb.php
Normal file
7
core/cron/cron_pichome_getvideothumb.php
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
if(!defined('IN_OAOOA')) {
|
||||||
|
exit('Access Denied');
|
||||||
|
}
|
||||||
|
ignore_user_abort(true);
|
||||||
|
@set_time_limit(0);
|
||||||
|
dfsockopen(getglobal('localurl'). 'index.php?mod=ffmpeg&op=thumb',0, '', '', false, '', 1);
|
||||||
@@ -4,14 +4,12 @@
|
|||||||
}
|
}
|
||||||
ignore_user_abort(true);
|
ignore_user_abort(true);
|
||||||
@set_time_limit(0);
|
@set_time_limit(0);
|
||||||
$appdata = DB::fetch_all("select * from %t where 1 ",array('pichome_vapp'));
|
$appdata = DB::fetch_all("select * from %t where isdelete = 0 ",array('pichome_vapp'));
|
||||||
foreach($appdata as $v){
|
foreach($appdata as $v){
|
||||||
$jsonfile = DZZ_ROOT.'library/' . $v['path'] . '/mtime.json';
|
if($v['state'] == 2){
|
||||||
if (!file_exists($jsonfile)) {
|
|
||||||
//删除库
|
|
||||||
C::t('#pichome#pichome_vapp')->delete_vapp_by_appid($v['appid']);
|
|
||||||
}else{
|
|
||||||
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'] == 3){
|
||||||
|
dfsockopen(getglobal('localurl'). 'index.php?mod=pichome&op=exportfilecheck&appid='.$v['appid'],0, '', '', false, '', 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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);
|
||||||
|
|||||||
@@ -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'=>'定制版',
|
||||||
|
|||||||
96
core/template/default/common/mobile_about.htm
Normal file
96
core/template/default/common/mobile_about.htm
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||||
|
<title>{lang about}</title>
|
||||||
|
<link rel="stylesheet" href="static/jquery_weui/css/weui.min.css">
|
||||||
|
<link rel="stylesheet" href="static/jquery_weui/css/jquery-weui.min.css">
|
||||||
|
<link rel="stylesheet" href="static/dzzicon/icon.css">
|
||||||
|
<script type="text/javascript" src="static/jquery/jquery.min.js"></script>
|
||||||
|
<style>
|
||||||
|
html, body {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.about-container {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-webkit-align-items: center;
|
||||||
|
align-items: center;
|
||||||
|
-webkit-align-content: center;
|
||||||
|
align-content: center;
|
||||||
|
-webkit-justify-content: center;
|
||||||
|
justify-content: center;
|
||||||
|
-webkit-flex-wrap: wrap;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
.wrapper {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.about-body p {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
cursor: pointer;
|
||||||
|
color: #3779ff;
|
||||||
|
}
|
||||||
|
.about-body .logo {
|
||||||
|
padding: 10px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
.about-body .name {
|
||||||
|
font-size: 28px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
.about-body .name>span {
|
||||||
|
padding: 0 2px;
|
||||||
|
}
|
||||||
|
.about-body p .guide {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
.about-copyright {
|
||||||
|
color: #999;
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: center;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
.about-copyright>a {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
.about-copyright>a:hover {
|
||||||
|
color: #999;
|
||||||
|
text-decoration: underline
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="about-container">
|
||||||
|
<div class="wrapper">
|
||||||
|
<div class="modal-body about-body">
|
||||||
|
<p class="logo"> <img src="$about[logo]" /> </p>
|
||||||
|
<p class="name">
|
||||||
|
<!--{if $about['name_zh']}-->
|
||||||
|
<span class="name-zh">$about[name_zh]</span>
|
||||||
|
<!--{/if}-->
|
||||||
|
<!--{if $about['name_en']}-->
|
||||||
|
<span class="name-en"><b>Dzz</b>$about[name_en]</span>
|
||||||
|
<!--{/if}-->
|
||||||
|
</p>
|
||||||
|
<div class="detail">
|
||||||
|
<!--{if $about['version']}-->
|
||||||
|
<p class="version"> <span class="guide">{lang about_current_version}:</span> <span class="text">{eval echo lang('V_'.$license['license_version'])} $about[version]</span> </p>
|
||||||
|
<!--{/if}-->
|
||||||
|
<p class="license"> <span class="guide">{lang license_user_sum}:</span> <span class="text">{$ucount} / {eval echo $license[license_limit]?$license[license_limit]:lang('unlimited')}</span> </p>
|
||||||
|
<p class="license"> <span class="guide">{lang license_to}:</span> <span class="text">{$license[license_company]}</a></span> </p>
|
||||||
|
<p class="support"> <span class="guide">{lang service_and_support}:</span> <span class="text"> <a href="http://help.oaooa.com" target="_blank">www.oaooa.com</a></span> </p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="about-copyright">Copyright ©2012-{eval echo dgmdate(TIMESTAMP,'Y');} <a href="https://www.oaooa.com" target="_blank" >oaooa.com</a> All Rights Reserved</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
5
core/template/default/common/mobile_simple_process.htm
Normal file
5
core/template/default/common/mobile_simple_process.htm
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<script type="text/javascript">var DZZSCRIPT='{DZZSCRIPT}',LANG='{$_G[language]}', STATICURL = 'static/', IMGDIR = '{$_G[setting][imgdir]}', VERHASH = '{VERHASH}', charset = '{CHARSET}', dzz_uid = '$_G[uid]', cookiepre = '{$_G[config][cookie][cookiepre]}', cookiedomain = '{$_G[config][cookie][cookiedomain]}', cookiepath = '{$_G[config][cookie][cookiepath]}',attackevasive = '{$_G[config][security][attackevasive]}', disallowfloat = '{$_G[setting][disallowfloat]}', REPORTURL = '$_G[currenturl_encode]', SITEURL = '$_G[siteurl]', JSPATH = '$_G[setting][jspath]',MOD_PATH='{MOD_PATH}',APP_URL='{MOD_URL}',MOD_URL='{MOD_URL}';VAPP_URL='{VAPP_URL}';</script>
|
||||||
|
</head>
|
||||||
|
<body id="nv_{$_G[basescript]}" class="$bodyClass" >
|
||||||
|
<div id="append_parent" style="z-index:99999;"></div>
|
||||||
|
<div id="ajaxwaitid" style="z-index:99999;"></div>
|
||||||
24
core/template/default/common/mobile_simple_start.htm
Normal file
24
core/template/default/common/mobile_simple_start.htm
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset={CHARSET}" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=no">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||||
|
<title><!--{if !empty($navtitle)}-->$navtitle - <!--{/if}-->$_G[setting][sitename] </title>
|
||||||
|
<meta name="keywords" content="{if !empty($_G[setting][metakeywords])}{echo htmlspecialchars($_G[setting][metakeywords])}{/if}" />
|
||||||
|
<meta name="description" content="{if !empty($_G[setting][metadescription])}{echo htmlspecialchars($_G[setting][metadescription])} {/if}" />
|
||||||
|
<meta name="generator" content="oaooa" />
|
||||||
|
<meta name="author" content="oaooa" />
|
||||||
|
<meta name="copyright" content="2012-{eval echo dgmdate(TIMESTAMP,'Y-m-d');} www.oaooa.com" />
|
||||||
|
<meta name="MSSmartTagsPreventParsing" content="True" />
|
||||||
|
<meta http-equiv="MSThemeCompatible" content="Yes" />
|
||||||
|
<meta name="renderer" content="webkit">
|
||||||
|
<base href="{$_G['siteurl']}" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="static/jquery_weui/css/weui.min.css?{VERHASH}">
|
||||||
|
<link rel="stylesheet" type="text/css" href="static/jquery_weui/css/jquery-weui.min.css?{VERHASH}" >
|
||||||
|
<link rel="stylesheet" type="text/css" href="static/dzzicon/icon.css?{VERHASH}"/>
|
||||||
|
<script type="text/javascript" src="static/jquery/jquery.min.js?{VERHASH}"></script>
|
||||||
|
<script type="text/javascript" src="static/jquery/jquery.json-2.4.min.js?{VERHASH}"></script>
|
||||||
|
<script src="static/jquery_weui/js/jquery-weui.min.js?{VERHASH}" type="text/javascript" charset="utf-8"></script>
|
||||||
|
<script src="static/jquery_weui/js/swiper.min.js?{VERHASH}" type="text/javascript" charset="utf-8"></script>
|
||||||
|
<script src="static/jquery_weui/js/appevent.js?{VERHASH}" type="text/javascript" charset="utf-8"></script>
|
||||||
139
core/template/default/common/wx_ajax.htm
Normal file
139
core/template/default/common/wx_ajax.htm
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
<!--{template common/header_ajax}-->
|
||||||
|
<!--{if $_GET['action']=='setEventkey'}-->
|
||||||
|
<style>
|
||||||
|
#fwin_setEvent .modal-dialog{max-width:450px;}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
|
||||||
|
<h4 class="modal-title">$typetitle[$type]</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body" style="padding:30px;">
|
||||||
|
<form class="form-horizontal">
|
||||||
|
<input type="hidden" id="eventkey" />
|
||||||
|
<!--{if $type=='click'}-->
|
||||||
|
<div class="form-group">
|
||||||
|
<!--{if $menu_select[click]}-->
|
||||||
|
<select class="form-control" id="js_select_click" onchange="eventkey_select_change(this)">
|
||||||
|
<option value="" data-url="" >{lang please_choose}</option>
|
||||||
|
<!--{loop $menu_select[click] $key $value}-->
|
||||||
|
<option value="$key" >$value</option>
|
||||||
|
<!--{/loop}-->
|
||||||
|
<option value="keys" >{lang custom}KEY</option>
|
||||||
|
</select>
|
||||||
|
<!--{else}-->
|
||||||
|
<input type="hidden" id="js_select_click" value="keys" />
|
||||||
|
<input type="text" class="form-control js_input_limit" data-limit="64" id="js_select_click_input" value="" >
|
||||||
|
<p class="help-inline">{lang menu_information_not_more_than_64_words}</p>
|
||||||
|
<p class="help-inline">{lang set_value_interface_function_effect}</p>
|
||||||
|
<!--{/if}-->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group hidden">
|
||||||
|
<input type="text" class="form-control js_input_limit" data-limit="64" id="js_select_click_input" value="" >
|
||||||
|
<p class="help-inline">{lang menu_information_not_more_than_64_words}</p>
|
||||||
|
<p class="help-inline">{lang set_value_interface_function_effect}</p>
|
||||||
|
</div>
|
||||||
|
<!--{else}-->
|
||||||
|
<div class="form-group">
|
||||||
|
<!--{if $menu_select[link]}-->
|
||||||
|
<select class="form-control" id="js_select_link" onchange="eventkey_select_change(this)">
|
||||||
|
<option value="" data-url="" >{lang please_choose}</option>
|
||||||
|
<!--{loop $menu_select[link] $key $value}-->
|
||||||
|
<option value="$key" >$value</option>
|
||||||
|
<!--{/loop}-->
|
||||||
|
<option value="links">{lang custom_link}</option>
|
||||||
|
</select>
|
||||||
|
<!--{else}-->
|
||||||
|
<input type="hidden" id="js_select_link" value="links" />
|
||||||
|
<input type="text" class="form-control" id="js_select_link_input" value="" >
|
||||||
|
<span class="help-inline">{lang member_click_skip_link}</span>
|
||||||
|
<!--{/if}-->
|
||||||
|
</div>
|
||||||
|
<div class="form-group hidden">
|
||||||
|
|
||||||
|
<input type="text" class="form-control" id="js_select_link_input" value="">
|
||||||
|
<span class="help-inline">{lang member_click_skip_link}</span>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!--{/if}-->
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="submit" class="btn btn-primary btn-width" data-dismiss="modal" onclick="setEventkeyComplete()"><strong>{lang confirms}</strong></button> <button type="button" data-dismiss="modal" class="btn btn-default"><strong>{lang cancel}</strong></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript" reload="1">
|
||||||
|
jQuery('.fwinmask .focus').select();
|
||||||
|
var dataid='$_GET[dataid]';
|
||||||
|
var menuarr=$json_menu_select;
|
||||||
|
var type='$type';
|
||||||
|
if(dataid!=''){
|
||||||
|
var li=jQuery('.js_li[data-id='+dataid+']');
|
||||||
|
if(type=='click'){
|
||||||
|
var val=li.attr('data-key');
|
||||||
|
if(!val ||(val && !menuarr['click'][val])){
|
||||||
|
val='keys';
|
||||||
|
}
|
||||||
|
jQuery('#js_select_click').val(val);
|
||||||
|
jQuery('#eventkey').val(val);
|
||||||
|
jQuery('#js_select_click_input').val(val);
|
||||||
|
if(val=='keys'){
|
||||||
|
jQuery('#js_select_click_input').parent().removeClass('hidden').end().val(li.attr('data-key')).focus();
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
var val=li.attr('data-url');
|
||||||
|
if(!val ||(val && !menuarr['link'][val])){
|
||||||
|
val='links';
|
||||||
|
}
|
||||||
|
//jQuery('#js_link_select').val(val);
|
||||||
|
jQuery('#js_select_link').val(val);
|
||||||
|
jQuery('#eventkey').val(val);
|
||||||
|
jQuery('#js_select_link_input').val(val);
|
||||||
|
if(val=='links'){
|
||||||
|
jQuery('#js_select_link_input').parent().removeClass('hidden').end().val(li.attr('data-url')).focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function eventkey_select_change(obj){
|
||||||
|
var el=jQuery(obj);
|
||||||
|
if(el.val()=='keys'){
|
||||||
|
jQuery('#js_select_click_input').parent().removeClass('hidden').end().focus();
|
||||||
|
}else{
|
||||||
|
jQuery('#js_select_click_input').parent().addClass('hidden');
|
||||||
|
}
|
||||||
|
if(el.val()=='links'){
|
||||||
|
jQuery('#js_select_link_input').parent().removeClass('hidden').end().focus();
|
||||||
|
}else{
|
||||||
|
jQuery('#js_select_link_input').parent().addClass('hidden');
|
||||||
|
}
|
||||||
|
jQuery('#eventkey').val(el.val());
|
||||||
|
}
|
||||||
|
function setEventkeyComplete(){
|
||||||
|
|
||||||
|
var li=jQuery('.js_li[data-id='+dataid+']');
|
||||||
|
var val=jQuery('#eventkey').val();
|
||||||
|
if(val=='') return;
|
||||||
|
if(type=='click'){
|
||||||
|
if(val=='keys'){
|
||||||
|
val=jQuery('#js_select_click_input').val();
|
||||||
|
}
|
||||||
|
li.attr('data-type','click');
|
||||||
|
li.attr('data-key',val);
|
||||||
|
li.find('.btn-group').replaceWith('<a class=" pull-right js_click " href="javascript:;" title="{lang menu}KEY" onclick="setEventkey(this,\'click\');return false"><span class="icon icon_click_gray"></span></a>');
|
||||||
|
}else{
|
||||||
|
if(val=='links'){
|
||||||
|
val=jQuery('#js_select_link_input').val();
|
||||||
|
}
|
||||||
|
li.attr('data-type','view');
|
||||||
|
li.attr('data-url',val);
|
||||||
|
li.find('.btn-group').replaceWith('<a class=" pull-right js_link" href="javascript:;" title="{lang skip_links}" onclick="setEventkey(this,\'link\');return false"><span class="icon icon_link_gray"></span></a>');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<!--{/if}-->
|
||||||
|
<!--{template common/footer_ajax}-->
|
||||||
232
core/template/default/common/wx_appinfo.htm
Normal file
232
core/template/default/common/wx_appinfo.htm
Normal file
@@ -0,0 +1,232 @@
|
|||||||
|
|
||||||
|
<style>
|
||||||
|
.group-tabul{
|
||||||
|
margin-left: 0px;
|
||||||
|
padding-left: 0px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.line {
|
||||||
|
height: 2px;
|
||||||
|
margin: 10px 0;
|
||||||
|
font-size: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background-color: transparent;
|
||||||
|
border-width: 0;
|
||||||
|
border-top: 1px solid #e7e7e7;
|
||||||
|
border-bottom: 1px solid #FFF;
|
||||||
|
}
|
||||||
|
/*.pull-in {*/
|
||||||
|
/*margin-left: -15px;*/
|
||||||
|
/*margin-right: -15px;*/
|
||||||
|
/*}*/
|
||||||
|
/*.line-dashed {
|
||||||
|
border-style: dashed;
|
||||||
|
background: transparent;
|
||||||
|
}*/
|
||||||
|
.form-horizontal .form-group {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
.line-lg {
|
||||||
|
margin-top: 15px;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.relative {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.form-group {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
.copy-success {
|
||||||
|
position: absolute;
|
||||||
|
left: -210px;
|
||||||
|
top: -15px;
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
.absoluter {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
.panel-body {
|
||||||
|
padding: 15px 0;
|
||||||
|
}
|
||||||
|
.ul_hide{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.form-group .input-black .input-animate {
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#4c89fb), to(#4c89fb)), -webkit-gradient(linear, left top, left bottom, from(#e6e8eb), to(#e6e8eb));
|
||||||
|
background-image: -webkit-linear-gradient(#4c89fb, #4c89fb), -webkit-linear-gradient(#e6e8eb, #e6e8eb);
|
||||||
|
background-image: -o-linear-gradient(#4c89fb, #4c89fb), -o-linear-gradient(#e6e8eb, #e6e8eb);
|
||||||
|
background-image: linear-gradient(#4c89fb, #4c89fb), linear-gradient(#e6e8eb, #e6e8eb);
|
||||||
|
}
|
||||||
|
.form-group .input-black .input-animate.animate {
|
||||||
|
background-image: -webkit-gradient(linear, left top, left bottom, from(#4c89fb), to(#4c89fb)), -webkit-gradient(linear, left top, left bottom, from(#e6e8eb), to(#e6e8eb));
|
||||||
|
background-image: -webkit-linear-gradient(#4c89fb, #4c89fb), -webkit-linear-gradient(#e6e8eb, #e6e8eb);
|
||||||
|
background-image: -o-linear-gradient(#4c89fb, #4c89fb), -o-linear-gradient(#e6e8eb, #e6e8eb);
|
||||||
|
background-image: linear-gradient(#4c89fb, #4c89fb), linear-gradient(#e6e8eb, #e6e8eb);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div class="main-header clearfix">
|
||||||
|
|
||||||
|
<ul class="group-tabul" style="margin-bottom:0px">
|
||||||
|
<li class="active"><a href="{$baseurl_info}">{eval echo $base_info_title?$base_info_title:'{lang application_message}';}</a></li>
|
||||||
|
<li><a href="{$baseurl_menu}">{eval echo $base_menu_title?$base_menu_title:'{lang application_menu}';}</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="main-content" style="border-top:1px solid #FFF">
|
||||||
|
<div class="panel-body" >
|
||||||
|
<div class="entity-panel-body form-horizontal">
|
||||||
|
<div class="form-group clearfix relative"> <img src="$wxapp[icon]" style="width:80px;position:absolute;left:20px;top:0px">
|
||||||
|
<div class=" ml20" style="padding-left:100px;">
|
||||||
|
<h4 class="relative"><strong>$wxapp[name]</strong></h4>
|
||||||
|
<p class="relative" style="padding-top:5px">$wxapp[desc]</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="line line-dashed line-lg pull-in"></div>
|
||||||
|
<div class="form-group clearfix relative">
|
||||||
|
<form name="settingform" class="form-horizontal form-horizontal-left" action="$baseurl_info" method="post" style="margin:0">
|
||||||
|
<input type="hidden" name="settingsubmit" value="true" />
|
||||||
|
<input type="hidden" name="formhash" value="{FORMHASH}" />
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="input-black input-static input-form">
|
||||||
|
<label class="control-label wxlabel">AgendID:</label><br>
|
||||||
|
<div class="input-animate" style="width: 200px;display: inline-block;margin-top: 15px;">
|
||||||
|
<input type="text" id="agentid" class="form-control" name="agentid" value="$wxapp[agentid]" placeholder="AgendID">
|
||||||
|
</div>
|
||||||
|
<span class="help-inline help-info">{lang access_method_login_application}</span>
|
||||||
|
</div>
|
||||||
|
<!--<label class="control-label" for="agentid">AgendID:</label>-->
|
||||||
|
<!--<input id="agentid" type="text" class="form-control" style="width:80px;" name="agentid" value="$wxapp[agentid]" />-->
|
||||||
|
<!--<span class="help-inline">{lang access_method_login_application}</span>-->
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="input-black input-static input-form">
|
||||||
|
<label class="control-label wxlabel">Secret:</label><br>
|
||||||
|
<div class="input-animate" style="width: 200px;display: inline-block;margin-top: 15px;">
|
||||||
|
<input type="text" id="agentid" class="form-control" name="secret" value="$wxapp[secret]" placeholder="Secret">
|
||||||
|
</div>
|
||||||
|
<span class="help-inline help-info">{lang access_method_login_application_secret}</span>
|
||||||
|
</div>
|
||||||
|
<!--<label class="control-label" for="agentid">Secret:</label> -->
|
||||||
|
<!--<input id="agentid" type="text" class="form-control" style="width:80px;" name="secret" value="$wxapp[secret]" />-->
|
||||||
|
<!--<span class="help-inline">{lang access_method_login_application_secret}</span>-->
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="input-black input-static input-form">
|
||||||
|
<label class="control-label wxlabel">{lang application_state}:</label><br>
|
||||||
|
|
||||||
|
<!--<label class="radio-inline"><input type="radio" name="appstatus" value="0" <!–{if !$wxapp[status]}–>checked="checked"<!–{/if}–> >{lang open_start}</label>-->
|
||||||
|
<!--<label class="radio-inline"><input type="radio" name="appstatus" value="1" <!–{if $wxapp[status]>0}–>checked="checked"<!–{/if}–> >{lang close}</label>-->
|
||||||
|
|
||||||
|
<span class="help-inline help-info" style="padding-bottom:0;vertical-align: 0;margin-top: 2px;display: inline-block;padding-left: 0;">{lang application_state_message}</span>
|
||||||
|
<div style="display:inline-block;margin-bottom: 10px;margin-left: 30px;">
|
||||||
|
<span class="switch-info">{lang open_start}</span>
|
||||||
|
<input type="checkbox" class="js-switch-primary" checked="" data-switchery="true">
|
||||||
|
<script type="text/javascript">
|
||||||
|
var elem = document.querySelector('.js-switch-primary');
|
||||||
|
Switchery(elem, {
|
||||||
|
color: '#62a8ea'
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group" >
|
||||||
|
<button type="submit" id="ueditorform_btn" class="btn btn-primary" style="padding:6px 25px;" data-loading-text="{lang In_the_save}" >{lang save}</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="line line-dashed line-lg pull-in"></div>
|
||||||
|
<div class="form-group clearfix padding-left">
|
||||||
|
<div class="col-sm-12" style="padding: 0">
|
||||||
|
<p class="form-control-static danger relative"><strong style="font-size: 1em;color: rgba(51, 51, 51, 1);">*{lang need_weixin_enterprises_set}</strong> <a href="http://qy.weixin.qq.com/" target="_blank" class="pull-right btn btn-primary-outline">{lang weixin_enterprises_edit}</a> </p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--<div class="line line-dashed line-lg pull-in"></div>-->
|
||||||
|
<div class="form-group clearfix padding-left margin-10">
|
||||||
|
<label class="wxlabel-item">
|
||||||
|
<h5><strong>{lang scope_application_visible}:</strong></h5>
|
||||||
|
</label>
|
||||||
|
<div class="wxlabel-info">
|
||||||
|
<p class="form-control-static relative">{lang top_institutions}<span class="gray">{lang weixin_enterprises_address_book_}</span> </p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--<div class="line line-dashed line-lg pull-in"></div>-->
|
||||||
|
<div class="form-group clearfix padding-left margin-10">
|
||||||
|
<label class="wxlabel-item">
|
||||||
|
<h5><strong>{lang trusted_domain_name}:</strong></h5>
|
||||||
|
</label>
|
||||||
|
<div class="wxlabel-info">
|
||||||
|
<p class="">$wxapp[host]<span class="copyBtn-wrap">
|
||||||
|
<span class="copy-btn js_copy" style="border: none;" data-clipboard-text="$wxapp[host]" title="{lang copy}">{lang copy}</span>
|
||||||
|
<span class="alert copy-success alert-success hide ">{lang copy_success_paste_need_place}</span> </span> </p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--<div class="line line-dashed line-lg pull-in"></div>-->
|
||||||
|
<div class="form-group clearfix padding-left margin-10">
|
||||||
|
<label class="col-sm-12" style="padding: 0;color: rgba(104, 120, 146, 1);">
|
||||||
|
<h5><strong>{lang syntony_URL_configuration_information}:</strong></h5>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group clearfix padding-left margin-10">
|
||||||
|
<label class="wxlabel-item">URL</label>
|
||||||
|
<div class="wxlabel-info">
|
||||||
|
<p class="form-control-static relative" style="padding-left:0;">$wxapp[callback] <span class="copyBtn-wrap">
|
||||||
|
<span class="copy-btn js_copy" data-clipboard-text="$wxapp[callback]" title="{lang copy}">{lang copy}</span>
|
||||||
|
<span class="alert copy-success alert-success hide ">{lang copy_success_paste_need_place}</span> </span> </p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group clearfix padding-left margin-10">
|
||||||
|
<label class="wxlabel-item">Token</label>
|
||||||
|
<div class="wxlabel-info">
|
||||||
|
<p class="form-control-static relative">$wxapp['token'] <span class="copyBtn-wrap">
|
||||||
|
<span class="copy-btn js_copy" data-clipboard-text="$wxapp[token]" title="{lang copy}">{lang copy}</span>
|
||||||
|
<span class="alert copy-success alert-success hide ">{lang copy_success_paste_need_place}</span> </span> </p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group clearfix padding-left margin-10">
|
||||||
|
<label class="wxlabel-item">AESKey</label>
|
||||||
|
<div class="wxlabel-info">
|
||||||
|
<p class="form-control-static relative">$wxapp[encodingaeskey] <span class="copyBtn-wrap">
|
||||||
|
<span class="copy-btn js_copy" data-clipboard-text="$wxapp[encodingaeskey]" title="{lang copy}">{lang copy}</span>
|
||||||
|
<span class="alert copy-success alert-success hide ">{lang copy_success_paste_need_place}</span> </span> </p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="line line-dashed line-lg pull-in"></div>
|
||||||
|
<label class="col-sm-12" style="padding: 0">
|
||||||
|
<h5><strong>{lang other_configuration_information}</strong></h5>
|
||||||
|
</label>
|
||||||
|
<div class="col-sm-12" style="margin-bottom:20px;padding: 0;">
|
||||||
|
<p class="form-control-static relative">
|
||||||
|
<img src="$wxapp[otherpic]" style="max-width:100%">
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
jQuery(document).ready(function(e) {
|
||||||
|
jQuery('.input-black').each(function() {
|
||||||
|
InputAnimate.init(jQuery(this));
|
||||||
|
})
|
||||||
|
var client = new ZeroClipboard(jQuery('.js_copy'));
|
||||||
|
client.on( "load", function( client ) {
|
||||||
|
// alert( "ZeroClipboard SWF is ready!" );
|
||||||
|
client.on( "complete", function( client,args ) {
|
||||||
|
var self=this;
|
||||||
|
jQuery(this).parent().find('.copy-success').removeClass('hide');
|
||||||
|
window.setTimeout(function(){
|
||||||
|
jQuery(self).parent().find('.copy-success').addClass('hide');
|
||||||
|
},1000);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<script src="static/js/ZeroClipboard/ZeroClipboard.min.js?{VERHASH}"></script>
|
||||||
|
<script src="static/js/input_field.js"></script>
|
||||||
|
<!--{template common/footer_simple}-->
|
||||||
503
core/template/default/common/wx_menu.htm
Normal file
503
core/template/default/common/wx_menu.htm
Normal file
@@ -0,0 +1,503 @@
|
|||||||
|
<style>
|
||||||
|
.group-tabul{
|
||||||
|
margin-left: 0px;
|
||||||
|
padding-left: 0px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.custom_menu_list {
|
||||||
|
padding: 2px 15px;
|
||||||
|
border-top: 1px solid #FFF;
|
||||||
|
border-bottom: 1px solid #e5e5e5;
|
||||||
|
height: 38px;
|
||||||
|
overflow:visible;
|
||||||
|
}
|
||||||
|
.custom_menu_list:hover{
|
||||||
|
background:#F7F7F7;
|
||||||
|
}
|
||||||
|
.custom_menu_addName, .custom_menu_name, .custom_menu_subName {
|
||||||
|
height: 34px;
|
||||||
|
line-height: 32px;
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.js_add_second{
|
||||||
|
padding-left:42px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom_menu_list.cm_subname {
|
||||||
|
padding-left: 42px;
|
||||||
|
}
|
||||||
|
.custom_menu_title_text {
|
||||||
|
padding: 12px 15px 12px 35px;
|
||||||
|
border-bottom: 1px solid #e5e5e5;
|
||||||
|
margin:0;
|
||||||
|
}
|
||||||
|
.hover_visible{
|
||||||
|
|
||||||
|
opacity:0;
|
||||||
|
_filter: Alpha(opacity=0);
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom_menu_list:hover .hover_visible{
|
||||||
|
opacity:1;
|
||||||
|
_filter: Alpha(opacity=100);
|
||||||
|
}
|
||||||
|
.custom_menu_list.editing:hover .hover_visible,.custom_menu_list.editing .hover_visible{
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
.custom_menu_input{
|
||||||
|
height: 26px;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
outline: 0;
|
||||||
|
width: 250px;
|
||||||
|
padding:0 5px;
|
||||||
|
display: none;
|
||||||
|
margin: 2px 0;
|
||||||
|
}
|
||||||
|
.custom_menu_notice {
|
||||||
|
margin-left: 20px;
|
||||||
|
display: none;
|
||||||
|
color: #da4a38;
|
||||||
|
}
|
||||||
|
.error .custom_menu_input{
|
||||||
|
border-color:#da4a38;
|
||||||
|
}
|
||||||
|
.error .js_input_limit{
|
||||||
|
border-color:#da4a38;
|
||||||
|
}
|
||||||
|
.error .custom_menu_notice{
|
||||||
|
display:inline-block;
|
||||||
|
}
|
||||||
|
.custom_menu_list.editing .custom_menu_subName,.custom_menu_list.editing .custom_menu_name,.custom_menu_list.editing .custom_menu_addName,.custom_menu_list.editing .icon{
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
.custom_menu_list.editing .custom_menu_input{
|
||||||
|
display:inline-block;
|
||||||
|
}
|
||||||
|
.icon {
|
||||||
|
display: inline-block;
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
background-image: url(static/image/common/icon_main.png)!important;
|
||||||
|
background-repeat: no-repeat!important;
|
||||||
|
}
|
||||||
|
.icon_click_gray {
|
||||||
|
width: 28px;
|
||||||
|
height: 16px;
|
||||||
|
background-position: -224px -126px;
|
||||||
|
}
|
||||||
|
.icon_link_gray {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
background-position: -190px -158px;
|
||||||
|
}
|
||||||
|
.custom_menu_list .icon_link_gray {
|
||||||
|
margin: 8px 0 0;
|
||||||
|
}
|
||||||
|
.custom_menu_list .icon_click_gray {
|
||||||
|
margin: 8px -4px 0 0;
|
||||||
|
}
|
||||||
|
.custom_menu_list .icon_arrow_down, .custom_menu_list .icon_arrow_right {
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
.icon_arrow_down {
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
|
background-position: -64px -96px;
|
||||||
|
}
|
||||||
|
.custom_menu_list .icon_add_small {
|
||||||
|
vertical-align: -3px;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
.icon_add_small {
|
||||||
|
width: 14px;
|
||||||
|
height: 14px;
|
||||||
|
background-position: -32px -160px;
|
||||||
|
}
|
||||||
|
.icon_edit_gray {
|
||||||
|
height: 16px;
|
||||||
|
width: 16px;
|
||||||
|
background-position: -192px -33px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom_menu_list .icon_edit_gray {
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
.custom_menu_list .icon_remove {
|
||||||
|
margin: 8px 0 0 10px;
|
||||||
|
}
|
||||||
|
.icon_remove, .icon_remove_gray {
|
||||||
|
width: 16px;
|
||||||
|
height: 17px;
|
||||||
|
background-position: -160px -32px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div class="main-header clearfix">
|
||||||
|
|
||||||
|
<ul class="group-tabul" style="margin-bottom:0px">
|
||||||
|
<li><a href="{$baseurl_info}">{eval echo $base_info_title?$base_info_title:'{lang application_message}';}</a></li>
|
||||||
|
<li class="active"><a href="{$baseurl_menu}">{eval echo $base_menu_title?$base_menu_title:'{lang application_menu}';}</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="main-content" style="border-top:1px solid #FFF;">
|
||||||
|
<ul class="help-block text_center custom_menu_title_text ">
|
||||||
|
<li>{lang creat_three_level_menu}</li>
|
||||||
|
<li>{lang edit_menu_in_the_user_can_not_see}</li>
|
||||||
|
<li>{lang menu_release_24_hours_to_update}</li>
|
||||||
|
<li>{lang drag_can_be_sorted}</li>
|
||||||
|
</ul>
|
||||||
|
<div class="custom_menu_mainList_wrap">
|
||||||
|
<!--{loop $menu[button] $key $value}-->
|
||||||
|
<div class="custom_cmname_list_wrap">
|
||||||
|
<div class="custom_menu_list cm_name js_li clearfix" data-id="$key" data-name="$value[name]" data-type="$value[type]" <!--{if $value[type]=='click'}--> data-key="$value[key]"<!--{elseif $value[type]=='view'}-->data-url="$value[url]"<!--{/if}-->>
|
||||||
|
<a class="icon icon_remove pull-right js_menu_remove hover_visible" href="javascript:;"></a>
|
||||||
|
<span class="icon icon_arrow_down"></span><span class="custom_menu_name">$value[name]</span>
|
||||||
|
|
||||||
|
<!--{if $value[type] && $value[type]=='view'}-->
|
||||||
|
<a class=" pull-right js_link" href="javascript:;" title="{lang skip_links}" onclick="setEventkey(this,'link');return false"><span class="icon icon_link_gray"></span></a>
|
||||||
|
<!--{elseif $value[type]}-->
|
||||||
|
<a class=" pull-right js_click " href="javascript:;" title="{lang menu}KEY" onclick="setEventkey(this,'click');return false"><span class="icon icon_click_gray"></span></a>
|
||||||
|
|
||||||
|
<!--{/if}-->
|
||||||
|
<a class="js_change_name ml10 hover_visible icon icon_edit_gray" href="javascript:;" title="{lang modification}"></a>
|
||||||
|
<input type="text" class="custom_menu_input js_add_2_menu js_input_limit " value="$value[name]" autofocus data-limit="8">
|
||||||
|
|
||||||
|
<span class="custom_menu_notice ">{lang level_1_menu_name_limit_beyond_truncation}</span>
|
||||||
|
</div>
|
||||||
|
<div class="custom_menu_list_wrap" data-id="$key">
|
||||||
|
<!--{loop $value[sub_button] $key1 $value1}-->
|
||||||
|
<div class="custom_menu_list cm_subname js_li clearfix" data-id="{$key}_{$key1}" data-name="$value1[name]" data-type="$value1[type]" <!--{if $value1[type]=='click'}--> data-key="$value1[key]"<!--{elseif $value1[type]=='view'}-->data-url="$value1[url]"<!--{/if}-->>
|
||||||
|
<a class="icon icon_remove pull-right js_menu_remove hover_visible" href="javascript:;"></a>
|
||||||
|
<span class="custom_menu_subName">$value1[name]</span>
|
||||||
|
<!--{if $value1[type]=='view'}-->
|
||||||
|
<a class=" pull-right js_link" href="javascript:;" title="{lang skip_links}" onclick="setEventkey(this,'link');return false"><span class="icon icon_link_gray"></span></a>
|
||||||
|
<!--{elseif $value1[type]=='click'}-->
|
||||||
|
<a class=" pull-right js_click " href="javascript:;" title="{lang menu}KEY" onclick="setEventkey(this,'click');return false"><span class="icon icon_click_gray"></span></a>
|
||||||
|
<!--{/if}-->
|
||||||
|
<a class="js_change_name ml10 hover_visible icon icon_edit_gray" href="javascript:;" title="{lang modification}"></a>
|
||||||
|
<input type="text" class="custom_menu_input js_add_2_menu js_input_limit" value="$value1[name]" autofocus data-limit="16" >
|
||||||
|
<span class="custom_menu_notice ">{lang level_2_menu_name_limit_beyond_truncation}</span>
|
||||||
|
</div>
|
||||||
|
<!--{/loop}-->
|
||||||
|
</div>
|
||||||
|
<div class="custom_menu_list js_add_second" data-id="$key">
|
||||||
|
<span class="icon icon_add_small"></span>
|
||||||
|
<span class="custom_menu_addName gray">{lang add_second_level_of_menus}</span>
|
||||||
|
<input type="text" class="custom_menu_input js_add_2_menu js_input_limit" data-limit="16" autofocus placeholder="{lang level_2_menu_name_limit}">
|
||||||
|
<span class="custom_menu_notice ">{lang level_2_menu_name_limit_beyond_truncation}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--{/loop}-->
|
||||||
|
</div>
|
||||||
|
<div class="custom_menu_list js_add">
|
||||||
|
<span class="icon icon_add_small"></span>
|
||||||
|
<span class="custom_menu_addName gray">{lang add_themselves_menu}</span>
|
||||||
|
<input type="text" class="custom_menu_input js_add_menu js_input_limit " data-limit="8" autofocus placeholder="{lang level_2_menu_name_limit}">
|
||||||
|
<span class="custom_menu_notice ">{lang level_1_menu_name_limit_beyond_truncation}</span>
|
||||||
|
</div>
|
||||||
|
<div style="padding:10px;">
|
||||||
|
<button class="btn btn-primary" onclick="menu_save(this)" data-loading-text="{lang In_the_save}" style="width:80px;">{lang save}</button>
|
||||||
|
<button class="btn btn-success" onclick="menu_publish(this)" data-loading-text="{lang release}" style="width:120px;" <!--{if !$setting['agentid']}-->disabled="disabled"<!--{/if}-->>{lang published_weixin}</button>
|
||||||
|
<button class="btn btn-danger" onclick="menu_default(this)" data-loading-text="{lang in_recovery}">{lang restore_defaults}</button>
|
||||||
|
<small class="pull-right gray mt10">{lang release_24_hours_to_update}</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
jQuery(document).ready(function(e) {
|
||||||
|
check_add_second();
|
||||||
|
jQuery(document).on('click','.js_change_name',function(){
|
||||||
|
jQuery(this).parent().addClass('editing');
|
||||||
|
jQuery(this).parent().find('.custom_menu_input').focus();
|
||||||
|
});
|
||||||
|
jQuery(document).on('click','.js_add_second',function(){
|
||||||
|
if(!jQuery('.custom_menu_list_wrap[data-id='+jQuery(this).attr('data-id')+'] .cm_subname').length){//如果一级目录有事件,弹窗提示;
|
||||||
|
var self=this;
|
||||||
|
showDialog('{lang use_the_secondary_menu}', 'confirm', '{lang secondary_menu_confirm}', function(){
|
||||||
|
jQuery(self).addClass('editing').find('.custom_menu_input').focus();
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
jQuery(this).addClass('editing');
|
||||||
|
jQuery(this).find('.custom_menu_input').focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
jQuery(document).on('click','.js_add',function(){
|
||||||
|
jQuery(this).addClass('editing');
|
||||||
|
jQuery(this).find('.custom_menu_input').focus();
|
||||||
|
});
|
||||||
|
|
||||||
|
jQuery(document).on('click','.js_menu_remove',function(){
|
||||||
|
var li=jQuery(this).parent();
|
||||||
|
if(li.hasClass('cm_name')){//是主菜单时,删除所有子菜单
|
||||||
|
jQuery('.custom_menu_list[data-id='+li.attr('data-id')+']').remove();
|
||||||
|
jQuery('.custom_menu_list_wrap[data-id='+li.attr('data-id')+']').remove();
|
||||||
|
}
|
||||||
|
li.remove();
|
||||||
|
check_add_second();
|
||||||
|
});
|
||||||
|
jQuery(document).on('keyup','.js_input_limit',function(e){
|
||||||
|
var val=jQuery(this).val();
|
||||||
|
if(mb_strlen(val)>jQuery(this).attr('data-limit')){
|
||||||
|
jQuery(this).parent().addClass('error');
|
||||||
|
}else{
|
||||||
|
jQuery(this).parent().removeClass('error');
|
||||||
|
}
|
||||||
|
if(e.keyCode=='13'){
|
||||||
|
jQuery(this).trigger('blur');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
jQuery(document).on('blur','.custom_menu_input',function(){
|
||||||
|
var li=jQuery(this).parent();
|
||||||
|
var cut_val=mb_cutstr(this.value,jQuery(this).attr('data-limit'));
|
||||||
|
if(this.value){
|
||||||
|
if(li.hasClass('js_add_second')){
|
||||||
|
var pid=li.attr('data-id');
|
||||||
|
if(jQuery('.custom_menu_list_wrap[data-id='+pid+'] .cm_subname').length<5){//判定是否已经有5个二级菜单了
|
||||||
|
var html='<div class="custom_menu_list cm_subname js_li clearfix" data-name="'+cut_val+'">'
|
||||||
|
+' <a class="icon icon_remove pull-right js_menu_remove hover_visible" href="javascript:;"></a>'
|
||||||
|
+' <span class="custom_menu_subName">'+cut_val+'</span>'
|
||||||
|
+' <div class="btn-group pull-right eventkey">'
|
||||||
|
+' <button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">'
|
||||||
|
+' {lang add_the_event_type} <span class="caret"></span>'
|
||||||
|
+' </button>'
|
||||||
|
+' <ul class="dropdown-menu" role="menu">'
|
||||||
|
+' <li><a href="javascript:;" onclick="setEventkey(this,\'click\');return false">{lang menu}key</a></li>'
|
||||||
|
+' <li><a href="javascript:;" onclick="setEventkey(this,\'link\');return false">{lang jump_page}</a></li>'
|
||||||
|
+' </ul>'
|
||||||
|
+' </div>'
|
||||||
|
+' <a class="js_change_name ml10 hover_visible icon icon_edit_gray" href="javascript:;" title="{lang modification}"></a>'
|
||||||
|
+' <input type="text" class="custom_menu_input js_add_2_menu js_input_limit " value="'+cut_val+'" autofocus="true" data-limit="16" >'
|
||||||
|
+' <span class="custom_menu_notice ">{lang level_2_menu_name_limit_beyond_truncation}</span>'
|
||||||
|
+' </div>';
|
||||||
|
jQuery('.custom_menu_list_wrap[data-id='+pid+']').append(html);
|
||||||
|
jQuery('.js_li[data-id='+pid+']').attr('data-type','').find('.js_click,.js_link,.btn-group').remove();
|
||||||
|
check_add_second();
|
||||||
|
init_dragsort(2);
|
||||||
|
}
|
||||||
|
this.value='';
|
||||||
|
}else if(li.hasClass('js_add')){
|
||||||
|
if(jQuery('.cm_name').length<3){
|
||||||
|
var html='<div class="custom_menu_list cm_name js_li clearfix" data-name="'+cut_val+'" data-type="">'
|
||||||
|
+' <a class="icon icon_remove pull-right js_menu_remove hover_visible" href="javascript:;"></a>'
|
||||||
|
+' <span class="icon icon_arrow_down"></span><span class="custom_menu_name">'+cut_val+'</span>'
|
||||||
|
|
||||||
|
+' <a class="js_change_name ml10 hover_visible icon icon_edit_gray" href="javascript:;" title="{lang modification}"></a>'
|
||||||
|
+' <input type="text" class="custom_menu_input js_add_2_menu js_input_limit " value="'+cut_val+'" autofocus="true" data-limit="8">'
|
||||||
|
+' <span class="custom_menu_notice ">{lang level_1_menu_name_limit_beyond_truncation}</span>'
|
||||||
|
+'</div>'
|
||||||
|
+'<div class="custom_menu_list_wrap"></div>'
|
||||||
|
+'<div class="custom_menu_list js_add_second">'
|
||||||
|
+' <span class="icon icon_add_small"></span>'
|
||||||
|
+' <span class="custom_menu_addName gray">{lang add_second_level_of_menus}</span>'
|
||||||
|
+' <input type="text" class="custom_menu_input js_add_2_menu js_input_limit" data-limit="16" autofocus="true" placeholder="{lang level_2_menu_name_limit}">'
|
||||||
|
+' <span class="custom_menu_notice ">{lang level_2_menu_name_limit_beyond_truncation}</span>'
|
||||||
|
+'</div>';
|
||||||
|
jQuery(html).appendTo('.custom_menu_mainList_wrap');
|
||||||
|
check_add_second();
|
||||||
|
init_dragsort(1);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
li.find('.custom_menu_subName,.custom_menu_name').html(cut_val);
|
||||||
|
li.attr('data-name',cut_val);
|
||||||
|
this.value=cut_val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
li.removeClass('editing');
|
||||||
|
});
|
||||||
|
|
||||||
|
init_dragsort();
|
||||||
|
});
|
||||||
|
var ajaxurl='$baseurl_ajax';
|
||||||
|
function init_dragsort(flag){
|
||||||
|
if(flag==1) jQuery('.custom_menu_mainList_wrap').dragsort(null,function(){check_add_second();});
|
||||||
|
else if(flag==2) jQuery('.custom_menu_list_wrap').dragsort(null,function(){check_add_second();});
|
||||||
|
else{
|
||||||
|
jQuery('.custom_menu_list_wrap').dragsort(null,function(){check_add_second();});
|
||||||
|
jQuery('.custom_menu_mainList_wrap').dragsort(null,function(){check_add_second();});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function menu_save(obj){
|
||||||
|
var button=jQuery(obj);
|
||||||
|
button.button('loading');
|
||||||
|
var menu=[];
|
||||||
|
jQuery('.custom_menu_mainList_wrap .js_li').each(function(){
|
||||||
|
var li=jQuery(this);
|
||||||
|
if(li.hasClass('cm_name')){
|
||||||
|
var dataid=li.attr('data-id');
|
||||||
|
var type=li.attr('data-type');
|
||||||
|
var arr={}
|
||||||
|
arr['name']=li.attr('data-name');
|
||||||
|
if(type){
|
||||||
|
arr['type']=li.attr('data-type');
|
||||||
|
if(type=='click'){
|
||||||
|
arr['key']=li.attr('data-key');
|
||||||
|
|
||||||
|
}else{
|
||||||
|
arr['url']=li.attr('data-url');
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
arr['sub_button']=[];
|
||||||
|
}
|
||||||
|
menu.push(arr);
|
||||||
|
}else if(li.hasClass('cm_subname')){
|
||||||
|
var id0=li.parent().attr('data-id');
|
||||||
|
var type=li.attr('data-type');
|
||||||
|
var arr={};
|
||||||
|
arr['name']=li.attr('data-name');
|
||||||
|
if(type){
|
||||||
|
arr['type']=li.attr('data-type');
|
||||||
|
if(type=='click'){
|
||||||
|
arr['key']=li.attr('data-key');
|
||||||
|
}else{
|
||||||
|
arr['url']=li.attr('data-url');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
menu[id0]['sub_button'].push(arr);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
jQuery.post(ajaxurl+'&action=menu_save',{menu:menu},function(json){
|
||||||
|
if(json.msg=='success'){
|
||||||
|
showmessage('{lang save_success}!','success',1000,1);
|
||||||
|
}else{
|
||||||
|
showmessage('{lang save_unsuccess}!','danger',3000,1);
|
||||||
|
}
|
||||||
|
button.button('reset');
|
||||||
|
},'json');
|
||||||
|
}
|
||||||
|
function menu_default(obj){
|
||||||
|
if(confirm('{lang restore_the_default_menu}')){
|
||||||
|
var button=jQuery(obj);
|
||||||
|
button.button('loading');
|
||||||
|
jQuery.post(ajaxurl+'&action=menu_default',function(json){
|
||||||
|
window.location.reload();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function menu_publish(obj){
|
||||||
|
var button=jQuery(obj);
|
||||||
|
button.button('loading');
|
||||||
|
var menu=[];
|
||||||
|
if(jQuery('.custom_menu_mainList_wrap .js_li .btn-group').length){
|
||||||
|
showmessage('{lang none_response_event_please_check}','danger',5000,1);
|
||||||
|
button.button('reset');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
jQuery('.custom_menu_mainList_wrap .js_li').each(function(){
|
||||||
|
var li=jQuery(this);
|
||||||
|
if(li.hasClass('cm_name')){
|
||||||
|
|
||||||
|
var dataid=li.attr('data-id');
|
||||||
|
var type=li.attr('data-type');
|
||||||
|
var arr={}
|
||||||
|
arr['name']=li.attr('data-name');
|
||||||
|
if(type){
|
||||||
|
arr['type']=li.attr('data-type');
|
||||||
|
if(type=='click'){
|
||||||
|
arr['key']=li.attr('data-key');
|
||||||
|
|
||||||
|
}else{
|
||||||
|
arr['url']=li.attr('data-url');
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
arr['sub_button']=[];
|
||||||
|
}
|
||||||
|
menu.push(arr);
|
||||||
|
}else if(li.hasClass('cm_subname')){
|
||||||
|
var id0=li.parent().attr('data-id');
|
||||||
|
var type=li.attr('data-type');
|
||||||
|
var arr={};
|
||||||
|
if(type){
|
||||||
|
arr['name']=li.attr('data-name');
|
||||||
|
arr['type']=li.attr('data-type');
|
||||||
|
if(type=='click'){
|
||||||
|
marr['key']=li.attr('data-key');
|
||||||
|
}else{
|
||||||
|
arr['url']=li.attr('data-url');
|
||||||
|
}
|
||||||
|
menu[id0]['sub_button'].push(arr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
jQuery.post(ajaxurl+'&action=menu_publish',{menu:menu},function(json){
|
||||||
|
if(json.msg=='success'){
|
||||||
|
showmessage('{lang release_success}!','success',1000,1);
|
||||||
|
}else{
|
||||||
|
showmessage(json.error,'danger',3000,1);
|
||||||
|
}
|
||||||
|
button.button('reset');
|
||||||
|
},'json');
|
||||||
|
}
|
||||||
|
function setEventkey(obj,type){
|
||||||
|
var el=jQuery(obj);
|
||||||
|
var dataid=el.closest('.js_li').attr('data-id');
|
||||||
|
showWindow('setEvent',ajaxurl+'&action=setEventkey&type='+type+'&dataid='+dataid+'&t='+new Date().getTime());
|
||||||
|
}
|
||||||
|
|
||||||
|
function check_add_second(){
|
||||||
|
var i=0;
|
||||||
|
jQuery('.custom_menu_mainList_wrap .custom_menu_list,.custom_menu_mainList_wrap .custom_menu_list_wrap').each(function(){
|
||||||
|
var me=jQuery(this);
|
||||||
|
if(me.hasClass('cm_name')){
|
||||||
|
me.attr('data-id',i);
|
||||||
|
i++;
|
||||||
|
|
||||||
|
}else if(me.hasClass('custom_menu_list_wrap')){
|
||||||
|
me.attr('data-id',(i-1));
|
||||||
|
var li=jQuery('.cm_name[data-id='+(i-1)+']');
|
||||||
|
if(jQuery('.custom_menu_list_wrap[data-id='+(i-1)+'] .cm_subname').length){//有子菜单,主菜单去除evnent
|
||||||
|
jQuery('.custom_menu_list_wrap[data-id='+(i-1)+'] .cm_subname').each(function(index){
|
||||||
|
var el=jQuery(this);
|
||||||
|
el.attr('data-id',(i-1)+'_'+index);
|
||||||
|
if(el.attr('data-type')==''){
|
||||||
|
jQuery('<div class="btn-group pull-right eventkey"><button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">{lang add_the_event_type}<span class="caret"></span></button><ul class="dropdown-menu" role="menu"> <li><a href="javascript:;" onclick="setEventkey(this,\'click\');return false">{lang menu}key</a></li><li><a href="javascript:;" onclick="setEventkey(this,\'link\');return false">{lang jump_page}</a></li></ul> </div>').appendTo(this);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
li.attr('data-type','').find('.js_click,.js_link,.btn-group').remove();
|
||||||
|
}else{
|
||||||
|
if(li.attr('data-type')==''){
|
||||||
|
li.find('.js_click,.js_link,.btn-group').remove();
|
||||||
|
jQuery('<div class="btn-group pull-right eventkey"><button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">{lang add_the_event_type}<span class="caret"></span></button><ul class="dropdown-menu" role="menu"> <li><a href="javascript:;" onclick="setEventkey(this,\'click\');return false">{lang menu}key</a></li><li><a href="javascript:;" onclick="setEventkey(this,\'link\');return false">{lang jump_page}</a></li></ul> </div>').appendTo(li);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if(me.hasClass('js_add_second')){
|
||||||
|
me.attr('data-id',i-1);
|
||||||
|
if(jQuery('.custom_menu_list_wrap[data-id='+(i-1)+'] .cm_subname').length>4) me.addClass('hidden');
|
||||||
|
else me.removeClass('hidden');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(i>2){
|
||||||
|
jQuery('.js_add').addClass('hidden');
|
||||||
|
}else{
|
||||||
|
jQuery('.js_add').removeClass('hidden');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function mb_strlen(str) {
|
||||||
|
var len = 0;
|
||||||
|
for(var i = 0; i < str.length; i++) {
|
||||||
|
len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? 2 : 1;
|
||||||
|
}
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
function mb_cutstr(str, maxlen) {
|
||||||
|
var len = 0;
|
||||||
|
var ret = '';
|
||||||
|
var dot = '';
|
||||||
|
maxlen = maxlen - dot.length;
|
||||||
|
for(var i = 0; i < str.length; i++) {
|
||||||
|
len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? 2 : 1;
|
||||||
|
if(len > maxlen) {
|
||||||
|
ret += dot;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
ret += str.substr(i, 1);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="static/js/jquery.dragsort.js?{VERHASH}"></script>
|
||||||
|
|
||||||
147
core/template/default/common/wx_mpinfo.htm
Normal file
147
core/template/default/common/wx_mpinfo.htm
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
<style>
|
||||||
|
.line {
|
||||||
|
height: 2px;
|
||||||
|
margin: 10px 0;
|
||||||
|
font-size: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
background-color: transparent;
|
||||||
|
border-width: 0;
|
||||||
|
border-top: 1px solid #e7e7e7;
|
||||||
|
border-bottom: 1px solid #FFF;
|
||||||
|
}
|
||||||
|
.pull-in {
|
||||||
|
margin-left: -15px;
|
||||||
|
margin-right: -15px;
|
||||||
|
}
|
||||||
|
/*.line-dashed {
|
||||||
|
border-style: dashed;
|
||||||
|
background: transparent;
|
||||||
|
}*/
|
||||||
|
.line-lg {
|
||||||
|
margin-top: 15px;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
.padding-left .col-sm-12 {
|
||||||
|
padding-left: 40px;
|
||||||
|
}
|
||||||
|
.relative {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.copy-success {
|
||||||
|
position: absolute;
|
||||||
|
left: -210px;
|
||||||
|
top: -15px;
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
.absoluter {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div class="main-header">
|
||||||
|
<ul class="nav nav-pills nav-pills-bottomguide">
|
||||||
|
<li class="active"><a href="{$baseurl_info}">{eval echo $base_info_title?$base_info_title:'{lang application_message}';}</a></li>
|
||||||
|
<li><a href="{$baseurl_menu}">{eval echo $base_menu_title?$base_menu_title:'{lang application_menu}';}</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="main-content" style="border-top:1px solid #FFF">
|
||||||
|
<div class="panel-body" >
|
||||||
|
<div class="entity-panel-body form-horizontal">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<form id="settingform" name="settingform" class="form-horizontal form-horizontal-left" action="$baseurl_info" method="post" style="margin:0">
|
||||||
|
<input type="hidden" name="settingsubmit" value="true" />
|
||||||
|
<input type="hidden" name="formhash" value="{FORMHASH}" />
|
||||||
|
<dl>
|
||||||
|
<dt>AppID:</dt>
|
||||||
|
<dd class="clearfix">
|
||||||
|
<input type="text" id="AppID" class="form-control" name="AppID" value="$setting[AppID]" required="true" />
|
||||||
|
<span class="help-block">{lang developer_credentials_login_commonality_terrace}</span>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>AppSecret:</dt>
|
||||||
|
<dd class="clearfix">
|
||||||
|
<input type="text" id="AppSecret" class="form-control" name="AppSecret" value="$setting[AppSecret]" required="true" />
|
||||||
|
<span class="help-block">{lang developer_credentials_login_commonality_terrace}</span>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dd>
|
||||||
|
<input type="hidden" id="fbind" name="fbind" value="bind" />
|
||||||
|
<button class="btn btn-success btn-width" onclick="document.getElementById('settingform').onsubmit();" >{lang bundle}</button>
|
||||||
|
<button class="btn btn-danger btn-width" onclick="document.getElementById('fbind').value='unbind';document.getElementById('settingform').onsubmit();">{lang unbundle}</button>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<div class="line line-dashed line-lg pull-in"></div>
|
||||||
|
<div class="form-group clearfix padding-left">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<p class="form-control-static danger relative"><i class="glyphicon glyphicon-hand-down"></i> <strong style="font-size:1.5em">{lang need_developer_center_settings}</strong> <a href="https://mp.weixin.qq.com/advanced/advanced?action=dev" target="_blank" class="pull-right btn btn-default">{lang weixin_public_number}</a> </p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="line line-dashed line-lg pull-in"></div>
|
||||||
|
<div class="form-group clearfix padding-left">
|
||||||
|
<label class="col-sm-12">
|
||||||
|
<h5><strong>{lang server_configuration_information}</strong></h5>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-group clearfix padding-left">
|
||||||
|
<label class="col-xs-2 control-label">URL({lang server_address})</label>
|
||||||
|
<div class="col-xs-10">
|
||||||
|
<p class="form-control-static relative" style="padding-left:0;">$wxmp[callback] <span class="absoluter">
|
||||||
|
<button class="btn btn-default js_copy" data-clipboard-text="$wxmp[callback]" title="{lang copy}">{lang copy}</button>
|
||||||
|
<span class="alert copy-success alert-success hide ">{lang copy_success_paste_need_place}</span> </span> </p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group clearfix padding-left">
|
||||||
|
<label class="col-xs-2 control-label">Token({lang token})</label>
|
||||||
|
<div class="col-xs-10">
|
||||||
|
<p class="form-control-static relative">$wxmp['token'] <span class="absoluter">
|
||||||
|
<button class="btn btn-default js_copy" data-clipboard-text="$wxmp[token]" title="{lang copy_success_paste_need_place}">{lang copy_success_paste_need_place}</button>
|
||||||
|
<span class="alert copy-success alert-success hide ">{lang copy_success_paste_need_place}</span> </span> </p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group clearfix padding-left">
|
||||||
|
<label class="col-xs-2 control-label">EncodingAESKey({lang message_encryption_key})</label>
|
||||||
|
<div class="col-xs-10">
|
||||||
|
<p class="form-control-static relative">$wxmp[encodingaeskey] <span class="absoluter">
|
||||||
|
<button class="btn btn-default js_copy" data-clipboard-text="$wxmp[encodingaeskey]" title="{lang copy}">{lang copy}</button>
|
||||||
|
<span class="alert copy-success alert-success hide ">{lang copy_success_paste_need_place}</span> </span> </p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group clearfix padding-left">
|
||||||
|
<label class="col-xs-2 control-label">{lang message_encryption}</label>
|
||||||
|
<div class="col-xs-10">
|
||||||
|
<p class="form-control-static relative">{lang safe_mode}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
jQuery(document).ready(function(e) {
|
||||||
|
var client = new ZeroClipboard(jQuery('.js_copy'));
|
||||||
|
client.on( "load", function( client ) {
|
||||||
|
// alert( "ZeroClipboard SWF is ready!" );
|
||||||
|
client.on( "complete", function( client,args ) {
|
||||||
|
var self=this;
|
||||||
|
jQuery(this).parent().find('.copy-success').removeClass('hide');
|
||||||
|
window.setTimeout(function(){
|
||||||
|
jQuery(self).parent().find('.copy-success').addClass('hide');
|
||||||
|
},1000);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<script src="static/js/ZeroClipboard/ZeroClipboard.min.js?{VERHASH}"></script>
|
||||||
|
|
||||||
|
<!--{template common/footer_simple}-->
|
||||||
0
data/attachment/pichomethumb/index.htm
Normal file
0
data/attachment/pichomethumb/index.htm
Normal file
0
data/attachment/qrcode/index.html
Normal file
0
data/attachment/qrcode/index.html
Normal file
859
dzz/billfish/class/class_billfishexport.php
Normal file
859
dzz/billfish/class/class_billfishexport.php
Normal 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
71
dzz/billfish/class/table/table_billfish_folderrecord.php
Normal file
71
dzz/billfish/class/table/table_billfish_folderrecord.php
Normal 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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
49
dzz/billfish/class/table/table_billfish_record.php
Normal file
49
dzz/billfish/class/table/table_billfish_record.php
Normal 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).')');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
42
dzz/billfish/class/table/table_billfish_taggrouprecord.php
Normal file
42
dzz/billfish/class/table/table_billfish_taggrouprecord.php
Normal 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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
39
dzz/billfish/class/table/table_billfish_tagrecord.php
Normal file
39
dzz/billfish/class/table/table_billfish_tagrecord.php
Normal 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));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
20
dzz/billfish/classes/deleteafter.php
Normal file
20
dzz/billfish/classes/deleteafter.php
Normal 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']);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
18
dzz/billfish/classes/delpichomefolderafter.php
Normal file
18
dzz/billfish/classes/delpichomefolderafter.php
Normal 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']);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
51
dzz/billfish/classes/getpichomethumb.php
Normal file
51
dzz/billfish/classes/getpichomethumb.php
Normal 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
26
dzz/billfish/classes/pichomevappdelete.php
Normal file
26
dzz/billfish/classes/pichomevappdelete.php
Normal 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;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
732
dzz/eagle/class/class_eagleexport.php
Normal file
732
dzz/eagle/class/class_eagleexport.php
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
101
dzz/eagle/class/table/table_eagle_folderrecord.php
Normal file
101
dzz/eagle/class/table/table_eagle_folderrecord.php
Normal 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
54
dzz/eagle/class/table/table_eagle_record.php
Normal file
54
dzz/eagle/class/table/table_eagle_record.php
Normal 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));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
20
dzz/eagle/classes/deleteafter.php
Normal file
20
dzz/eagle/classes/deleteafter.php
Normal 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']);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
18
dzz/eagle/classes/delpichomefolderafter.php
Normal file
18
dzz/eagle/classes/delpichomefolderafter.php
Normal 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']);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user