<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: function_cloudaddons.php 32559 2013-02-20 09:35:24Z monkey $
*/
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
define('CLOUDADDONS_WEBSITE_URL', 'http://addon.discuz.com');
define('CLOUDADDONS_DOWNLOAD_URL', 'http://addon.discuz.com/index.php');
define('CLOUDADDONS_DOWNLOAD_IP', '');
define('CLOUDADDONS_CHECK_URL', 'http://addon1.discuz.com');
define('CLOUDADDONS_CHECK_IP', '');
function cloudaddons_md5($file) {
return dfsockopen(CLOUDADDONS_CHECK_URL.'/md5/'.$file, 0, '', '', false, CLOUDADDONS_CHECK_IP, 999);
}
function cloudaddons_url($extra) {
global $_G;
require_once DISCUZ_ROOT.'./source/discuz_version.php';
$uniqueid = $_G['setting']['siteuniqueid'] ? $_G['setting']['siteuniqueid'] : C::t('common_setting')->fetch('siteuniqueid');
$data = 'siteuniqueid='.rawurlencode($uniqueid).'&siteurl='.rawurlencode($_G['siteurl']).'&sitever='.DISCUZ_VERSION.'/'.DISCUZ_RELEASE.'&sitecharset='.CHARSET.'&mysiteid='.$_G['setting']['my_siteid'];
$param = 'data='.rawurlencode(base64_encode($data));
$param .= '&md5hash='.substr(md5($data.TIMESTAMP), 8, 8).'×tamp='.TIMESTAMP;
return CLOUDADDONS_DOWNLOAD_URL.'?'.$param.$extra;
}
function cloudaddons_check() {
if(!function_exists('gzuncompress')) {
cpmsg('cloudaddons_check_gzuncompress_error', '', 'error');
}
if(dfsockopen(CLOUDADDONS_WEBSITE_URL.'/image/logo.png', 4, '', '', false, CLOUDADDONS_DOWNLOAD_IP, 999) !== chr(0x89).'PNG') {
cpmsg('cloudaddons_check_url_fopen_error', '', 'error');
}
if(dfsockopen(CLOUDADDONS_CHECK_URL.'/logo.png', 4, '', '', false, CLOUDADDONS_CHECK_IP, 999) !== chr(0x89).'PNG') {
cpmsg('cloudaddons_check_url_fopen_error', '', 'error');
}
foreach(array('download', 'addonmd5') as $path) {
$tmpdir = DISCUZ_ROOT.'./data/'.$path.'/'.random(5);
$tmpfile = $tmpdir.'/index.html';
dmkdir($tmpdir, 0777);
if(!is_dir($tmpdir) || !file_exists($tmpfile)) {
cpmsg('cloudaddons_check_write_error', '', 'error');
}
@unlink($tmpfile);
@rmdir($tmpdir);
if(is_dir($tmpdir) || file_exists($tmpfile)) {
cpmsg('cloudaddons_check_write_error', '', 'error');
}
}
}
function cloudaddons_open($extra, $post = '') {
return dfsockopen(cloudaddons_url('&from=s').$extra, 0, $post, '', false, CLOUDADDONS_DOWNLOAD_IP, 999);
}
function cloudaddons_pluginlogo_url($id) {
return CLOUDADDONS_WEBSITE_URL.'?_'.$id;
}
function cloudaddons_installlog($addonid) {
$array = cloudaddons_getmd5($addonid);
if($array['RevisionID']) {
cloudaddons_open('&mod=app&ac=installlog&rid='.$array['RevisionID']);
}
}
function cloudaddons_downloadlog($addonid) {
$array = cloudaddons_getmd5($addonid);
if($array['RevisionID']) {
cloudaddons_open('&mod=app&ac=downloadlog&rid='.$array['RevisionID']);
}
}
function cloudaddons_faillog($rid, $type) {
$rid = intval($rid);
$type = intval($type);
cloudaddons_open('&mod=app&ac=faillog&rid='.$rid.'&type='.$type.'&serverinfo='.urlencode($_SERVER['SERVER_SOFTWARE']));
}
function cloudaddons_removelog($rid) {
global $_G;
$reason = $_G['cookie']['uninstallreason'];
dsetcookie('uninstallreason', '', -1);
cloudaddons_open('&mod=app&ac=removelog&rid='.$rid.'&reason='.$reason);
}
function cloudaddons_validator($addonid) {
$array = cloudaddons_getmd5($addonid);
if(cloudaddons_open('&mod=app&ac=validator&ver=2&addonid='.$addonid.($array !== false ? '&rid='.$array['RevisionID'].'&sn='.$array['SN'].'&rd='.$array['RevisionDateline'] : '')) === '0') {
/*cpmsg('cloudaddons_genuine_message', '', 'error', array('addonid' => $addonid));*/
}
}
function cloudaddons_upgradecheck($addonids) {
$post = array();
foreach($addonids as $addonid) {
$array = cloudaddons_getmd5($addonid);
$post[] = 'rid['.$addonid.']='.$array['RevisionID'].'&sn['.$addonid.']='.$array['SN'].'&rd['.$addonid.']='.$array['RevisionDateline'];
}
return cloudaddons_open('&mod=app&ac=validator&ver=2', implode('&', $post));
}
function cloudaddons_getmd5($md5file) {
$array = array();
if(preg_match('/^[a-z0-9_\.]+$/i', $md5file) && file_exists(DISCUZ_ROOT.'./data/addonmd5/'.$md5file.'.xml')) {
require_once libfile('class/xml');
$xml = implode('', @file(DISCUZ_ROOT.'./data/addonmd5/'.$md5file.'.xml'));
$array = xml2array($xml);
} else {
return false;
}
return $array;
}
function cloudaddons_uninstall($md5file, $dir) {
$array = cloudaddons_getmd5($md5file);
if($array === false) {
return;
}
if(!empty($array['RevisionID'])) {
cloudaddons_removelog($array['RevisionID']);
}
@unlink(DISCUZ_ROOT.'./data/addonmd5/'.$md5file.'.xml');
cloudaddons_cleardir($dir);
}
function cloudaddons_savemd5($md5file, $end, $md5) {
global $_G;
parse_str($end, $r);
require_once libfile('class/xml');
$xml = implode('', @file(DISCUZ_ROOT.'./data/addonmd5/'.$md5file.'.xml'));
$array = xml2array($xml);
$ridexists = false;
$data = array();
if($array['RevisionID']) {
foreach(explode(',', $array['RevisionID']) as $i => $rid) {
$sns = explode(',', $array['SN']);
$datalines = explode(',', $array['RevisionDateline']);
$data[$rid]['SN'] = $sns[$i];
$data[$rid]['RevisionDateline'] = $datalines[$i];
}
}
$data[$r['RevisionID']]['SN'] = $r['SN'];
$data[$r['RevisionID']]['RevisionDateline'] = $r['RevisionDateline'];
$array['Title'] = 'Discuz! Addon MD5';
$array['ID'] = $r['ID'];
$array['RevisionDateline'] = $array['SN'] = $array['RevisionID'] = array();
foreach($data as $rid => $tmp) {
$array['RevisionID'][] = $rid;
$array['SN'][] = $tmp['SN'];
$array['RevisionDateline'][] = $tmp['RevisionDateline'];
}
$array['RevisionID'] = implode(',', $array['RevisionID']);
$array['SN'] = implode(',', $array['SN']);
$array['RevisionDateline'] = implode(',', $array['RevisionDateline']);
$array['Data'] = $array['Data'] ? array_merge($array['Data'], $md5) : $md5;
if(!isset($_G['siteftp'])) {
dmkdir(DISCUZ_ROOT.'./data/addonmd5/', 0777, false);
$fp = fopen(DISCUZ_ROOT.'./data/addonmd5/'.$md5file.'.xml', 'w');
fwrite($fp, array2xml($array));
fclose($fp);
} else {
$localfile = DISCUZ_ROOT.'./data/'.random(5);
$fp = fopen($localfile, 'w');
fwrite($fp, array2xml($array));
fclose($fp);
dmkdir(DISCUZ_ROOT.'./data/addonmd5/', 0777, false);
siteftp_upload($localfile, 'data/addonmd5/'.$md5file.'.xml');
@unlink($localfile);
}
}
function cloudaddons_comparetree($new, $old, $basedir, $md5file, $first = 0) {
global $_G;
if($first && file_exists(DISCUZ_ROOT.'./data/addonmd5/'.$md5file.'.xml')) {
require_once libfile('class/xml');
$xml = implode('', @file(DISCUZ_ROOT.'./data/addonmd5/'.$md5file.'.xml'));
$array = xml2array($xml);
$_G['treeop']['md5old'] = $array['Data'];
}
$dh = opendir($new);
while(($file = readdir($dh)) !== false) {
if($file != '.' && $file != '..') {
$newfile = $new.'/'.$file;
$oldfile = $old.'/'.$file;
if(is_file($newfile)) {
$oldfile = preg_replace('/\._addons_$/', '', $oldfile);
$md5key = str_replace($basedir, '', preg_replace('/\._addons_$/', '', $newfile));
$newmd5 = md5_file($newfile);
$oldmd5 = file_exists($oldfile) ? md5_file($oldfile) : '';
if(isset($_G['treeop']['md5old'][$md5key]) && $_G['treeop']['md5old'][$md5key] != $oldmd5) {
$_G['treeop']['oldchange'][] = $md5key;
}
if($newmd5 != $oldmd5) {
$_G['treeop']['copy'][] = $newfile;
}
$_G['treeop']['md5'][$md5key] = $newmd5;
} else {
cloudaddons_comparetree($newfile, $oldfile, $basedir);
}
}
}
}
function cloudaddons_copytree($from, $to) {
global $_G;
$dh = opendir($from);
while(($file = readdir($dh)) !== false) {
if($file != '.' && $file != '..') {
$readfile = $from.'/'.$file;
$writefile = $to.'/'.$file;
if(is_file($readfile)) {
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
爱语滴企业 一、模板功能简介 与 特色介绍 1、构思、列版、设计、出图、到制作,纯4A级别模板制作流程。 2、模板以质感、天绿色和灰为主调,简洁、干净、大气。 3、导航背景和导航图标做了美化修改。 4、首页简洁大气 5、尽力而为的SEO优化,内部连接优化。 6、100%的绿色。 8、完美支持IE6-10及谷歌、遨游、360、火狐、搜狗最新正式版浏览器兼容性
资源推荐
资源详情
资源评论
收起资源包目录
discuz 商业模板 爱语滴企业4 GBK.rar (599个子文件)
two.css 20KB
index.css 20KB
extend_common.css 505B
extend_module.css 2B
extstyle_none.css 1B
index.dat 180B
medal1.gif 33KB
medal9.gif 31KB
medal6.gif 31KB
medal10.gif 31KB
medal8.gif 30KB
medal4.gif 29KB
medal3.gif 26KB
medal2.gif 26KB
medal5.gif 24KB
medal7.gif 22KB
loading.gif 8KB
rwd.gif 7KB
imageloading.gif 6KB
debate_chart.gif 6KB
rwd2.gif 5KB
tavatar.gif 4KB
gb.gif 4KB
popupcredit_bg.gif 3KB
qq_login.gif 3KB
qq_bind.gif 3KB
pdbt.gif 3KB
qq_bind_small.gif 3KB
nophoto.gif 3KB
popuptext_bg.gif 3KB
vd.gif 3KB
logo_88_31.gif 2KB
groupicon.gif 2KB
avatar_blank.gif 2KB
videophoto_btn.gif 2KB
pdbtm.gif 2KB
starlevel.gif 2KB
qzone.gif 2KB
hs_cz.gif 2KB
agree.gif 2KB
disagree.gif 2KB
hs_qg.gif 2KB
hs_cs.gif 2KB
tenpay_logo.gif 2KB
hs_qz.gif 2KB
flash.gif 2KB
music.gif 2KB
alipay_logo.gif 2KB
search.gif 2KB
info.gif 2KB
legend_reward.gif 2KB
magic_imgbg.gif 2KB
error.gif 2KB
digest_3.gif 2KB
digest_2.gif 2KB
feed.gif 2KB
recyclebin.gif 2KB
clock.gif 2KB
rec_add.gif 2KB
facelist.gif 1KB
forum_new.gif 1KB
rec_subtract.gif 1KB
gst.gif 1KB
cancelbutton.gif 1KB
warning.gif 1KB
ad_close.gif 1KB
newnotice.gif 1KB
faq.gif 1KB
rank_3.gif 1KB
rank_2.gif 1KB
rank_1.gif 1KB
cmmnt.gif 1KB
qq_big.gif 1KB
yahoo.gif 1KB
icq.gif 1KB
attachmediacode.gif 1KB
nophotosmall.gif 1KB
ann_icon.gif 1KB
activitysmall.gif 1KB
viewpay.gif 1KB
msnchat.gif 1KB
recommend_1.gif 1KB
connect_qq.gif 1KB
bb_qq.gif 1KB
access_allow.gif 1024B
taobao.gif 1021B
access_normal.gif 1015B
qq.gif 1012B
user_add.gif 1008B
repquote.gif 1007B
access_disallow.gif 1006B
tree_root.gif 998B
ad.gif 997B
icon_ad.gif 997B
flag.gif 994B
bb_fly.gif 979B
tree_folderopen.gif 973B
tree_folder.gif 968B
arw.gif 940B
nopublish.gif 934B
共 599 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
执刀人的工具库
- 粉丝: 1118
- 资源: 1369
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功