예제 #1
0
 private function getGlobalPostString($action)
 {
     global $_G;
     $setting = $_G['setting'];
     $mySiteId = empty($_G['setting']['my_siteid']) ? '' : $_G['setting']['my_siteid'];
     $siteName = $_G['setting']['bbname'];
     $siteUrl = $_G['siteurl'];
     $ucUrl = rtrim($_G['setting']['ucenterurl'], '/') . '/';
     $siteCharset = $_G['charset'];
     $siteTimeZone = $_G['setting']['timeoffset'];
     $mySiteKey = empty($_G['setting']['my_sitekey']) ? '' : $_G['setting']['my_sitekey'];
     $siteKey = C::t('common_setting')->fetch('siteuniqueid');
     $siteLanguage = $_G['config']['output']['language'];
     $siteVersion = $_G['setting']['version'];
     $utilService = Cloud::loadClass('Service_Util');
     $myVersion = $utilService->getApiVersion();
     $productType = 'DISCUZX';
     $siteRealNameEnable = '';
     $siteRealAvatarEnable = '';
     $siteEnableApp = intval($setting['my_app_status']);
     $key = $mySiteId . $siteName . $siteUrl . $ucUrl . $siteCharset . $siteTimeZone . $siteRealNameEnable . $mySiteKey . $siteKey;
     $key = md5($key);
     $siteTimeZone = urlencode($siteTimeZone);
     $siteName = urlencode($siteName);
     $register = false;
     return sprintf('action=%s&productType=%s&key=%s&mySiteId=%d&siteName=%s&siteUrl=%s&ucUrl=%s&siteCharset=%s&siteTimeZone=%s&siteEnableRealName=%s&siteEnableRealAvatar=%s&siteKey=%s&siteLanguage=%s&siteVersion=%s&myVersion=%s&siteEnableApp=%s&from=cloud', $action, $productType, $key, $mySiteId, $siteName, $siteUrl, $ucUrl, $siteCharset, $siteTimeZone, $siteRealNameEnable, $siteRealAvatarEnable, $siteKey, $siteLanguage, $siteVersion, $myVersion, $siteEnableApp);
 }
예제 #2
0
	function checkCloud() {
		global $_G;

		loadcache('mobileoem_data');
		if(!$_G['cache']['mobileoem_data'] || (TIMESTAMP - $_G['cache']['mobileoem_data']['timestamp']) > 86400) {
			try {
				$cloud = Cloud::loadClass('Service_Client_OEM');
				$clouddata = $cloud->checkApp();
			} catch (Exception $e) {
				$clouddata = array('errCode' => 1);
			}
			if(!$clouddata['errCode']) {
				if(!$clouddata['isDone']) {
					$_G['cache']['mobileoem_data'] = array();
				} else {
					$_G['cache']['mobileoem_data'] = $clouddata;
				}
			}
			$_G['cache']['mobileoem_data']['timestamp'] = TIMESTAMP;
			savecache('mobileoem_data', $_G['cache']['mobileoem_data']);
		}

		$useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
		if(strpos($useragent, 'iphone') !== false || strpos($useragent, 'ios') !== false) {
			$this->platform = '&platform=ios';
		} elseif(strpos($useragent, 'android') !== false) {
			$this->platform = '&platform=android';
		} elseif(strpos($useragent, 'windows phone') !== false) {
			$this->platform = '&platform=windowsphone';
		} else {
			$this->platform = '';
		}
	}
예제 #3
0
    public function show()
    {
        global $_G;
        if ($_G['inajax']) {
            return '';
        }
        $clientVersion = '2';
        $util = Cloud::loadclass('Service_Util');
        include_once DISCUZ_ROOT . '/source/discuz_version.php';
        $release = DISCUZ_RELEASE;
        $fix = DISCUZ_FIXBUG;
        $cloudApi = $util->getApiVersion();
        $isfounder = $util->isfounder($_G['member']);
        $sId = $_G['setting']['my_siteid'];
        $version = $_G['setting']['version'];
        $ts = TIMESTAMP;
        $sig = '';
        $adminId = $_G['adminid'];
        $openId = $_G['member']['conopenid'];
        $uid = $_G['uid'];
        $groupId = $_G['groupid'];
        if ($sId) {
            $params = array('s_id' => $sId, 'product_version' => $version, 'product_release' => '', 'fix_bug' => '', 'is_founder' => $isfounder, 's_url' => $_G['siteurl'], 'admin_id' => $adminId, 'open_id' => $openId, 'uid' => $uid, 'group_id' => $groupId, 'last_send_time' => $_COOKIE['dctips']);
            ksort($params);
            $str = $util->httpBuildQuery($params, '', '&');
            $sig = md5(sprintf('%s|%s|%s', $str, $_G['setting']['my_sitekey'], $ts));
        }
        $jsCode = <<<EOF
\t\t\t<div id="discuz_tips" style="display:none;"></div>
EOF;
        echo $jsCode;
    }
예제 #4
0
파일: Common.php 프로젝트: softhui/discuz
 public function onCommonGetNavs($type = '')
 {
     Cloud::loadFile('Service_SearchHelper');
     $navtype = null;
     switch ($type) {
         case 'footer':
             $navtype = 1;
             break;
         case 'space':
             $navtype = 2;
             break;
         case 'my':
             $navtype = 3;
             break;
         case 'header':
             $navtype = 0;
             break;
     }
     $navs = $subNavs = array();
     foreach (C::t('common_nav')->fetch_all_by_navtype($navtype) as $nav) {
         if (!$nav['parentid']) {
             $navs[$nav['id']] = Cloud_Service_SearchHelper::convertNav($nav);
         } else {
             $subNavs[$nav['id']] = $nav;
         }
     }
     foreach ($subNavs as $k => $v) {
         $navs[$v['parentid']]['navs'][$v['id']] = Cloud_Service_SearchHelper::convertNav($v);
     }
     return $navs;
 }
예제 #5
0
 public function plugin_qqgroup()
 {
     global $_G;
     self::$siteId = $_G['setting']['my_siteid'];
     self::$siteKey = $_G['setting']['my_sitekey'];
     self::$util = Cloud::loadClass('Service_Util');
 }
예제 #6
0
 public function generateSiteSignUrl($params = array())
 {
     global $_G;
     $utilService = Cloud::loadClass('Service_Util');
     @(include_once DISCUZ_ROOT . './source/discuz_version.php');
     if (!isset($_G['member']['conopenid'])) {
         $member_connect = $_G['uid'] ? C::t('#qqconnect#common_member_connect')->fetch($_G['uid']) : array();
         $_G['member'] = array_merge($_G['member'], $member_connect);
     }
     $ts = TIMESTAMP;
     $sKey = $_G['setting']['my_sitekey'];
     $params['clientIp'] = $_G['clientip'];
     $params['uid'] = $_G['uid'];
     $params['openId'] = getuserprofile('conopenid');
     $params['sId'] = $_G['setting']['siteuniqueid'];
     $params['appId'] = $_G['setting']['connectappid'];
     $params['ver'] = CLOUDCAPTCHA_VER;
     $params['dzVersion'] = DISCUZ_VERSION;
     $params['sId'] = $_G['setting']['my_siteid'];
     ksort($params);
     $str = $utilService->httpBuildQuery($params, '', '&');
     $sig = md5(sprintf('%s|%s|%s', $str, $sKey, $ts));
     $params['ts'] = $ts;
     $params['sig'] = $sig;
     $params = $utilService->httpBuildQuery($params, '', '&');
     return $params;
 }
예제 #7
0
function getCloudRelateThreads($api = 'tao', $keyword, $page, $tpp = 20, $excludeForumIds = '', $cache = false)
{
    global $_G;
    $threadlist = array();
    $searchHelper = Cloud::loadClass('Service_SearchHelper');
    if ($api != 'tao') {
        $cloudData = $searchHelper->getRelatedThreads($excludeForumIds);
    } else {
        $cloudData = $searchHelper->getRelatedThreadsTao($keyword, $page, $tpp, $disAd, $of, $ot, $cache, $excludeForumIds);
    }
    if ($cloudData['result']['data']) {
        foreach ($cloudData['result']['ad']['content'] as $sAdv) {
            $threadlist[] = array('icon' => (string) $cloudData['result']['ad']['icon']) + $sAdv;
        }
        foreach ($cloudData['result']['data'] as $sPost) {
            $threadlist[] = $sPost;
        }
    } else {
        return null;
    }
    loadcache('forums');
    foreach ($threadlist as $curtid => &$curvalue) {
        $curvalue['pForumName'] = $_G['cache']['forums'][$curvalue['pForumId']]['name'];
        $curvalue['istoday'] = strtotime($curvalue['pPosted']) > $todaytime ? 1 : 0;
        $curvalue['dateline'] = $curvalue['pPosted'];
    }
    return array($threadlist, $cloudData);
}
예제 #8
0
 public function __construct()
 {
     global $_G;
     $this->_util = Cloud::loadClass('Service_Util');
     $this->_client = Cloud::loadClass('Service_Client_Disk');
     $this->_baseUrl = $_G['siteurl'] . 'apptest.php?';
 }
예제 #9
0
파일: Cloud.php 프로젝트: kingsj/core
 static function update()
 {
     if (file_exists('data.txt')) {
         self::$instance = unserialize(file_get_contents("data.txt"));
     } else {
         self::$instance = new Cloud();
     }
     return self::$instance;
 }
예제 #10
0
 public function _output($aid, $sha, $filename)
 {
     include_once libfile('function/attachment');
     $storageService = Cloud::loadClass('Service_Storage');
     $qqdlUrl = $storageService->makeQQdlUrl($sha, $filename);
     $aidencode = packaids(array('aid' => $aid));
     include template('xf_storage:link');
     return $return;
 }
예제 #11
0
 public function onCloudOpenCloud()
 {
     $appService = Cloud::loadClass('Service_App');
     $utilService = Cloud::loadClass('Service_Util');
     $this->_openCloud();
     $res = array();
     $res['status'] = true;
     $res['siteInfo'] = $this->_getBaseInfo();
     return $res;
 }
예제 #12
0
 public function bindQQ($appIdentifier, $fromUrl, $extra = array())
 {
     $this->reloadId();
     $utilService = Cloud::loadClass('Service_Util');
     $fromUrl .= $extra ? '&' . $utilService->httpBuildQuery(array('extra' => $extra), '', '&') : '';
     $params = array('s_id' => $this->_sId, 'app_identifier' => $appIdentifier, 's_site_uid' => $this->siteUid, 'from_url' => $fromUrl, 'ADTAG' => 'CP.CLOUD.BIND.INDEX');
     ksort($params);
     $str = $utilService->httpBuildQuery($params, '', '&');
     $params['sig'] = md5(sprintf('%s|%s|%s', $str, $this->_sKey, $this->_ts));
     $params['ts'] = $this->_ts;
     return 'http://cp.discuz.qq.com/addon_bind/index?' . $utilService->httpBuildQuery($params, '', '&');
 }
예제 #13
0
 public function mobileplugin_cloudsearch()
 {
     global $_G, $searchparams;
     $cloudAppService = Cloud::loadClass('Service_App');
     $this->allow = $cloudAppService->getCloudAppStatus('search');
     if ($this->allow) {
         include_once template('cloudsearch:module');
         if (!$searchparams) {
             $searchHelper = Cloud::loadClass('Cloud_Service_SearchHelper');
             $searchparams = $searchHelper->makeSearchSignUrl();
         }
     }
 }
예제 #14
0
 public function __construct()
 {
     $this->model = model('Base')->model;
     $this->cloud = Cloud::getInstance();
     // 定义当前请求的系统常量
     define('NOW_TIME', $_SERVER['REQUEST_TIME']);
     define('REQUEST_METHOD', $_SERVER['REQUEST_METHOD']);
     define('IS_GET', REQUEST_METHOD == 'GET' ? true : false);
     define('IS_POST', REQUEST_METHOD == 'POST' ? true : false);
     define('IS_PUT', REQUEST_METHOD == 'PUT' ? true : false);
     define('IS_DELETE', REQUEST_METHOD == 'DELETE' ? true : false);
     define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
 }
예제 #15
0
파일: Storage.php 프로젝트: softhui/discuz
 public static function getInstance()
 {
     global $_G;
     if (!self::$_instance instanceof self) {
         self::$_instance = new self();
         $cloudAppService = Cloud::loadClass('Service_App');
         self::$_appStatus = $cloudAppService->getCloudAppStatus('storage');
         self::$_siteId = $_G['setting']['my_siteid'];
         self::$_encKey = $_G['setting']['xf_storage_enc_key'];
         self::$_util = Cloud::loadClass('Service_Util');
     }
     return self::$_instance;
 }
예제 #16
0
 public static function sendpm($toid, $subject, $message, $fromid = '', $replypmid = 0, $isusername = 0, $type = 0)
 {
     global $_G;
     if ($fromid === '') {
         $fromid = $_G['uid'];
     }
     $author = '';
     if ($fromid) {
         if ($fromid == $_G['uid']) {
             $sendpmmaxnum = $_G['group']['allowsendpmmaxnum'];
             $author = $_G['username'];
         } else {
             $user = getuserbyuid($fromid);
             $author = $user['username'];
             loadcache('usergroup_' . $user['groupid']);
             $sendpmmaxnum = $_G['cache']['usergroup_' . $user['groupid']]['allowsendpmmaxnum'];
         }
         $currentnum = C::t('common_member_action_log')->count_day_hours(getuseraction('pmid'), $fromid);
         if ($sendpmmaxnum && $currentnum >= $sendpmmaxnum) {
             return -16;
         }
     }
     loaducenter();
     $return = uc_pm_send($fromid, $toid, addslashes($subject), addslashes($message), 1, $replypmid, $isusername, $type);
     if ($return > 0 && $fromid) {
         if ($_G['setting']['cloud_status']) {
             $msgService = Cloud::loadClass('Cloud_Service_Client_Message');
             if (is_numeric($toid)) {
                 $tospace = getuserbyuid($toid);
                 if ($tospace['conisbind']) {
                     $msgService->add($toid, $fromid, $author, $_G['timestamp']);
                 }
             } else {
                 $senduids = array();
                 foreach (C::t('common_member')->fetch_all_by_username(explode(',', $toid)) as $touser) {
                     if ($touser['conisbind']) {
                         $senduids[$touser['uid']] = $touser['uid'];
                     }
                 }
                 if ($senduids) {
                     $msgService->add($senduids, $fromid, $author, $_G['timestamp']);
                 }
             }
         }
         foreach (explode(',', $fromid) as $v) {
             useractionlog($fromid, 'pmid');
         }
     }
     return $return;
 }
예제 #17
0
 private function _getPMList($page, $pageSize)
 {
     $pmList = array('list' => array(), 'count' => 0);
     global $_G;
     // 在DISCUZ_ROOT/source/include/space/space_pm.php基础上二次开发
     loaducenter();
     $filter = 'privatepm';
     $perpage = $pageSize;
     $count = 0;
     $list = array();
     if ($filter == 'privatepm' || $filter == 'newpm') {
         $result = uc_pm_list($_G['uid'], $page, $perpage, 'inbox', $filter, 200);
         $count = $result['count'];
         $list = $result['data'];
     }
     if ($_G['member']['newpm']) {
         if ($newpm && $_G['setting']['cloud_status']) {
             $msgService = Cloud::loadClass('Cloud_Service_Client_Message');
             $msgService->setMsgFlag($_G['uid'], $_G['timestamp']);
         }
         C::t('common_member')->update($_G['uid'], array('newpm' => 0));
         uc_pm_ignore($_G['uid']);
     }
     $tempPMList = array();
     foreach ($list as $pm) {
         // 目前只要两人对话的列表
         if ($pm['members'] > 2 || $pm['pmtype'] != 1) {
             $count--;
             continue;
         }
         $tempPm = array();
         $tempPm['plid'] = (int) $pm['plid'];
         $tempPm['pmid'] = (int) $pm['pmid'];
         $tempPm['lastUserId'] = (int) $pm['lastauthorid'];
         $tempPm['lastUserName'] = (string) $pm['lastauthor'];
         $tempPm['lastSummary'] = (string) $pm['lastsummary'];
         $tempPm['lastDateline'] = $pm['lastdateline'] . '000';
         $tempPm['toUserId'] = (int) $pm['touid'];
         $tempPm['toUserAvatar'] = UserUtils::getUserAvatar($pm['touid']);
         $tempPm['toUserName'] = (string) $pm['tousername'];
         $tempPm['toUserIsBlack'] = UserUtils::isBlacklist($_G['uid'], $pm['touid']) ? 1 : 0;
         $tempPm['isNew'] = $pm['new'] ? 1 : 0;
         $tempPMList[] = $tempPm;
     }
     $pmList['list'] = $tempPMList;
     $pmList['count'] = $count;
     return $pmList;
 }
예제 #18
0
    public function show()
    {
        global $_G;
        $clientVersion = '2';
        $util = Cloud::loadclass('Service_Util');
        include_once DISCUZ_ROOT . '/source/discuz_version.php';
        $release = DISCUZ_RELEASE;
        $fix = DISCUZ_FIXBUG;
        $cloudApi = $util->getApiVersion();
        $isfounder = $util->isfounder($_G['member']);
        $sId = $_G['setting']['my_siteid'];
        $version = $_G['setting']['version'];
        $ts = TIMESTAMP;
        $sig = '';
        $adminId = $_G['adminid'];
        $openId = $_G['member']['conopenid'];
        $uid = $_G['uid'];
        $groupId = $_G['groupid'];
        if ($sId) {
            $params = array('s_id' => $sId, 'product_version' => $version, 'product_release' => $release, 'fix_bug' => $fix, 'is_founder' => $isfounder, 's_url' => $_G['siteurl'], 'admin_id' => $adminId, 'open_id' => $openId, 'uid' => $uid, 'group_id' => $groupId, 'last_send_time' => $_COOKIE['dctips']);
            ksort($params);
            $str = $util->httpBuildQuery($params, '', '&');
            $sig = md5(sprintf('%s|%s|%s', $str, $_G['setting']['my_sitekey'], $ts));
        }
        $jsCode = <<<EOF
\t\t\t<div id="discuz_tips" style="display:none;"></div>
\t\t\t<script type="text/javascript">
\t\t\t\tvar discuzSId = '{$sId}';
\t\t\t\tvar discuzVersion = '{$version}';
\t\t\t\tvar discuzRelease = '{$release}';
\t\t\t\tvar discuzApi = '{$cloudApi}';
\t\t\t\tvar discuzIsFounder = '{$isfounder}';
\t\t\t\tvar discuzFixbug = '{$fix}';
\t\t\t\tvar discuzAdminId = '{$adminId}';
\t\t\t\tvar discuzOpenId = '{$openId}';
\t\t\t\tvar discuzUid = '{$uid}';
\t\t\t\tvar discuzGroupId = '{$groupId}';
\t\t\t\tvar ts = '{$ts}';
\t\t\t\tvar sig = '{$sig}';
\t\t\t\tvar discuzTipsCVersion = '{$clientVersion}';
\t\t\t</script>
\t\t\t<script src="http://discuz.gtimg.cn/cloud/scripts/discuz_tips.js?v=1" type="text/javascript" charset="UTF-8"></script>
EOF;
        echo $jsCode;
    }
예제 #19
0
파일: OEM.php 프로젝트: lemonstory/bbs
 public function getDownloadUrl()
 {
     if (!$this->_sId) {
         return '';
     }
     global $_G;
     loadcache('mobileoem_data');
     if (!$_G['cache']['mobileoem_data']['downloadPath']) {
         return '';
     }
     if ($_G['uid']) {
         $connectUser = C::t('#qqconnect#common_member_connect')->fetch($_G['uid']);
         $openid = $connectUser['conopenid'];
     } else {
         $openid = '';
     }
     $utilService = Cloud::loadClass('Service_Util');
     return $_G['cache']['mobileoem_data']['downloadPath'] . '?' . $utilService->generateSiteSignUrl(array('sId' => $this->_sId, 'uId' => $_G['uid'], 'openId' => $openid));
 }
예제 #20
0
 public function sync()
 {
     global $_G;
     $setting = $_G['setting'];
     $my_url = 'http://api.manyou.com/uchome.php';
     $mySiteId = empty($_G['setting']['my_siteid']) ? '' : $_G['setting']['my_siteid'];
     $siteName = $_G['setting']['bbname'];
     $siteUrl = $_G['siteurl'];
     $ucUrl = rtrim($_G['setting']['ucenterurl'], '/') . '/';
     $siteCharset = $_G['charset'];
     $siteTimeZone = $_G['setting']['timeoffset'];
     $mySiteKey = empty($_G['setting']['my_sitekey']) ? '' : $_G['setting']['my_sitekey'];
     $siteKey = C::t('common_setting')->fetch('siteuniqueid');
     $siteLanguage = $_G['config']['output']['language'];
     $siteVersion = $_G['setting']['version'];
     $utilService = Cloud::loadClass('Service_Util');
     $myVersion = $utilService->getApiVersion();
     $productType = 'DISCUZX';
     $siteRealNameEnable = '';
     $siteRealAvatarEnable = '';
     $siteEnableApp = intval($setting['my_app_status']);
     $key = $mySiteId . $siteName . $siteUrl . $ucUrl . $siteCharset . $siteTimeZone . $siteRealNameEnable . $mySiteKey . $siteKey;
     $key = md5($key);
     $siteTimeZone = urlencode($siteTimeZone);
     $siteName = urlencode($siteName);
     $register = false;
     $postString = sprintf('action=%s&productType=%s&key=%s&mySiteId=%d&siteName=%s&siteUrl=%s&ucUrl=%s&siteCharset=%s&siteTimeZone=%s&siteEnableRealName=%s&siteEnableRealAvatar=%s&siteKey=%s&siteLanguage=%s&siteVersion=%s&myVersion=%s&siteEnableApp=%s&from=cloud', 'siteRefresh', $productType, $key, $mySiteId, $siteName, $siteUrl, $ucUrl, $siteCharset, $siteTimeZone, $siteRealNameEnable, $siteRealAvatarEnable, $siteKey, $siteLanguage, $siteVersion, $myVersion, $siteEnableApp);
     $response = @dfsockopen($my_url, 0, $postString, '', false, $setting['my_ip']);
     $res = unserialize($response);
     if (!$response) {
         throw new Cloud_Service_Client_RestfulException('Empty Response', 111);
     } elseif (!$res) {
         throw new Cloud_Service_Client_RestfulException('Error Response: ' . $response, 110);
     }
     if ($res['errCode']) {
         throw new Cloud_Service_Client_RestfulException($res['errMessage'], $res['errCode']);
     }
     return true;
 }
예제 #21
0
            require_once libfile('function/delete');
            $threadsdel = deletethread($threadlist);
        }
        cpmsg('recyclebin_succeed', 'action=recyclebin', 'succeed', array('threadsdel' => $threadsdel, 'threadsundel' => $threadsundel));
    }
} elseif ($operation == 'search') {
    if (!submitcheck('rbsubmit')) {
        $inforum = $_GET['inforum'];
        $authors = $_GET['authors'];
        $keywords = $_GET['keywords'];
        $admins = $_GET['admins'];
        $pstarttime = $_GET['pstarttime'];
        $pendtime = $_GET['pendtime'];
        $mstarttime = $_GET['mstarttime'];
        $mendtime = $_GET['mendtime'];
        $appService = Cloud::loadClass('Service_App');
        $secStatus = $appService->getCloudAppStatus('security');
        if ($secStatus) {
            $security = $_GET['security'];
        }
        $searchsubmit = $_GET['searchsubmit'];
        require_once libfile('function/forumlist');
        $forumselect = '<select name="inforum"><option value="">&nbsp;&nbsp;> ' . $lang['select'] . '</option>' . '<option value="">&nbsp;</option><option value="groupthread">' . $lang['group_thread'] . '</option>' . forumselect(FALSE, 0, 0, TRUE) . '</select>';
        if ($inforum) {
            $forumselect = preg_replace("/(\\<option value=\"{$inforum}\")(\\>)/", "\\1 selected=\"selected\" \\2", $forumselect);
        }
        shownav('topic', 'nav_recyclebin');
        showsubmenu('nav_recyclebin', array(array('recyclebin_list', 'recyclebin', 0), array('search', 'recyclebin&operation=search', 1), array('clean', 'recyclebin&operation=clean', 0)));
        echo <<<EOT
<script type="text/javascript" src="static/js/calendar.js"></script>
<script type="text/JavaScript">
예제 #22
0
}
if ($myExtGroupIds) {
    $groupIds = array_merge($groupIds, $myExtGroupIds);
}
$groupIds = array_unique($groupIds);
$userGroups = $searchHelper->getUserGroupPermissions($groupIds);
foreach ($groupIds as $k => $v) {
    $value = substr($userGroups[$v]['sign'], -4);
    if ($value) {
        $params['ugSign' . $v] = $value;
    }
}
$params['charset'] = $_G['charset'];
if ($_G['member']['conopenid']) {
    $params['openid'] = $_G['member']['conopenid'];
}
$extra = array('q', 'fId', 'author', 'scope', 'source', 'module', 'isAdv');
foreach ($extra as $v) {
    if ($_GET[$v]) {
        $params[$v] = $_GET[$v];
    }
}
$mySearchData = $_G['setting']['my_search_data'];
if ($mySearchData['domain']) {
    $domain = $mySearchData['domain'];
} else {
    $domain = 'search.discuz.qq.com';
}
$utilService = Cloud::loadClass('Cloud_Service_Util');
$url = 'http://' . $domain . '/f/discuz?' . $utilService->generateSiteSignUrl($params, true, true);
dheader('Location: ' . $url);
예제 #23
0
function cloud_referer_related()
{
    global $_G;
    $my_search_data = $_G['setting']['my_search_data'];
    if (viewthread_is_search_referer() && $my_search_data['status']) {
        $appService = Cloud::loadClass('Service_App');
        if ($appService->getCloudAppStatus('search')) {
            $_params = array('s_site_gid' => $_G['groupid'], 'response_type' => 'js', 'referer' => $_SERVER['HTTP_REFERER']);
            $utilService = Cloud::loadClass('Service_Util');
            $signUrl = $utilService->generateSiteSignUrl($_params);
            $my_search_se_url = 'http://search.discuz.qq.com/api/site/se?' . $signUrl . "";
        }
    }
    return $my_search_se_url;
}
예제 #24
0
        cpmsg("{$lang['counter_thread']}: " . cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
    } else {
        cpmsg('counter_thread_succeed', 'action=counter', 'succeed');
    }
} elseif (submitcheck('movedthreadsubmit', 1)) {
    $nextlink = "action=counter&current={$next}&pertask={$pertask}&movedthreadsubmit=yes";
    $processed = 0;
    $tids = array();
    $updateclosed = array();
    foreach (C::t('forum_thread')->fetch_all_movedthread($current, $pertask) as $thread) {
        $processed = 1;
        if ($thread['isgroup'] && $thread['status'] == 3) {
            $updateclosed[] = $thread['tid'];
        } elseif ($thread['threadexists']) {
            $tids[] = $thread['tid'];
            $log_handler = Cloud::loadClass('Cloud_Service_SearchHelper');
            $log_handler->myThreadLog('delete', array('tid' => $thread['tid']));
        }
    }
    if ($tids) {
        C::t('forum_thread')->delete_by_tid($tids, true);
    }
    if ($updateclosed) {
        C::t('forum_thread')->update($updateclosed, array('closed' => ''));
    }
    if ($processed) {
        cpmsg(cplang('counter_moved_thread') . ': ' . cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
    } else {
        cpmsg('counter_moved_thread_succeed', 'action=counter', 'succeed');
    }
} elseif (submitcheck('specialarrange', 1)) {
예제 #25
0
 function _viewthread_fastpost_btn_extra_output()
 {
     if (!$this->allow) {
         return;
     }
     global $_G;
     $allowconnectt = $this->_allowconnectt();
     if ($GLOBALS['fastpost'] && $allowconnectt) {
         $connectService = Cloud::loadClass('Service_Connect');
         $connectService->connectMergeMember();
         if ($_G['member']['is_feed']) {
             return lang('plugin/qqconnect', 'connect_post_sync_method') . tpl_sync_method(false, $allowconnectt) . ' | ';
         }
     }
 }
예제 #26
0
function banlog($username, $origgroupid, $newgroupid, $expiration, $reason, $status = 0)
{
    global $_G, $_POST;
    $cloud_apps = dunserialize($_G['setting']['cloud_apps']);
    if (isset($_POST['bannew']) && $_POST['formhash'] && $cloud_apps['security']['status'] == 'normal') {
        $securityService = Cloud::loadClass('Service_Security');
        if ($_POST['bannew']) {
            $securityService->logBannedMember($username, $reason);
        } else {
            $securityService->updateMemberRecover($username);
        }
    }
    writelog('banlog', dhtmlspecialchars("{$_G['timestamp']}\t{$_G[member][username]}\t{$_G['groupid']}\t{$_G['clientip']}\t{$username}\t{$origgroupid}\t{$newgroupid}\t{$expiration}\t{$reason}\t{$status}"));
}
예제 #27
0
 private function step_bindQQBack()
 {
     $stepurl = $_G['siteurl'] . ADMINSCRIPT . '?action=plugins&operation=enable&pluginid=' . $this->pluginid . '&formhash=' . FORMHASH . '&step=' . $this->_step('appOpenWithRegister');
     if ($_GET['extra']) {
         $utilService = Cloud::loadClass('Service_Util');
         $stepurl .= '&' . $utilService->httpBuildQuery(array('extra' => $_GET['extra']), '', '&');
     }
     echo '<script type="text/javascript">if(window.opener) {window.opener.location.href=\'' . $stepurl . '\';};window.close();</script>';
     exit;
 }
예제 #28
0
 /**
  * 帖子列表页展示热门话题
  */
 public function forumdisplay_middle_output()
 {
     if (!$this->allow || !$this->allow_forum_recommend) {
         return;
     }
     global $_G, $searchparams;
     $result = '';
     if ($_G['fid']) {
         $searchHelper = Cloud::loadClass('Service_SearchHelper');
         //note 获取关键词,使用字符串索引
         $recwords = $searchHelper->getRecWords(14, 'assoc', $_G['fid']);
         $srchotquery = '';
         if (!empty($searchparams['params'])) {
             foreach ($searchparams['params'] as $key => $value) {
                 $srchotquery .= '&' . $key . '=' . rawurlencode($value);
             }
         }
         $result = tpl_cloudsearch_index_top($recwords, $searchparams, $srchotquery, 'hotopic_fm');
     }
     return $result;
 }
예제 #29
0
파일: App.php 프로젝트: softhui/discuz
 private function _searchStatusCallback($appName, $status)
 {
     $available = 0;
     if ($status == 'normal') {
         $available = 1;
     }
     C::t('common_setting')->update('my_search_status', $available);
     if ($available) {
         Cloud::loadFile('Service_SearchHelper');
         Cloud_Service_SearchHelper::allowSearchForum();
     }
     $this->setPluginAvailable('cloudsearch', $available);
     return true;
 }
예제 #30
0
 public function makeSearchSignUrl()
 {
     global $_G;
     $url = '';
     $params = array();
     $mySearchData = $_G['setting']['my_search_data'];
     $mySiteId = $_G['setting']['my_siteid'];
     $mySiteKey = $_G['setting']['my_sitekey'];
     $cloudAppService = Cloud::loadClass('Service_App');
     if ($mySearchData['status'] && $cloudAppService->getCloudAppStatus('search') && $mySiteId) {
         $myExtGroupIds = array();
         $_extGroupIds = explode("\t", $_G['member']['extgroupids']);
         foreach ($_extGroupIds as $v) {
             if ($v) {
                 $myExtGroupIds[] = $v;
             }
         }
         $myExtGroupIdsStr = implode(',', $myExtGroupIds);
         $params = array('sId' => $mySiteId, 'ts' => time(), 'cuId' => $_G['uid'], 'cuName' => $_G['username'], 'gId' => intval($_G['groupid']), 'agId' => intval($_G['adminid']), 'egIds' => $myExtGroupIdsStr, 'fmSign' => '');
         $groupIds = array($params['gId']);
         if ($params['agId']) {
             $groupIds[] = $params['agId'];
         }
         if ($myExtGroupIds) {
             $groupIds = array_merge($groupIds, $myExtGroupIds);
         }
         $groupIds = array_unique($groupIds);
         foreach ($groupIds as $v) {
             $key = 'ugSign' . $v;
             $params[$key] = '';
         }
         $extraParams = array();
         if (isset($_G['setting']['verify']['enabled']) && $_G['setting']['verify']['enabled']) {
             $verifyGroups = C::t('common_member_verify')->fetch($_G['uid']);
             $extraParams['ext_vgIds'] = 0;
             foreach ($verifyGroups as $k => $v) {
                 if ($k != 'uid') {
                     $position = dintval(substr($k, strlen('verify')));
                     $extraParams['ext_vgIds'] = setstatus($position, dintval($v), $extraParams['ext_vgIds']);
                 }
             }
         }
         if ($_G['cookie']['ffids' . $_G['uid']]) {
             $ext_ffids = str_replace('D', ',', authcode($_G['cookie']['ffids' . $_G['uid']], 'DECODE'));
             $extraParams['ext_ffids'] = $ext_ffids;
         }
         if (!empty($extraParams)) {
             ksort($extraParams);
             $params = array_merge($params, $extraParams);
         }
         $params['sign'] = md5(implode('|', $params) . '|' . $mySiteKey);
         if ($cloudAppService->getCloudAppStatus('connect') && $_G['member']['conopenid']) {
             $connectService = Cloud::loadClass('Service_Connect');
             $connectService->connectMergeMember();
             $params['openid'] = $_G['member']['conopenid'];
         }
         $params['charset'] = $_G['charset'];
         if ($mySearchData['domain']) {
             $domain = $mySearchData['domain'];
         } else {
             $domain = 'search.discuz.qq.com';
         }
         $url = 'http://' . $domain . '/f/discuz';
     }
     return !empty($url) ? array('url' => $url, 'params' => $params) : array();
 }